grdsample

官方文件:grdsample
簡介:對網格檔做重採樣

grdsample 模塊讀取一個網格檔,並對其做插值以生成一個新的網格檔。新舊網格檔可能的區別在於:

  • 不同的配準方式(-r-T
  • 不同的網格間隔或網格節點數(-I
  • 不同的網格範圍(-R

網格檔插值方式有多重,默認使用 bicubic 插值,可以使用 -n 選項設置其它插值方式。該模塊可以安全地將粗網格插值爲細網格;反之,將細網格插值爲粗網格時,則可能存在混疊效應,因而需要在插值前使用 grdfftgrdfilter 對網格檔做濾波。

若省略 -R 選項,則輸出網格與輸入網格的區域範圍相同;若省略 -I 選項,則輸出網格間距與輸入網格間距相同。-r-T 均可用於修改網格配準方式。若省略這兩個選項,則輸出網格的配準方式與輸入網格相同。

語法

gmt grdsample in_grdfile -Gout_grdfile [ -Iincrement ] [ -Rregion ] [ -T ] [ -V[level] ] [ -fflags ] [ -nflags ] [ -rreg ] [ -x[[-]n] ] [ --PAR=value ]

必選選項

in_grdfile
要重採樣的2D網格檔

-Gout_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 …)
指定数据范围
若只使用 -R 選項,則等效於使用 grdcutgrdedit -S
-T
交換網格檔的配準方式。即若輸入是網格線配準,則輸出爲像素點配準;若輸入是像素點配準,則輸出爲網格線配準。
-V[level] (more …)
设置 verbose 等级 [c]
-f[i|o]colinfo (more …)
指定输入或输出列的数据类型
-n[b|c|l|n][+a][+bBC][+c][+tthreshold] (more …)
设置网格文件的插值方式
-r[g|p] (more …)
设置网格配置方式 [默认为网格线配准]
-x[[-]n] (more …)
限制多核算法中能使用的核数(需要GMT开启OpenMP支持)
-^-
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -
-++
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
-? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
--PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 gmt.conf

注意事項

  1. 網格插值過程中可能會導致插值後的值出現失真或意外值。例如,使用樣條插值可能會導致插值後的數據的最大最小值超過原始數據的最大最小值。若這一結果不可接受,可以通過給 -n 選項加上 +c 以對超過原始數據最值的部分做裁剪。
  2. 若某個插值點不位於輸入數據的網格節點上,則插值時若該節點周圍的節點值爲NaN,則該節點的值也會被插值爲NaN。默認的bicubic插值算法會生成連續的一階導數但需要周圍4x4個節點。bilinear插值算法只需要周圍的2x2個節點,但其只是零階連續。若光滑性很重要,則使用bicubic算法;若需要儘量避免NaN值的傳播,則使用bilinear算法。
  3. 除了插值之外,還可以使用 grd2xyz 將網格數據轉換爲表數據,然後將輸出交給 surfacegreenspline 重新網格化。

示例

將5x5弧分的數據採樣成1x1弧分:

gmt grdsample @earth_relief_05m -R0/20/0/20 -I1m -Gtopo_1m.nc

將網格線配準的網格檔修改爲像素配準的網格檔:

gmt grdsample @earth_relief_05m -T -Gpixel.nc