73

科学データを保存する方法として、NetCDF と HDF5 についてプラス/マイナスを与えるのに十分な経験を持っている人はいますか?

私は HDF5 を使用しており、Java 経由で読み書きしたいと考えていますが、インターフェイスは本質的に C ライブラリのラッパーであり、混乱を招くことがわかったので、NetCDF は興味深いようですが、それについてはほとんど何も知りません。

編集:私のアプリケーションはデータロギング専用であるため、自己記述形式のファイルを取得します。私にとって重要な機能は、任意のメタデータを追加できること、バイト配列に追加するための高速書き込みアクセスができること、単一ライター/複数リーダーの同時実行性があることです (強く推奨されますが必須ではありません。 2 人の書き込み者が同じファイルを同時に開いて悲惨な結果にならないようにするためのメカニズムをサポートしているかどうかは述べていません)。私は HDF5 の階層的な側面が好きです (特に、「通常の」ファイルシステムのような階層よりもはるかに柔軟な有向非巡回グラフ階層が大好きです)、現在 NetCDF ドキュメントを読んでいます...ファイルの場合、おそらく私にはうまくいきません。:(

更新NetCDF-Javaは netCDF-4 ファイルから読み取りますが、階層グループをサポートしない netCDF-3 ファイルからのみ書き込みます。くそー。

2009 年 7 月 14 日更新: Java の HDF5 にひどく腹を立て始めています。利用可能なライブラリはそれほど優れたものではなく、Java の抽象化レイヤー (複合データ型) に関係する主要な障害がいくつかあります。C の優れたファイル形式ですが、負けたようです。>:(

4

7 に答える 7

32

NetCDF の代わりに HDF5 を強くお勧めします。NetCDF はフラットで、分類できないとしばらくすると非常に汚れてしまいます。もちろん、分類についても議論の余地がありますが、少なくともこの柔軟性はあります。

Q5Cost を書いたときに、HDF5 と NetCDF の正確な評価を行いました。最終結果は、HDF5 の手によるものでした。

于 2009-07-15T12:09:31.580 に答える
21

バージョン 4.0 (2008) 以降の NetCDF は、ほとんどの HDF5 ファイルを読み書きでき、強化されたデータ モデルを介して HDF5 の階層機能へのアクセスを提供します。

HDF5 は非常に機能が豊富で、いくつかの優れたパフォーマンス機能を備えています。

NetCDF の API はよりシンプルで、ツール ベースははるかに広くなっています。netCDF データを処理するツールは多数あります。

于 2011-07-18T10:43:36.243 に答える
11

私はこれが古い投稿であることを知っており、元の投稿者は彼らが移動したことを示していますが、ここにたどり着いた人のために... netCDF-Java ライブラリ (4.3.13 現在) は、 netCDF C ライブラリ。まだベータ版ですが、機能しますので、フィードバックをお待ちしております。

詳細については、netCDF-Javaリファレンスドキュメントを参照してください。

于 2013-05-26T15:03:53.100 に答える
7

1) Netcdf-4 C ライブラリは、HDF-5 C ライブラリの上にあるレイヤーです。API は HDF5 ライブラリよりも単純であると考えられていますが、最終的にはほぼ同じ機能を使用できます。Netcdf はグラフをサポートしていませんが、HDF5 はサポートしています。実際、HDF はグラフの循環を妨げません。

2) HDF グループには、HDF-5 C ライブラリの上に Java API があります。

3) Unidata には純粋な Java である Netcdf-Java ライブラリがありますが、HDF-5 しか読み取れません。

于 2011-12-01T23:57:37.097 に答える