✍️ 田冬冬 , 周茂 , 陈箫翰 • 📅 2026-01-14

# vector

官方文档:

  vector

简介:

  操作二维和三维笛卡尔坐标向量

vector 读取含有 (x, y)，(x, y, z)，(r, theta) 或 (lon, lat) 等坐标的表文件。 给定 `-f` g 时，将坐标假定为地理坐标并只包含两列，将其转换到单位球上的三维笛卡尔 坐标；使用 `-C` i 选项时，则表明输入数据为 (x, y) 或 (x, y, z)；默认情况下，输入文件的坐标 为 (r, theta) 形式的极坐标。如果不给定输入文件，则可以通过 `-A` 选项传递单个向量。 可对向量进行的操作包括求夹角，叉乘，相加以及旋转等，其中需要第二个向量时可由 `-S` 指定。输出向量将会被转换为 (lon, lat) 或者 (r, theta) 的形式，除非使用 `-C` o ，该 选项将输出指定为笛卡尔坐标形式。

## 语法

gmt vector [ table ] [ `-A` m[conf]|vector ] [ `-C`[i|o] ] [ `-E` ] [ `-N` ] [ `-S` vector ] [ `-T` a|d|D|p azim|r[arg]|R|s|t[arg]|x ] [ `-V`[level] ] [ `-bi` binary ] [ `-bo` binary ] [ `-d` nodata[+c col] ] [ `-e` regexp ] [ `-f` flags ] [ `-g` gaps ] [ `-h` headers ] [ `-i` flags ] [ `-j` flags ] [ `-o` flags ] [ `-q` flags ] [ `-s` flags ] [ `-:`[i|o] ] [ --PAR=value ]

## 输入数据

table

  输入表数据文件名。 `-f` g 表明输入坐标为 (lon, lat)， `-C` i 表明输入数据为 (x, y) 或 (x, y, z)，其他情况下，坐标为 (r, theta) 形式。

## 可选选项

-A

-A m[conf]|vector

  指定单个向量，而不从文件中读取。m 选项可以对输入文件中的向量平均，得到一个向量 作为主向量（即对所有点的平均），并可计算该向量的置信椭圆（长轴以及方位角，地理坐标的轴单位为 km）。 可使用百分比的形式添加置信水平 conf [95]。这三个参数将在输出的最后三列。

-C

-C[i|o]

  将输入和输出设置笛卡尔坐标。 i 和 o 分别表示输入和输出。默认情况下，二维 向量为极坐标，三维向量为地理坐标。

-E

-E

  将输入的地理坐标从大地坐标转换为地心坐标，并将输出的地理坐标从地心坐标转换为大地坐标。 该选项只有 `-f` g 设置时，才会生效。

-N

-N

  在输出前，将向量进行归一化（仅在 `-C` o 设置时有效）

-S

-S[vector]

  指定第二个向量，格式与第一个向量相同。`-T` 选项可以实现两向量之间的运算。

-T

-T a|b|d|D|p azim|s|r[arg]|R|s|t[arg]|x

  对向量进行变换

  - a 平均位置

  - b 经过两向量（点）的大圆的中点

  - d 点积

  - D 两向量之间的角度

  - p azim 求大圆的极点，该大圆的极点必须以 azim 方位角经过设定的点

  - s 相加

  - r par 向量旋转，par 对二维笛卡尔数据表示旋转角度，对三维向量，则为 lon/lat/angle 中的角度

  - R 通过输入的文件指定旋转的角度

  - t[args] args 表示 azimuth/distance[unit] ；给定距离 distance 和 方位角 azimuth 计算其对应方位角上的点，同时可以追加单位，默认距离单位为 m。如果 不指定距离和方位角，则 GMT 默认从文件读取方位角和距离

  - x 计算两个向量的叉乘

  不设置 `-T` 选项，则不实施转换。输出由其他选项（如 `-A`、 `-C`、 `-E` 和 `-N`）决定。 对于 -Tt ：(1) 如果是地理坐标，除非选择了 `-j` e 或 `-j` f，否则将执行大圆计算；(2) 如果距离为负，将去掉负号并为方位角增加 180 度。

-V

-V[level]

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

-bi

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

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

-bo

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

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

-d

-d[i|o]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]]

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

-j

-je|f|g

  设置球面距离的计算方式。 (参数详细介绍)

-o

-o cols[,...][,t[word]]

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

-q

-q[i|o][~]rows[+c col][+a|f|s]

  对输入或输出的行进行筛选，该选项在一定程度上可以代替 gawk 的某些功能。 (参数详细介绍)

-s

-s[cols][+a|+r]

  设置 NaN 记录的处理方式。 (参数详细介绍)

-:

-:[i|o]

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

-^ 或 -

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

-+ 或 +

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

-? 或无参数

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

--PAR=value

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

## ASCII 格式精度

ASCII 格式输出数据通过 gmt.conf 配置文件控制。控制经纬度格式的参数为 FORMAT_GEO_OUT ；控制绝对时间的的参数包括 FORMAT_DATE_OUT 和 FORMAT_CLOCK_OUT ；普通浮点数通过参数 FORMAT_FLOAT_OUT 控制。上述格式控制可能会导致精度损失，这会在下游计算中导致一些问题。 如果用户需要保证数据精度，则应考虑将数据写为二进制文件，或者使用 FORMAT_FLOAT_OUT 指定更多的有效数字。

## 示例

确定 `ship_15.txt` 文件中所有点的平均位置，并计算该点 95% 置信椭圆

    gmt vector @ship_15.txt -Am -fg

计算 `points.txt` 中的点与 133/34 点的球面夹角

    gmt vector points.txt -S133/34 -TD -fg > angles.txt

将相同的文件以 133/34 为极点旋转 35 度，并输出笛卡尔坐标

    gmt vector points.txt -Tr133/34/35 -Co -fg > reconstructed.txt

使用文件 `rot.txt` 给出的角度将 65/33 旋转对应的角度

    gmt vector rots.txt -TR -S64/33 -fg > reconstructed.txt

计算两个笛卡尔向量 0.5/1/2 和 1/0/0.4 之间的叉乘

    gmt vector -A0.5/1/2 -Tx -S1/0/0.4 -N -C > cross.txt

旋转二维向量 r = 2，theta = 35，旋转角度为 120 度

    gmt vector -A2/35 -Tr120 > rotated.txt

确定连接 123/35 和 -155/-30 的大圆的中点

    gmt vector -A123/35 -S-155/-30 -Tb -fg > midpoint.txt

确定 `points.txt` 中点的平均位置，并确定其 99% 的置信椭圆

    gmt vector points.txt -Am99 -fg > centroid.txt

寻找以 105 度方位角通过点 -30/60 的大圆对应的极点

    gmt vector -A-30/60 -Tp105 -fg > pole.txt

将地理坐标文件 `points.txt` 中的所有位置在球面上以东北方向平移 65 km

    gmt vector points -Tt45/65k -fg > shifted.txt

确定距离 (8E,50N) 23 海里 310 度方位角方向上的点，距离使用大地线/测地线长度衡量

    echo 8 50 | gmt vector -Tt310/23n -je

## 旋转

关于板块构造重建中的更高级的三维旋转，参见 Spotter 相关模块

## 相关模块

project, mapproject