我是h5py的新手,我的实际任务是使用MODIS子集创建一个hdf5-stack。我可以创建包含所有漂亮数据的堆栈,但我无法创建或附加空间参考系统。目标是将单个数据集从堆栈加载到ArcGIS中的查看器中,并且应将其放置在正确的位置。
如何为堆栈提供正确的空间/投影信息?
答案 0 :(得分:1)
您可以使用尺寸标度将空间坐标附加到HDF5数据集 - 这些只是与您的第一个数据集关联的其他数据集。如果您想表明特定维度具有某些物理单位,您可以使用HDF5维度比例API H5DSset_label()
来标记维度。
h5py中可以使用h5py.dims.create_scale()
和h5py.dims.attach_scale()
以及h5py.dims.label
来设置标注。
例如,要将两个数据集附加到foo.h5:/data
以指定纬度和经度,并且它们以度为单位,您可以先按如下方式设置其标签(f为HDF5文件):
f['data'].dims[0].label = 'degrees'
f['data'].dims[1].label = 'degrees'
然后要实际添加坐标,首先需要创建一个比例,然后附加数据集(其中f['phi']
是预先存在的数据集,其坐标为):
f['data'].dims.create_scale(f['phi'], 'latitude')
f['data'].dims[1].attach_scale(f['phi'])
然后,您可以使用
访问标签[dim.label for dim in f['data'].dims]
并且尺寸标注自己
f['data'].dims[1][0]
或
f['data'].dims[1]['latitude']