爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1555|回复: 3

利用圆图形maskout数据

[复制链接]

新浪微博达人勋

发表于 2023-3-29 10:29:04 | 显示全部楼层 |阅读模式

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

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

x
对于格点数据,如果希望获取某个站点周边固定距离范围内的数据,可以以站点坐标为中心生成一个圆图形(Circle),然后利用geolib的maskout函数将圆图形外的格点数据maskout为NaN值,圆图形内部的格点数据保持原值,这样利用maskout后的格点数据进行平均就可以得到圆内部数据的平均值了(NaN数据不参与计算)。示例脚本如下:

  1. fn = os.path.join(migl.get_sample_folder(), 'GrADS', 'model.ctl')
  2. f = addfile(fn)
  3. ps = f['PS'][0,'10:60','60:140']

  4. # maskout
  5. circle = Circle([110,40], 10, facecolor=None)
  6. ps = geolib.maskout(ps, [circle])
  7. ps_mean = ps.mean()
  8. print(ps_mean)

  9. # plot test
  10. ax = axesm()
  11. geoshow('country', edgecolor=(0,0,255))
  12. ps[ps==nan] = 0   # for plotting
  13. layer = scatter(ps, cmap='WhBlGrYeRe', edgecolor='gray')
  14. ax.add_patch(circle)
  15. title('Maskout with patches')
  16. yticks([10,30,50])
  17. colorbar(layer, shrink=0.8)


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

新浪微博达人勋

发表于 2023-3-30 09:37:57 | 显示全部楼层
王老师好,类似功能可以用纯java代码实现吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-3-30 10:47:23 | 显示全部楼层
tulalang 发表于 2023-3-30 09:37
王老师好,类似功能可以用纯java代码实现吗

可以,MeteoInfo是开源的,你如果有兴趣可以看相关源代码。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-3-30 15:31:17 | 显示全部楼层
MeteoInfo 发表于 2023-3-30 10:47
可以,MeteoInfo是开源的,你如果有兴趣可以看相关源代码。

好的,谢谢王老师~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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