向HDF5文件添加结构 - 相当于NetCDF"约定"对于HDF5

时间:2016-04-21 11:06:19

标签: hdf5 netcdf

NetCDF4具有Conventions约定,用于向NetCDF添加结构。我特意为HDF5寻找类似的东西。

我的一般目标是以标准方式为我的HDF5文件添加结构。我希望像HDF5使用images一样来定义类型,使用组和数据集上的属性,如:

CLASS: IMAGE
IMAGE_VERSION: 1.2
IMAGE_SUBCLASS: IMAGE_TRUECOLOR
...

但据我所知,图像规格是独立的。也许我应该重用NetCDF"约定"?

更新

我知道NetCDF4是在HDF5之上实现的。在这种情况下,我们有来自湍流模拟和实验而非地理数据的数据。该数据通常限于< = 4D。我们已经使用HDF5存储这些数据,但我们没有开发标准。伪标准格式刚刚在组织内部有机地发展。

2 个答案:

答案 0 :(得分:2)

标准的最佳选择实际上取决于您要存储的数据类型。 CF约定对于地理参考的测量数据最有用,例如用卫星测量的数据。了解您的数据包含哪些内容会很有帮助。

假设您有地理参考数据,我认为您有两种选择:

  1. 按照您的建议重复使用HDF中的CF约定。有更多的人在研究这个问题,谷歌的快速搜索给了我this
  2. HDF-EOS(免责声明,我从未使用过它)。它使用特定结构将数据存储在HDF文件中,但似乎需要使用扩展库。我没有找到结构的规范,只有API。在NASA之外似乎没有一个充满活力的社区。
  3. 因此,我可能会选择选项1:在HDF文件中使用CF约定,看看第三方工具(例如Panoply)是否可以使用它。

答案 1 :(得分:2)

NetCDF4文件实际上是使用HDF5格式(http://www.unidata.ucar.edu/publications/factsheets/current/factsheet_netcdf.pdf)存储的,但是它们对属性,尺寸等使用netCDF4约定。文件是自描述的,这是一个很大的优点。没有netCDF4的HDF5可以更自由地定义您的数据。是否有特定原因要使用HDF5而不是netCDF4?

我想说如果你没有任何特定的限制(比如netCDF4文件上的模型或可视化软件)你最好使用netCDF。 netCDF4可以被NCO / CDO运营商使用,ncl(ncl也接受HDF5),idl,netCDF4 python模块,雪貂等。我个人认为netCDF4非常便于存储气候或气象数据。已经有很多运营商已经为它编写过了,你不必为自己的数据制定一个标准的麻烦 - 它已经为你完成了。 CMOR(http://cmip-pcmdi.llnl.gov/cmip5/output_req.html)可用于编写符合CF的气候数据。它被用于最近的气候模型比较项目。

另一方面,如果您有其他类型的数据并且您正在寻找一些您需要更自定义的文件格式的特定功能,HDF5可能是值得的。您是否介意在评论中更好地说明您的需求?

更新:

不幸的是,变量和字段名称的标准对于HDF5文件来说比netCDF更不清晰和组织良好,因为这是CMIP或CORDEX等大气候建模项目的首选格式。问题基本上归结为使用EOSDIS或CF约定,但是找到当前维护的库,这些库实现了HDF5文件的这些标准并且具有清晰的文档并不容易(如果你可能不会提出这个问题)。

如果你真的只想要一个标准,NASA会在这里详细解释所有不同的可能的元数据标准:http://gcmd.nasa.gov/add/standards/index.html

有关信息,HDF-EOS和HDF5的格式不完全相同(HDF-EOS已包含制图数据,并且已针对地球科学数据进行了标准化),因此我不知道这种格式对您来说是否过于严格。此处介绍了使用此格式的工具:http://hdfeos.net/software/tool.php并在此汇总http://hdfeos.org/help/reference/HTIC_Brochure_Examples.pdf

如果您仍然喜欢使用HDF5,最好的选择可能是从NASA下载HDF5格式的文件以获取类似数据,并将其作为基础,以您选择的语言创建自己的工具。以下是使用HDF5,HDF4和HDF-EOS格式以及用于Python,MATLAB,IDL和NCL中的数据处理和可视化脚本的综合示例列表:http://hdfeos.net/zoo/index_openLAADS_Examples.php#MODIS

基本上问题是NASA提供了可用的工具,以便您可以使用他们的数据,但不一定能让您在自己的实验室设置中重新创建相似结构的数据。

以下是关于来自NASA的地球科学数据的hdf5的更多规格/信息: MERRA产品 https://gmao.gsfc.nasa.gov/products/documents/MERRA_File_Specification.pdf GrADS兼容HDF5信息 http://disc.sci.gsfc.nasa.gov/recipes/?q=recipes/How-to-Read-Data-in-HDF-5-Format-with-GrADS 美国宇航局大气科学数据中心的HDF数据处理工具: https://eosweb.larc.nasa.gov/HBDOCS/hdf_data_manipulation.html

希望这会有所帮助。