如何在python中为hdf5堆栈定义空间参考系?

如何在python中为hdf5堆栈定义空间参考系?,python,hdf5,h5py,Python,Hdf5,H5py,我是h5py新手,我的实际任务是用MODIS子集创建hdf5堆栈。我可以创建包含所有漂亮数据的堆栈,但我无法创建或附加空间参考系统。目标是将单个数据集从堆栈加载到ArcGIS中的查看器中,并将其放置在正确的位置 如何为堆栈提供正确的空间/投影信息?您可以将空间坐标附加到具有维度比例的HDF5数据集-这些只是与第一个数据集关联的其他数据集。如果要指示特定标注具有某些物理单位,可以使用HDF5标注比例API标记该标注:H5DSset\u label() h5py中可以使用h5py.dims.crea

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


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

您可以将空间坐标附加到具有维度比例的HDF5数据集-这些只是与第一个数据集关联的其他数据集。如果要指示特定标注具有某些物理单位,可以使用HDF5标注比例API标记该标注:
H5DSset\u label()

h5py中可以使用
h5py.dims.create_scale()
h5py.dims.attach_scale()
h5py.dims.label来设置标签

例如,要将两个数据集附加到
foo.h5:/data
以指定纬度和经度,并以度为单位,可以首先按如下方式设置它们的标签(f是HDF5文件):

然后,要实际添加坐标,首先需要创建一个比例,然后附加数据集(其中
f['phi']
是一个预先存在的数据集,其中包含坐标):

然后,您可以使用访问标签

[dim.label for dim in f['data'].dims]
维度会随着时间的推移而变化

f['data'].dims[1][0]

[dim.label for dim in f['data'].dims]
f['data'].dims[1][0]
f['data'].dims[1]['latitude']