首页 > 其他分享 >H5文件保存为TIFF

H5文件保存为TIFF

时间:2022-12-04 12:44:09浏览次数:66  
标签:HDF5 TIFF 保存 H5 HDF 文件格式 数组 数据

上周一个朋友拜托我帮它处理下遥感数据,拿到手一看,发现文件格式.h5,但是以往接触的遥感数据格式基本为.tif,带着好奇上网查了一下,
维基百科对它的解释:

HDF:层级数据格式(Hierarchical Data Format)是设计用来存储和组织大量数据的一组文件格式(HDF4,HDF5)。它最初开发于美国国家超级计算应用中心,现在由非营利社团HDF Group支持,其任务是确保HDF5技术的持续开发和存储在HDF中数据的持续可访问性。

从网上得知.H5是HDF格式的一个版本,对于这种格式的读写,Python有其专门的模块提供支持。

image-20220315212632458

image-20220315211634111

一个HDF5文件就是一个容器,用于储存两类对象:datasets,类似于数组的数据集合;groups,类似于文件夹的容器,可以储存datasets和其它groups,groups类似于字典(dictionaries),dataset类似于Numpy中的数组(array)。

image-20220315211744549

image-20220315211805901

得到的这个对象并不是数组,而是HDF5 dataset,但它和Numpy的数组结构很相似,具有形状(shape)和数据类型(datatype)

image-20220315211902995

和数组相似的切片操作。

image-20220315212009518

将影像数据从中提取出来,然后转为Numpy数组,为后续分析作准备,

image-20220315212038635

提取出一份影像的矩阵数据,使用Matplotlib 作可视化 发现影像中间有一个空洞,一开始以为是我处理不当导致,后来发现是数据的问题。

output_15_0

H5保存为TIF

我朋友的目标文件格式是.tif,以便于在GIS软件进行空间分析。将矩阵保存为.tif文件需要gdal库的支持,有一个很重要的问题,但他给我的数据里没有元数据,也就是参考坐标、地理范围、空间分辨率等信息一概没有,如果空间分析中叠加其他数据,就是个大麻烦。

image-20220315212336835

到上一步,提取就全部完成,最后为了直观地展示2012-2020年间北极地区的海冰密度变化,借用Matplotlib库,基于2013年间的时间序列数据,做一个小动画。

image-20220315212429079

image-20220315212446626

制作基本的动画的步骤如下:

  • 创建画布和坐标系对象
  • 定义updateFig函数,修改画布数据
  • 调用FuncAnimation函数创建动画

image-20220315212510995

北极

参考:

1.https://docs.h5py.org/en/stable/
2.https://zh.wikipedia.org/wiki/HDF
3.https://segmentfault.com/a/1190000016670881

标签:HDF5,TIFF,保存,H5,HDF,文件格式,数组,数据
From: https://www.cnblogs.com/wsh233/p/16949673.html

相关文章