wod数据格式的解析器,如http://data.nodc.noaa.gov/woa/wod/doc/wodreadme.pdf所述
wodp的Python项目详细描述
发布历史:
<表><广告>数据解包
世界海洋数据库数据按照此处所述的规范进行编码。这个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
属性通常不会传播到在原始dataframe
s上操作返回的新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。有关详细信息,请参阅科特德手册。