13.23 grdlandmask

官方文档:grdlandmask
简介:根据海岸线数据创建陆地-海洋的mask网格文件

该命令会根据海岸线数据,确定指定网格内的每个节点是在陆地上还是在水中,并给节点赋予不同的值。

13.23.1 必选选项

-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.23.2 可选选项

-A<min_area>[/<min_level>/<max_level>][+ag|i|s|S][+r|l][+p<percent>]

不绘制面积过小的区域(湖泊或岛屿),或不绘制某个级别的湖泊边界。

在绘制湖泊时,若不管湖泊的面积大小而把所有湖泊的边界都画上去,可能导致图看上去比较乱,该选项用于对湖泊进行筛选。面积小于 <min_area> 平方千米或者湖泊级别不在 [min_level,max_level] 范围的边界都不会被绘制。默认值为 0/0/4 ,即绘制所有湖泊边界,即绘制0到4级所有级别的面积大于0的湖泊。

对于level=2,即湖岸线,包括常规的湖以及很宽的河流。加上 +r 则只绘制河流,加上 +l 则只绘制常规湖。

对于南极洲而言,因为有冰层的存在,所以海岸线有多种处理方式:

  1. +ai 用ice shell boundary作为南极洲的海岸线,默认值
  2. +ag 以ice grounding line作为海岸线
  3. +as 忽略南纬60度以南的海岸线,用户可以使用 psxy 绘制自己的南极洲海岸线
  4. +aS 忽略南纬60度以北的海岸线

+p<precent> :一个多边形,降低精度后,边数减少,面积变化,当面积变化过大时再绘制这个多边形就不合适了,该子选项用于去除那些面积与最高精度面积之比小于 <percent> 的多边形。

-D<resolution>[+]
选项海岸线数据的精度,见 pscoast 中的介绍。
-E
默认情况下会将恰好位于多边形边界上的节点当作是在多边形的内部,使用该选项则会将其认为是在多边形的外部。
-N<maskvale>[o]

设置网格节点的值,可以是数字,也可以是NaN。该选项可以取两种格式:

  1. -N<wet>/<dry>
  2. -N<ocean>/<land>/<lake>/<island>/<pond>

默认值为 0/1/0/1/0 (即 0/1 ),即将水域内的网格设置为0,将陆地内的网格设置为1。

13.23.3 注意事项

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

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

13.23.4 示例

将所有陆地上的节点设置为NaN,水域上的节点设置为1:

gmt grdlandmask -R-60/-40/-40/-30 -Dh -I5m -N1/NaN -Gland_mask.nc -V

生成全球1x1度的网格,并将不同性质的区域设置成不同的值:

gmt grdlandmask -R0/360/-90/90 -Dl -I1 -N0/1/2/3/4 -Glevels.nc -V