我是h5py新手,我的实际任务是创建一个包含MODIS子集的HDF5堆栈。我可以创建包含所有良好数据的堆栈,但不能创建或附加空间参考系统。目标是将单个数据集从堆栈加载到查看器中,就像在ArcGIS中一样,并且应该将其放置在正确的位置。
如何为堆栈提供正确的空间/投影信息?
发布于 2013-07-03 15:59:06
您可以使用尺寸比例将空间坐标附加到HDF5数据集-这些只是与第一个数据集关联的其他数据集。如果您希望指示某个特定维度具有特定的物理单位,则可以使用HDF5 dimension scale 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']https://stackoverflow.com/questions/17440842
复制相似问题