爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8614|回复: 10

U/V格点数据计算涡度、散度

[复制链接]

新浪微博达人勋

发表于 2011-7-20 16:04:56 | 显示全部楼层 |阅读模式

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

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

x
MeteoInfo中的GridData类有很强的运算能力,这样就可以对格点数据进行计算分析。这个例子是用U/V格点数据计算风速、涡度、散度的程序。

#---- Import class libraries
import clr
clr.AddReferenceByPartialName("System.Windows.Forms")
clr.AddReferenceByPartialName("System.Drawing")
from System.Windows.Forms import *
from System.Drawing import *
clr.AddReference("MeteoInfoC.dll")
from MeteoInfoC import *
from MeteoInfoC.Data import *

#---- Define variables
BaseDir = "C:\\Program Files (x86)\\MeteoInfo\\"
MapDir = BaseDir + "Map\\"
DataDir = BaseDir + "Sample\\"

#---- Create MIApp object
myApp = MIApp()
#---- Open layers
myApp.OpenLayer(MapDir + "country1.shp")
myApp.SetLegendBreak("country1.shp",0,Color.Yellow,Color.Gray,1,True,False,True)
#---- Open data
myApp.OpenGrADSData(DataDir + "GrADS\\model.ctl")
myApp.SetDrawType("shaded")
#---- Get grid data
U = myApp.GetGridData("U")
V = myApp.GetGridData("V")
#---- Data calculation
#Speed = DataMath.Magnitude(U,V)
#Speed = DataMath.Sqrt(U * U + V * V)
#vort = DataMath.Hcurl(U,V)
digv = DataMath.Hdivg(U,V)
myApp.Display(digv)
#myApp.SetDrawType("vector")
#myApp.Display("U","V")
myApp.MoveLayerToTop("country1.shp")
myApp.ZoomLonLatEx(0,360,-90.1,90.1)
myApp.SetTitle("MeteoInfo script demo - Grid data calculation")
myApp.MapLayout.PaintGraphics()
#myApp.SaveFigure(".\\try.png")
Application.Run(myApp)


Image00265.png
Image00270.png

GrADS用同样的数据做出来的涡度、散度图:
Image00266.png
Image00268.png

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

新浪微博达人勋

发表于 2011-7-21 11:53:42 | 显示全部楼层
meteinfo还是用不习惯,毕竟没有普及,学校还都是用的GRADS
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-7-20 16:08:26 | 显示全部楼层
我是专门来坐沙发的,MeteoInfo必将吸引更多用户!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-7-20 16:47:28 | 显示全部楼层
前几天自己摸索MeteoInfo的时候,还想着问楼主这样的问题呢,马上就去试验一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-7-21 12:26:58 | 显示全部楼层

生活需要丰富多彩,就像咖啡有多种口味。MeteoInfo并非要取代GrADS,它是为了让这个领域更多彩而生的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-7-22 07:05:06 | 显示全部楼层
好好学习中。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-2-2 21:06:13 | 显示全部楼层
sawnan 发表于 2012-2-2 16:31
请问版主,请问一下涡度散度是用哪个公式算出来的? 我自己也用原始数据算涡度散度,但是算出来量级与grads ...

MeteoInfo中计算涡度和散度的方法是和GrADS一样的,当初参考了GrADS的代码。GrADS是开源软件,你可以去看看它的相关代码,关键是先弄明白cdiff函数。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-2-3 11:32:44 | 显示全部楼层
好的,谢谢。已经找到linux下的grads源码,正在查看中
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-2-2 16:31:13 | 显示全部楼层
请问版主,请问一下涡度散度是用哪个公式算出来的? 我自己也用原始数据算涡度散度,但是算出来量级与grads相差不多,等值线的分布相差挺大的。很郁闷。 能提供一下公式或者相关的计算代码么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-7-3 19:27:44 | 显示全部楼层
非常不错~~~~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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