grdsample¶
官方文档: | grdsample |
---|---|
简介: | 对网格文件做重采样 |
grdsample 模块读取一个网格文件,并对其做插值以生成一个新的网格文件。新旧网格文件可能的区别在于:
- 不同的配准方式(-r 或 -T)
- 不同的网格间隔或网格节点数(-I)
- 不同的网格范围(-R)
网格文件插值方式有多重,默认使用 bicubic 插值,可以使用 -n 选项设置其它插值方式。该模块可以安全地将粗网格插值为细网格;反之,将细网格插值为粗网格时,则可能存在混叠效应,因而需要在插值前使用 grdfft 或 grdfilter 对网格文件做滤波。
若省略 -R 选项,则输出网格与输入网格的区域范围相同;若省略 -I 选项,则输出网格间距与输入网格间距相同。-r 和 -T 均可用于修改网格配准方式。若省略这两个选项,则输出网格的配准方式与输入网格相同。
语法¶
gmt grdsample in_grdfile -Gout_grdfile [ -Iincrement ] [ -Rregion ] [ -T ] [ -V[level] ] [ -fflags ] [ -nflags ] [ -rreg ] [ -x[[-]n] ] [ --PAR=value ]
可选选项¶
- -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 …)
- 指定数据范围
若只使用 -R 选项,则等效于使用 grdcut 或 grdedit -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
注意事项¶
- 网格插值过程中可能会导致插值后的值出现失真或意外值。例如,使用样条插值可能会导致插值后的数据的最大最小值超过原始数据的最大最小值。若这一结果不可接受,可以通过给 -n 选项加上 +c 以对超过原始数据最值的部分做裁剪。
- 若某个插值点不位于输入数据的网格节点上,则插值时若该节点周围的节点值为NaN,则该节点的值也会被插值为NaN。默认的bicubic插值算法会生成连续的一阶导数但需要周围4x4个节点。bilinear插值算法只需要周围的2x2个节点,但其只是零阶连续。若光滑性很重要,则使用bicubic算法;若需要尽量避免NaN值的传播,则使用bilinear算法。
- 除了插值之外,还可以使用 grd2xyz 将网格数据转换为表数据,然后将输出交给 surface 或 greenspline 重新网格化。
示例¶
将5x5弧分的数据采样成1x1弧分:
gmt grdsample @earth_relief_05m -R0/20/0/20 -I1m -Gtopo_1m.nc
将网格线配准的网格文件修改为像素配准的网格文件:
gmt grdsample @earth_relief_05m -T -Gpixel.nc