引入
import netCDF4 as nc
读取
nc_value nc.Dataset(inputFile, r , format netCDF4 ) # 打开nc文件 # 其中inputFile为读取的HDF或者NC文件的绝对路径地址 而nc_value为读取后的结果 可自行命名
打开evaluate 可以查看nc_value的数值
获取你需要的数据集或者函数
我要获取的是HDF文件中C_band子目录下的四个数据集 “grid_lat”,“grid_lon”,“wind_dir_selected”,“wind_speed_selected”
# 获取四个数据集 lat nc_value[ C_band ][ grid_lat ] # 获取C_band中的grid_lat数据集 lon nc_value[ C_band ][ grid_lon ] # 获取C_band中的grid_lon数据集 wind_dir_selected nc_value[ C_band ][ wind_dir_selected ] # 获取C-band中的wind_dir_selected数据集 wind_speed_selected nc_value[ C_band ][ wind_speed_selected ] # 获取C_band中的wind_speed_selected数据集 # 获取相关属性数值 spe_FillValue nc_value[ C_band ][ wind_speed_selected ].FillValue # 获取speed中的FillValue 填充值 dir_FillValue nc_value[ C_band ][ wind_dir_selected ].FillValue # 获取dir中的FillValue 填充值 spe_slope nc_value[ C_band ][ wind_speed_selected ].Slope # 获取speed中的Slope 倍数值 dir_slope nc_value[ C_band ][ wind_dir_selected ].Slope # 获取dir中的Slope 倍数值
现在已经将我需要的四个数据集以及四个属性对应的数值获取到 下一步是构建新的HDF文件并将这些数据集以及参数赋值
HDF与NC文件的构造构建新的HDF文件很像之前的读取HDF文件 甚至函数相同 只是从之前的read变成了现在的write 从之前的inputFile(读取的文件的绝对地址)到现在的outPutFile(新构建的HDF文件的放置地址)
wri h5py.File(outfile, w ) # outfile是输出的文件的文件名称以及其绝对地址 w 代表着write # 中间写新HDF文件中放置的内容 wri.close() # 写完后一定要记得“合上书本”
中间部分
在中间部分 添加数据集以及添加相关函数属性与属性值。
添加数据集 create_dataset(“数据集名称”, data 数据集数值), dtype 数据集格式 一般与写与原数据集相同即可, cmopression “gzip”)
添加属性与属性值 新添加的数据集.attrs[‘属性名称’] 属性值
# 添加数据集 wri.create_dataset( grid_lat , data lat, dtype lon.dtype, compression gzip ) wri.create_dataset( grid_lon , data lon, dtype lon.dtype, compression gzip ) gdir wri.create_dataset( wind_dir_selected , data wind_dir_selected, dtype wind_dir_selected.dtype, compression gzip ) gspe wri.create_dataset( wind_speed_selected , data wind_speed_selected, dtype wind_speed_selected.dtype, compression gzip ) # 添加属性 gspe.attrs[ FillValue ] spe_FillValue gdir.attrs[ FillValue ] dir_FillValue gspe.attrs[ Slope ] spe_slope gdir.attrs[ Slope ] dir_slope
OKK咯



