xyz2grd

官方文件:xyz2grd
簡介:將XYZ數據或Z數據轉換成網格檔

該命令讀取一個或多個Z數據或XYZ數據,並將其轉換成二進制網格檔。

  • 若某些節點沒有數據值,則這些節點會被賦值爲NaN
  • 若某個節點由多個數據值,則該節點的值爲所有數據點的平均值

需要注意,該模塊只是將已存在的數據轉換爲網格數據,並不具備網格化/插值功能。若需要網格化功能,可以使用模塊 surfacegreensplinenearneighbortriangulate

必選選項

<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 表明 xincyinc 不是网格间隔,而是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 网格文件的注释信息

其它说明:

  1. 未指定的项其值保持不变
  2. 可以给一个空值以重置某一项,比如使用 +t 而不指定标题则设置标题为空
  3. 若字符串中包含空格则需要用引号括起来
  4. 若字符串中包含加号 +,需要使用 + 对其进行转义。或者可以使用单引号套双引号的方式,例如 ‘“title with + inside”’
  5. 若字符串中使用了shell变量,且变量值中包含加号,则需要使用 ${variable/+/\\+}
  6. 对于地理数据(比如 -fg ),xnameyname 会自动设置
-S[<zfile>]
對輸入的Z文件做字節序轉換並輸出到標準輸出或保存到文件 <zfile> 中。該選項只做字節序轉換,不生成網格檔。該選項必須與 -Z 選項連用。
-Z[<flags>]

指定Z數據的格式。

對於Z數據而言,由於沒有XY座標信息,因而Z數據中必須提供所有節點處的值且按照一定的順序排列。

在確定數據的排列順序時,需要指定數據的起點以及數據排序的方向。

  1. 數據起點:可以取網格的四個頂點中的任意一個作爲起點,四個頂點分別用 TL、TR、BL和BR表示,其中T代表Top,B代表Bottom,L代表Left,R代表Right。
  2. 排序方向:選取數據頂點之後,數據可以是行優先也可以是列優先,所以有兩種排序方式。若是行優先,則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