0

我是 h5py 的新手,我的实际任务是创建一个带有 MODIS 子集的 hdf5 堆栈。我可以创建包含所有好数据的堆栈,但我无法创建或附加空间参考系统。目标是将堆栈中的单个数据集加载到 ArcGIS 中的查看器中,并且应将其放置在正确的位置。

如何为堆栈提供正确的空间/投影信息?

4

1 回答 1

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']
于 2013-07-03T07:59:06.273 回答