✍️ 田冬冬 , 陈箫翰 • 📅 2025-12-30

# clip

官方文档:

  clip

简介:

  打开或关闭多边形裁剪路径

该模块会从输入文件中读取XY数据，由此构成一个或多个多边形，进而构建出一个或 多个裁剪路径。接下来的所有绘图命令中，只有在多边形内部的部分才会被绘制。

为了判断某个点是在裁剪区域内还是在裁剪区域外，clip使用了“奇偶规则”。从任意 一点绘制一条任意方向的射线，若该射线穿过裁剪路径线段奇数次，则该点位于裁剪 区域内；若穿过偶数次，则该点位于裁剪区域外。`-N` 选项可以颠倒内外的定义。

最后，记得再次调用 `-C` 以关闭裁剪区域。

## 语法

gmt clip [ table ] `-C`[n] `-J` parameters [ `-Jz|Z` parameters ] `-R` west/east/south/north[/zmin/zmax][+r][+u unit] [ `-A`[m|p|x|y] ] [ `-B`[p|s]parameters ] [ `-N` ] [ `-T` ] [ `-U`[stamp] ] [ `-V`[level] ] [ `-W`[pen] ] [ `-X`[a|c|f|r][xshift] ] [ `-Y`[a|c|f|r][yshift] ] [ `-bi` binary ] [ `-di` nodata[+c col] ] [ `-e` regexp ] [ `-f` flags ] [ `-g` gaps ] [ `-h` headers ] [ `-i` flags ] [ `-p` flags ] [ `-qi` flags ] [ `-t` transp ] [ `-:`[i|o] ] [ --PAR=value ]

## 输入数据

table

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

## 必须选项

-C

-C[n]

  结束当前裁剪路径。

  默认会关闭所有已开启的裁剪路径。使用 `-C` n 则仅关闭当前所有处于激活状态下的 裁剪路径中的其中 n 个。

  若在开启裁剪后有使用 `-X` 或 `-Y` 移动过坐标原点，则在关闭裁剪路径时也需要 使用 `-X` 或 `-Y` 选项。

-J

-J projection

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

-Jz|Z

-J z|Z parameters

  绘制三维图时，设置垂直方向 Z 轴的线性投影尺度。 参数用法与 -Jx|X 相同。

-R

-R west/east/south/north[/zmin/zmax][+r][+u unit]

  指定数据范围。对于三维透视图（-p 选项） ，可以加上 /zmin/zmax 指定Z轴的范围。 (参数详细介绍)

## 可选选项

-A

-A[m|p|x|y]

  修改两点间的连接方式

  地理投影下，两点之间默认沿着大圆弧连接。

  - `-A`：忽略当前的投影方式，直接用直线连接两点

  - -Am：先沿着经线画，再沿着纬线画

  - -Ap：先沿着纬线画，再沿着经线画

  笛卡尔坐标下，两点之间默认用直线连接。

  - -Ax 先沿着X轴画，再沿着Y轴画

  - -Ay 先沿着Y轴画，再沿着X轴画

-B

-B parameters

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

-N

-N

  反转“区域内”和“区域外”的概念，即只有在多边形外的部分才是裁剪区域，绘图时 只有在多边形外的才会被绘制。该选项不能与 `-B` 选项连用。

-T

-T

  不需要任何输入数据。根据 `-R` 选项将整个地图区域裁剪出来， 该选项不能与 `-B` 选项连用。

-U

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

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

-V

-V[level]

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

-W

-W pen

  绘制裁剪路径的轮廓 [默认不绘制]

-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]

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

-f

-f[i|o]colinfo

  显式指定当前输入或输出数据中每一列的数据类型。 (参数详细介绍)

-g

-g[a]x|y|d|X|Y|D|[col]z gap[+n|p]

  确定数据或线段的间断。 (参数详细介绍)

-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]

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

-t

-t[transp]

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

-:

-:[i|o]

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

-^ 或 -

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

-+ 或 +

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

-? 或无参数

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

--PAR=value

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

## 示例

限制作图范围，仅在指定范围内对陆地填色

    gmt begin example2
       gmt basemap -Rg -JG120/30N/10c -Bg
       gmt coast -Gbrown -Wfaint
       # 创建多边形边界数据文件，按逆时针顺序给出各个顶点坐标
       echo 74 4 > tmp.txt
       echo 135 4 >> tmp.txt
       echo 135 53 >> tmp.txt
       echo 74 53 >> tmp.txt
       # 打开裁剪
       gmt clip tmp.txt
       # 画图命令仅在多边形范围内有效：只对范围内陆地填色
       gmt coast -Gbisque
       # 关闭裁剪路径
       gmt clip -C
       # 绘制边界轮廓
       gmt plot tmp.txt -W2p,blue -L
    gmt end show

## 相关模块

basemap, grdmask, mask