爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4977|回复: 9

MeteoInfo脚本示例:MICAPS 1类数据转为GrADS站点数据

[复制链接]

新浪微博达人勋

发表于 2012-11-24 22:31:08 | 显示全部楼层 |阅读模式

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

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

x
这个脚本演示了如何将MICAPS第1类数据(地面全要素站点观测)转为GrADS站点数据格式(需要MeteoInfo最新文件,见置顶帖子)。

转换后的GrADS站点格式数据绘图:
Image00942.png

Image00943.png

脚本代码如下:
  1. #--------------------------------------------------------        
  2. # Author: Yaqiang Wang                                          
  3. # Date: 2012-11-24                                               
  4. # Purpose: Write GrADS station data  
  5. # Note: Sample                                                   
  6. #-----------------------------------------------------------
  7. import clr
  8. from System import *
  9. from System.Collections.Generic import *
  10. clr.AddReference("MeteoInfoC.dll")
  11. from MeteoInfoC import *
  12. from MeteoInfoC.Data import *
  13. from MeteoInfoC.Data.MeteoData import *

  14. #---- Set directories
  15. dataDir = "D:\\Temp\"

  16. #---- Set output data file
  17. outCtlFile = dataDir + 'grads\\m1test.ctl'
  18. outDataFile = dataDir + 'grads\\m1test.dat'

  19. #---- Set time
  20. sTime = DateTime.Parse("2010-10-14 14:00")
  21. eTime = DateTime.Parse("2010-10-14 20:00")
  22. tNum = 2

  23. #---- Read a micaps data file
  24. mydata = MeteoDataInfo()
  25. infile = sTime.ToString("yyMMddHH") + ".000"
  26. mydata.OpenMICAPSData(dataDir + "micaps\" + infile)

  27. #---- Define and set output GrADS data info
  28. gDataInfo = GrADSDataInfo()
  29. gDataInfo.FileName = outCtlFile
  30. gDataInfo.DSET = outDataFile
  31. gDataInfo.TITLE = 'MICAPS data'
  32. gDataInfo.DTYPE = 'STATION'
  33. gDataInfo.UNDEF = 9999
  34. gDataInfo.TDEF.Type = 'LINEAR'
  35. gDataInfo.TDEF.TNum = tNum
  36. gDataInfo.TDEF.STime = sTime
  37. gDataInfo.TDEF.TDelt = '6hr'
  38. for v in mydata.GetVariableNames():
  39.         aVar = VAR()
  40.         aVar.VName = v
  41.         aVar.LevelNum = 0
  42.         aVar.Units = '99'
  43.         aVar.Description = v
  44.         gDataInfo.VARDEF.AddVar(aVar)

  45. #---- Write GrADS data file
  46. gDataInfo.CreateDataFile(outDataFile)
  47. aTime = sTime
  48. for t in range(0, tNum):
  49.         infile = aTime.ToString("yyMMddHH") + ".000"
  50.         mydata.OpenMICAPSData(dataDir + "micaps\" + infile)
  51.         stInfoData = mydata.GetStationInfoData()
  52.         gDataInfo.WriteStationData(stInfoData)
  53.         aTime = aTime.AddHours(6)

  54. gDataInfo.CloseDataFile()

  55. #---- Write GrADS control file
  56. gDataInfo.WriteGrADSCTLFile()

  57. print 'Finished!'
复制代码




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

新浪微博达人勋

发表于 2015-4-2 12:42:26 | 显示全部楼层
用这个脚本出错,求救!!
Traceback (most recent call last):
  File "<string>", line 38, in <module>
AttributeError: 'GrADSDataInfo' object has no attribute 'UNDEF'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-2 18:35:03 来自手机 | 显示全部楼层
改为MissingValue
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-7-29 16:13:25 | 显示全部楼层
LZ厉害,LZ加油
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-7-30 15:45:06 | 显示全部楼层
gDataInfo.VARDEF.AddVar(aVar)这句脚本出错
typeerror:expected variable,got var
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-7-30 16:05:08 | 显示全部楼层
风荷1 发表于 2015-7-30 15:45
gDataInfo.VARDEF.AddVar(aVar)这句脚本出错
typeerror:expected variable,got var

这是很久以前的脚本了,有些东西改变了。

你尝试把
aVar = VAR()
改为
aVar = Variable()
试试
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-7-30 17:46:19 来自手机 | 显示全部楼层
А
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-7-30 17:47:56 | 显示全部楼层
感谢在百忙之中回复,谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-1-22 00:12:37 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2018-1-23 00:15:05 | 显示全部楼层
求JAVA 版本的代码谢谢了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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