爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 19087|回复: 16

[经验总结] python气象数据可视化之粗浅认识

[复制链接]

新浪微博达人勋

发表于 2020-7-20 09:27:41 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 Eegle 于 2020-7-21 09:05 编辑

相信大家很多人学习python很大一部分原因是为了气象数据的可视化。
最近帮同事绘制了用于天气过程总结的常用天气图,现将一些粗浅的认识与大家分享一下。
总体思路框架:读入数据+处理数据(包括计算)+绘图、美化+存图。几个重点罗列如下:
第一:核心出图工具是cartopy和matplotlib。原理很简单,例如常规的等值线图就是:
ax.contouf(X,Y,Z),X,Y就是对应我们的经纬度,Z就是你要画的值,例如水汽通量散度、假相当位温。
第二:为了求得Z,那就需要通过计算得到Z的值,那么,固然你就需要用到metpy,如果需要插值,那么还需要用到scipy.
metpy提供了很多很好的物理量计算模块,例如:用于计算假相当位温用的是:
mpcalc.equivalent_potential_temperature(pressure, TMP,Td),分别输入气压,温度和露点温度,就能求得假相当位温。

第三:grib2与nc数据之间的转换,这点,我之前应该有写过了。windows下比较简单的就是利用wgrib2工具了
当然,还可以用cfgrib,但之前得安装eccords,这个有点不好装。
第四:图形美化,包括色标选用,这里可以自己定义,也可以使用NCL中的配色,安装cmaps后可使用。
写这个的目的是因为自己从家园论坛中获得了很多知识,对论坛还是很有感情的。希望能帮助到大家。
目前,我对利用逐个时次的fnl资料绘制单站时间剖面还不懂怎么操作,也想各位大佬们请教,望能给予赐教,不胜感激!
最后附上几张近日出图作品。其中假相当位温有经过平滑处理,出图看起来自然一些,不然折角太多。
有需要数据的或者代码部分需要讨论的,欢迎留言吧。因为上传图片大小限制,仅用截图。
2.PNG
3.PNG
1.PNG

绘制空间剖面图.html

715.34 KB, 下载次数: 26, 下载积分: 金钱 -5

假相当位温(插值).html

607.76 KB, 下载次数: 21, 下载积分: 金钱 -5

评分

参与人数 1金钱 +5 贡献 +1 收起 理由
urnotcotton + 5 + 1 赞一个!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-7-20 11:39:25 | 显示全部楼层
本帖最后由 Masterpiece 于 2020-7-20 11:46 编辑

单站时间剖面的话就和经纬度一样弄就好了啊,只不过是X轴换成时间轴而已。
matplotlib的X和Y轴都是可以直接接受python中各种时间格式的。连续的时间序列,千万不要傻傻的range(0,24,1),然后再ax.set_xticklabels(['2020-01'....]),别用这种笨蛋操作就行
pre110120topo.png



密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2020-7-20 10:27:14 | 显示全部楼层
谢谢分享,附上源代码就更好了哈
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-20 10:46:47 | 显示全部楼层
谢谢分享,附上源代码就更好了哈!!!!!!!!!!!!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-20 11:17:02 | 显示全部楼层
非常好,能否把源码发过来qq:78072557
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-20 15:51:30 | 显示全部楼层
庄首席分享点代码
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-7-21 08:46:06 | 显示全部楼层
Masterpiece 发表于 2020-7-20 11:39
单站时间剖面的话就和经纬度一样弄就好了啊,只不过是X轴换成时间轴而已。
matplotlib的X和Y轴都是可以直 ...

单站的话时间剖面的话,有个疑问就是我不懂如何将几个时次的再分析资料进行合并,还是可以单独读取出来?或者是用CDO进行处理。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-21 09:52:00 | 显示全部楼层
Eegle 发表于 2020-7-21 08:46
单站的话时间剖面的话,有个疑问就是我不懂如何将几个时次的再分析资料进行合并,还是可以单独读取出来? ...

我觉得可以尝试设计一个循环逐个读文件,然后stack。xarray比较推荐,ndarray的话麻烦一些。
如果能用CDO直接拼接那更好了。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-21 10:42:37 | 显示全部楼层
人生苦短,我要学python!马住!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-21 14:38:56 | 显示全部楼层
Masterpiece 发表于 2020-7-20 11:39
单站时间剖面的话就和经纬度一样弄就好了啊,只不过是X轴换成时间轴而已。
matplotlib的X和Y轴都是可以直 ...

但是当你要进行后续标记的话,就算直接接受时间格式,也会发现X轴实际上就是range(0,24,1)吧。直接给出时间只是看起来更简单一些而已。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表