wod数据格式的解析器,如http://data.nodc.noaa.gov/woa/wod/doc/wodreadme.pdf所述

wodp的Python项目详细描述


构建状态

发布历史:

<表><广告>版本 < >< /广告><正文>1.6.0doi1.5.0doidoi1.4.010.5281/zenodo.22555971.3.010.5281/zenodo.47960< > >1.2.010.5281/zenodo.46785< > >1.1.010.5281/zenodo.32632< > >10.5281/zenodo.31213< > >

数据解包

世界海洋数据库数据按照此处所述的规范进行编码。这个wodprofile类读取这个格式,并返回一个带有函数的对象,以帮助从中提取有用的信息。

如何帮助

尝试

请尝试使用wodpy解包您自己的wod数据,并让我们知道它在问题中的作用。任何问题(不仅仅是bug,还有任何令人困惑或不直观的问题),请告诉我们。此外,如果您想查看更多功能(如未打包的个人资料的更多部分),请尽管提—社区请求对于新功能来说是高度优先的。

贡献

欢迎您为我们的工作做出贡献!请遵循以下简单指南:

  • 请先在此回购协议中打开问题或空PR,以便我们可以讨论您的计划。
  • 请不要超过500行。(为什么?参见图1="https://smartbear.com/smartbear/media/pdfs/11_best_practices_for_peer_code_review.pdf" rel="nofollow">这里)
  • 新代码应尽可能打包成小函数和类;请不要使用超过50行的函数。
  • 为您创建的每个新函数至少编写一个测试。
  • 所有测试必须通过才能接受任何PR。

用法

安装

从pip:sudo pip install wodpy

要使用wodprofile类,请打开符合上述链接中定义的规范的文本文件,并传入结果文件对象:

from wodpy import wod

fid = open("example.dat")
profile = wod.WodProfile(fid)

配置文件现在包含一个具有许多帮助函数的对象,用于从文件的第一个配置文件中提取有用信息

profile.latitude()  # Return the latitude of the profile.
profile.z()         # Return the depths of the observations.
profile.df()        # Return a pandas DataFrame containing all the information for this profile
...

文件中的其他配置文件可以如下读取:

profile2 = wod.WodProfile(fid) # Read the next profile.
profile2.is_last_profile_in_file(fid) # Is this the last profile?

完整的方法列表和定义如下。

wodprofile方法

这些方法供最终用户使用,用于从配置文件中解码有用信息。

数据检索

这些功能对当前配置文件中的数据进行解码。

纽比

