栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python最简单方式实现读取与写出HDF、NC文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python最简单方式实现读取与写出HDF、NC文件

通过Python实现HDF与NC文件的读取与写出 HDF与NC文件的读取

引入

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咯

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268065.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号