✍️ 田冬冬 , 周茂 • 📅 2026-01-05

# mask

官方文档:

  mask

简介:

  将没有数据的区域裁剪或者覆盖

mask 读取 (x,y,z) 形式的数据并判断哪些网格中哪些节点是可靠的。只有包含一个或者多个数据的节点被认为是可靠的。 另外，可以指定影响半径，在数据点半径内的所有节点都是可靠的。同时还可对上述结果取反，即寻找不可靠的节点。 在得到可靠/不可靠的节点后，该模块将使用 `-T` 选项覆盖这些节点，或者创建多边形剪除不感兴趣的区域。 裁剪一旦启动，将一直保持有效，直到第二次调用该模块并使用 `-C` 选项才可以关闭。

## 语法

gmt mask [ table ] `-I` increment `-J` parameters `-R` region [ `-B`[p|s]parameters ] [ `-C` ] [ `-D` dumpfile ] [ `-F`[l|r] ] [ `-G` fill ] [ `-L` nodegrid[+i|o] ] [ `-N` ] [ `-Q` cut ] [ `-S` search_radius ] [ `-T` ] [ `-U`[stamp] ] [ `-V`[level] ] [ `-X`[a|c|f|r][xshift] ] [ `-Y`[a|c|f|r][yshift] ] [ `-bi` binary ] [ `-di` nodata[+c col] ] [ `-e` regexp ] [ `-h` headers ] [ `-i` flags ] [ `-p` flags ] [ `-qi` flags ] [ `-r` reg ] [ `-t` transp ] [ `-w` flags ] [ `-:`[i|o] ] [ --PAR=value ]

## 输入数据

table

  一个或多个ASCII或二进制表数据。若不提供表数据，则会从标准输入中读取。

## 必须选项

-I

-I xinc[+e|n][/yinc[+e|n]]

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

  - xinc 和 yinc 为 X 和 Y 方向的网格间隔。对于地理坐标，可以指定网格间隔单位 [默认单位为度]

  - +e 微调X和Y方向范围的最大值，使得其是网格间隔的整数倍（默认会微调 网格间隔以适应给定的数据范围）

  - +n 表明 xinc 和 yinc 不是网格间隔，而是X和Y方向的节点数。 此时会根据节点数、网格区域范围以及网格配准方式重新计算网格间隔。

  注意：

  - 若 yinc 设置为0，则表示其与 xinc 相同

  - 若使用 -R grdfile 选项，则网格间隔和配准方式已经根据网格文件自动初始化， 此时依然可以使用 -I 和 -r 覆盖相应的值

-J

-J projection

  设置地图投影方式。 (参数详细介绍)

-R

-R xmin/xmax/ymin/ymax[+r][+u unit]

  指定数据范围。 (参数详细介绍)

## 可选选项

-B

-B parameters

  设置底图边框和轴属性。 (参数详细介绍)

-C

-C

  结束裁剪，使用本选项不需要输入文件。在经典模式中，使用本选项同时会隐式使用 -O。 如果自裁剪开始以来移动过位置，还需要同时设置 `-X` 和 `-Y` 选项。

-D

-D dumpfile

  将每个裁剪多边形的 (x,y) 坐标输出到 dumpfile 文件，不给定文件则输出到标准输出。 该选项不进行绘图。如果 dumpfile 包含 C 语言格式的说明符（例如，%5d 或者 %05d）, 多边形将被写入不同的文件，否则都写入到 dumpfile 文件中。`-Q` 选行可用来排除 小多边形。

-F

-F[l|r]

  设置裁剪多边形的方向，与 `-D` 选项同时使用。 -Fl 为向左（逆时针）；-Fr 为向右（顺时针）。

-G

-G fill

  对裁剪多边形进行填充

-L

-L nodegrid[+i|o]

  将计算过程中标记为 1 和 0 的网格储存到 nodegrid ，1 和 0 分别为选定和不被选定的标记。 +o 选项将无数据的节点转换为 NaN，+i 选项将有数据的节点转换为 NaN。