每个配置文件数据:

  • cruise():返回巡航编号。
  • day():返回日期。
  • 纬度unc():纬度的不确定性
  • 经度unc():经度的不确定性
  • latitude():返回配置文件的纬度。
  • longitude():返回配置文件的经度。
  • month():返回月份。
  • n_levels():返回配置文件中的级别数。
  • primary_header_keys():返回主标题中的键列表。
  • probe_type():返回次头29的内容(如果存在),否则不返回。
  • time():返回时间。
  • uid():返回配置文件的唯一标识符。
  • year():返回年份。
  • pis():返回带有键"variable code"和"p.i.code"的对象列表
  • originator_station():返回表示发端站的字符串
  • originator_cruise():返回一个表示originator cruise的字符串
  • originator_flag_type():返回指定发起人标志定义的索引(http://data.nodc.noaa.gov/woa/wod/doc/wodreadme.pdf" rel="nofollow">http://data.nodc.noaa.gov/woa/wod/doc/wodreadme.pdf中的表2.28)
  • extract_secondary_header(index):返回由index参数索引的secondary header的值,其中该索引对应于https://data.nodc.noaa.gov/woa/wod/doc/wodreamme.pdf" rel="nofollow">https://data.nodc.noaa中表4的"id"列。gov/woa/wod/doc/wodreadme.pdf。例如,extract_secondary_header(29)完全等同于probe_type()

每级数据:

  • s_unc():返回一个盐度不确定性的核屏蔽数组
  • t_unc():返回温度不确定性的核屏蔽数组
  • z_unc():返回深度不确定性的核屏蔽数组
  • oxygen():返回氧气含量(ml/l)的核屏蔽数组。
  • p():返回一个数值屏蔽的压力数组(分贝)。
  • ph():返回一个用numpy屏蔽的ph值数组。
  • phosphate():返回磷酸盐含量(um/l)的核屏蔽数组。
  • s():返回一个核掩蔽的盐度数组。
  • s\u level\u qc(originator=false):返回每个盐度级别的质量控制标志。
  • s\u metadat a():返回描述可用盐度metadat的字典列表A/LI>
  • s嫒profile嫒qc(originator=false):返回盐度剖面的质量控制标志。
  • s_qc_mask():返回一个布尔数组,显示质量控制失败的盐度级别。如果整个转换被拒绝,则所有级别都设置为true。
  • silicate():返回硅酸盐含量(um/l)的核屏蔽数组。
  • t():返回温度(C)的核屏蔽数组。
  • t_level_qc(originator=false):返回每个温度级别的质量控制标志。
  • t_metadata():返回描述可用温度元数据的字典列表
  • t_profile_qc(originator=false):返回温度配置文件的质量控制标志。
  • t_qc_mask():返回一个布尔数组,显示质量控制失败的温度级别。如果整个转换被拒绝,则所有级别都设置为true。
  • z():返回一个核掩蔽的深度数组。
  • z_level_qc(originator=false):返回深度质量控制标志的numpy屏蔽数组。如果需要发端人标志,请设置发端人选项。

构造每一层ndarrays不应在每个配置文件中执行多次;为了方便起见,我们提供了以下包装器,以便一次提取所有这些信息:

  • npdict():返回键与上面的函数名相同的adict,相应值与使用默认参数值运行时这些函数的返回值相等。
熊猫

profile.df()返回一个p and asdataframe,每个级别的信息作为列,每个配置文件的信息作为中的键。meta属性:

列:

  • 氧气:氧气含量(ml/l)
  • p:压力(分巴)
  • ph:ph值
  • 磷酸盐:磷酸盐含量(um/l)
  • 硅酸盐:硅酸盐含量(um/l)
  • t:摄氏温度
  • t_level_qc:水平温度qc标志(0==全部良好)
  • t_unc:温度不确定度
  • s:水平盐度
  • s嫒level嫒qc:水平盐度qc标志(0==全部良好)
  • s\u unc:盐度不确定度
  • z:水平深度(米)
  • z_level_qc:水平深度qc标志(0==全部良好)
  • z_unc:深度不确定度

属性:

以下是数据帧上.meta字典中的键:

  • 巡航:巡航识别号
  • 日期:每月的[1,31]日
  • 纬度:纬度的不确定性
  • 经度:经度的不确定度
  • 纬度:以度为单位
  • 经度:以度为单位
  • 月份:每年的[1,12]
  • n_levels:配置文件中的级别数(即数据帧中的行数)
  • 始发站
  • 发起者巡航
  • 发端人标志类型
  • pis
  • 探测类型:第二报头29的内容(如果存在),否则为无。
  • 存储单元元数据:描述可用盐度元数据的指令列表
  • t_metadata:描述可用温度元数据的指令列表
  • 时间:在[0,24]范围内以小时为单位
  • uid:配置文件的唯一标识符
  • 年份

注意dataframe属性通常不会传播到在原始dataframes上操作返回的新dataframe

ng>仅限标题

  • header():返回一个pandas系列,其中只有配置文件的头信息,在上面描述的完整数据帧上作为自定义属性设置键。
科特德

cotede是一个质量控制水文数据包,t

类wod4cotede提供了cotede所需格式的wod剖面,这是一个质量控制水文数据包。人们可以这样使用它:

< Buff行情>< Buff行情>< Buff行情>

来自wodpy.extra import wod4cotede

< Buff行情>< Buff行情>< Buff行情>

fid=open('example.dat') P=WodProfile(氢火焰离子化检测器) 剖面图=wod4cotede(p)

< Buff行情>< Buff行情>< Buff行情>

fid=open('example.data') 剖面图=wod4cotede(fid)

用Eurogoos标准对该剖面进行质量控制:

< Buff行情>< Buff行情>< Buff行情>

从cotede.qc导入profileqc pqc=profileqc(profile,'eurogoos')

有关配置文件的所有信息都可以从以下位置获取:pqc.attributes、pqc.data和pqc.flags。有关详细信息,请参阅科特德手册。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java日期格式的月和日的固定长度?   无法将java ArrayList<String>转换为字符串。   java当我使用log4j 1.2.15时,编译时出现错误;当更改为1.2.16时,一切正常   java如何使用ArgumentMatchers将任何队列告知Mockito?   如何解决“java”。Java电子邮件API中的lang.ExceptionInInitializerError   java是实例化对象名并设置其值的通用方法   java在多线程环境中,如果一个线程崩溃,如何关闭JVM?   java WebDriverManager在selenium中获取不正确版本的驱动程序   如果JAVA中后减量的优先级高于前增量,那么为什么下面的代码输出为22.0而不是20.0。?   在hibernate中找不到java属性   当我用java运行调度程序时,什么都没有发生   jackson如何在java中从数据库中检索json对象   java安卓:如何在自定义适配器中设置侦听器并获取imagebutton单击的位置   java MySQLIntegrityConstraintViolationException:列“问题id”不能为空错误   JavaSpring自定义注销过滤器在注销前执行一些操作?   java如何返回常量集合   java使用subselect进行一对多分页   java二进制搜索基础。陷入无限循环