grd2xyz
- 官方文档:
- 简介:
将网格文件转换成表数据
grd2xyz 读取一个或多个二进制2D网格文件,并将XYZ数据以ASCII或二进制格式 写到标准输出中。ASCII输出的格式由参数 FORMAT_FLOAT_OUT 控制,也可以以单精度或双精度浮点数的形式储存为二进制格式,还可以只输出Z值而不包含 XY坐标数据。
语法
gmt grd2xyz grid [ -C[f|i] ] [ -Rregion ] [ -V[level] ] [ -W[a|weight] ] [ -Z[flags] ] [ -bobinary ] [ -dnodata[+ccol] ] [ -fflags ] [ -ho[n] ] [ -oflags ] [ -qoflags ] [ -sflags ] [ --PAR=value ]
必选选项
- grid
要转换的2D网格文件
可选选项
- -C[f|i]
输出的XY坐标值用对应的列、行号替代
默认输出的三列数据是:X坐标、Y坐标和Z值。使用该选项,则输出的三列数据为: 列号、行号和Z值。其中,行号和列号从0开始算起。使用 -Cf 则行号和列号从1开始算起。 若使用 -Ci 会输出两列数据:索引值和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