爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8548|回复: 17

脚本如何求平均场?

[复制链接]

新浪微博达人勋

发表于 2012-10-22 09:29:10 | 显示全部楼层 |阅读模式

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

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

x
对grads数据求平均场,如下程序:
        for item in sample:
                             #指定所需的grads文件
                strTime=time.strptime(item+'-20','%Y-%m-%d-%H')
                ecdata.DSET=ecdata.DSET[0:-6]+str(strTime[0])[2:]+'.grd'
                datagrid=ecdata.GetGridData_LonLat(strTime[7],0,5)
                ………………不懂下一步该用哪个方法了,尝试用
avgdata=GridData()
avgdata=datagrid+avgdata,提示未将对象引用设置到对象实例
请老师指点
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-22 11:50:45 | 显示全部楼层
专门发了一个帖子来讲解这个问题:MeteoInfo脚本示例:格点数据平均
http://bbs.06climate.com/forum.p ... 604&fromuid=106
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-22 22:50:39 | 显示全部楼层

谢老师,很有用,再请教一下,怎么对平均场设定等值线的间隔呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-22 23:10:56 | 显示全部楼层
vortexroc 发表于 2012-10-22 22:50
谢老师,很有用,再请教一下,怎么对平均场设定等值线的间隔呢?

可以参考此博客:http://hi.baidu.com/meteoinfo/item/03e0eb48fa296d016cc2f0e7
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-23 09:57:43 | 显示全部楼层
本帖最后由 vortexroc 于 2012-10-23 10:29 编辑

这个有点麻烦啊,要设定数组和颜色。。。
能不能取消颜色设定(类似SingleSymbol的图),直接指定间隔呢,就像grads里面的cint的功能那样?

另外再问一下,如何保存图形,MiApp类有SaveFigure方法,mipy对应的方法是什么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-23 17:01:55 | 显示全部楼层
vortexroc 发表于 2012-10-23 09:57
这个有点麻烦啊,要设定数组和颜色。。。
能不能取消颜色设定(类似SingleSymbol的图),直接指 ...

1、可以用LegendManage的CreateRainBowColors(int cNum)生成彩虹色数组。

2、用MapView或MapLayout的ExportToPicture(string aFile)方法,比如:
aFile = "D:\\test.png"
mipy.MapDocument.MapLayout.ExportToPicture(aFile)
mipy.MapDocument.ActiveMapFrame.MapView.ExportToPicture(aFile)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-29 09:41:06 | 显示全部楼层
MeteoInfo 发表于 2012-10-23 17:01
1、可以用LegendManage的CreateRainBowColors(int cNum)生成彩虹色数组。

2、用MapView或MapLayout的E ...

我用CreateRainBowColors提示错误,如下代码:

sample=mDataset.Display(datagrid) #获得格点场                       
vals=LegendManage.CreateContourValuesInterval(0,1000,4)     #这个方法的前两个参数是否是格点场的极值?
colors=LegendManage.CreateRainBowColors[1]    #这个参数该怎么赋值,脚本提示这句的错误是“TypeError: 'builtin_function_or_method' object is unsubscriptable”

aLS = LegendManage.CreateGraduatedLegendScheme(vals,colors,ShapeTypes.Polygon,0,1000,False,-9999.0)
sample.LegendScheme = aLS

请老师指教
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-29 10:20:34 | 显示全部楼层
vortexroc 发表于 2012-10-29 09:41
我用CreateRainBowColors提示错误,如下代码:

sample=mDataset.Display(datagrid) #获得格点场                       

CreateContourValuesInterval方法的前两个参数并非格点场的极值,而是你要设置的等值线的最小、最大值。

CreateRainBowColors方法的参数是生成的颜色的数目,要注意如果是等值线填色,颜色数要比上面方法生成的等值线值数组的数目多一个。比如:colors = LegendManage.CreateRainBowColors(vals.Length + 1)。这是个方法,当然不能用方括号。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-29 10:47:57 | 显示全部楼层
MeteoInfo 发表于 2012-10-29 10:20
CreateContourValuesInterval方法的前两个参数并非格点场的极值,而是你要设置的等值线的最小、最大值。
...

没注意括号,真是低级失误。。。不过程序还是不能运行,代码修改如下:
   sample=mDataset.Display(datagrid)
   vals=LegendManage.CreateContourValuesInterval(100,1000,4)
   colors=LegendManage.CreateRainBowColors(vals.Length + 1)
   aLS = LegendManage.CreateGraduatedLegendScheme(vals,colors,ShapeTypes.Polygon,0,1000,False,-9999.0)
   sample.LegendScheme = aLS
   mipy.MapDocument.ActiveMapFrame.UpdateLayerNode(sample)

程序直接退出,如下图:
error2.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-29 11:05:23 | 显示全部楼层
vortexroc 发表于 2012-10-29 10:47
没注意括号,真是低级失误。。。不过程序还是不能运行,代码修改如下:
   sample=mDataset.Display(dat ...

需要注意几点:
1、先设置LegendScheme,然后再Display。因为Display方法要追踪等值线,只有先设置了LegendScheme才能根据设置的等值线值来追踪。

2、要将设置的LegendScheme赋给mipy.MeteoDataset(也就是你的程序里的mDataset),然后将其UseDefaultLegendScheme设为True。可以参考此贴:MeteoInfo脚本示例:站点数据分析
http://bbs.06climate.com/forum.p ... 731&fromuid=106
比如:
mDataset.LegendScheme = aLS
mDataset.UseDefaultLegendScheme = True

3、VectorLayer图层要根据LegendScheme来显示,显示时要根据LegendScheme的FieldName来获取各图元的数据,那个错误提示是因为FieldName不匹配引起的。用Display(GridData gData)生成图层时会将数据字段自动设为"Data",因此需要将自定义的LegendSheme的FieldName设为"Data",比如:aLS.FieldName = "Data"
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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