爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 27214|回复: 11

[经验总结] 基于Siphon和MetPy获取探空数据并绘图

[复制链接]

新浪微博达人勋

发表于 2019-3-31 22:23:29 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 hzwjy 于 2019-3-31 22:28 编辑


Siphon(链接:https://unidata.github.io/siphon/latest/index.html
Siphon 可用于获取THREDDS数据服务提供的多种观测数据,也可以获取怀俄明大学的探空数据(http://weather.uwyo.edu/upperair/seasia.html)和IGRA2探空数据集。返回的结果为pandas的DataFrame类型,变量选取和处理都比较方便。
可用 conda 安装:
  1. conda install -c conda-forge siphon
复制代码

MetPy (链接:https://unidata.github.io/MetPy/latest/index.html
MetPy 可以用于气象数据的读取、变量计算和数据可视化,在站点图和2维图像绘制上都有独特的优势。
conda 安装命令:
  1. conda install -c conda-forge metpy
复制代码


获取探空数据和绘制探空图的py脚本:
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. import metpy.calc as mpcalc
  4. from metpy.plots import SkewT
  5. from metpy.units import units
  6. from datetime import datetime
  7. from siphon.simplewebservice.wyoming import WyomingUpperAir

  8. date = datetime(2017, 8, 15, 0)
  9. site = '56187'
  10. df = WyomingUpperAir.request_data(date, site)

  11. p = df['pressure'].values * units(df.units['pressure'])
  12. T = df['temperature'].values * units(df.units['temperature'])
  13. Td = df['dewpoint'].values * units(df.units['dewpoint'])
  14. u = df['u_wind'].values * units(df.units['u_wind'])
  15. v = df['v_wind'].values * units(df.units['v_wind'])

  16. # 避免风向标过于密集
  17. interval = np.logspace(2, 3, num=25) * units('hPa')
  18. idx = mpcalc.resample_nn_1d(p, interval)

  19. fig = plt.figure(figsize=(9, 9))

  20. skew = SkewT(fig, rotation=30)

  21. skew.ax.set_ylim(1000, 100)
  22. skew.ax.set_xlim(-40, 40)

  23. skew.plot(p, T, 'r')
  24. skew.plot(p, Td, 'g')
  25. skew.plot_barbs(p[idx], u[idx], v[idx])

  26. skew.plot_dry_adiabats()
  27. skew.plot_moist_adiabats()
  28. skew.plot_mixing_lines()
复制代码

得到的结果

探空绘图

探空绘图


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

新浪微博达人勋

发表于 2019-4-16 17:47:10 | 显示全部楼层
提示如下错误:
Warning (from warnings module):
  File "D:\Python37\lib\site-packages\pint\quantity.py", line 1377
    warnings.warn("The unit of the quantity is stripped.", UnitStrippedWarning)
UnitStrippedWarning: The unit of the quantity is stripped.
pint安装好了啊。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-4-28 23:07:41 | 显示全部楼层
qxjzkx@163.com 发表于 2019-4-16 17:47
提示如下错误:
Warning (from warnings module):
  File "D:\Python37\lib\site-packages\pint\quantity ...

不是报错,只是警告! 解决办法:https://github.com/dopplershift/ ... aed093126b975d84830
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-4-29 08:30:32 | 显示全部楼层
速度单位跟国标不一致哦  要更正下哈
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-6-24 22:50:37 | 显示全部楼层
速度单位跟国标不一致哦  要更正下哈
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-9-27 15:52:19 | 显示全部楼层
请问为什么读出来没有相对湿度呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-4-3 22:28:04 | 显示全部楼层
No module named 'siphon'
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-25 17:09:36 | 显示全部楼层
plt.show()
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-11-30 15:28:04 | 显示全部楼层
好好好!现在网站直接点不出来了,用这个方法还可以下!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-1-27 21:46:40 | 显示全部楼层
安装siphon依赖protobuf库,好像很复杂还没搞明白怎么安装protobuf库
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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