FY3A卫星有AOD产品数据,HDF格式,这里示例用MeteoInfo脚本程序读取和显示该类数据。

脚本程序如下:

  1. #-----------------------------------------------------
  2. # Author: Yaqiang Wang
  3. # Date: 2015-3-18
  4. # Purpose: Read FY3A AOD hdf5 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 LegendScheme
  12. from org.meteoinfo.shape import ShapeTypes
  13. from ucar.nc2 import NetcdfFile
  14. import os.path
  15. import jarray
  16.  
  17. #Set data directory
  18. dataDir = 'D:/Temp/Hdf'
  19.  
  20. #Create MeteoDataInfo object
  21. mdi = MeteoDataInfo()
  22.  
  23. #Read hdf data file
  24. fn = os.path.join(dataDir, 'FY3A_MERSI_GBAL_L3_ASL_MLT_GLL_20140331_AOAM_5000M_MS.HDF')
  25. if os.path.isfile(fn):
  26. print fn
  27. mdi.openNetCDFData(fn)
  28. dataInfo = mdi.getDataInfo()
  29. #print mdi.getInfoText()
  30. xmin = -30.0
  31. ymin = -90.0
  32. xnum = 7200
  33. ynum = 3600
  34. xdelt = 0.05
  35. ydelt = 0.05
  36. xlist = []
  37. ylist = []
  38. for i in range(0,xnum):
  39. xlist.append(xmin + xdelt * i)
  40. for i in range(0,ynum):
  41. ylist.append(ymin + ydelt * i)
  42.  
  43. X = jarray.array(xlist, 'd')
  44. Y = jarray.array(ylist, 'd')
  45. xDim = Dimension(DimensionType.X)
  46. xDim.setValues(X)
  47. dataInfo.setXDimension(xDim)
  48. yDim = Dimension(DimensionType.Y)
  49. yDim.setValues(Y)
  50. dataInfo.setYDimension(yDim)
  51. var = dataInfo.getVariable('Aerosol_Optical_Thickness_of_MERSI_550nm')
  52. print var.getName()
  53. dimList = [yDim, xDim]
  54. var.setDimensions(dimList)
  55. gData = mdi.getGridData(var.getName())
  56. gData.yReverse()
  57. gData = gData.div(10000.0)
  58. gData.missingValue = -3.2767
  59. #aLS = LegendManage.createLegendSchemeFromGridData(gData, LegendType.GraduatedColor, ShapeTypes.Polygon)
  60. aLS = LegendScheme(ShapeTypes.Polygon)
  61. aLS.importFromXMLFile(os.path.join(dataDir, 'AOD.lgs'))
  62. aLayer = DrawMeteoData.createRasterLayer(gData, "Test_HDF", aLS)
  63. mf = miapp.getMapDocument().getActiveMapFrame()
  64. mf.addLayer(aLayer)
  65. mf.moveLayer(aLayer, 0)
  66.  
  67. print 'Finished!'

