美文网首页
NetCDF官方读写终端ncdump和ncgen的用法

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

作者: JVM | 来源:发表于2020-06-19 18:52 被阅读0次

    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$

    相关文章

      网友评论

          本文标题:NetCDF官方读写终端ncdump和ncgen的用法

          本文链接:https://www.haomeiwen.com/subject/onsbxktx.html