xyz2grd¶
官方文档: | xyz2grd |
---|---|
简介: | 将XYZ数据或Z数据转换成网格文件 |
该命令读取一个或多个Z数据或XYZ数据,并将其转换成二进制网格文件。
- 若某些节点没有数据值,则这些节点会被赋值为NaN
- 若某个节点由多个数据值,则该节点的值为所有数据点的平均值
需要注意,该模块只是将已存在的数据转换为网格数据,并不具备网格化/插值功能。若需要网格化功能,可以使用模块 surface
、 greenspline
、 nearneighbor
或 triangulate
。
必选选项¶
<table>
- 输入表数据。可以只包含Z值,也可以包含 (x,y,z) 值。可以是ASCII格式,也可以是二进制格式。XYZ数据不要求排序。如果只包含Z值,则必须使用
-Z
选项以便确定每一个Z值所属的位置。 -G<grdfile>
- 生成的网格文件名
- -Ixinc[unit][+e|n][/yinc[unit][+e|n]]
指定X和Y方向的网格间隔
- xinc X方向的网格间隔
- yinc Y方向的网格间隔
- unit 网格间隔的单位。对于地理坐标系而言默认值为度,也可设置为其他距离单位
- +e 微调X和Y方向范围的最大值,使得其是网格间隔的整数倍(默认会微调网格间隔以适应给定的数据范围)
- +n 表明 xinc 和 yinc 不是网格间隔,而是X和Y方向的节点数。此时会根据节点数、网格区域范围以及网格配准方式重新计算网格间隔。
注意:
- 若 yinc 设置为0,则表示其与 xinc 相同
- 若使用 -Rgrdfile 选项,则网格间隔和配准方式已经根据网格文件自动初始化,此时依然可以使用 -I 和 -r 覆盖相应的值
- -Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)
- 指定数据范围
可选选项¶
-A[d|f|l|m|n|r|s|S|u|z]
多个数据落在同一个网格节点内时的处理方式。
默认情况下,若有多个数据落在同一个网格节点内,会将这些数据的均值作为该节点的值。使用该选项可以控制这一行为:
-Af
将第一个落在该节点内的数据值作为节点值-As
将最后一个落在该节点内的数据值作为节点值-Al
将落在该节点内的所有值的最小值作为节点值-Au
将落在该节点内的所有值的最大值作为节点值-Ad
将落在该节点内的所有值的最大值和最小值的差作为节点值-Am
将落在该节点内的所有值的均值作为节点值-Ar
将落在该节点内的所有值的RMS值作为节点值-AS
将落在该节点内的所有值的标准差作为节点值-An
将落在该节点内的数据数目作为该节点值,该选项仅要求输入数据中有XY值-Az
将落在该节点内的所有值的和作为节点值
- -D[+xxname][+yyname][+zzname][+sscale][+ooffset][+ninvalid][+ttitle][+rremark]
给定网格文件头段中的基本信息:
- +xxname X变量名及其单位,格式为 varname [unit],比如 “distance [km]”
- +sscale 读入网格数据后要乘以的因子,默认值为 1
- +ooffset 读入数据后并乘以因子后要加的常数,默认值为 0
- +ninvalid 指定值 invalid 用于表示该节点处无有效值,默认为NaN
- +ttitle 网格文件的标题
- +rremark 网格文件的注释信息
其它说明:
- 未指定的项其值保持不变
- 可以给一个空值以重置某一项,比如使用 +t 而不指定标题则设置标题为空
- 若字符串中包含空格则需要用引号括起来
- 若字符串中包含加号 +,需要使用 + 对其进行转义。或者可以使用单引号套双引号的方式,例如 ‘“title with + inside”’
- 若字符串中使用了shell变量,且变量值中包含加号,则需要使用
${variable/+/\\+}
- 对于地理数据(比如 -fg ),xname 和 yname 会自动设置
-S[<zfile>]
- 对输入的Z文件做字节序转换并输出到标准输出或保存到文件
<zfile>
中。该选项只做字节序转换,不生成网格文件。该选项必须与-Z
选项连用。 -Z[<flags>]
指定Z数据的格式。
对于Z数据而言,由于没有XY坐标信息,因而Z数据中必须提供所有节点处的值且按照一定的顺序排列。
在确定数据的排列顺序时,需要指定数据的起点以及数据排序的方向。
- 数据起点:可以取网格的四个顶点中的任意一个作为起点,四个顶点分别用 TL、TR、BL和BR表示,其中T代表Top,B代表Bottom,L代表Left,R代表Right。
- 排序方向:选取数据顶点之后,数据可以是行优先也可以是列优先,所以有两种排序方式。若是行优先,则T|B位于L|R的前面;若列优先,则L|R位于T|B的前面。
对于网格线配准的数据,若数据在X方向是周期性的但输入数据中并不包含x=xmax处的冗余列,则加上
x
;若数据在Y方向是周期性的但输入数据中并不包含y=ymax处的冗余行,则加上y
;加上s<n>
用于跳过数据中最前面的<n>
个字节;若需要转换数据的字节序,则加上w
。除此之外,还需要再加上一个字符表征数据类型:
A
: ASCII表示,每行一个或多个浮点数a
: ASCII表示,每行一项,不仅可以处理浮点数还可以处理日期时间数据和经纬度数据c
: int8_t,有符号单字节字符u
: uint8_t,无符号单字节字符h
: int16_t,有符号双字节整型H
: uint16_t,无符号双字节整型i
: int32_t,有符号四字节整型I
: uint32_t,无符号四字节整型l
: int64_t,长整型(8字节)L
: uint64_t,无符号长整型(8字节)f
: 4字节单精度浮点型d
: 8字节双精度浮点型
默认的输入数据格式为
-ZTLa
。需要注意,-Z
选项仅对Z数据有效。
示例¶
将ASCII文件转换为网格数据:
gmt xyz2grd hawaii_grv.xyz -D+xdegree+ydegree+zGal+t"Hawaiian Gravity"+r"GRS-80 Ellipsoid used" \
-Ghawaii_grv_new.nc -R198/208/18/25 -I5m -V
将二进制格式的XYZ文件(单精度)转换为网格文件:
gmt xyz2grd raw.b -D+xm+ym+zm -Graw.nc -R0/100/0/100 -I1 -V -Z -bi3f
将USGS DEM数据转换为网格数据:
gmt xyz2grd topo30.b -D+xm+ym+zm -Gustopo.nc -R234/294/24/50 -I30s -di-9999 -ZTLhw