2008-09-12 20 views
3

私は現在、大量の反復データを扱う2つのプロジェクトを取り組んでいます(少なくとも計画中)。スプレッドシートやデータベースでうまくいくデータの種類ですが、XMLでは厄介です。 :)C#NetCDF Library

NetCDFはファイル形式として最適です。しかし、私の仕事はC#であり、NetCDFの公式な実装はありません。 IronPythonで使用できる「公式の」Pythonバージョンがあります。もう一つのオプションはCodePlexの "NetCDF Library for .Net"ですが、かなり静かなようです(http://www.codeplex.com/netcdf)。

これらのライブラリのいずれかを使用している人はいますか?あなたはどんな勧告も提供できますか?

+0

私はこれを使用していないので、それがどこから来るのかを考えてください。 CodePlexプロジェクトのリード開発者(彼がもう作業していない)は、代わりに[リンク](http://sds.codeplex.com/)を提案します。名前は** SDS:Scientific DataSetライブラリとツール**を意味し、NetCDFサポートを含みます。それはドキュメンテーションを持っているようで、ベータ版ではありません。私がこの2011年10月14日に書いたように、最後の更新は1年以上経過しています(2010-07-18)。 –

答えて

7

まず、NetCDFが正しい選択ですか?大量のデータを読み込み、NetCDFを既にサポートしている他のプログラムと対話したい場合は、おそらく大きな選択です。大規模な多次元配列をサポートする多くの標準的でよくサポートされているファイル形式はありません。しかし、C#からファイルを読み書きするだけであれば、それはあまり良い選択ではないかもしれません。

私は "古典的な" NetCDFファイル形式の大ファンです。これはコンパクトで非常にシンプルですが、一般的な種類の多次元の構造化されたデータを多数サポートできます。古典的なNetCDF用の完全なパーサを書くのに私は一日しかかかりませんでした。古典的なNetCDFファイルの整形された特別なケースを出力するプログラムを書くのに1時間かかりました。あなたは純粋なC#NetCDFライブラリを自分で実装することができ、それほど問題はありません。必要な機能だけを実装すれば簡単に始めることができます。 Here's the specification.

残念ながら、NetCDF-4はデータフォーマットとしてHDF-5を使用することを選択しました。複雑さが増し、完全なNetCDFパーサーを別の言語で書くのがはるかに難しくなります。 HDF-5は非常に一般的な目的であり、私の意見では、それは過度に強化されました - それはあまりにも多くの人々にとってあまりにも多くのことをしようとします。私はユニットテストを書いて1か月を費やす予定がない限り、直接それを使って作業しようとは勧めません。 C#のnetCDF-4/HDF-5を使用する必要がある場合、唯一の現実的な選択肢は、SWIGなどを使用してCライブラリをラップすることです。

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

+3

+1 SWIGに加えて、PInvoke interop assistantを使用することもできます。 .NETフレームワークチームによって作成されました。 http://clrinterop.codeplex.com/releases/view/14120 – MarkJ

9

私はこのトピックについてGoogleで検索するとき、これはトップの答えだったので、私は今、これを追加しています。


以下の回答パーETA、別のMicrosoftのNetCDFライブラリが利用可能になりましたあります:

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

科学的データセットLiteと1.4.0

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


この質問はもともとMicrosoftはNetCDFの

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

プロジェクトの説明

SDSライブラリは、それを作るためのサポートを持っている科学的データセットライブラリをリリースしました、尋ねたと答えたので、 .Net開発者がスカラー、ベクトル、行列、多次元グリッドを読み書きし共有することは、科学モデリングで非常に一般的です。

ライブラリを使用するプログラムは、コンパクトな自己記述パッケージに関連するデータと関連するメタデータを格納します。 ライブラリには、sdsコマンドラインユーティリティ、DataSetビューアアプリケーション、およびMicrosoft Excel 2007(およびそれ以降のバージョン)用のアドインが含まれています。詳細については、リリースページを参照してください。 NuGet経由で利用できる

2

そして今、MicrosoftはNetCDFファイルの新しいライブラリをリリースしました、:

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

科学的データセットLiteと1.4.0

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