定义
网络通用数据格式既指一套自描述、与机器无关的二进制数据格式,也指支持创建、访问和共享面向数组型科学数据的软件函数库。[2] 其文件名通常以 .nc 为扩展名,互联网媒体类型登记为 application/netcdf 与 application/x-netcdf。[1] 该格式属于开放标准,经典格式与 64 位偏移量格式已被开放地理空间协会列为国际标准。[1]
所谓自描述,是指文件自身带有描述其余数据布局的头部信息,其中包括以名称与取值形式给出的任意元数据,读取时无需外部说明文件。[1] 所谓与机器无关,是指字节序等平台差异由软件库内部处理,同一份文件可在不同类型系统上读取。[1] 数据以利于按需取子集的方式存储,因此适合对大型多维数组只读取其中一部分。[1]
原理
netCDF 的核心数据模型由维、变量和属性 3 种要素构成:维定义数组的形状与长度,变量承载实际的数据数组,属性则用于存放单位和说明等元数据。[3] 这些要素组合成的组织方式便于把随时间与空间变化的物理量表示为数据集中的若干相关数组,这也是它被大气与海洋领域接受的原因之一。[2]
在文件层面,所有 netCDF 格式都采用头部加数据的结构,头部描述余下部分的格局,随后才是按变量排列的数组数据。[1] 软件库向上提供 C、Fortran、C++、Java 等语言的应用程序接口,向下负责处理字节序、数据布局等细节,接口、库与格式共同支撑科学数据的建立、访问和共享。[1]
netCDF-4 版本引入的增强模型在经典模型之上增加了可扩展维、字符串、64 位整数、无符号整数、组以及用户自定义类型,并加入压缩、分块、校验和与并行输入输出等与模型无关的能力。[4] 这些能力使同一套接口既能处理较小的经典数据集,也能应对更大的多维数据场景。[4]
发展历程
1985 年,美国国家航空航天局的国家空间科学数据中心设计并开发了通用数据格式(CDF),该格式最初用 FORTRAN 编写,只能在 VAX/VMS 环境下使用。[1] 1987 年 8 月,Unidata 成立关于 CDF 的工作组,提出扩展 Fortran 接口并定义 C 接口的设想;1988 年早些时候,Unidata 的格伦·戴维斯用 C 语言在网络表示层 XDR 格式之上开发出 netCDF 原型包,可在 UNIX 与 VMS 两类系统上运行。[1]
netCDF 项目始于 1989 年,由美国大气研究大学联盟的 Unidata 项目持续支持。[4] 1991 年发布 2.0 版,1993 年推出完全重写的 3 版接口,1997 年发布 3.3 版,3.x 系列末次发布为 3.6.3。[1][4] 2003 年 7 月,美国能源部阿贡国家实验室与西北大学贡献了并行 netCDF 扩展库 PnetCDF。[1]
2004 年,在美国国家航空航天局资助下,Unidata 与美国国家超级计算应用中心合作提升 netCDF 与 HDF5 的互操作性。[1] 2008 年,Unidata 发布 4.0 版,允许使用 HDF5 数据文件格式,同年一并发布关闭了新特性的 3.6.3 版。[1] 2010 年发布的 4.1.1 版增加了 C 与 Fortran 客户端经 OPeNDAP 访问远程数据子集的支持,并借助 PnetCDF 在经典格式上实现并行输入输出,此后 4.x 系列继续更新。[1]
应用
netCDF 常用于气候学、气象学和海洋学领域,例如天气预报与气候变化研究的数据存储与交换。[1] 它也用于地理信息系统,是许多 GIS 应用的输入与输出格式,并作为通用科学数据交换格式使用。[1] 开放地理空间协会指出,该格式虽最初为地球科学界开发,但可用于通信和存储各类多维数据。[2]
为促进文件处理与共享,气候与预报元数据约定定义了相关元数据,用以明确描述数据内容及其空间与时间属性。[2] 该约定与 netCDF 数据模型配合,使不同来源的数据在含义上可被一致理解,并支持应用对数据进行请求、聚合与共享。[2][3]
局限
netCDF 由美国国家航空航天局通用数据格式的概念模型演化而来,但两者后来各自独立发展,互不兼容,基于 netCDF 编写的程序无法直接读取 CDF 文件。[5]
netCDF-4 对 HDF5 的支持并不完整:使用增强模型中组与用户自定义类型等特性的文件,即使现有软件升级到 netCDF-4,也需新增代码才能识别;对 HDF5 与 HDF4 文件的部分访问最初仅限只读,写入仍受格式限制。[4][6]
并行输入输出并非对所有格式开放,netCDF-4 的并行能力面向 netCDF-4/HDF5 文件,经典格式则需借助 PnetCDF 扩展库才能并行读写;此外,并行吞吐的提升还依赖具备并行能力的文件系统。[6] 对多数追求与既有业务系统最大互操作性的场合,仍宜继续使用经典格式。[7]
参见
参考资料
- 维基百科,自由的百科全书 [引用日期2026-10-14]
- OGC NetCDF 标准地理空间数据编码多维数据 [引用日期2026-10-14]
- ConceptDEPRECATED [引用日期2026-10-14]
- Introduction to NetCDF [引用日期2026-10-14]
- DBpedia 2014 | DBpedia - DBpedia – Linked Data Fragments [引用日期2026-10-14]
- Unidata [引用日期2026-10-14]
- netcdf-hdf-final(PDF) [引用日期2026-10-14]