MERRA是NOAA的一种再分析资料,HDF数据遵循COARDS协议,读取比较简单.脚本程序: #Add data file folder = 'D:/Temp/hdf/' fns = 'MERRA300.prod.assim.tavg1_2d_slv_Nx.20150101.SUB.hdf' fn = folder + fns f = addfile(fn) vname = 't2m' t = f[vname] t2m = t[0,:,:] #Plot axesm() mlayer = sha…
这里演示读取和绘制AVHRR hdf格式数据,以sst(海表面温度)为例. 脚本程序: #Add data file f = addfile('D:/Temp/hdf/2006001-2006005.s0454pfrt-bsst.hdf') vname = 'bsst' v = f[vname] data = v[::-1,:] data.fill_value = 0.0 #Plot axesm() mlayer = shaperead('D:/Temp/map/country1.shp') g…
TOMS (Total Ozone Mapping Spectrometer)数据是全球臭氧观测.脚本程序: #Add data file folder = 'D:/Temp/hdf/' fns = 'TOMS-EP_L3-TOMSEPL3_2000m0101_v8.HDF' fn = folder + fns f = addfile(fn) vname = 'Ozone' v = f[vname] ozone = v[::-1,:] #Plot axesm() mlayer = shapere…
读取CloudSAT HDF Swath数据,绘图分上下两部分,上面是时间和高度维的Radar Reflectivity Factor二维图,下面是卫星轨迹图.示例程序: # Add file f = addfile('D:/Temp/hdf/2010128055614_21420_CS_2B-GEOPROF_GRANULE_P_R04_E03.hdf') # Read data vname = 'Radar_Reflectivity' v_data = f[vname] data = v_da…
SeaWiFS HDF Grid数据读取,特别是涉及到了文件的众多属性数据的读取,数据取对数后绘图.脚本程序: #Add data file f = addfile('D:/Temp/hdf/S1999001.L3m_DAY_CHL_chlor_a_9km.hdf') #Get data variable vname = 'l3m_data' v = f[vname] #Set x/y ny = f.attrvalue('Number_of_Lines')[0] nx = f.attrvalue…
AMSR-E(http://nsidc.org/data/amsre/index.html)数据中的Land3数据是HDF-EOS4格式,投影是Cylindrical_Equal_Area.这里示例读取数据并投影至等经纬度投影.脚本程序: #Add data file fn = 'AMSR_E_L3_DailyLand_V06_20091231.hdf' f = addfile(os.path.join('D:/Temp/hdf', fn)) #vname = 'D_Soil_Moisture'…
气象数据基本为多维数据(通常是4维,空间3维加时间维),只让数据中一维可变,其它维均固定即可提取一维数据.比如此例中固定了时间维.高度维.纬度维,只保留经度维可变:hgt = f['hgt'][0,[500],[4],[180,360]].固定某一维可以用序号(从0开始),比如此例中的时间维为0,既第一个时次.也可以用该维中真实的数据,比如高度维希望是500 hPa,此时需要用中括号:[500],纬度维的固定也是类似.维的范围可用序号来限定,比如:5:20,也可用该维的真实值限定,比如此例中的经…
例子中的AIRS Swath HDF数据在Polar Stereographic(南极)投影中接近矩形,需要先从数据中读出经纬度及相关数据数组,利用surfacem函数绘制Swath数据(散点),在surfacem函数中经纬度数据会被投影到目的投影坐标系(在axesm函数中定义),并从2维散点数据生成surface数据(也就是格点数据)用所谓的surface插值方法.2维散点数据可以组成格网(非矩形格网),遍历目标格点数据的每个格点,该格点落在格网中哪个网格中,就将此网格的散点值赋给该格点.有些…
FY-3C全球火点HDF数据包含一个FIRES二维变量,第一维是火点数,第二维是一些属性,其中第3.4列分别是火点的纬度和经度.下面的脚本示例读出所有火点经纬度并绘图.脚本程序: #Add data file fn = 'D:/Temp/hdf/FY3C_VIRRX_GBAL_L2_GFR_MLT_GLL_20150811_POAD_1000M_MS.HDF' f = addfile(fn) #Get data variable v = f['FIRES'] #Get data array da…
TRMM 2A12 HDF数据是卫星观测的SWATH数据(轨道数据),比格点数据处理起来要麻烦一些.数据的经纬度保存在geolocation变量中,需要先将经纬度数据读出来(均为2维数组),然后读取云水含量数据(cldWater).虽然都是2维数组,但并不是格点数据,相当于2维的散点数据,点数相当多(3019*208)如果用散点图来绘制的话会非常的慢,需要将其插值为格点数据.插值方法建议选择nearest,该方法速度最快.插值后的格点数据用imshowm函数显示为图像就很快了.脚本程序: #Ad…