grd2xyz
- 官方文档:
- 简介:
将网格文件转换成表数据
grd2xyz 读取一个或多个二进制2D网格文件,并将XYZ数据以ASCII或二进制格式 写到标准输出中。ASCII输出的格式由参数 FORMAT_FLOAT_OUT 控制,也可以以单精度或双精度浮点数的形式储存为二进制格式,还可以只输出Z值而不包含 XY坐标数据。
语法
gmt grd2xyz grid [ -C[section/]master|cpt|color\(_1\),color\(_2\)[,color\(_3\),…][+h[hinge]][+idz][+u|Uunit][+sfname] ] [ -F[f|i] ] [ -Rregion ] [ -V[level] ] [ -W[a|weight] ] [ -Z[flags] ] [ -bobinary ] [ -dnodata[+ccol] ] [ -fflags ] [ -ho[n] ] [ -oflags ] [ -qoflags ] [ -sflags ] [ --PAR=value ]
必选选项
- grid
要转换的2D网格文件
可选选项
- -C[section/]master|cpt|color\(_1\),color\(_2\)[,color\(_3\),…][+h[hinge]][+idz][+u|Uunit][+sfname]
基于 z 值确定颜色分量。通过指定主 CPT 名称,CPT 文件或用逗号分割的多个颜色, 以创建一个 CPT。如果不指定参数,则在现代模式下使用当前 CPT(如果可用)。 支持以下多种输入:
主 CPT 名称,例如 earth (详见 内置CPT ), 可使用 CPT 名称 master 或包括相对路径的 section/master 来指定(内置 CPT 不可添加 .cpt 扩展名)。
自定义 CPT 文件 cpt ,例如 my_colors.cpt 。
自动从多个颜色 color\(_1\),color\(_2\)[,color\(_3\),…] 中创建线性连续的 CPT,其中 z 值从 0 开始, 每添加一种颜色 z 值加 1。在这种情况下, color\(_i\) 可以是 r/g/b (e.g. 255/100/75), h-s-v (e.g. 180-0.8-1), c/m/y/k (e.g. 80/50/40/30),HTML十六进制 (e.g. #aabbcc) 或 颜色名称。逗号之间不能有空格。
支持以下选项:
+h - 对于有软铰链 (soft hinge) 的主 CPT,可指定 hinge 值启用铰链, 而对于有硬铰链 (harde hinge) 的 CPT,可以修改铰链位置 hinge ,但不能禁用。
+i - 指定 dz 使网格 z 值范围分层,默认使用精确范围。
+s - 将创建的 CPT 保存到文件 fname。当 CPT 是自动创建时这很有用, 但必须用于 -C 的末尾。
+u - 对于任何其他主 CPT,可以通过指定其原始单位 unit 将其 z 值单位转换为米。
+U - 与 +u 类似,但是将 z 值单位从米转换为指定单位 unit 。
注: 我们将在原始输出后新增四列,分别为 red、green 和 blue 的颜色分量 (均在 0-255 范围内)以及透明度(0-100%,0 表示不透明)。如果颜色表为灰度表, 则输出灰度(0-255)而非三原色。
- -F[f|i]
输出的XY坐标值用对应的列、行号替代
默认输出的三列数据是:X坐标、Y坐标和Z值。使用该选项,则输出的三列数据为: 列号、行号和Z值。其中,行号和列号从0开始算起。使用 -Ff 则行号和列号从1开始算起。 若使用 -Fi 会输出两列数据:索引值和Z值。索引值相当于是将二维数组用一维数组表示。
- -Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)
指定数据范围
使用 -R 选项指定只对网格数据的一个子区域进行操作。若该子区域超过网格边界, 则只输出二者共同的区域
- -V[level] (more …)
设置 verbose 等级 [w]
- -W[a|weight]
输出四列数据XYZW,其中W为 weight [weight默认值为1]
若使用 -Wa 则权重为每个节点所占据的面积。
- -Z[flags]
以 ASCII 或二进制形式输出Z值
使用该选项,则输出时只有Z值,没有XY信息。输出Z值的顺序由 flags 决定。若是行优先,flags 的第一个字符可以取:
T 表示第一行是y=ymax
B 表示第一行是y=ynin
flags 的第二个字符可以取:
L 表示每一行的第一个元素是x=xmin
R 表示每一行的第一个元素是x=xmax
若是列优先,则 L|R 为第一个字符,B|T 为第二个字符。
对于网格线配准的网格文件而言:
若网格在X方向是周期的,输出数据时不需要包含x=xmax所在的列,则加上 x
若网格在Y方向是周期的,输出数据时不需要包含y=ymax所在的行,则加上 y
若数据需要做字节交换,则加上 w。最后需要指定数据以何种数据类型保存:
a
ASCII表,每行输出一个Z值c
int8_t, signed 1-byte characteru
uint8_t, unsigned 1-byte characterh
int16_t, short 2-byte integerH
uint16_t, unsigned short 2-byte integeri
int32_t, 4-byte integerI
uint32_t, unsigned 4-byte integerl
int64_t, long (8-byte) integerL
uint64_t, unsigned long (8-byte) integerf
4-byte floating point single precisiond
8-byte floating point double precision
默认值为 -ZTLa。
- -bo[ncols][type][w][+l|b] (more …)
设置二进制输出的数据格式
该选项只适用于以二进制格式输出XYZ数据。若需要只输出Z值,可以使用 -Z 选项。
- -d[i|o]nodata (more …)
将输入数据中等于 nodata 的记录替换为 NaN,或将输出数据中值为 NaN 的记录替换为 nodata
- -f[i|o]colinfo (more …)
指定输入或输出列的数据类型
- -ocols[,…][,t[word]] (more …)
设置输出数据列(0表示第一列,t 表示文本列)
- -qo[~]rows[+ccol][+a|f|s] (more …)
筛选输出的行或数据范围
- -s[cols][+a|+r] (more …)
设置 NaN 记录的处理方式
- -^ 或 -
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -)
- -+ 或 +
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
- -? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
- --PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数
非等间隔XY坐标
几乎所有GMT模块只能处理XY等间隔的网格文件,grd2xyz 是个例外。 grd2xyz 可以输出非等间隔网格文件的原始 x y z 值。
时间坐标
GMT可以识别netCDF网格文件中的时间坐标。netCDF变量的 unit 属性会被解析以 确定网格文件中时间坐标的起算点和单位。这些时间坐标值会被进一步根据 TIME_UNIT 和 TIME_EPOCH 转换为GMT内部时间值。输出时,默认以相对时间的形式输出,也可以使用 -f 选项 指定以绝对时间方式输出。
示例
将一个netCDF网格文件转换为XYZ文件:
gmt grd2xyz @AFR.nc > AFR.xyz
将一个netCDF文件以单精度二进制格式输出其Z值:
gmt grd2xyz @AFR.nc -ZTLf > AFR.b