英语法语西班牙语

OnWorks 网站图标

ncgen3 - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 ncgen3

这是 ncgen3 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


ncgen3 - 从 CDL 文件生成 netCDF 经典或 64 位经典文件、C 程序或
一个 Fortran 程序

概要


ncgen3 [-b] [-c] [-f] [-k 文件种类] [-x] [-n] [-o netcdf_文件名] 输入文件

商品描述


NCGEN3 生成 netCDF 文件或 C 或 Fortran 源代码以创建 netCDF
文件。 输入到 NCGEN3 是对 netCDF 文件的一种称为
CDL(网络公共数据形式语言),如下所述。 如果没有指定选项
调用 NCGEN3, 它只是检查输入 CDL 文件的语法,产生错误
任何违反 CDL 语法的消息。 其他选项可用于创建
对应的 netCDF 文件,生成一个使用 netCDF C 接口的 C 程序
创建 netCDF 文件,或生成使用 netCDF Fortran 的 Fortran 程序
创建相同的 netCDF 文件的界面。

NCGEN3 可与配套程序一起使用 转储 执行一些简单的操作
netCDF 文件。 例如,要重命名 netCDF 文件中的维度,请使用 转储 以获得一个
netCDF 文件的 CDL 版本,编辑 CDL 文件以更改维度的名称,
并使用 NCGEN3 从编辑的 CDL 文件生成相应的 netCDF 文件。

配置


-b 创建(二进制)netCDF 文件。 如果 -o 选项不存在,默认文件名
将从 netCDF 名称(在 网盘 中的关键字
input) 通过附加“.nc”扩展名。 如果文件已经存在
指定的名称,它将被覆盖。

-c 产生 C 将创建与 netCDF 匹配的 netCDF 文件的源代码
规格。 C 源代码被写入标准输出。

-f 产生 Fortran语言 将创建与 netCDF 匹配的 netCDF 文件的源代码
规格。 Fortran 源代码被写入标准输出。

-o netcdf_文件
创建的二进制 netCDF 文件的名称。 如果指定了此选项,则意味着
该“-b" 选项。(此选项是必需的,因为无法写入 netCDF 文件
直接到标准输出,因为标准输出是不可查找的。)

-k 文件种类
使用 -k2 或 -k "64-bit offset" 指定生成的文件(或程序)应该
使用采用 2 位文件偏移的格式版本 64。 默认是使用
具有 1 位文件偏移量的版本 32(“经典”)格式,尽管这限制了
netCDF 文件、变量和记录的大小为
经典格式。 (NetCDF-4 将支持其他种类的 netCDF 文件,
“netCDF-4”和“netCDF-4 经典模型”。)注意:-v 也被接受表示
与 -k 相同的向后兼容性,但 -k 是首选,以匹配
相应的 ncdump 选项。

-x 不要用填充值初始化数据。 这可以加速大型 netCDF 的创建
文件很大,但后来尝试从生成的文件中读取未写入的数据
将不容易被发现。

示例


检查 CDL 文件的语法 `文件目录':

ncgen3 foo.cdl

从 CDL 文件`文件目录',生成一个等效的二进制 netCDF 文件,名为 `数控系统':

ncgen3 -o x.nc foo.cdl

从 CDL 文件`文件目录', 生成一个包含 netCDF 函数的 C 程序
创建名为 ` 的等效二进制 netCDF 文件所需的调用数控系统':

ncgen3 -c -o x.nc foo.cdl

用法


CDL 句法 总结
下面是一个 CDL 语法示例,描述了一个具有多个命名维度的 netCDF 文件
(纬度、经度和时间)、变量(Z、t、p、rh、纬度、经度、时间)、变量属性(单位、
long_name、valid_range、_FillValue)和一些数据。 CDL 关键字以粗体显示。 (这个
示例旨在说明语法; 一个真正的 CDL 文件会有更完整的
属性集,以便数据更完全地自我描述。)

