参考:
| 01 | HDF_SD_START | 打开一个 SDS 模式的 HDF 文件。 | |
| 02 | HDF_SD_END | 关闭一个 SDS 模式的 HDF 文件。 | |
| 03 | HDF_SD_NAMETOINDEX | 返回变量索引。 | |
| 04 | HDF_SD_SELECT | 返回变量标识符。 | |
| 05 | HDF_SD_GETDATA | 读取变量数据。 | |
| 06 | HDF_SD_ENDACCESS | 结束到一个变量的通道。 | |
| 07 | HDF_SD_ATTRFIND | 返回属性索引。 | |
| 08 | HDF_SD_ATTRINFO | 读取属性数据。 | |
| 09 | HDF_SD_FILEINFO | 返回文件信息。 | |
| 10 | HDF_SD_GETINFO | 返回变量信息。 | |
| 11 | HDF_SD_CREATE | 创建一个变量。 | |
| 12 | HDF_SD_DIMGETID | 创建一个维度。 | |
| 13 | HDF_SD_DIMSET | 设置维度信息。 | |
| 14 | HDF_SD_ADDDATA | 写入变量数据。 | |
| 15 | HDF_SD_ATTRSET | 写入属性数据。 | 
NetCDF(network Common Data Form)由位于科罗拉多州波尔市的 Unidata 程序中心开发,主要应用于大气科学的研究。NetCDF 的数据模式具有简单性和灵活性的特点。NetCDF 文件的基本组成为变量、属性和维数:
参考:NetCDF 格式文件入门
参考:NetCDF 入门
从数学上来说,NetCDF 存储的数据就是一个多自变量的单值函数。 用公式来说就是 f(x,y,z,...) = value,函数的自变量 x,y,z 等在 NetCDF 中叫做维 (dimension) 或坐标轴 (axis),函数值 value 在 NetCDF 中叫做变量 (Variables)。而自变量和函数值在物理学上的一些性质,比如计量单位 (量纲)、物理学名称等等在 NetCDF 中就叫属性 (Attributes)。
注意:IDL读取数据与在其他软件上显示的数据位置相反,左上对右下!
注意:NetCDF记录数据与实际数据是通过一个数量关系获取的,如下图所示:
|    实际结果 = 显示结果 × scale_factor + add_offset  | 
         
数据:可以从 http://www.gumley.com 中下载这些例子的数据文件:
常用的 NetCDF 程序
| 名 称 | 功 能 | 名 称 | 功 能 | 
| NCDF_OPEN() | 打开一个 NetCDF 文件 | NCDF_ATTNAME() | 返回一个属性名称 | 
| NCDF_CLOSE | 关闭一个 NetCDF 文件 | NCDF_CREATE() | 创建一个 NetCDF 文件 | 
| NCDF_VARID() | 返回一个变量标识符 | NCDF_DIMDEF() | 创建一个维度 | 
| NCDF_VARGET | 读取一个变量 | NCDF_VARDEF() | 创建一个变量 | 
| NCDF_ATTGET | 读取一个属性 | NCDF_ATTPUT | 写入属性数据 | 
| NCDF_INQUIRE() | 返回文件信息 | NCDF_CONTROL | 开始或结束定义模式 | 
| NCDF_VARINQ() | 返回变量信息 | NCDF_VARPUT | 写入变量数据 | 
常用的标准 NetCDF 文件属性
| 属性名称 | 定 义 | 
| long_name | 详细描述变量的字符串(如“Northwards velocity component”) | 
| units | 描述变量单位的字符串(如“meters/second”) | 
| valid_range | 一个两元素的数组,包含变量有效的最小和最大值(如 [0.0, 5.0]), 该属性的类型必须和变量类型一致  | 
| scale_factor | 变量读取以后作用于变量的一个乘数(允许 float 值存在 short 或 byte 类型), 该属性的类型必须和需要的变量类型一致(如浮点型)  | 
| add_offset | 变量读取完毕,并且 scale_factor 使用后,加入到变量的一个偏值, 该属性的类型必须和需要的变量类型一致(如浮点型)  | 
| FillValue | 表示没有数据写入的一个值,该属性的类型必须和变量的类型一致 | 
| 序号 | 名称 | 
 功能说明  | 
语法 & 举例 | ||
| 01 | NCDF_OPEN | 
 打开一个 NetCDF 文件,返回值是这个文件的 NetCDF ID 值。  | 
 ;打开一个新的 HDF 文件  | 
||
| 02 | NCDF_CLOSE | 
 
 
  | 
 关闭一个 NetCDF 文件。  | 
 SDinterface_id = HDF_SD_START(‘test.hdf‘, /CREATE)  | 
|
| 03 | NCDF_VARID | 
 返回一个变量标识符,变量 ID,如果返回值为 -1 说明变量不存在。  | 
 SDinterface_id = HDF_SD_START(‘demo.hdf‘)  | 
||
| 04 | NCDF_VARGET | 
 读取一个变量。  | 
|||
| 05 | NCDF_ATTGET | 
 读取一个属性。  | 
 IDL> ;在下面的例子中,从 0 列、100 行开始读取 100×1 的变量子集,读取时在列的维度上元素一个隔一个地读取(左右)  | 
||
| 06 | NCDF_INQUIRE | 
 返回文件信息。  | 
 IDL> ;访问变量数据后,需要结束  | 
||
| 07 | NCDF_VARINQ | 
 返回变量信息。  | 
 IDL> ;读取属性数据  | 
||
| 08 | NCDF_ATTNAME | 
 返回一个属性名称。  | 
|||
| 09 | NCDF_CREATE | 
 创建一个 NetCDF 文件。  | 
 IDL> ;获取变量信息  | 
||
| 10 | NCDF_DIMDEF | 
 创建一个维度。  | 
|||
| 11 | NCDF_VARDEF | 
 创建一个变量。  | 
 ;新建HDF文件,并添加变量值 
  | 
||
| NCDF_ATTPUT | 
 写入属性数据。  | 
||||
| 12 | NCDF_CONTROL | 
 开始或结束定义模式。  | 
 SDinterface_id = HDF_SD_START(‘myhdf.hdf‘, /RDWR)  | 
||
| 13 | NCDF_VARPUT | 
 写入变量数据。  | 
|||
| HDF_SD_DIMGET | 
 返回一个 SD 数据集维度的信息。  | 
||||
| 15 | HDF_SD_ATTRSET | 
 写入属性数据。(将某个变量的某个属性值进行修改)  | 
|||
| HDF_SD_SETINFO | 
 设置变量信息。  | 
    | 
|||
| 
 
  | 
原文:http://www.cnblogs.com/alex-bn-lee/p/5815388.html