爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4983|回复: 3

MeteoInfoLab脚本示例:追踪台风路径

[复制链接]

新浪微博达人勋

发表于 2017-9-11 12:37:01 | 显示全部楼层 |阅读模式

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

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

x
利用海平面最低气压可以追踪台风路径(http://bbs.06climate.com/forum.p ... p;extra=&page=1)。从数据中读出海平面气压数组后可以用argmin函数获取最小值所在的网格的序号,然后用unravel_index函数获得最小值在数据各维中的序号,获取最小气压所在位置的经纬度,绘制台风路径图。

  1. fn = 'D:/Temp/GrADS/928slp.ctl'
  2. f = addfile(fn)
  3. slp = f['slvl']
  4. lat = slp.dimvalue(1)
  5. lon = slp.dimvalue(2)
  6. tt = f.gettimes()
  7. tlat = []
  8. tlon = []
  9. press = []
  10. for t in range(f.timenum()-1):
  11.     data = slp[t,:,:]
  12.     idx = data.argmin()
  13.     idx = unravel_index(idx, data.shape)
  14.     tlat.append(lat[idx[0]])
  15.     tlon.append(lon[idx[1]])
  16.     press.append(data[idx[0],idx[1]])

  17. #Plot
  18. axesm(bgcolor=(204,255,255))
  19. geoshow('country', edgecolor=[200,200,200], facecolor=(255,251,195))
  20. plotm(tlon, tlat)
  21. layer = scatterm(tlon, tlat, press)
  22. colorbar(layer)
  23. for t in range(0, f.timenum()-1, 4):
  24.     text(tlon[t]+0.1, tlat[t], tt[t].strftime('%d:%H'))
  25. xlim(105, 120)
  26. ylim(15, 25)
  27. title('Typoon path tracing')


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

新浪微博达人勋

发表于 2017-12-28 14:28:56 | 显示全部楼层
领教领教啦~最近在学习meteolab,准备把王老师的文章都看了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-12-30 10:05:30 | 显示全部楼层
王老师,我现在的数据是dat格式的呀,按照您的程序写了,提示错误fn = 'D:/928slp.dat'
f = addfile (fn)
slp = f['slvl']
lat = slp.dimvalue(1)
lon = slp.dimvalue(2)
tt = f.gettimes()
tlat = []
tlon = []
press = []
for t in range(f.timenum()-1):
      data =slp[t,:,:]
      idx = data.argmin()
      idx = unraval_index(idx, data.shape)
      tlat.append(lat[idx[0]])
      tlon.append(lon[idx[1]])
      press.append(data[idx[0],idx[1]])

#plot   
      axesm(bgcolor = (204, 255, 255))
      geoshow('countey', edgecolor=[250, 250, 250], facecolor=(255, 251, 195))
      plotm(tlon, tlat)
      layer = scatterm(tlon, tlat, press)
      colorbar(layer)
      for t in range(0, f.timenum()-1, 4):
       text(tlon[t]+0.1, tlat[t], tt[t].strftime('%d:%H'))
      xlim(105, 120)
      ylim(15, 25)
      title('Tyhpoon path tracing')

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

新浪微博达人勋

发表于 2018-12-30 10:20:50 | 显示全部楼层
Traceback (most recent call last):
  File "<iostream>", line 2, in <module>
  File "D:\MeteoInfo\pylib\mipylib\dataset\midata.py", line 112, in addfile
    meteodata.openData(fname, keepopen)
        at java.lang.NumberFormatException.forInputString(Unknown Source)

        at java.lang.Integer.parseInt(Unknown Source)

        at java.lang.Short.parseShort(Unknown Source)

        at java.lang.Short.parseShort(Unknown Source)

        at org.meteoinfo.data.meteodata.arl.ARLDataInfo.readDataLabel(ARLDataInfo.java:582)

        at org.meteoinfo.data.meteodata.arl.ARLDataInfo.canOpen(ARLDataInfo.java:215)

        at org.meteoinfo.data.meteodata.MeteoDataInfo.openData(MeteoDataInfo.java:462)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

        at java.lang.reflect.Method.invoke(Unknown Source)

java.lang.NumberFormatException: java.lang.NumberFormatException: For input string: "<"
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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