-N

-N

  反转选择，即裁剪有数据覆盖的区域

-Q

-Q cut

  不输出少于 cut 点数的多边形，仅能和 `-D` 选项共同使用

-S

-S search_radius

  设置影响半径。网格节点在数据的影响半径内，就被认为是可靠的。 默认半径为 0，即只有数据落入的网格是可靠的。可在半径后附加单位。

-T

-T

  绘制色块而不是多边形轮廓，使用 `-G` 选项设置色块的填充颜色或图案。 不能和 `-D` 选项同时使用

-U

-U[label][+c][+j just][+o dx/dy]

  在图上绘制GMT时间戳logo。 (参数详细介绍)

-V

-V[level]

  设置 verbose 等级 [w]。 (参数详细介绍)

-X

-Y

-X[a|c|f|r][xshift[u]]

-Y[a|c|f|r][yshift[u]]

  移动绘图原点。 (参数详细介绍)

-bi

-bi[ncols][type][w][+l|b]

  控制二进制文件的输入格式。 (参数详细介绍)

-di

-di nodata

  将输入数据某些特定值当作NaN。 (参数详细介绍)

-e

-e[~]"pattern" | -e[~]/regexp/[i]

  筛选或剔除匹配指定模式的数据记录。 (参数详细介绍)

-h

-h[i|o][n][+c][+d][+m segheader][+r remark][+t title]

  在读/写数据时跳过文件开头的若干个记录。 (参数详细介绍)

-i

-i cols[+l][+s scale][+o offset][,...][,t[word]]

  对输入的数据进行列选择以及简单的代数运算。 (参数详细介绍)

-p

-p[x|y|z]azim[/elev[/zlevel]][+w lon0/lat0[/z0]][+v x0/y0]

  设置3D透视视角。 (参数详细介绍)

-qi

-qi[~]rows[+c col][+a|f|s]

  筛选输入的行或数据范围。 (参数详细介绍)

-r

-r[g|p]

  设置网格配置方式 [默认为网格线配准]。 (参数详细介绍)

-t

-t[transp]

  设置图层透明度（百分比）。取值范围为0（不透明）到100（全透明）。 (参数详细介绍)

-w

-wy|a|w|d|h|m|s|c period[/phase][+c col]

  将输入坐标转换为循环坐标。 (参数详细介绍)

-:

-:[i|o]

  交换输入或输出数据的前两列。 (参数详细介绍)

-^ 或 -

  显示简短的帮助信息，包括模块简介和基本语法信息（Windows下只能使用 -）

-+ 或 +

  显示帮助信息，包括模块简介、基本语法以及模块特有选项的说明

-? 或无参数

  显示完整的帮助信息，包括模块简介、基本语法以及所有选项的说明

--PAR=value

  临时修改GMT参数的值，可重复多次使用。参数列表见 配置参数

## 距离单位

GMT支持多种不同的距离单位，以及三种不同的球面距离计算方式。 详情见 单位 和 -j 选项。

## 示例

假设数据的影响范围为 5 度，对其中影响的网格范围填充为黄色

    gmt begin mask
    gmt math -T-90/90/10 -N2/1 0 = | gmt mask -Gyellow -I30m -R-75/75/-90/90 -JQ0/7i \
        -S5d -T -Bafg10 -BWSne+t"Mask for points with r = 5 degrees"
    gmt end show

使用裁剪多边形制作 mask，将其中没有控制数据的部分覆盖

    gmt mask africa_grav.xyg -R20/40/20/40 -I5m -JM10i -pdf mask

使用和上面的例子相同的数据，但这次将裁剪多边形保存到文件 `all_pols.txt`

    gmt mask africa_grav.xyg -R20/40/20/40 -I5m -Dall_pols.txt

类似第二个例子，但这次对数据覆盖的部分进行填充

    gmt mask africa_grav.xyg -R20/40/20/40 -I5m -JM10i -T -Gwhite -pdf mask

## 相关模块

grdmask, surface, basemap, clip