C# NetCDF 庫
我目前正在(或至少計劃)幾個使用大量重複數據的項目。這種數據在電子表格或數據庫中執行良好,但在 XML 中很糟糕。:)
NetCDF 似乎是文件格式的絕佳選擇。但是,我的工作是用 C# 編寫的,並且沒有可用的“官方”NetCDF 實現。有一個“官方”Python 版本,我可能會與 IronPython 一起使用。另一種選擇是 CodePlex 上的“.Net 的 NetCDF 庫”,但它看起來很安靜(http://www.codeplex.com/netcdf)。
有沒有人使用過這些庫中的任何一個?你能提供任何建議嗎?
首先,您確定 NetCDF 是正確的選擇嗎?如果您想與其他需要讀取大量數據並且已經支持 NetCDF 的程序進行互動,那麼它可能是一個不錯的選擇。支持大型多維數組的標准文件格式並不多。但是,如果您只打算從 C# 中讀取和寫入文件,那麼它可能不是一個好的選擇。
我是“經典”NetCDF 文件格式的忠實粉絲。它緊湊且極其簡單,但足夠靈活,可以支持許多常見的多維結構良好的數據。我只花了一天時間就為經典 NetCDF 編寫了一個完整的解析器,並且只花了一個小時編寫了一個程序來輸出經典 NetCDF 文件的格式良好的特例。您可以自己實現一個純 C# NetCDF 庫,不會有太大的麻煩。您可以輕鬆地從僅實現您需要的功能開始。 這是規範。
不幸的是,NetCDF-4 選擇使用 HDF-5 作為其數據格式。它增加了很多複雜性,並使得用另一種語言編寫完整的 NetCDF 解析器變得更加困難。HDF-5 是非常通用的,在我看來,它被過度設計了——它試圖對太多人來說太多東西。我不建議嘗試直接使用它,除非您打算花一個月的時間編寫單元測試。如果你必須使用 C# 中的 netCDF-4 / HDF-5,你唯一現實的選擇是使用 SWIG 或類似的東西來包裝 C 庫。
請注意,Python 的 NetCDF 只是 C 程式碼的一個包裝器,所以它並不是真的很有幫助;如果你打算使用一個包裝好的 C 庫,你不妨只寫一個 C# 包裝器,而不是使用 Python 作為中間層。
我現在添加這個是因為這是我在Google上搜尋這個主題時的最佳答案。
ETA根據下面的回复,現在有另一個 Microsoft NetCDF 庫可用:
https://www.nuget.org/packages/SDSLite
科學數據集精簡版 1.4.0
這是一個用於處理 netCDF、CSV 和 TSV 文件的跨平台庫。
由於最初提出並回答了這個問題,微軟發布了一個支持 NetCDF 的科學數據集庫
http://research.microsoft.com/en-us/downloads/ccf905f6-34c6-4845-892e-a5715a508fa3/
項目描述
SDS 庫使 .Net 開發人員可以輕鬆地讀取、寫入和共享在科學建模中非常常見的標量、向量、矩陣和多維網格。支持CSV、NetCDF等文件格式
使用該庫的程序將相關數據和相關元數據儲存在一個緊湊的自描述包中。庫附帶一組實用程序和軟體包:sds 命令行實用程序、DataSet Viewer 應用程序和 Microsoft Excel 2007(及更高版本)的載入項。有關詳細資訊,請參閱發布頁面。