python read hdf4 & hdf5
1.1 import pyhdf read hdf4 (如MODIS Data), 也有用GDAL-OSGEO读hdf4的
参考:代码参考, 数据示例:MODIS地表类型介绍, MODIS MCD12C1V 006 download
import numpy as np
from pyhdf.SD import SD,SDC
f=SD('G:\\surftype\\MCD12C1.A2018001.006.2019200161458.hdf',SDC.READ) # READ surftype
print(f.datasets())
MLCT=f.select('Majority_Land_Cover_Type_1') # lon: -180,180; lat: 90,-90
MLCT=np.array(MLCT)
1.2 import pyhdf read hdf4 (如CloudSat/CPR)
参考:代码参考, 数据示例:Cloudsat/CPR 2b-geoprof, 仪器说明
f = HDF('G:\\201806CloudsatCPR\\'+fs[ifile], SDC.READ) # # type 1
vs = f.vstart()
data_info_list = vs.vdatainfo()
print( data_info_list )
vdata_lat = vs.attach('Latitude')
vdata_long = vs.attach('Longitude')
lat = vdata_lat[:]
lon = vdata_long[:]
vdata_lat.detach() # "close" the vdata
vdata_long.detach() # "close" the vdata
vs.end() # terminate the vdata interface
f.close()
f=SD('G:\\201806CloudsatCPR\\'+fs[ifile],SDC.READ) # # type 2
print(f.datasets())
dbze = f.select('Radar_Reflectivity')
f.close()
Cloudsat/CPR type1
Cloudsat/CPR type2
2. import pyhdf read/write hdf5 (如GPM Data)
HDF5数据示例:GPM datasets, GPM data worldview
import h5py
fg=h5py.File('fname.hdf','r') # READ observation DATA
S1=fg['S1']
lon_S1=np.array(S1['Longitude'][:,:])
lat_S1=np.array(S1['Latitude'][:,:])
################ write ################
f=h5py.File("new_file.hdf',"w")
f.create_dataset("varname", data=var,compression="gzip",compression_opts=6)
f.close()
0. python库安装办法:
1. pip install name
2. pip install name.whl
3. tar.gz解压到环境所在的文件夹中,在setup.py存在的路径上:python setup.py install