网盘 foo { // CDL 中的示例 netCDF 规范

尺寸:
纬度 = 10,经度 = 5,时间 = 不限量的 ;

变量:
纬度(纬度),经度(经度),时间(时间);
浮动 Z(时间,纬度,经度),t(时间,纬度,经度);
翻番 p(时间,纬度,经度);
rh(时间,纬度,经度);

// 变量属性
纬度:long_name =“纬度”;
纬度:单位=“度_北”;
lon:long_name = "经度";
lon:units = "degrees_east";
time:units = "自 1992-1-1 00:00:00 以来的秒数";
Z:units = "地势米";
Z:valid_range = 0., 5000.;
p:_FillValue = -9999。;
rh:_FillValue = -1;

data:
纬度 = 0、10、20、30、40、50、60、70、80、90;
lon = -140、-118、-96、-84、-52;
}

所有 CDL 语句都以分号结尾。 可以使用空格、制表符和换行符
自由阅读。 注释可以跟在任何行的字符 `//' 之后。

CDL 描述由三个可选部分组成: 尺寸, 变量data,
以关键字开头 尺寸:, 变量:data, 分别。 变量
部分可能包含 变量 声明属性 任务.

一个网络CDF 尺寸 用于定义一个或多个多维的形状
netCDF 文件中包含的变量。 NetCDF 维度具有名称和大小。 在
netCDF 文件中的大多数一维可以具有 不限量的 大小,这意味着一个变量
使用此维度可以增长到任意长度(如文件中的记录号)。

A 变量 表示相同类型值的多维数组。 一个变量有
名称、数据类型和由其维度列表描述的形状。 每个变量可能
也有关联 属性 (见下文)以及数据值。 名称、数据类型、
变量的形状和形状由它在 变量 CDL 的一部分
描述。 变量可能与维度同名; 按照惯例,这样的
变量是一维的,包含它命名的维度的坐标。
维度不需要有相应的变量。

一个网络CDF 属性 包含有关 netCDF 变量或有关整个 netCDF 的信息
数据集。 属性用于指定诸如单位、特殊值、最大值等属性
和最小有效值、比例因子、偏移量和参数。 属性信息
由单个值或值数组表示。 例如,“units”是一个属性
由字符数组表示,例如“celsius”。 一个属性有一个关联
变量、名称、数据类型、长度和值。 与变量相反
用于数据,属性用于元数据(关于数据的数据)。

在 CDL 中,属性由变量和属性名称指定,以“:”分隔。 它
可以分配 全球化 与 netCDF 的任何变量不相关的属性作为
通过在属性名称前使用“:”来形成一个整体。 CDL 中属性的数据类型是
派生自分配给它的值的类型。 属性的长度是
分配给它的数据值的数量,或字符串中的字符数
分配给它。 通过分隔将多个值分配给非字符属性
带逗号的值。 分配给一个属性的所有值必须是相同的类型。

CDL 维度、变量和属性的名称必须以字母开头
字符或“_”,后续字符可以是字母数字或“_”或“-”。

可选的 data CDL 规范的部分是 netCDF 变量可能所在的位置
初始化。 初始化的语法很简单:变量名、等号、
和一个逗号分隔的常量列表(可能用空格、制表符和换行符分隔)
以分号结尾。 对于多维数组,最后一维不同
最快的。 因此,矩阵使用行顺序而不是列顺序。 如果值较少
提供比填充变量所需的更多,它扩展了一个依赖于类型的
`fill value',可以通过为特定变量提供一个值来覆盖它
名为“_FillValue”的属性。 常量的类型不需要与声明的类型匹配
一个变量; 例如,强制转换用于将整数转换为浮点数。 这
常量‘_’可用于指定变量的填充值。

原始 时间 类型
坦克 字符
字节 8位数据
16 位有符号整数
32 位有符号整数
INT (与 )
浮动 IEEE 单精度浮点数(32 位)
真实 (与 浮动)
翻番 IEEE 双精度浮点(64 位)

除了添加的数据类型 字节 而且缺乏 无符号, CDL 支持同
原始数据类型为 C。原始数据类型的名称是保留字
CDL,因此变量、维度和属性的名称不能是类型名称。 在
声明,类型名称可以用大写或小写指定。

字节与字符的不同之处在于它们旨在保存完整的八位数据,
零字节没有特殊意义,就像它对字符数据一样。 NCGEN3
转换 字节 声明 坦克 输出 C 代码中的声明和
非标 字节 输出 Fortran 代码中的声明。

