首先,您确定 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 作为中间层。