NetCDF

✍ dations ◷ 2025-10-31 09:07:38 #NetCDF

网络通用数据格式(英语:Network Common Data Form,NetCDF)是一种自描述、与机器无关、基于数组的科学数据格式,同时也是支持创建、访问和共享这一数据格式的函数库。该项目主页位于美国大气科学研究大学联盟(UCAR)的Unidata规划网站。它也是netCDF软件、标准开发、更新等的主要来源。NetCDF格式是一种开放标准。NetCDF的经典格式和64位偏移量格式是开放地理空间协会采用的国际标准。

该项目开始于1989年,UCAR目前对其积极支持,在新发行版中改进性能、增加功能并修正缺陷,当前版本系列是netCDF-4,在编译时也可以选择只建造netCDF-3库。

1985年美国国家航空航天局(NASA)的国家空间科学数据中心(NSSDC)设计并开发了通用数据格式(CDF),CDF最初是用FORTRAN写成并只能在VAX/VMS环境下获得。Unidata在1987年8月成立了关于CDF的工作组,提议探索与NASA协作扩展CDF的FORTRAN接口,定义C接口,并允许用一个单一调用访问数据聚集,同时要维持与现存NASA接口兼容的可能性。在1988年早些时候,Unidata的Glenn Davis用C开发了原型netCDF包,它位于网络表示层XDR格式的上层。这个原型证明了CDF接口的基于XDR的一个单一文件实现可以在可接受代价下完成,而结果的程序可以在UNIX和VMS系统二者上实现。但这也说明了提供一个小的、可移植的、兼容于NASA CDF的有想要的通用性的FORTRAN接口是不实际的。NASA的CDF和Unidata的netCDF从此独立发展,但新近的CDF版本与netCDF共享了很多特征。

1991年Unidata发布了netCDF版本2.0,1997年发布了版本3.3。2003年7月美国能源部的阿贡国家实验室和西北大学贡献了叫做并行-NetCDF(或称PnetCDF)的一个netCDF并行计算扩展。2004年在NASA的资助下,Unidata与美国国家超级计算应用中心(NCSA)开始合作增进netCDF和HDF5的互操作性。2008年Unidata发布了版本4.0,允许使用HDF5数据文件格式。同时发布了版本3.6.3,它与版本4.0是同样的代码但关掉了netcdf-4特征,目前netCDF-3库仍然在世界各地被广泛使用。2010年Unidata发布了版本4.1.1,增加了对C和Fortran客户端通过OPeNDAP(英语:OPeNDAP)访问远程数据的特定子集的支持,并使用PnetCDF库支持在netCDF经典格式(CDF-1、CDF-2和2012年推出的CDF-5)上的并行I/O。

netCDF库支持netCDF文件的多种不同的二进制格式:

所有格式都是“自描述的”。 这意味其中有一个头部,它描述文件余下部分的格局,特别是数组数据,连同以名称/值特性形式的任意文件元数据。这个格式是跨平台的,涉及的问题如字节序在软件库中解决。数据以允许有效的构造子集的方式来存储。

起始于版本4.0,netCDF API允许使用HDF5数据格式。NetCDF用户可以创建HDF5文件从而获得netCDF格式不具备的利益,比如更大的文件和多重无限制的维度。

完全后向兼容,可访问旧有netCDF文件并支持以前版本的C和Fortran API。

netCDF常用于气候学、气象学和海洋学应用,如天气预报、气候变化;也用于地理信息系统应用,是很多GIS应用的输入/输出格式;并用于通用科学数据交换。从它的站点引述如下:netCDF(网络公用数据格式)是用于面向数组数据访问的一组接口,和针对C、Fortran、C++、Java和其他语言的一套自由发行的数据访问库。netCDF库支持用来表示科学数据的一种机器无关格式。接口、库和格式一起支持创建、访问和共享科学数据。

UCAR发布的软件库提供了对netCDF文件的读写访问,编码和解码所需的数组和元数据。核心库是用C编写的,并为 C、C++应用提供API,为Fortran应用提供两个API,一个给Fortran 77,一个给Fortran 90。Unidata还开发维护一个独立实现,使用100% Java写成,它扩展了核心数据模型并增加了额外的功能。还可获得其他语言的到基于C库的netCDF的接口,包括R(ncdf、ncvar和RNetCDF包)、Perl数据语言(英语:Perl Data Language)、Python、Ruby、Haskell、Mathematica、MATLAB、IDL和Octave。API调用规定在不同语言间非常类似,尽管有着不可避免的不同语法。版本2的API调用与版本3的调用相当不同,但出于后向兼容而被版本3和版本4支持。应用编程者使用受支持语言,在正常情况下不需要关心文件结构自身,即使它是作为开放格式而获得的。

现在已经写出了使用netCDF文件的范围广泛的应用程序。它们的范围从命令行实用程序到图形可视化包。下面列出其中一小部分,而更长的列表可见于UCAR网站列表:

气候和预报(CF)约定是对地球科学数据的元数据约定,意图用于促进处理和共享通过NetCDF应用编程接口(API)创建的文件。CF约定于2003年创建,普遍化并扩展了早期的协作海洋/大气研究数据服务(COARDS)约定和对气候数据的Gregory/Drach/Tett(GDT)约定。CF约定定义了与数据包含在同一个文件中的元数据,从而使得文件“自我描述”,提供对在每个变量中的数据表示的是什么的确切描述,和数据的空间的和时间的属性的确切描述,包括关于网格的信息,比如网格单元边界和单元平均方法。这使得能够使用来自不同来源的数据,确定哪些数据是可比较的,并允许建造有着强力的提取、重新插值和显示能力的应用。Unidata 在2007年至2011年开发了LibCF库。

并行-NetCDF扩展建造在MPI-IO之上,它是对MPI的I/O扩展。使用高层netCDF数据结构,并行-NetCDF库可以进行优化而在多处理器间高效分配文件读和写应用。并行-NetCDF包只可以读/写经典和64-bit偏移量格式。并行-NetCDF不能读或写在netCDF-4.0中可获得的基于HDF5的格式。并行-NetCDF包使用不同但类似的Fortran和C的API。

在Unidata netCDF库中自从版本4.0已经支持对HDF5数据文件的并行I/O。Unidata NetCDF C库自从版本4.1.1使用并行-NetCDF库支持对经典和64-bit偏移量文件的并行 I/O,但使用NetCDF API。

netCDF C库,和基于它的库:Fortran 77和Fortran 90、C++和所有第三方库,自从版本4.1.1开始可以读一些其他数据格式的数据。HDF5格式的数据可以读取,但有一些限制。使用HDF4科学数据(SD)API创建的HDF4格式的数据,可以用netCDF C库读取。

NetCDF-Java库目前已经能够读取很多文件格式和远程访问协议,并且正在开发对一些其他的格式的支持。因为这些都是通过NetCDF API透明的进行访问,NetCDF-Java库被称为实现了科学数据集的“通用数据模型”。

相关

  • 克洛德·沙布罗尔克劳德·夏布洛尔(法语:Claude Chabrol;1930年6月24日-2010年9月12日)是一位法国电影导演,为1950年代末期开始的法国电影新浪潮的先驱导演之一,与法兰索瓦·特吕弗、尚卢·戈达尔、
  • 物恋物恋(Object sexuality)是一种对于特定非生命物体的性癖好,指对事物产生的身体吸引或爱慕情绪。有一些恋物者信仰泛灵论,相信所爱慕的物体具有灵魂、智力、情感,甚至能够沟通。直
  • 全科医师人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学家庭医学科医师(英文:General Practitio
  • 卡德卡莱卡德卡莱(Khadkale),是印度马哈拉施特拉邦浦那县的一个城镇。总人口9792(2001年)。该地2001年总人口9792人,其中男性5052人,女性4740人;0—6岁人口1423人,其中男736人,女687人;识字率69
  • 崔秉灿崔秉灿(朝鲜语:최병찬 ,1997年11月12日-)。韩国男艺人,在韩国男子团体VICTON内担任副唱、门面。2016年11月9日,透过首张迷你专辑《Voice To New World》,以主打歌《I'm fine》出道
  • 中日经济知识交流会“中日经济知识交流会”是1981年由中国国务院副总理谷牧和日本外交大臣大来佐武郎共同发起的友好合作定期对话机制,为推动中日经济的合作与发展发挥了重要作用。
  • 银行山银行山是台湾中部旅游景点,位于彰化市东南方。银行山周边土地多数属于彰化银行而得名,因此涵盖范围彰化市石牌里东棱一带。多数人泛指银行山即是二崩崁山,二崩崁山又名寿乐山,海
  • 洪准杓洪准杓(韩语:홍준표,1954年12月5日-),是大韩民国的政治人物,2012年12月20日起担任庆尚南道知事。2017年大韩民国总统选举自由韩国党总统候选人。2017年7月3日当选自由韩国党新任党魁。洪准杓小时候家境贫寒,中学就读岭南高等学校(朝鲜语:영남고등학교),后进入高丽大学法学院,并通过律师资格考试(朝鲜语:사법시험 (대한민국))获得律师资格成为检察官,1996年参选韩国国会选举首尔松坡区议员当选而进入政坛。2014年6月4日,洪准杓在大韩民国第六届广域地方自治团体长选举(朝鲜语:대한민국 제
  • 博格丹·洛邦特博格丹·洛邦特(Bogdan Ionuț Lobonț)是一位罗马尼亚足球运动员,在场上司职门将。他现在效力于意大利足球甲级联赛球队罗马足球俱乐部。
  • 贝汉津贝汉津(约1845年-1906年12月10日)为第11任(不计算阿丹多赞(英语:Adandozan)在内)达荷美王国(今属贝宁)的国王。贝汉津原名孔杜(Kondo),在其登基为王后,方改名为贝汉津。贝汉津是最后一任握有实权的达荷美君主,在第二次法国-达荷美战争(英语:Second Franco-Dahomean War)期间,他积极带领人民抵抗法国对达荷美王国的侵略与殖民,最终在实力悬殊的情况下,贝汉津于1894年向法国人投降,并在其余生被流放至马提尼克、阿尔及利亚等地。