解法
气候与海洋科学依赖大型数组——温度网格、洋流、模型输出——但这些文件曾不透明:一个程序生成的二进制块,下一个程序无法读取,数值的含义写在论文或邮件里。NetCDF(网络通用数据格式)在Unidata项目中心开发,改变了这一约定。
其设计核心是自描述。netCDF文件包含所存数据的信息,以机器无关的格式存储,因此能在整数、字符和浮点数表示方式不同的计算机上读取。大数据集的子集可高效获取,甚至远程访问,且追加数据无需复制整个文件。
这使其成为社区标准,而非某个实验室的格式。Unidata称其为一系列库和机器无关的数据格式,也是共享科学数据的社区标准,提供C、C++、Java和Fortran接口;ECMWF描述netCDF常用于存储和分发科学数据,并采用CF等约定标准化元数据。
What it achieved
将描述放入数据文件内
为什么有效
自描述文件读取时无需外部文档。
机器无关性让同一文件可在不同架构间原样移动。
子集化使得大型数据集无需整体加载即可使用。
为所有主要语言提供免费库,消除了采用成本。
可以借鉴什么
当数据的寿命超过软件时,将元数据嵌入文件;自描述格式因文件自我解释而在工具更迭中存活。
后续
NetCDF成为气候与海洋数据的通用媒介——ECMWF在原生GRIB格式之外提供netCDF,CF约定标准化其中的元数据。NetCDF-4(2008年)增加现代功能,同时保持经典文件可读。
从这里,追溯依据
参考来源
- NetCDF Software unidata.ucar.edu
- What are NetCDF files and how can I read them confluence.ecmwf.int