1

我试图弄清楚如何从 HDF5 文件(测深属性网格 / BAG)中转储文本块。当我这样做时h5dump -d /BAG_root/metadata H11703_Office_5m.bag,以及我尝试过的任何其他事情时,我总是得到引用 XML 的每个字符的数据。是否有“简单”选项可以将原始数据内容转储到文件或终端?

DATASET "/BAG_root/metadata" {
   DATATYPE  H5T_STRING {
         STRSIZE 1;
         STRPAD H5T_STR_NULLTERM;
         CSET H5T_CSET_ASCII;
         CTYPE H5T_C_S1;
      }
   DATASPACE  SIMPLE { ( 5097 ) / ( H5S_UNLIMITED ) }
   DATA {
   (0): "<", "?", "x", "m", "l", " ", "v", "e", "r", "s", "i", "o", "n", "=",
   (14): """, "1", ".", "0", """, "?", ">", "
           ", "<", "s", "m",
   (25): "X", "M", "L", ":", "M", "D", "_", "M", "e", "t", "a", "d", "a",
4

3 回答 3

2

在我在 OpenNavSurf 邮件列表上提出该主题后,Marcus Cole 通过电子邮件向我发送了这个解决方案:

h5dump -b FILE -o H12279_VB_4m_MLLW_1of1.xml -d BAG_root/metadata H12279_VB_4m_MLLW_1of1.bag

这会写出一个干净的 XML 文件。

于 2011-11-02T14:01:08.333 回答
2

Re: Python & BAG, GDAL 1.7.0+ 支持 BAG 格式;例如:

from osgeo import gdal
bag = gdal.OpenShared(r"C:\DATA\NGDC\H11555_2m_1.bag")
bagmetadata = bag.GetMetadata("xml:BAG")[0]
于 2011-11-02T14:38:45.980 回答
0

数据存储为包含 5097 个单个字符串 ( STRSIZE 1) 的数组。要转储文本,它应该被存储为一个真正的字符串(例如,在一个标量数据空间中)。

所以我认为你不能h5dump单独使用它,你可能必须使用sed或你最喜欢的正则表达式工具来处理转储。

于 2011-11-02T03:37:25.120 回答