使用netCDF4库可读取hdf4或hdf5数据
import netCDF4 as nc
f = nc.Dataset('1.hdf')
vars = f.variables
for var in vars:
print(var) #查看变量
data = f['Optical_Depth_047'][:] #即可获取数据
介绍其他库分别读取hdf4和hdf5格式
- 读取hdf4格式
from pyhdf.SD import SD
f = SD('1.hdf')
print (f)
print(f.info())
data_dic = f.datasets()
for idx,sds in enumerate(data_dic.keys()):
print (idx,sds)
od01 = f.select('Optical_Depth_047')[:]
#或
od02 = f.select('Optical_Depth_047').get()
- 读取hdf5格式
import h5py #导入工具包
import numpy as np
#HDF5的写入:
imgData = np.zeros((30,3,128,256))
f = h5py.File('HDF5_FILE.h5','w') #创建一个h5文件,文件指针是f
f['data'] = imgData #将数据写入文件的主键data下面
f['labels'] = range(100) #将数据写入文件的主键labels下面
f.close() #关闭文件
#HDF5的读取:
f = h5py.File('HDF5_FILE.h5','r') #打开h5文件
f.keys() #可以查看所有的主键
a = f['data'][:] #取出主键为data的所有的键值
f.close()
如果变量里面没有经纬度,那可通过查看属性获知经纬度范围和步长,从而自己构造出二维经纬度格点。