- 积分
- 2280
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-9-11
- 最后登录
- 1970-1-1
|
发表于 2015-6-25 16:58:32
|
显示全部楼层
本帖最后由 良辰 于 2015-6-25 16:59 编辑
GRADS转arl后,MI绘图为空,为什么?请王老师指点一下,非常感谢!
- #--------------------------------------------------------
- # Author: Yaqiang Wang
- # Date: 2014-10-24
- # Purpose: Convert Grads 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/test2.arl')
- #---- Read a GRADS data file
- mydata = MeteoDataInfo()
- infile = os.path.join(dataDir, 'grads/wrfout_d02.ctl')
- print infile
- mydata.openGrADSData(infile)
- print 'GRADS file has been opened...'
- #---- Set output ARL data info
- arlDI = ARLDataInfo()
- #---- Set variable and level list
- gvars = ['PSFC','T2','U10M','V10M','Z','TK','UMET','VMET','W','RH']
- avars = ['PRSS','T02M','U10M','V10M','HGTS','TEMP','UWND','VWND','WWND','RELH']
- levels = [0,1000,925,850,700,500,300,200]
- 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(), 'GRPS', 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*100.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!'
|
-
gards500hgt
-
arl 500
|