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