首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python语言中定义hdf5堆栈的空间参考系统?

如何在Python语言中定义hdf5堆栈的空间参考系统?
EN

Stack Overflow用户
提问于 2013-07-03 14:09:47
回答 1查看 781关注 0票数 0

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

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

EN

回答 1

Stack Overflow用户

发布于 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文件):

代码语言:javascript
复制
f['data'].dims[0].label = 'degrees'
f['data'].dims[1].label = 'degrees'

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

代码语言:javascript
复制
f['data'].dims.create_scale(f['phi'], 'latitude')
f['data'].dims[1].attach_scale(f['phi'])

然后,可以使用以下命令访问标注

代码语言:javascript
复制
[dim.label for dim in f['data'].dims]

维度会自动缩放为

代码语言:javascript
复制
f['data'].dims[1][0]

代码语言:javascript
复制
f['data'].dims[1]['latitude']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17440842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档