没有合适的资源?快使用搜索试试~ 我知道了~
最近研究大数据,用到了NetCDF文件的解析,于是搜索了网络上的相关资源,记录一下。 一、概述 NetCDF全称为network Common Data Format,中文译法为“网络通用数据格式”,它是由美国大学大气研究协会的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据描述和编码标准。 NetCDF和zip、jpeg、bmp文件格式类似,都是一种文件格式的标准。NetCDF文件开始时目的是用于存储气象科学中的数据,现在已经成为许多数据采集软件生成文件的格式。利用NetCDF可以对网络数据进行高效地存储、管理、获取和分发
资源详情
资源评论
资源推荐
NetCDF简介与格式入门简介与格式入门
最近研究大数据,用到了NetCDF文件的解析,于是搜索了网络上的相关资源,记录一下。
一、概述一、概述
NetCDF全称为network Common Data Format,中文译法为“网络通用数据格式”,它是由美国大学大气研究协会的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享
的数据描述和编码标准。
NetCDF和zip、jpeg、bmp文件格式类似,都是一种文件格式的标准。NetCDF文件开始时目的是用于存储气象科学中的数据,现在已经成为许多数据采集软件生成文件的格式。利用NetCDF可以对
网络数据进行高效地存储、管理、获取和分发等操作。由于其灵活性,能够传输海量的面向阵列(array-oriented)数据,目前广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。
从数学上来说,netcdf存储的数据就是一个多自变量的单值函数。用公式来说就是f(x,y,z,…)=value,函数的自变量x,y,z等在netcdf中叫做维(dimension)或坐标轴(axis),函数值value在netcdf中叫做
变量(Variables)。而自变量和函数值在物理学上的一些性质,比如计量单位(量纲)、物理学名称等等在netcdf中就叫属性(Attributes)。
二、相关网站二、相关网站
NetCDF官方网站:https://www.unidata.ucar.edu/software/netcdf/
github地址:https://github.com/Unidata/netcdf-c
NetCDF指导文档:https://www.unidata.ucar.edu/software/netcdf/docs/index.html
三、文件格式三、文件格式
NetCDF文件后缀为.nc,文件中的数据结构包含维(dimensions)、变量(variables)和属性(attributes)三种描述类型,每种类型都会被分配一个名字和一个ID。
NetCDF name{
Dimensions:… //定义维数
Variables:… //定义变量
Attributes:… //属性
Data:…//数据
}
1. 变量(Variables)
变量对应着真实的物理数据。比如我们家里的电表,每个时刻显示的读数表示用户的到该时刻的耗电量。这个读数值就可以用netcdf里的变量来表示。它是一个以时间为自变量(或者说自变量个数为一维)的单值函数。再比如在气象学中要作出一个气压图,就是“东经xx度,北纬yy度的点的大气压值为多少帕”,这是一个二维单值函数,两维分别是经度和纬度。函数值为大气压。
从上面的例子可以看出,netcdf中的变量就是一个N维数组,数组的维数就是实际问题中的自变量个数,数组的值就是观测得到的物理值。变量(数组值)在netcdf中的存储类型有六种,ascii字符(char) ,字节(byte), 短整型(short), 整型(int), 浮点(float), 双精度(double). 显然这些类型和C语言中的类型一致。
2. 维(Dimensions)
一个维对应着函数中的某个自变量,或者说函数图象中的一个坐标轴,在线性代数中就是一个N维向量的一个分量(这也是维这个名称的由来)。在netcdf中,一个维具有一个名字和范围(或者说长度,也就是数学上所说的定义域,可以是离散的点集合或者连续的区间)。在netcdf中,维的长度基本都是有限的,最多只能有一个具有无限长度的维。
3. 属性(Attributes)
属性对变量值和维的具体物理含义的注释或者说解释。因为变量和维在netcdf中都只是无量纲的数字,要想让人们明白这些数字的具体含义,就得靠属性这个对象了。
在netcdf中,属性由一个属性名和一个属性值(一般为字符串)组成。比如,在某个cdl文件(cdl文件的具体格式在下一节中讲述)中有这样的代码段:
temperature:units = "celsius" ;
前面的temperature是一个已经定义好的变量(Variable),即温度,冒号后面的units就是属性名,表示物理单位,=后面的就是units这个属性的值,为“celsius” ,即摄氏度,整个一行代码的意思就是温度这个物理量的单位为celsius,很好理解。
4. 数据(data)
NetCDF支持的数据类型是char,byte,short,int。float或者real,double。NetCDF接口对数据的访问是直接访问的。
四、举个例子四、举个例子
netcdf文件如下:
netcdf simple_xy {
dimensions:
x = 6 ;
y = 12 ;
variables:
int data(x, y) ;
data:
data =
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71 ;
}
这个结构包括三个部分
1、维的定义,以dimensions:关键字开头
dimensions:
x = 6 ;
weixin_38548589
- 粉丝: 7
- 资源: 909
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0