質問

私は現在、大量の反復データを扱ういくつかのプロジェクトに取り組んでいます (または少なくとも計画しています)。スプレッドシートやデータベースではうまく機能するが、XML では扱いにくい種類のデータ。:)

NetCDF はファイル形式としては優れたオプションのようです。ただし、私の作業は C# で行われており、利用可能な「公式」 NetCDF 実装はありません。IronPython で使用できる可能性がある「公式」 Python バージョンがあります。もう 1 つのオプションは、CodePlex の「NetCDF Library for .Net」ですが、かなり静かなようです (http://www.codeplex.com/netcdf).

これらのライブラリのいずれかを使用した人はいますか?何かお勧めはありますか?

役に立ちましたか?

解決

まず、NetCDF が正しい選択であると確信していますか?大量のデータを読み取る必要があり、すでに NetCDF をサポートしている他のプログラムと対話したい場合は、それがおそらく最適な選択です。大規模な多次元配列をサポートする、十分にサポートされている標準のファイル形式はそれほど多くありません。ただし、C# からファイルの読み取りと書き込みのみを行う場合、これはそれほど良い選択ではない可能性があります。

私は「クラシックな」NetCDF ファイル形式の大ファンです。コンパクトで非常にシンプルですが、多くの一般的な種類の多次元の適切に構造化されたデータをサポートするのに十分な柔軟性があります。従来の NetCDF 用の完全なパーサーを作成するのに 1 日しかかかりませんでした。また、従来の NetCDF ファイルの整形式の特殊なケースを出力するプログラムを作成するのに 1 時間しかかかりませんでした。純粋な C# NetCDF ライブラリを自分で実装することもできますが、それほど問題はありません。必要な機能だけを実装することから簡単に始めることができます。 仕様は次のとおりです。

残念ながら、NetCDF-4 はデータ形式として HDF-5 を使用することを選択しました。これにより複雑さが増し、完全な NetCDF パーサーを別の言語で作成することがさらに困難になります。HDF-5 は非常に汎用的であり、私の意見では、過剰設計されており、あまりにも多くの人に多すぎるものを提供しようとしています。単体テストの作成に 1 か月を費やす予定がない限り、これを直接操作することはお勧めしません。C# から netCDF-4 / HDF-5 を使用する必要がある場合、唯一の現実的なオプションは、SWIG などを使用して C ライブラリをラップすることです。

NetCDF for Python は C コードの単なるラッパーであるため、実際にはそれほど役に立ちません。ラップされた C ライブラリを使用する場合は、中間層として Python を使用するのではなく、単に C# ラッパーを作成した方がよいでしょう。

他のヒント

このトピックについてグーグルで検索したときにこれがトップの回答だったので、今これを追加しています。


到着予定時刻 以下の返信によると、別の Microsoft NetCDF ライブラリが現在利用可能です。

https://www.nuget.org/packages/SDSLite

科学データセット ライト 1.4.0

これは、netCDF、CSV、TSV ファイルを操作するためのクロスプラットフォーム ライブラリです。


この質問は最初に質問され、回答されて以来、Microsoft は NetCDF をサポートする Scientific DataSet ライブラリをリリースしました。

http://research.microsoft.com/en-us/downloads/ccf905f6-34c6-4845-892e-a5715a508fa3/

プロジェクトの説明

SDS ライブラリを使用すると、.Net 開発者は、科学モデリングでよく使用されるスカラー、ベクトル、行列、多次元グリッドの読み取り、書き込み、共有を簡単に行うことができます。CSV、NetCDF、その他のファイル形式をサポートします

ライブラリを使用するプログラムは、関連データと関連メタデータをコンパクトな自己記述パッケージに保存します。ライブラリには、一連のユーティリティとパッケージが付属しています。sds コマンド ライン ユーティリティ、DataSet Viewer アプリケーション、および Microsoft Excel 2007 (およびそれ以降のバージョン) 用のアドイン。詳細はリリースページをご覧ください。

そして現在、Microsoft は netCDF 用の新しいライブラリをリリースしており、NuGet 経由で入手できます。

https://www.nuget.org/packages/SDSLite

科学データセット ライト 1.4.0

これは、netCDF、CSV、TSV ファイルを操作するためのクロスプラットフォーム ライブラリです。

プロジェクトでは、ikvm を使用して C# で ucar netcdf 実装を使用しています。IKVM を使用すると、Java VM を使用せずに Java プロジェクトを .Net ライブラリに「変換」できます。パフォーマンスチェックは行っていませんが、C# で netcdf を取得する簡単な方法です :)。

http://www.ikvm.net/stories.html

http://www.unidata.ucar.edu/downloads/netcdf/netcdf-java-4/index.jsp

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top