爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 14427|回复: 19

MeteoInfoLab脚本示例:计算不同区域平均值

[复制链接]

新浪微博达人勋

发表于 2015-7-12 17:04:52 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 MeteoInfo 于 2019-11-30 09:35 编辑

这里用美国做例子,有一个美国区域的格点温度场数据(usgrid.data),需要计算出每个州(state)的平均温度。当然需要有一个包含各州行政区域的shape文件了(相关文件可以在此帖中下载:http://bbs.06climate.com/forum.p ... d=11070&fromuid=106)。首先读取格点数据数组,然后读取states.shp文件生成us图层,对us图层所有的图元(shape,每个图元就是一个州)遍历,对于每个州,利用该州的图元maksout格点数据,然后求平均值、最大值和最小值,并打印出来(当然也可以输出到文件中,具体在网上找python输出文本文件的例子)。后面的绘图语句只是为了看看数据的分布情况。

脚本程序:
  1. #Add a surfer grid data
  2. f = addfile_surfer('D:/Temp/ascii/usgrid.dat')
  3. tdata = f['var'][:,:]
  4. #Read US shape file
  5. us = shaperead('D:/Temp/map/states.shp')
  6. #Average temporature for each state
  7. i = 0
  8. for rpoly in us.shapes():
  9.     name = us.cellvalue('STATE_NAME', i)
  10.     mdata = tdata.maskout(rpoly)
  11.     tave = mdata.ave()
  12.     tmin = mdata.min()
  13.     tmax = mdata.max()
  14.     print name + ', Ave: %.2f, Min: %.2f, Max: %.2f' %(tave, tmin, tmax)
  15.     i += 1

  16. #Plot
  17. axesm()
  18. geoshow('country')
  19. geoshow(us, edgecolor=[0,0,255])
  20. layer = contourfm(tdata,20)
  21. title('Temporature distribution map')
  22. colorbar(layer)


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

新浪微博达人勋

发表于 2015-7-12 20:10:29 | 显示全部楼层
真是及时雨啊,前两天刚看到有人提问呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-7-14 17:27:23 | 显示全部楼层
顶~~~~~~~~~~~~~~~~~~~~~~~~~~~~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2016-2-17 11:52:21 | 显示全部楼层
本帖最后由 zyfws 于 2016-2-17 11:54 编辑

从grads读取的数据场怎么做指定时次内的平均,比如一个72小时内的逐小时数据场,需要做24小时内的平均该怎么弄,我怎么都提示维数不对或没有ave这个方法,比如:
getV=f['ps']
ave=getV[0:23,:,:].ave()这样就不行,请问王老师该怎么弄?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-2-17 13:17:29 | 显示全部楼层
zyfws 发表于 2016-2-17 11:52
从grads读取的数据场怎么做指定时次内的平均,比如一个72小时内的逐小时数据场,需要做24小时内的平均该怎 ...

参考此贴:MeteoInfoLab脚本示例:沿特定维平均
http://bbs.06climate.com/forum.p ... 039&fromuid=106
(出处: 气象家园)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-2-23 16:25:09 | 显示全部楼层
太牛掰了  正好需要
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-2-24 08:26:53 | 显示全部楼层
大赞 学习了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-1-3 11:49:42 | 显示全部楼层

真是及时雨,大赞 学习了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-1-6 21:40:23 | 显示全部楼层
顶  学习学习
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-6 16:45:43 | 显示全部楼层
王老师,这个示例是针对格点数据的,有没有针对站点数据的统计方法,比如把全国地面气象站的降雨量进行分省的统计,得到逐小时的各省降雨量合计?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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