请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9041|回复: 16

MeteoInfoLab脚本示例:站点数据散点图

[复制链接]

新浪微博达人勋

发表于 2015-6-26 13:57:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 MeteoInfo 于 2022-11-25 21:22 编辑

这里演示从micaps第一类数据(地面全要素观测)中读取一个变量(用DimDataFile类的stationdata方法),然后maskout掉中国区域之外的数据,利用scatterm函数绘制散点图。
Image00858.png

脚本程序:
  1. fn = os.path.join(migl.get_sample_folder(), 'MICAPS', '10101414.000')
  2. f = addfile(fn)
  3. data = f['Visibility'][:]
  4. lon = f['Longitude'][:]
  5. lat = f['Latitude'][:]
  6. lchina = shaperead('china')
  7. data, lon, lat = rmaskout(data, lon, lat, lchina.shapes())
  8. t = f.gettime(0)

  9. #Plot
  10. geoshow('cn_province', edgecolor='gray')
  11. geoshow('country')
  12. levs = arange(3, 31, 3)
  13. layer = scatter(lon, lat, data, levs, cmap='matlab_jet_r')
  14. colorbar(layer)
  15. yticks([20,30,40,50])
  16. title('Visibility (' + t.strftime('%Y-%m-%d %H:00') + ')')
  17. xlim(72, 136)
  18. ylim(16, 55)

  19. #Add south China Sea
  20. axesm(position=[0.105,0.12,0.18,0.24], bgcolor='w', axison=False)
  21. geoshow('cn_border', facecolor=(0,0,255))
  22. xlim(106, 123)
  23. ylim(2, 23)

  24. #savefig('D:/Temp/figure/micaps1_points.png', 600, 350, dpi=300)

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

新浪微博达人勋

发表于 2015-6-26 14:25:22 | 显示全部楼层
真给力,赞一个
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-27 19:46:41 | 显示全部楼层
谢谢楼主共享.
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-28 00:06:26 | 显示全部楼层
和王老师一起进步!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-14 16:30:58 | 显示全部楼层
王老师,如果我想把这个图画成填色的该怎么画呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-12-14 17:25:58 | 显示全部楼层
半颗麦芽糖 发表于 2016-12-14 16:30
王老师,如果我想把这个图画成填色的该怎么画呢?

参考此贴:MeteoInfoLab脚本示例:站点数据绘制等值线
http://bbs.06climate.com/forum.p ... 422&fromuid=106
(出处: 气象家园)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-14 19:28:56 | 显示全部楼层
本帖最后由 半颗麦芽糖 于 2016-12-14 19:30 编辑

王老师,我参照您的帖子,改了脚本成功出图,但是当我改色标的颜色和大小的时候就报错了,不知道为什么,附脚本和图:

  1. <P>#用这个脚本可以出图</P>
  2. <P>f = addfile_micaps('E:/test/14102708.000')
  3. pr = f.stationdata('Var1')
  4. #griddata function - interpolate
  5. x = arange(70, 120, 0.5)
  6. y = arange(20, 50, 0.5)
  7. prg = pr.griddata((x, y), method='idw', radius=3)
  8. #Plot
  9. axesm()
  10. lchina = shaperead('E:/MeteoInfo/map/bou2_4p.shp')
  11. ltibet = shaperead('E:/MeteoInfo/map/DBATP/tibet_ASCII.wmp')
  12. geoshow(lchina, edgecolor='k')
  13. geoshow(ltibet, edgecolor='r',size=2)
  14. levs = [0.1, 1, 2, 5, 10, 20, 25, 50, 100]
  15. cols = [(255,255,255),(170,240,255),(120,230,240),(200,220,50),(240,220,20),(255,120,10),(255,90,10), \
  16.     (240,40,0),(180,10,0),(120,10,0)]
  17. layer = contourfm(prg, levs, colors=cols)
  18. masklayer(lchina, [layer])
  19. colorbar(layer)
  20. xlim(70, 120)
  21. ylim(20, 50)</P>
复制代码

QQ图片20161214192833.png
当时当我把
levs = [0.1, 1, 2, 5, 10, 20, 25, 50, 100]
cols = [(255,255,255),(170,240,255),(120,230,240),(200,220,50),(240,220,20),(255,120,10),(255,90,10), \
    (240,40,0),(180,10,0),(120,10,0)]
改成这两句
levs = [0,10,20,30,40,50,60,70]
cols = makecolors(len(levs)+1)

或者任意修改levs的时候,报错,请王老师指导,谢谢,最后贴上数据
14102708.000 (2.89 KB, 下载次数: 4)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-12-14 22:16:04 | 显示全部楼层
半颗麦芽糖 发表于 2016-12-14 19:28
王老师,我参照您的帖子,改了脚本成功出图,但是当我改色标的颜色和大小的时候就报错了,不知道为什么,附 ...

是程序里的bug,会尽快修正。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-14 22:36:38 | 显示全部楼层
MeteoInfo 发表于 2016-12-14 22:16
是程序里的bug,会尽快修正。

恩恩,等待王老师修复。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-12-15 11:32:49 | 显示全部楼层
半颗麦芽糖 发表于 2016-12-14 22:36
恩恩,等待王老师修复。

发布了新版本,你下载试试吧
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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