13.24 grdmask

官方文档:grdmask
简介:根据多边形数据或点数据创建mask网格文件

13.24.1 必选选项

<pathfiles>
一个或多个ASCII数据文件,其中包含了多边形或数据点
-G<mask_grd_file>
生成的mask网格文件的文件名
-I<xinc>[<unit>][+e|+n]/<yinc>[<unit>][+e|+n]

指定X和Y方向的网格间隔

  • <xinc> X方向的网格间隔
  • <yinc> Y方向的网格间隔
  • <unit> 网格间隔的单位。对于地理坐标系而言默认值为度,可以设置单位为 m|s|e|f|k|M|n|u
  • +e 微调X和Y方向范围的最大值,使得其是网格间隔的整数倍(默认会微调网格间隔以适应给定的数据范围)
  • +n 表明 <xinc><yinc> 不是网格间隔,而是X和Y方向的节点数。此时会根据节点数、网格区域范围以及网格配准方式重新计算网格间隔。

注意:

  1. <yinc> 设置为0,则表示其与 <xinc> 相同
  2. 若使用 -R<grdfile> 选项,则网格网格已经根据网格文件自动初始化,此时依然可以使用 -I 覆盖网格文件中的间隔值

13.24.2 可选选项

-A[m|p|x|y]
控制两点之间的连接方式,见 psxy 命令中对 -A 选项的介绍
-N[z|Z|p|P]<values>

设置位于多边形外部、边界和内部的节点值,默认值为 0/0/1 ,即多边形内部节点值为1,其他节点值为0。

<values> 的形式为 <out>/<edge>/<in> ,可以是任意数值,也可以是NaN。

  • -Nz 将多边形内的节点设置为从多段数据的段头记录中获取的Z值,比如多边形段头记录中的 -Z<zval>-L<header>-aZ=<name>
  • -NZ-Nz 类似,只是其会将多边形的边界也当做是多边形的内部
  • -Np 使用一个从0递增的数字作为多边形的ID,也可以在其后加上一个数字以指定序列的起始值
  • -NP-Np 类似,只是其会将多边形的边界当做多边形的内部

需要注意, -Nz|Z|p|P 不能与 -S 连用。

-S<search_radius>[<unit>]

对所有数据点设置一个搜索半径,设置圆内、圆边界、圆外部的节点值。

<search_radius>z ,则取输入数据的第三列作为半径。对于地理苏沪剧而言,可以在 -Sz 后加上距离单位。

若未使用 -S 选项,则认为输入数据是一个或多个闭合多边形。

13.24.3 注意事项

grdlandmask 生成的网格文件属于 分类型 数据,即所有数据只能取几个固定的值,比如 -N0/1 会将水域内的网格值设置为0,将陆地内的网格值设置为1。在这种情况下,对这种数据用标准方法(比如样条)进行插值通常会得到无意义的结果,使用时需要小心。

然而,当你使用该网格文件绘制地图时,网格数据会被重新投影使得在投影后的坐标下变成一个矩形。这个过程中涉及到了网格插值,默认使用的插值算法是样条插值,因而可能会在图中产生假象。因而建议在使用 grdimage 绘制此类数据时使用 -nn 选项即 nearest neighbor 插值算法以避免这一问题。

13.24.4 示例

多边形内和边界上的节点值为0,外部值为1:

gmt grdmask coastline_*.xy -R-60/-40/-40/-30 -I5m -N1/0/0 -Gland_mask.nc=nb -V

数据点周围50千米范围的节点值为1,其余为NaN:

gmt grdmask data.xyz -R-60/-40/-40/-30 -I5m -NNaN/1/1 -S50k -Gdata_mask.nc=nb -V

将多边形的ID作为多边形内部节点的值:

gmt grdmask plates.gmt -R-40/40/-40/40 -I2m -Nz -Gplate_IDs.nc=ns -aZ=POL_ID -V

将多边形的ID作为多边形内部节点的值,但多边形ID从100开始:

gmt grdmask plates.gmt -R-40/40/-40/40 -I2m -Np100 -Gplate_IDs.nc=ns -V