Metpy 是应用于气象领域的开源Python包,可以进行气象数据的处理,可视化以及气象要素的计算等。
在气象数据处理方面,可以读取并处理很多格式的数据,比如:WSR-88D,NEXRAD及GINI卫星数据,而且提供了接口可以直接获取 uwyo 提供的探空数据。
在可视化方面,其提供了绘制 Skewt 和 站点图的函数,可以非常方便的创建图形。绘制 Skewt 时提供了不少高级绘制方法,可以很方便的添加 hodograph 等信息;绘制 站点图 时也可以设置常用的气象符号。
当然,也支持很多气象要素的计算,而且为了保证计算的正确性,其提供了单位接口。关于这部分内容留待大家去探索,而且由于此包仍在不断的优化,如果你感兴趣的话,完全可以参与其中。
安装
Metpy 支持 python2.7 和 python >= 3.4 版本,安装前需要安装依赖包:
对于 3.4 以前的 python 版本,需要安装 enum34 包。
PyProj 是可选的依赖包,只有当需要使用 CDM 接口时才会使用此包。
以上依赖均可使用 pip 命令进行安装。
安装好依赖包之后:
pip install metpy
如果你使用的 conda 包管理器,你也可以使用 conda 进行安装:
conda install -c conda-forge metpy
Skewt
利用 uwyo 探空数据绘制 Skewt,并添加探空网站获取的相关信息:
风杆的单位为 knot,即和 uwyo 网站的探空数据单位一致。
上例中使用了 get_parm_from_uwyo 函数获取相应的探空信息(函数见注3链接。此函数并未考虑异常处理,如果要直接加入 metpy 包中,需要进一步修改)。脚本中使用 get_upper_air_data 获取探空数据时,仅获取到以下变量,其中并未包含高度信息,想要获取更多信息可更改源代码:
下图是官方文档中示例skewt图,其中添加了一些额外信息(绘图脚本见官方文档)
以下是站点图出图效果
还可以将不规则格点数据插值到规则网格中
同时提供了读取雷达和卫星数据的接口(当然都是美国常用的雷达和卫星数据)
关于 Metpy 的更多功能,可查阅官方文档。
注1:
http://www.unidata.ucar.edu/blogs/news/entry/metpy_an_open_source_python
注2:https://unidata.github.io/MetPy/index.html
注3:https://pan.baidu.com/s/1i59OCZj