H5文件保存为TIFF
上周一个朋友拜托我帮它处理下遥感数据,拿到手一看,发现文件格式.h5,但是以往接触的遥感数据格式基本为.tif,带着好奇上网查了一下,
维基百科对它的解释:
HDF:层级数据格式(Hierarchical Data Format)是设计用来存储和组织大量数据的一组文件格式(HDF4,HDF5)。它最初开发于美国国家超级计算应用中心,现在由非营利社团HDF Group支持,其任务是确保HDF5技术的持续开发和存储在HDF中数据的持续可访问性。
从网上得知.H5是HDF格式的一个版本,对于这种格式的读写,Python有其专门的模块提供支持。
一个HDF5文件就是一个容器,用于储存两类对象:datasets,类似于数组的数据集合;groups,类似于文件夹的容器,可以储存datasets和其它groups,groups类似于字典(dictionaries),dataset类似于Numpy中的数组(array)。
得到的这个对象并不是数组,而是HDF5 dataset,但它和Numpy的数组结构很相似,具有形状(shape)和数据类型(datatype)
和数组相似的切片操作。
将影像数据从中提取出来,然后转为Numpy数组,为后续分析作准备,
提取出一份影像的矩阵数据,使用Matplotlib 作可视化 发现影像中间有一个空洞,一开始以为是我处理不当导致,后来发现是数据的问题。
H5保存为TIF
我朋友的目标文件格式是.tif,以便于在GIS软件进行空间分析。将矩阵保存为.tif文件需要gdal库的支持,有一个很重要的问题,但他给我的数据里没有元数据,也就是参考坐标、地理范围、空间分辨率等信息一概没有,如果空间分析中叠加其他数据,就是个大麻烦。
到上一步,提取就全部完成,最后为了直观地展示2012-2020年间北极地区的海冰密度变化,借用Matplotlib库,基于2013年间的时间序列数据,做一个小动画。
制作基本的动画的步骤如下:
- 创建画布和坐标系对象
- 定义updateFig函数,修改画布数据
- 调用FuncAnimation函数创建动画
参考:
1.https://docs.h5py.org/en/stable/
2.https://zh.wikipedia.org/wiki/HDF
3.https://segmentfault.com/a/1190000016670881
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)