Shorts 可以保存 -32768 和 32767 之间的值。 NCGEN3 转换 声明
输出 C 代码和非标准中的声明 整数*2 声明在
输出 Fortran 代码。

多头可以保存 -2147483648 和 2147483647 之间的值。 NCGEN3 转换
声明 输出 C 代码中的声明和 INTEGER 声明在
输出 Fortran 代码。 INT整数 被接受为同义词 在 CDL
声明。 既然有 C long 的 64 位表示的平台,它
可能更好地使用 INT 同义词,以免混淆。

浮点数可以保存大约 -3.4+38 和 3.4+38 之间的值。 他们的外部代表是
作为 32 位 IEEE 标准化单精度浮点数。 NCGEN3 转换 浮动
声明 浮动 输出 C 代码中的声明和 REAL 输出中的声明
Fortran 代码。 真实 被接受为同义词 浮动 在 CDL 声明中。

双打可以保存大约 -1.7+308 和 1.7+308 之间的值。 他们的外部代表
是 64 位 IEEE 标准规范化双精度浮点数。 NCGEN3
转换 翻番 声明 翻番 输出 C 代码中的声明和 双盒套装
精确 输出 Fortran 代码中的声明。

CDL 常量
分配给属性或变量的常量可以是任何基本的 netCDF 类型。
常量的语法类似于 C 语法,不同的是类型后缀必须是
附加到短裤和花车上,以区别于多头和双打。

A 字节 常量由单个字符或多个字符转义序列表示
用单引号括起来。 例如,
'a' // ASCII 'a'
'\0' // 一个零字节
'\n' // ASCII 换行符
'\33' // ASCII 转义字符(33 八进制)
'\x2b' // ASCII 加(2b 十六进制)
'\377' // 377 八进制 = 255 十进制,非 ASCII

字符常量用双引号括起来。 可以表示一个字符数组
作为用双引号括起来的字符串。 遵循通常的 C 字符串转义约定。
举个例子
"a" // ASCII `a'
"Two\nlines\n" // 一个 10 个字符的字符串,带有两个嵌入的换行符
"a bell:\007" // 一个包含 ASCII 铃声的字符串
请注意,netCDF 字符数组“a”将适合单元素变量,因为没有
假设终止 NULL 字符。 但是,字符数组中的零字节是
解释为有效字符的结尾 转储 程序,按照
C 约定。 因此,NULL 字节不应嵌入字符串中,除非
最后:使用 字节 数据类型,而不是包含零字节的字节数组。
NetCDF 和 CDL 没有字符串类型,只有定长字符数组,可能是
多维。

整数常量用于表示 16 位有符号量。 表格
常量是一个带有“s”或“S”的整数常量。 如果一个
常量以'0'开头,被解释为八进制,除非它以'0x'开头,
它被解释为一个十六进制常数。 例如:
-2s // 一个短的 -2
0123s // 八进制
0x7ffs //十六进制

整数常量用于表示 32 位有符号量。 表格
常量是一个普通的整数常量,尽管附加一个
可选的“l”或“L”。 如果一个 常量以‘0’开头,被解释为八进制,
除了如果它以‘0x’开头,它被解释为一个十六进制常量。 例子
有效的 常量包括:
-2
1234567890L
0123 //八进制
0x7ff // 十六进制

类型的浮点常量 浮动 适合表示浮点数
数据具有大约七位有效数字的精度。 一种形式 浮动 常数是
与附加了“f”或“F”的 C 浮点常量相同。 例如
以下都是可以接受的 浮动 常数:
-2.0f
3.14159265358979f // 将被截断到较低的精度
xnumx.f

类型的浮点常量 翻番 适合表示浮点数
数据的精度约为 XNUMX 位有效数字。 一种形式 翻番 常数是
与 C 浮点常量相同。 可以附加可选的“d”或“D”。 为了
例如以下都是可以接受的 翻番 常数:
-2.0
3.141592653589793
1.0-20
1.D

使用 onworks.net 服务在线使用 ncgen3


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad