爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 19587|回复: 42

MeteoInfoLab脚本示例:GRIB转MICAPS4

[复制链接]

新浪微博达人勋

发表于 2016-5-23 11:47:01 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 MeteoInfo 于 2017-8-25 12:07 编辑

GRIB数据转为MICAP4格式数据的例子:
  1. fn = 'D:/Temp/grib/fnl_20110416_00_00'
  2. f = addfile(fn)
  3. v = f['Temperature_isobaric']
  4. zn = v.dimlen(1)
  5. data = v[0,zn-1,:,:]    #First level from ground
  6. data = data - 273.16
  7. #Save as MICAPS4 data file
  8. outfn = 'D:/Temp/grib/grib2m4.000'
  9. t = f.gettime(0)
  10. data.savegrid(outfn, format='micaps4', description='Temperature', \
  11.     date=t, hours=0, level=0, smooth=1, boldvalue=0)


批量转换:
  1. fn = 'D:/Temp/grib/Z_NAFP_C_BABJ_2016041800_P_gmf-639-2016041800003.grib1'
  2. outdir = 'E:/Temp/test'
  3. f = addfile(fn)
  4. t = f.gettime(0)
  5. vnames = ['Pressure_surface', 'Temperature_isobaric']
  6. for vname in vnames:
  7.     v = f[vname]
  8.     print vname
  9.     if v.ndim == 3:
  10.         data = v[0,:,:]
  11.         #Save as MICAPS4 data file
  12.         outfn = os.path.join(outdir, 'm4_' + vname + '_surface' + '.000')        
  13.         data.savegrid(outfn, format='micaps4', description=vname + '_1000', \
  14.             date=t, hours=0, level=0, smooth=1, boldvalue=0)
  15.     elif v.ndim == 4:
  16.         #Get levels
  17.         levels = v.dimvalue(1)
  18.         for idx in range(0, len(levels)):
  19.             level = levels[idx]
  20.             print '\t' + str(level)
  21.             data = v[0,idx,:,:]
  22.             #Save as MICAPS4 data file
  23.             outfn = os.path.join(outdir, 'm4_' + vname + '_' + str(int(level)) + '.000')        
  24.             data.savegrid(outfn, format='micaps4', description=vname + '_' + \
  25.                 str(int(level)), date=t, hours=0, level=0, smooth=1, boldvalue=0)



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

新浪微博达人勋

发表于 2016-5-23 19:25:20 | 显示全部楼层
王老师,提示DimArray instance has no attribute 'savegrib'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-23 20:58:15 | 显示全部楼层
my251394667 发表于 2016-5-23 19:25
王老师,提示DimArray instance has no attribute 'savegrib'

下载最新版本
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-24 08:41:38 | 显示全部楼层
我下的是MeteoInfo_Java_1.3.2R13_Files,不是最新的吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-24 10:29:01 | 显示全部楼层
my251394667 发表于 2016-5-24 08:41
我下的是MeteoInfo_Java_1.3.2R13_Files,不是最新的吗

savegrid 不是 savegrib
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-24 15:53:34 | 显示全部楼层
MeteoInfo 发表于 2016-5-24 10:29
savegrid 不是 savegrib

'NoneType' object has no attribute 'savegrid'。怎么遇到这个问题,对不起王老师,老是麻烦你
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-24 16:02:01 | 显示全部楼层
my251394667 发表于 2016-5-24 15:53
'NoneType' object has no attribute 'savegrid'。怎么遇到这个问题,对不起王老师,老是麻烦你

王老师这个能不能一次性将grib2文件中的所有数据转成micaps4格式的?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-24 16:57:54 | 显示全部楼层
my251394667 发表于 2016-5-24 16:02
王老师这个能不能一次性将grib2文件中的所有数据转成micaps4格式的?

可以用循环输出多个变量、时次、高度等。要不你给一个你的GRIB文件,我抽空帮你写个转换的脚本。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-24 18:33:11 | 显示全部楼层
MeteoInfo 发表于 2016-5-24 16:57
可以用循环输出多个变量、时次、高度等。要不你给一个你的GRIB文件,我抽空帮你写个转换的脚本。

就是这个。麻烦你啦王老师

Z_NAFP_C_BABJ_2016041800_P_gmf-639-2016041800003.grib1

3.06 MB, 下载次数: 7, 下载积分: 金钱 -5

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

新浪微博达人勋

 楼主| 发表于 2016-5-24 19:07:20 | 显示全部楼层
my251394667 发表于 2016-5-24 18:33
就是这个。麻烦你啦王老师

已经在1楼给出。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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