- 积分
- 447
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-2-13
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 天边的那边 于 2015-12-24 15:48 编辑
Traceback (most recent call last):
File "<iostream>", line 49, in <module>
TypeError: getDataHead(): expected 5 args; got 3
软件为java版本
#--------------------------------------------------------
# Author: Yaqiang Wang
# Date: 2014-10-24
# Purpose: Convert GRIB data to ARL data
# Note: Sample
#-----------------------------------------------------------
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 directories
dataDir = "D:/Temp/"
#---- Set output data file
outFile = os.path.join(dataDir, 'arl/test.arl')
#---- Read a GRIB data file
mydata = MeteoDataInfo()
infile = os.path.join(dataDir, 'grib/grib2010071600')
print infile
mydata.openNetCDFData(infile)
print 'GRIB file has been opened...'
#---- Set output ARL data info
arlDI = ARLDataInfo()
#---- Set variable and level list
#gvars = ['Pressure@surface','Temperature@height_above_ground',\
# 'U-component_of_wind@height_above_ground','V-component_of_wind@height_above_ground',\
# 'Total_precipitation@surface','Geopotential_height@pressure','Temperature@pressure',\
# 'U-component_of_wind@pressure','V-component_of_wind@pressure','Vertical_velocity@pressure',\
# 'Relative_humidity@pressure']
gvars = ['PRESsfc','TMP2m','UGRD10m','VGRD10m','HGTprs','TMPprs','UGRDprs','UGRDprs','VVELprs','RHprs']
avars = ['PRSS','T02M','U10M','V10M','HGTS','TEMP','UWND','VWND','WWND','RELH']
levels = [0,200,300,400,500,600,700,800,\
850,900,925,950,975,1000]
for l in levels:
arlDI.levels.add(l)
if l == 0:
arlDI.LevelVarList.add(['PRSS','T02M','U10M','V10M'])
else:
arlDI.LevelVarList.add(['HGTS','TEMP','UWND','VWND','WWND','RELH'])
#---- Write ARL data file
dataInfo = mydata.getDataInfo()
arlDI.createDataFile(outFile)
arlDI.X = dataInfo.getXDimension().getValues()
arlDI.Y = dataInfo.getYDimension().getValues()
variables = dataInfo.getVariables()
tNum = dataInfo.getTimeNum()
for t in range(0, tNum):
mydata.setTimeIndex(t)
atime = dataInfo.getTimes().get(t)
aDH = arlDI.getDataHead(mydata.getProjectionInfo(), 'FNL1', 2)
arlDI.writeIndexRecord(atime, aDH)
lidx = 0
for l in arlDI.levels:
print l
for v in arlDI.LevelVarList[lidx]:
vName = gvars[avars.index(v)]
print vName
if lidx == 0:
mydata.setLevelIndex(lidx)
else:
variable = dataInfo.getVariable(vName)
nlidx = variable.getZDimension().getDimValue().indexOf(l*1.0)
mydata.setLevelIndex(nlidx)
gData = mydata.getGridData(vName)
if v == 'PRSS' or v == 'WWND':
gData = gData.div(100)
aDL = DataLabel(atime)
aDL.setLevel(lidx)
aDL.setVarName(v)
aDL.setGrid(99)
aDL.setForecast(0)
arlDI.writeGridData(aDL, gData)
lidx += 1
arlDI.closeDataFile()
print 'Finished!'
|
|