爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3671|回复: 7

meteoinfo可以读取trmm的HDF降水资料么?

[复制链接]

新浪微博达人勋

发表于 2014-7-2 17:26:38 | 显示全部楼层 |阅读模式

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

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

x
如题,我发现meteoinfo有读取HDF文件的选项,但是却无法读取trmm的HDF降水资料,不知为何,求解。谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2014-7-2 23:22:51 | 显示全部楼层
这种情况最好给个非保密数据的样例来测试
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-7-2 23:46:38 | 显示全部楼层
1、用MeteoInfo Java版
2、写脚本程序,示例如下:
  1. #-----------------------------------------------------
  2. # Author: Yaqiang Wang
  3. # Date: 2014-7-2
  4. # Purpose: Read TRMM precipitation hdf4 data
  5. # Note: Sample
  6. #-----------------------------------------------------
  7. from org.meteoinfo.data.meteodata import MeteoDataInfo
  8. from org.meteoinfo.data.meteodata import Dimension
  9. from org.meteoinfo.data.meteodata import DimensionType
  10. from org.meteoinfo.data.meteodata import DrawMeteoData
  11. from org.meteoinfo.legend import LegendType
  12. from org.meteoinfo.legend import LegendManage
  13. from org.meteoinfo.shape import ShapeTypes
  14. from ucar.nc2 import NetcdfFile
  15. import os.path
  16. import jarray

  17. #Set data directory
  18. dataDir = 'D:/Temp/hdf'

  19. #Create MeteoDataInfo object
  20. mdi = MeteoDataInfo()

  21. #Read hdf data file
  22. fn = os.path.join(dataDir, '3B43.19980101.7.HDF')
  23. if os.path.isfile(fn):
  24.         print fn
  25.         mdi.openNetCDFData(fn)
  26.         dataInfo = mdi.getDataInfo()
  27.         #print mdi.getInfoText()
  28.         xmin = -180.0
  29.         ymin = -50.0
  30.         xnum = 1440
  31.         ynum = 400
  32.         xdelt = 0.25
  33.         ydelt = 0.25
  34.         xlist = []
  35.         ylist = []
  36.         for i in range(0,xnum):
  37.                 xlist.append(xmin + xdelt * i)
  38.         for i in range(0,ynum):
  39.                 ylist.append(ymin + ydelt * i)

  40.         X = jarray.array(xlist, 'd')
  41.         Y = jarray.array(ylist, 'd')
  42.         xDim = Dimension(DimensionType.X)
  43.         xDim.setValues(X)
  44.         dataInfo.setXDimension(xDim)
  45.         yDim = Dimension(DimensionType.Y)
  46.         yDim.setValues(Y)
  47.         dataInfo.setYDimension(yDim)
  48.         var = dataInfo.getVariable('precipitation')
  49.         print var.getName()
  50.         dimList = [xDim, yDim]
  51.         var.setDimensions(dimList)
  52.         gData = mdi.getGridData(var.getName())       
  53.         aLS = LegendManage.createLegendSchemeFromGridData(gData, LegendType.GraduatedColor, ShapeTypes.Polygon)
  54.         aLayer = DrawMeteoData.createRasterLayer(gData, "Test_HDF", aLS)
  55.         mf = miapp.getMapDocument().getActiveMapFrame()
  56.         mf.addLayer(aLayer)
  57.         mf.moveLayer(aLayer, 0)       

  58. print 'Finished!'



3、结果:
Image00011.png


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

新浪微博达人勋

 楼主| 发表于 2014-7-3 08:57:32 | 显示全部楼层
MeteoInfo 发表于 2014-7-2 23:46
1、用MeteoInfo Java版
2、写脚本程序,示例如下:

太好了,谢谢王老师。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-7-3 08:58:02 | 显示全部楼层
mofangbao 发表于 2014-7-2 23:22
这种情况最好给个非保密数据的样例来测试

谢谢关注和提醒
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-8-7 22:10:37 | 显示全部楼层
MeteoInfo 发表于 2014-7-2 23:46
1、用MeteoInfo Java版
2、写脚本程序,示例如下:

王老师,使用您编的脚本,运行显示
run script...
E:/SYY/TRMM\3B43.20010801.7A.HDF
precipitation
Traceback (most recent call last):
  File "<iostream>", line 47, in <module>
NameError: name 'miapp' is not defined

请问怎么解决呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-8-7 22:26:49 | 显示全部楼层
letme 发表于 2016-8-7 22:10
王老师,使用您编的脚本,运行显示
run script...
E:/SYY/TRMM\3B43.20010801.7A.HDF

参考此贴:MeteoInfoLab脚本示例:TRMM 3B43 HDF数据
http://bbs.06climate.com/forum.p ... 579&fromuid=106
(出处: 气象家园)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-15 16:37:17 | 显示全部楼层
王老师太棒了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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