guild-book

NetCDF

NetCDF(network Common Data Form)网络通用数据格式是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据的描述和编码标准。

NetCDF简介

对程序员来说,它和zip、jpeg、bmp文件格式类似,都是一种文件格式的标准。netcdf文件开始的目的是用于存储气象科学中的数据,现在已经成为许多数据采集软件的生成文件的格式。利用NetCDF可以对网格数据进行高效地存储、管理、获取和分发等操作。由于其灵活性,能够传输海量的面向阵列(array-oriented)数据,目前广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域,例如,NCEP(美国国家环境预报中心)发布的再分析资料,NOAACDC(气候数据中心)发布的海洋与大气综合数据集(COADS)均采用NetCDF作为标准。

NetCDF的数据结构

NetCDF数据集(文件名后缀为.nc) 的格式不是固定的,它是使用者根据需求 自己定义的。一个NetCDF数据集包含维(dimensions)、变量(variables)和属性(attributes)三种描述类型,每种类型都会被分配一个名字和一个ID,这些类型共同描述了一个数据集,NetCDF库可以同时访问多个数据集,用ID来识别不同数据集。变量存储实际数据,维给出了变量维度信息,属性则给出了变量或数据集本身的辅助信息属性,又可以分为适用于整个文件的全局属性和适用于特定变量的局部属性,全局属性则描述了数据集的基本属性以及数据集的来源。一个NetCDF文件的结构包括以下对象:

NetCDF name{
    Dimensions:… //定义维数
    Variables:… //定义变量
    Attributes:… //属性
    Data:…//数据
}

NetCDF数据的主要特点

  1. 自描述性:它是一种自描述的二进制数据格式,包含自身的描述信息;
  2. 易用性:它是网络透明的,可以使用多种方式管理和操作这些数据;
  3. 高可用性:可以高效访问该数据,在读取大数据集中的子数据集时不用按顺序读取,可以直接读取需要访问的数据;
  4. 可追加性:对于新数据,可沿某一维进行追加,不用复制数据集和重新定义数据结构;
  5. 平台无关性:NetCDF数据集支持在异构的网络平台间进行数据传输和数据共享。可以由多种软件读取并使用多种语言编写,其中包括C语言C++FortranIDLPythonPerlJava语言等。

相关链接

  1. NetCDF Java
  2. Documentation