爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 13484|回复: 20

MeteoInfoLab脚本示例:计算涡度、散度

[复制链接]

新浪微博达人勋

发表于 2015-7-7 13:28:00 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 MeteoInfo 于 2015-7-7 13:50 编辑

用U/V分量数据计算涡度和散度,计算涡度的函数是hcurl,计算散度的函数是hdivg,参数都是U, V。

脚本程序:
  1. f = addfile('D:/Temp/GrADS/model.ctl')
  2. u = f['U'][0,0,:,:]
  3. v = f['V'][0,0,:,:]
  4. vort = hcurl(u, v)
  5. divg = hdivg(u, v)
  6. axesm()
  7. mlayer = shaperead('D:/Temp/map/country1.shp')
  8. geoshow(mlayer)
  9. layer = contourfm(vort, 20)
  10. #layer = contourfm(divg, 20)
  11. title('Vorticity')
  12. #title('Divergence')
  13. colorbar(layer, orientation='horizontal', aspect=50)



Image00879.png

Image00880.png

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

新浪微博达人勋

发表于 2015-8-6 09:15:06 | 显示全部楼层
版主,你好!我想问一下,你知道meteoinfo求散度的函数处理的是什么数据?我现在在知道他传值的时候是u,v都是二维数据,而里面的一维数组分别代表什么,我就不太清楚,如果版主知道的话.麻烦讲解一下,不胜感激!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-6 09:49:50 | 显示全部楼层
Jason@Hello 发表于 2015-8-6 09:15
版主,你好!我想问一下,你知道meteoinfo求散度的函数处理的是什么数据?我现在在知道他传值的时候是u,v都是二 ...

U/V都是二维数组,没涉及到一维数组呀。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-6 13:06:00 | 显示全部楼层
MeteoInfo 发表于 2015-8-6 09:49
U/V都是二维数组,没涉及到一维数组呀。

我的意思是二维数组里面的一维数组。我猜u/v是插值好之后的格点数据,然而在程序中它是利用二维数组的格式来表示这个网格的是吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-6 14:15:06 | 显示全部楼层
Jason@Hello 发表于 2015-8-6 13:06
我的意思是二维数组里面的一维数组。我猜u/v是插值好之后的格点数据,然而在程序中它是利用二维数组的格 ...

没看明白到底想问什么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-6 15:13:46 | 显示全部楼层
MeteoInfo 发表于 2015-8-6 14:15
没看明白到底想问什么?

版主,请问   PyGridData   怎么转   DimArray?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-6 15:24:49 | 显示全部楼层
棉花猪仔 发表于 2015-8-6 15:13
版主,请问   PyGridData   怎么转   DimArray?

看来你看了MeteoInfoLab封装的Jython脚本。没有做PyGridData转DimArray的功能,事实上通过DimVariable slice获取的数组就是DimArray,似乎没有需要从PyGridData转为DimArray。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-6 15:55:30 | 显示全部楼层
MeteoInfo 发表于 2015-8-6 15:24
看来你看了MeteoInfoLab封装的Jython脚本。没有做PyGridData转DimArray的功能,事实上通过DimVariable sl ...

感谢版主热心解答,
可是还没解决问题,我另开一贴把情况说一下,麻烦版主帮帮忙
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-6 16:24:52 | 显示全部楼层
MeteoInfo 发表于 2015-8-6 14:15
没看明白到底想问什么?

可能是我提问方式不对!但是还是感谢版主热心回答!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-12 16:10:55 | 显示全部楼层
老师您好,我用您的脚本用grib2的数据画了涡度图,但是我想选择200hPa那层的,我的设置如下:

f = addfile('F:/data/study/fnl/fnl_20160622_18_00.grib2')
u = f['u-component_of_wind_pressure_difference_layer'][0,200,:,:]
v = f['v-component_of_wind_pressure_difference_layer'][0,200,:,:]
vort = hcurl(u, v)
axesm()
mlayer = shaperead('F:/MeteoInfo/map/country1.shp')
geoshow(mlayer)
layer = contourfm(vort, 20)
title('Vorticity')
colorbar(layer, orientation='horizontal', aspect=50)

但是运行后报错如下:

Index out of range!
Index out of range!
Traceback (most recent call last):
  File "<iostream>", line 8, in <module>
  File "F:\MeteoInfo\pylib\mipylib\miplot.py", line 3984, in contourfm
    ls = __getlegendscheme(args, gdata.min(), gdata.max(), **kwargs)
AttributeError: 'NoneType' object has no attribute 'min'

还麻烦老师帮我看一下需要怎么修改。谢谢您了!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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