爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 113|回复: 6

转arl

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式

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

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

x
我参照家园帖子把grib格式的数据转为ARL,可总是报错run script...Output ARL file: F:/2024(1)GRIB/202401.arl
F:/2024(1)GRIB/hebing.grib
Traceback (most recent call last):
  File "<iostream>", line 14, in <module>
NameError: name 'addfile' is not defined
以下是我要转换的脚本,求各位大佬指点
from org.meteoinfo.data.meteodata import MeteoDataInfo
from org.meteoinfo.data.meteodata.arl import ARLDataInfo
from org.meteoinfo.data.meteodata.arl import DataLabel
import os

#---- Set data folder
datadir = r'F:/2024(1)GRIB/'
#---- Set output ARL data file
outfn = os.path.join(datadir, '202401.arl')
print 'Output ARL file:', outfn
#---- Read a GRIB data file
infn = os.path.join(datadir, 'hebing.grib')
print infn
inf = addfile(infn)
print 'GRIB data file has been opened...'
#---- Set output ARL data file
arlf = addfile(outfn, 'c', dtype='arl')
#---- Set variable and level list
gvar2d = ['Surface_pressure_surface','2_metre_temperature_surface','10_metre_U_wind_component_surface',\
    '10_metre_V_wind_component_surface'
gvar3d = ['Geopotential_isobaric','Temperature_isobaric','Vertical_velocity_isobaric',\
    'U-component_of_wind_isobaric','V-component_of_wind_isobaric','Relative_humidity_isobaric'
avar2d = ['PRSS','T02M','U10M','V10M'
avar3d = ['HGTS','TEMP','WWND','UWND','VWND','SPHU'
gv = inf['Geopotential_isobaric'
nx = gv.dimlen(gv.ndim - 1)
ny = gv.dimlen(gv.ndim - 2)
levels = gv.dimvalue(gv.ndim - 3)[::-1
nz = len(levels)
arlf.set2dvar(avar2d)
arlf.setlevels(levels)
for l in levels:
    arlf.set3dvar(avar3d)

#---- Write ARL data file
arlf.setx(gv.dimvalue(gv.ndim - 1))
arlf.sety(gv.dimvalue(gv.ndim - 2))
tNum = inf.timenum()
fhour = 0
for t in range(0, tNum):
    print 'Time index: ' + str(t)
    atime = inf.gettime(t)
    print atime.strftime('%Y-%m-%d %H:00')
    dhead = arlf.getdatahead(inf.proj, 'RSMC', 2, fhour)
    #Pre-write index record without checksum - will be over-write latter
    arlf.writeindexrec(atime, dhead)
    #Checksum list
    ksumlist = [
    # Write 2d variables
    ksums = [
    for avname,gvname in zip(avar2d, gvar2d):
        print avname + ' ' + gvname
        gdata = inf[gvname[t,:,:
        if avname == 'PRSS':
            gdata = gdata * 0.01
        ksum = arlf.writedatarec(atime, 0, avname, fhour, 99, gdata)
        ksums.append(ksum)
    ksumlist.append(ksums)
    # Write 3d variables
    for lidx in range(0, nz):
        ksums = [
        llidx = nz - lidx - 1
        print lidx
        print llidx
        for avname,gvname in zip(avar3d, gvar3d):
            print avname + ' ' + gvname
            gdata = inf[gvname[t,llidx,:,:
            if avname == 'WWND':
                gdata = gdata * 0.01
            elif avname == 'SPHU':
                gdata = gdata * 1000.
            ksum = arlf.writedatarec(atime, lidx + 1, avname, fhour, 99, gdata)
            ksums.append(ksum)
        ksumlist.append(ksums)
    #Re-write index record with checksum
    arlf.writeindexrec(atime, dhead, ksumlist)
    fhour += 1
arlf.close()
print 'Finished!'




密码修改失败请联系微信:mofangbao
发表于 前天 12:02 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 前天 15:43 | 显示全部楼层
我就是参照这个帖子在meteoinfomap里面的脚本编辑器运行的,可是错误还是run script...
F:/2024Temp/hebing.grib
Traceback (most recent call last):
  File "<iostream>", line 12, in <module>
NameError: name 'addfile' is not defined
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 前天 22:00 | 显示全部楼层
长野YY 发表于 2025-4-23 15:43
我就是参照这个帖子在meteoinfomap里面的脚本编辑器运行的,可是错误还是run script...
F:/2024Temp/hebin ...

在MeteoInfoLab里运行
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 10:16 | 显示全部楼层
MeteoInfo 发表于 2025-4-23 22:00
在MeteoInfoLab里运行

老师我就是在meteoinlab里面的脚本编辑器运行的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 10:22 | 显示全部楼层
长野YY 发表于 2025-4-24 10:16
老师我就是在meteoinlab里面的脚本编辑器运行的

>>> run script...
F:/2024Temp/hebing.grib
Traceback (most recent call last):
  File "F:\?????2?.py", line 15, in <module>
    inf = addfile(infn)
  File "F:\MeteoInfo_4.0\MeteoInfo\pylib\mipylib\dataset\midata.py", line 122, in addfile
    if datainfo.getDataType() == MeteoDataType.RADAR:
AttributeError: 'NoneType' object has no attribute 'getDataType'
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 昨天 11:18 | 显示全部楼层
长野YY 发表于 2025-4-24 10:22
>>> run script...
F:/2024Temp/hebing.grib
Traceback (most recent call last):

数据格式的问题吧,程序没有识别出来,建议用MeteoInfo最新版本(如果你用的不是最新)试试。还有问题的话可以发上来一个实例数据文件,我这边测试一下。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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