MeteoInfo脚本示例:读取FY3A AOD HDF文件的更多相关文章

  1. MeteoInfoLab脚本示例:FY-3A AOD HDF数据

    FY3A卫星有HDF格式的AOD产品数据,全球范围,分辨率为0.05度.读取数据文件变量后要重新设定X/Y维,数据是Y轴反向的,且需要除以10000得到AOD值. 脚本程序: #Add data fi ...

  2. MeteoInfo脚本示例:GrADS to netCDF

    这里给出一个将GrADS数据文件转为netCDF数据文件的脚本示例程序,其它格式数据转netCDF可以参考: #-------------------------------------------- ...

  3. MeteoInfoLab脚本示例:MODIS AOD

    MODIS的气溶胶光学厚度(AOD)产品应用很广,数据可以在Giovanni上下载:http://disc.sci.gsfc.nasa.gov/giovanni/overview/index.html ...

  4. MeteoInfoLab脚本示例:AIRS Grid HDF数据

    AIRS Grid HDF数据是HDF4 EOS格式,数据地理坐标信息可以被MeteoInfo自动识别,脚本程序更为简单.需要注意的是读取数据时Y轴是反向的(卫星数据通常如此).脚本程序: #Add ...

  5. MeteoInfoLab脚本示例:CloudSAT Swath HDF数据

    读取CloudSAT HDF Swath数据,绘图分上下两部分,上面是时间和高度维的Radar Reflectivity Factor二维图,下面是卫星轨迹图.示例程序: # Add file f = ...

  6. MeteoInfoLab脚本示例:OMI Swath HDF数据

    这个例子读取OMI卫星Swath数据中的CloudFaction变量并绘图.脚本程序: #Add data file folder = 'D:/Temp/hdf/' fns = 'OMI-Aura_L ...

  7. MeteoInfoLab脚本示例:TRMM 3B43 HDF数据

    TRMM 3B43是卫星观测月平均降水量产品,是HDF的格点数据.需要注意的是数据中降水变量维的顺序里经度维在前纬度维在后,这与通常的设置(纬度维在前经度维在后)相反,需要对获取的二维数组进行转置,使 ...

  8. MeteoInfoLab脚本示例:TRMM 2A12 HDF数据

    TRMM 2A12 HDF数据是卫星观测的SWATH数据(轨道数据),比格点数据处理起来要麻烦一些.数据的经纬度保存在geolocation变量中,需要先将经纬度数据读出来(均为2维数组),然后读取云 ...

  9. MeteoInfoLab脚本示例:OMI Grid HDF数据

    OMI卫星格点数据的例子,全球臭氧柱总量分布.脚本程序: #Add data file folder = 'D:/Temp/hdf/' fns = 'OMI-Aura_L3-OMTO3e_2005m1 ...

随机推荐

  1. ZT:15 个你非了解不可的 Linux 特殊字符

    https://os.51cto.com/art/202003/611595.htm 不知道大家接触 Linux 系统有多久了,可曾了解过 Linux 中有哪些特殊的字符呢?其实啊,那些特殊字符都大有 ...

  2. 循序渐进VUE+Element 前端应用开发(20)--- 使用组件封装简化界面代码

    VUE+Element 前端应用,比较不错的一点就是界面组件化,我们可以根据重用的指导方针,把界面内容拆分为各个不同的组合,每一个模块可以是一个组件,也可以是多个组件的综合体,而且这一个过程非常方便. ...

  3. vue.js 的安装

    包含vue的脚手架的安装. 1,到项目目录下输入 cnpm i -g vue-cli 2,安装完毕后咱们看看.输入 vue 即可看到vue的安装情况. 3,输入 vue list 即可看到框架的选择 ...

  4. openwrt 单网卡路由模拟实现

    关键字 vlan openwrt 单臂路由 一直以来都认为路由器要至少要求是双网卡,因为至少要有lan/wan.最近看了单臂路由的介绍,自己在虚拟机测试了一把,发现单网口做路由器确实可行! 测试环境 ...

  5. v-charts 绘制柱状图、条形图、水球图、雷达图、折线图+柱状图,附官网地址

    v-charts 官网地址:https://v-charts.js.org/#/ 柱状图: <template> <ve-histogram :data="chartDat ...

  6. cnblog维护

    title: 博客归纳 blog: CSDN data: Java学习路线及视频 2019 12/31 时间管理 2020 1/22 Git是什么? 1/23 Git安装--Windows 3/24 ...

  7. 原子类CAS的底层实现

    原子类使用 public class CASDemo { public static void main(String[] args) { AtomicInteger atomicInteger = ...

  8. st表、RMQ和LCA

    int lca(int x,int y) { if(de[x]<de[y]) swap(x,y); int d=de[x]-de[y]; for(int i=log2(d);i>=0;i- ...

  9. Linux系统编程—条件变量

    条件变量是用来等待线程而不是上锁的,条件变量通常和互斥锁一起使用.条件变量之所以要和互斥锁一起使用,主要是因为互斥锁的一个明显的特点就是它只有两种状态:锁定和非锁定,而条件变量可以通过允许线程阻塞和等 ...

  10. 阿里内部推出Spring响应式微服务Boot2Cloud文档

    今天要给大家推荐的是Spring响应式微服务SpringBoot2+Spring5+SpringCloud实战的内容,将从目录.主要内容和面向的读者三部分给大家介绍,希望大家能够喜欢!!!(本文整理自 ...