NetCDF(network Common Data Format)最早是由美国国家科学委员会资助之计划--Unidata --所发展,其用意是在Unidata计划中不同的应用项目下,提供一种可以通用的数据存取方式,数据的形状包括单点的观测值、时间序列、规则排列的网格、以及人造卫星或雷达之影像档案。其自行说明表头的理念是参照NASA Goddart国家太空资料中心在1987年所发表的论文。
NetCDF 可简单的视为一种存取接口,任何使用 NetCDF 存取格式的档案就可称为 NetCDF 档案;至于 NetCDF 这套软件的功能,在于提供C、Fortran、C++、Perl、或其它语言I/O的链接库,以让程序发展者可以读写数据文件,其本身具有说明的能力、并且可以跨越平台和机器的限制。每一个NetCDF档案可以含括多维度的、具有名称的变量,包括长短的整数、单倍与双倍精度的实数、字符等,且每一个变量都有其自我介绍的数据,包括量度的单位、全名及意义等文字说明,在此摘要性的檔头之后,才是真正的数据本身。
为何 NetCDF 适合于科技技术方面的使用呢?这是因为这个接口是一种多维的数据分布系统,所以由这个接口所产生的档案,具有多维的数据格式,当你需要其中的某一笔数据时,程序将不会从第一笔数据读到你所需要的数据处,而是由 NetCDF 软件直接存取那一个数据!如此一来将会大量的降低模式运算时数据存取的时间。例如对于支持 NetCDF 格式的绘图软件来说,只要有此格式的数据文件即可针对任一变数的任一维度或多维度(包括时间)变化进行绘图,而且不论这个变量的数据是存在档案中的那个地方,均可直接读取该值而不用循序读取在它前面数据后再读取该值,如此可大大减少绘图所需的时间。
另外,在三维空气品质模式仿真中,需要读入的排放源数据库及空气品质模式,并非仅读取一次,模式是一直持续的在读取与计算。例如你模拟一个七天的事件,总共 168 个小时,那第一个小时读入数据后,程序便开始运算,等算完了,模式会再由数据文件读入第二小时的数据,以此类推,OK!那你知道一般传统档案如何读檔吗?假设共有10000笔数据,而你要的是200-300及9800-9900这两段数据,则程序需要由第一笔数据读到第9900笔资料后,舍弃不必要的 9700 笔数据后,才可得到你的 200 笔数据。那你晓得 NetCDF 的优点了吗?没错,如上面所述, NetCDF 只需要直接读取 200 笔数据就可以了,对,他可以直接到数据所在的那一个储存格去将数据取出!但也就是因为这样, NetCDF 所需要的空间是很大的,因为他多了很多的变量宣告项目,与其具有既定的储存格式所致!
Anyway,简单的说, NetCDF 是一套软件,也是一种存取接口,这种接口的优点在于『其数据具有说明的文件头』,所以数据不会被误用;而其存取方式为『直接至该笔数据读取』,因此可以省去很多不必要的读取时间;另外,这种档案是一种可以『跨平台操作』读取的格式,因此,不论你是以何种操作系统制作 NetCDF 档案,在其它平台之下,还是可以使用这样的数据文件的!