爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6499|回复: 9

MeteoInfoLab脚本示例:micaps数据绘制垂直剖面图

[复制链接]

新浪微博达人勋

发表于 2015-11-19 15:14:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 MeteoInfo 于 2018-4-14 22:55 编辑

micaps第4类数据是格点数据,每个文件只有一个变量一个时次一个高度。这里示例读取不同高度的micaps数据绘制垂直剖面图。

脚本程序:
  1. levels = ['1000','925','850','700','500']
  2. levs = []
  3. for i in range(0, len(levels)):
  4.     levs.append(i)
  5. datadir = 'D:/Temp/test/micaps'
  6. i = 0
  7. data1 = []
  8. for lev in levels:
  9.     indir = os.path.join(datadir, lev)
  10.     fn = os.path.join(indir, '15100808.000')
  11.     f = addfile_micaps(fn)
  12.     var = f['var']
  13.     data = var[0,0,[40],:]
  14.     if i == 0:
  15.         lon = data.dimvalue(0)
  16.     data1.append(data.aslist())
  17.     i += 1

  18. #Plot
  19. levs = array(levs)
  20. data1 = array(data1)
  21. layer = contourf(lon, levs, data1,20)
  22. yticks(levs, levels)
  23. xlabel('Degree east')
  24. ylabel('Pressure (hPa)')
  25. colorbar(layer)
  26. title('Vertical speed')


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

新浪微博达人勋

发表于 2016-9-2 19:27:28 | 显示全部楼层
Traceback (most recent call last):
  File "<iostream>", line 9, in <module>
NameError: name 'os' is not defined
原样复制,请问显示的这个是什么意思啊?
我是该软件的初学者,麻烦您不吝指教一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-9-2 19:34:10 | 显示全部楼层
raceback (most recent call last):
  File "<iostream>", line 15, in <module>
AttributeError: 'NoneType' object has no attribute 'dimvalue'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-9-2 19:45:10 | 显示全部楼层
╯①路霺笑 发表于 2016-9-2 19:34
raceback (most recent call last):
  File "", line 15, in
AttributeError: 'NoneType' object has no ...

要有相应的数据文件才可以i
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-9-3 11:02:04 来自手机 | 显示全部楼层
如何做时间高度的剖面图呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-11-4 21:43:18 | 显示全部楼层
本帖最后由 半颗麦芽糖 于 2016-11-4 21:54 编辑

王老师,最近看到您的这个脚本,想试着画一画,也找了相关的数据,但是按照您的这个脚本一直提示错误,貌似是维度的问题,想试着自己解决问题,但是刚接触这门语言有些语句还是不懂,比如data = var[[40],:],我不明白后面的40以及中括号里面内容的意思,所以想请王老师指导一下,附上报错和文件,万分感谢!
indices must be 4 dimensions!
Traceback (most recent call last):
  File "<iostream>", line 15, in <module>
AttributeError: 'NoneType' object has no attribute 'dimvalue'
test.rar (8.39 KB, 下载次数: 14)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-11-4 22:07:53 | 显示全部楼层
半颗麦芽糖 发表于 2016-11-4 21:43
王老师,最近看到您的这个脚本,想试着画一画,也找了相关的数据,但是按照您的这个脚本一直提示错误,貌似 ...

参考这里:http://www.meteothinker.com/docs ... /data_tutorial.html
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-11-5 10:43:00 | 显示全部楼层
MeteoInfo 发表于 2016-11-4 22:07
参考这里:http://www.meteothinker.com/docs/meteoinfolab/userguide/data_tutorial.html

王老师,根据您提供的参考网站我看懂了这个脚本并针对我的数据进行了修改,成功地出了图,非常感谢!我还有一个问题就是横坐标的纬度能否进行设定,比如设置成30N—40N,因为这个脚本中纬度是作为数据提取出来的,所以不知道该在哪里添加设置语言,前后试了lat = [30,40]都出了错,请王老师指导,谢谢!附上脚本和图片
  1. levels = ['1000','925','850','700','500']
  2. levs = []
  3. for i in range(0, len(levels)):
  4. levs.append(i)
  5. datadir = 'F:/micaps/test'
  6. i = 0
  7. data1 = []
  8. for lev in levels:
  9. indir = os.path.join(datadir, lev)
  10. fn = os.path.join(indir, '16102108.000')
  11. f = addfile_micaps(fn)
  12. var = f['var']
  13. data = var[0,0,:,[90]]
  14. if i == 0:
  15. lat = data.dimvalue(0)
  16. data1.append(data.aslist())
  17. i += 1

  18. #Plot
  19. levs = array(levs)
  20. data1 = array(data1)
  21. layer = contour(lat, levs, data1,30)
  22. yticks(levs, levels)
  23. xlabel('Lat')
  24. ylabel('Pressure (hPa)')
  25. colorbar(layer)
  26. title('Vertical vort')
复制代码
111.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-11-5 19:14:00 | 显示全部楼层
半颗麦芽糖 发表于 2016-11-5 10:43
王老师,根据您提供的参考网站我看懂了这个脚本并针对我的数据进行了修改,成功地出了图,非常感谢!我还 ...

用xlim函数。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-11-5 20:12:49 | 显示全部楼层

谢谢王老师的回复,终于把图画出来了,获益匪浅,以后学习meteoinfo的过程中恳请老师多多指教
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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