【224】◀▶ IDL NetCDF 文件操作说明
参考:I/O - NetCDF Routines —— NetCDF 操作函数
| 01 | NCDF_OPEN | 打开一个 NetCDF 文件。 | |
| 02 | NCDF_CLOSE | 关闭一个 NetCDF 文件。 | |
| 03 | NCDF_VARID | 返回一个变量 ID,varid。 | |
| 04 | NCDF_VARGET | 读取一个变量。 | |
| 05 | NCDF_ATTGET | 读取一个属性。 | |
| 06 | NCDF_ATTINQ | 返回一个关于 NetCDF 属性信息的结构体。 | |
| 07 | NCDF_ATTRENAME | 属性重命名。 | |
| 08 | NCDF_VARINQ | 返回变量信息。 | |
| 09 | NCDF_INQUIRE | 返回文件信息。 | |
| 10 | NCDF_ATTNAME | 返回一个属性名称。 | |
| 11 | NCDF_CREATE | 创建一个 NetCDF 文件。 | |
| 12 | NCDF_DIMDEF | 创建一个维度。 | |
| 13 | NCDF_VARDEF | 创建一个变量。 | |
| 14 | NCDF_ATTPUT | 写入属性数据。 | |
| 15 | NCDF_CONTROL | 开始或结束定义模式。 | |
| 16 | NCDF_VARPUT | 写入变量数据。 |
NetCDF(network Common Data Form)由位于科罗拉多州波尔市的 Unidata 程序中心开发,主要应用于大气科学的研究。NetCDF 的数据模式具有简单性和灵活性的特点。NetCDF 文件的基本组成为变量、属性和维数:
- 变量为标量或多维数组。NetCDF 所支持的 IDL 数据类型有 string、byte、int、long、float 和 double
- 属性包含一个变量或这个文件的附加性质。包含变量信息(如单位、有效范围、尺度因子等)的属性称作变量属性;包含文件信息的属性称作全局属性。属性可以是标量或一维数组,支持的数据类型为 string、byte、int、long、float 和 double
- 维数为长整形标量,记录了一个或多个变量的大小
参考: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 中下载这些例子的数据文件:
- image.nc
- sao.nc
常用的 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 值。 |
offset = [80, 20] |
||
| 02 | NCDF_CLOSE |
关闭一个 NetCDF 文件。 |
|||
| 03 | NCDF_VARID |
返回一个变量 ID,varid。 |
|||
| 04 | NCDF_VARGET |
读取一个变量。 |
|||
| 05 | NCDF_ATTGET |
读取一个属性。 |
;打开一个新的 NetCDF 文件 |
||
| 06 | NCDF_ATTINQ |
返回一个关于 NetCDF 属性信息的结构体。 |
|||
| 07 | NCDF_ATTRENAME |
属性重命名。 |
|||
| 08 | NCDF_VARINQ |
返回变量信息。 |
id = NCDF_OPEN('test.nc')
INQ_VID = NCDF_VARINQ(id, 'dist_image')
|
||
| 09 | NCDF_INQUIRE |
返回文件信息。 |
|||
| 10 | NCDF_ATTNAME |
返回一个属性名称。 |
|||
| 11 | NCDF_CREATE |
创建一个 NetCDF 文件。 |
;打开一个新的 NetCDF 文件,如果文件存在,直接将其毁掉 |
||
| 12 | NCDF_DIMDEF |
创建一个维度。 |
|||
| 13 | NCDF_VARDEF |
创建一个变量。 |
|||
| 14 | NCDF_ATTPUT |
写入属性数据。 |
|||
| 15 | NCDF_CONTROL |
开始或结束定义模式。 |
|||
| 16 | NCDF_VARPUT |
写入变量数据。 :是在每维中提取的间隔,默认为 [0, 0, ... , 0],意味着每个元素均被选中 |
|||
【224】◀▶ IDL NetCDF 文件操作说明的更多相关文章
- 【223】◀▶ IDL HDF 文件操作说明
参考:I/O - HDF Routines —— HDF 操作函数 01 HDF_SD_START 打开一个 SDS 模式的 HDF 文件. 02 HDF_SD_END 关闭一个 SDS 模式 ...
- 【179】IDL 读写 NetCDF 文件
NetCDF(network Common Data Form)由位于科罗拉多州波尔市的 Unidata 程序中心开发,主要应用于大气科学的研究.NetCDF 的数据模式具有简单性和灵活性的特点.Ne ...
- MeteoInfoLab脚本示例:创建netCDF文件(合并文件)
在MeteoInfoLab中增加了创建netCDF文件并写入数据的功能,这里利用合并多个netCDF文件为一个新的netCDF文件为例.1.创建一个可写入的netCDF文件对象(下面用ncfile表示 ...
- 【215】◀▶ IDL 文件操作说明 (黑底)
参考:I/O - General File Access Routines —— 基本文件操作函数 01 CD 修改当前的工作空间路径. 02 FILE_SEARCH 对文件名进行特定的查找. ...
- 【215】◀▶ IDL 文件操作说明
参考:I/O - General File Access Routines —— 基本文件操作函数 01 CD 修改当前的工作空间路径. 02 FILE_SEARCH 对文件名进行特定的查找. ...
- C中文件操作说明
r 以只读方式打开文件,该文件必须存在. r+ 以读/写方式打开文件,该文件必须存在. rb+ 以读/写方式打开一个二进制文件,只允许读/写数据. rt+ 以读/写方式打开一个文本文件,允许读和写. ...
- Python-气象-大气科学-可视化绘图系列(一)——利用xarray读取netCDF文件并画图(代码+示例)
本文原创链接:https:////www.cnblogs.com/zhanling/p/12192978.html 1 import numpy as np import xarray as xr i ...
- 【181】IDL 代码从 Windows 转移到 Linux
文件夹分隔符,Windows 是“/”,Linux 是“\”,按照程序,需要修改 通过 bash 运行 *.pro 文件,貌似只能运行没有参数的,有参数的需要写入到文件中 idl 的文件不能用大写字母 ...
- NetCDF 入门
一.概述 NetCDF全称为network Common Data Format,中文译法为“网络通用数据格式”,对程序员来说,它和zip.jpeg.bmp文件格式类似,都是一种文件格式的标准.ne ...
随机推荐
- WPF02(concept)
(转自http://www.cnblogs.com/huangxincheng/archive/2012/06/17/2552322.html)这些天从项目上接触到了wpf,感觉有必要做一个笔记,首篇 ...
- Spring里bean之间的循环依赖解决与源码解读
通过前几节的分析,已经成功将bean实例化,但是大家一定要将bean的实例化和完成bean的创建区分开,bean的实例化仅仅是获得了bean的实例,该bean仍在继续创建之中,之后在该bean实例的基 ...
- 日常沟通的 3 种模式zz
一.日常沟通的 3 种模式 根据NLP (Neuro-Linguistic Programming,神经语言程序学),日常沟通的 3 种模式分别是:上堆.下切和平行,它们是什么意思呢? 1.上堆 意思 ...
- Linux的基本使用
检测某个地址是否可以通信:ping xx.xx.xx.xx 检测某个端口是否开启:telnet xx.xx.xx.xx port 端口:用来区别不同服务 常用命令: 创建一个目录 /data mkdi ...
- kubernetes对象之Ingress
系列目录 概述 向外网暴露集群内服务,以使客户端能够访问,有以下几种方法,本文重点描述Ingress. LoadBalancer LoadBalancer一般由云服务供应商提供或者用户自定义,运行在集 ...
- ActiveMQ 消息持久化到Mysql数据库
[root@txylucky local]# tar -zxvf apache-activemq-5.15.8-bin.tar.gz[root@txylucky local]# mv apache-a ...
- 基于TCP的通信程序设计
套接字(Socket)是一种跨主机进程之间的双向通信接口,每个打开的套接字都可以通过一个套接字描述符来描述,因此可以使用低级文件编程库操作套接字. TCP是一中面向连接的网络传输控制协议.它每发送一个 ...
- linux 块设备驱动(二)——块设备数据结构
本文来源于: 1. http://www.cnblogs.com/dyllove98/archive/2013/07/01/3165567.html 块设备相关的数据结构以及接口: 块设备接口则相对复 ...
- EasyDarwin开源云平台接入海康威视EasyCamera摄像机之快照获取与上传
本文转自EasyDarwin团队成员Alex的博客:http://blog.csdn.net/cai6811376 EasyCamera开源摄像机拥有获取摄像机实时快照并上传至EasyDarwin云平 ...
- 用Darwin开发RTSP级联服务器(拉模式转发)(附源码)
源码下载地址:https://github.com/EasyDarwin orwww.easydarwin.org 在博客 在Darwin进行实时视频转发的两种模式 中,我们描述了流媒体服务器对源端音 ...