NetCDF官方读写终端ncdump和ncgen的用法

NetCDF的下载和安装:

官方下载地址:NetCDF-C,截止到本文编辑时,已经发布到4.7.4版本。

这里要下载的内容,其实是NetCDF-C库的一个可执行文件(.exe),如下图所示:

可执行文件的下载位置

可以根据自己电脑的位数需要下载。这里的DAP我还不太清楚是什么意思,但我发现官方读取终端ncdump的命令行提示中,提到了DAP版本支持远程读取文件,可以在命令行中直接输入远程nc文件的URL即可读取。

ncdump官方命令行提示

下载后的可执行文件如下:

下载完成的exe文件

点击后根据提示安装即可,安装路径可以修改为其他盘符,不一定非要装在C盘。

安装完成后如下:

其中ncdump.exe、ncgen.exe以及NetCDF.dll就在bin目录中。


环境变量的配置

1、新建系统变量

变量值为netcdf的安装路径。

新建系统变量netCDF

2、将系统变量netCDF添加到Path中

在Path中新建环境变量,内容如下:

添加Path环境变量

ncdump.exe和ncgen.exe的使用

终端可以从cmd中启用,类似mysql.exe的终端。注意:这里启动cmd需要“以管理员身份运行”

进入cmd界面后,输入ncdump即可看到上面说的命令行提示信息。


NetCDF 的储存格式:

NetCDF 在储存的时候大致上分为两个区域,如同前面在讲到 CDL 档案的时候提到的样子。分为:

档头(header):主要用来记录变数名称、个数与型态;dimention名称、个数与型态;以及相关的说明内容。由于这一部分内容并没有用到实际资料储存的空间,所以使用的空间并不会多出来!

资料区(data):这一部分就是实际资料记录的地方啦!由于这一部分的空间有涉及你当初设定的变数型态,假如你的资料为整数,但是你记录的储存格式为倍精倍数,则这个区域的储存空间无形之中会变的很大!

基本上就仅分为这两个部分!所以你在看档案的时候,看前面就知道后面资料的型态!

ncgen:

这个小程式主要是用来将 CDL 档案转成 NetCDF 档案的工作!假设你已经写了一个 CDL 档案,名称为 netcdf.cdl ,你想将此档案转成 NetCDF 档,则只要下达:

# ncgen  -o  netcdf.ncf  netcdf.cdl

就可以了,语法为: ncgen  -o  [output filename]  [input filename]。

而且 ncgen 亦提供一个不错的选项,亦即将你的 netcdf.cdl 档案转成一个 fortran 程式,则你只要将此 程式 编译并执行后,则可以将 netcdf.cdl 转成 NetCDF 档案!

# ncgen  -f  netcdf.cdl > netcdf.f

上式中 netcdf.f 为 fortran 程式档。不过用此语法需要注意,因为此一语法仅适合比较小的 CDL 档案!

ncdump:

另外一个最有常用到的程式称为 ncdump ,主要的目的在于将 NetCDF 档案资料读成 ASCII 码的资料!由于 NetCDF 储存区分为两段,一个为档头、一个为资料区,若你只想读取资料区的变数使用情况,则可以下达:

# ncdump  -h  netcdf.ncf

则萤幕上将出现 netcdf.ncf 这个档案的档头资料。而如果你想要将所有的档案都输出成为 ASCII 码资料,则直接下达:

# ncdump  netcdf.ncf | more

即可,在上式中, "| more"这个指令作用是将 netcdf.ncf 这个档案以一个画面一个画面的方式展示之意。而如果你想要将画面的资料存成一个 CDL 档案,可以下达:

# ncdump  netcdf.ncf > netcdf.cdl

则程式将直接把 netcdf.ncf 档案转存成一个 netcdf.cdl 的 ASCII 码格式的档案!如此则你将看的到裡头的资料囉!

不过使用的时候要小心,因为一个 Models-3 输出档常常是几百 MB 的大小,如果你将 NetCDF 的资料直接存成 ASCII 码的档案,将耗费很多时间与空间!因此上,除非是你在除错或者是档案很小,否则不是很必要将档案转存成 ASCII 格式的档案!

而若你只想察看 netcdf.ncf 档案裡面一个名为 'TEMP' 的变数的话,你可以下达:

# ncdump  -v  TEMP netcdf.ncf

语法为:ncdump  -v  [变数名称] [档案名称]。这也是一个常用的参数喔!

内容源自:原内容


ncdump的官方命令行说明:

C:\WINDOWS\system32>ncdump

C: \WINDOWS\system32>ncdump

ncdump [-c|-h] [-v ...] [[-b|-f] [c|f]] [-l len] [-n name] [-p n[,n]] [-k] [-x] [-s] [-t|-i] [-g ...] [-w] [-Ln] file

ncdump[-c |-h][-v…][[-b |-f][c | f]][-l len][-n name][-p n[,n]][-k][-x][-s][-t |-i][-g…][-w][-Ln]文件

[-c]            Coordinate variable data and header information

[-c]坐标变量数据和标题信息

[-h]            Header information only, no data

[-h]只有标题信息,没有数据

[-v var1[,...]]  Data for variable(s) <var1>,... only

[-v var1[,…]]变量的数据<var1>,。。。只有

[-b [c|f]]      Brief annotations for C or Fortran indices in data

[-b[c | f]]数据中c或Fortran索引的简要注释

[-f [c|f]]      Full annotations for C or Fortran indices in data

[-f[c | f]]数据中c或Fortran索引的完整注释

[-l len]        Line length maximum in data section (default 80)

[-l len]数据段中的最大行长度(默认值80)

[-n name]        Name for netCDF (default derived from file name)

[-n name]netCDF的名称(默认从文件名派生)

[-p n[,n]]      Display floating-point values with less precision

[-p n[,n]]显示精度较低的浮点值

[-k]            Output kind of netCDF file

[-k]netCDF文件的输出类型

[-s]            Output special (virtual) attributes

[-s]输出特殊(虚拟)属性

[-t]            Output time data as date-time strings

[-t]将时间数据输出为日期时间字符串

[-i]            Output time data as date-time strings with ISO-8601 'T' separator

[-i]使用ISO-8601“T”分隔符将时间数据输出为日期-时间字符串

[-g grp1[,...]]  Data and metadata for group(s) <grp1>,... only

[-g grp1[,…]]组的数据和元数据<grp1>,。。。只有

[-w]            With client-side caching of variables for DAP URLs

[-w]带有DAP url变量的客户端缓存

[-x]            Output XML (NcML) instead of CDL

[-x]输出XML(NcML)而不是CDL

[-Xp]            Unconditionally suppress output of the properties attribute

[-Xp]无条件抑制properties属性的输出

[-Ln]            Set log level to n (>= 0); ignore if logging not enabled.

[-Ln]将日志级别设置为n(>=0);如果未启用日志,则忽略。

file            Name of netCDF file (or URL if DAP access enabled)

netCDF文件的文件名(如果启用了DAP访问,则为URL)

netcdf library version 4.7.2 of Oct 22 2019 11:54:23 $

netcdf库版本4.7.2,2019年10月22日11:54:23$

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342