gmtvector
- 官方文档
- 简介
操作二维和三维笛卡尔坐标向量
gmtvector 读取含有 (x, y),(x, y, z),(r, theta) 或 (lon, lat) 等坐标的表文件。给定 -fg 时,将坐标假定为地理坐标并只包含两列,将其转换到单位球上的三维笛卡尔坐标;使用 -Ci 选项时,则表明输入数据为 (x, y) 或 (x, y, z);默认情况下,输入文件的坐标为 (r, theta) 形式的极坐标。如果不给定输入文件,则可以通过 -A 选项传递单个向量。可对向量进行的操作包括求夹角,叉乘,相加以及旋转等,其中需要第二个向量时可由 -S 指定。输出向量将会被转换为 (lon, lat) 或者 (r, theta) 的形式,除非使用 -Co ,该选项将输出指定为笛卡尔坐标形式。
语法
gmt vector [ table ] [ -Am[conf]|vector ] [ -C[i|o] ] [ -E ] [ -N ] [ -Svector ] [ -Ta|d|D|pazim|r[arg]|R|s|t[arg]|x ] [ -V[level] ] [ -bbinary ] [ -dnodata[+ccol] ] [ -eregexp ] [ -fflags ] [ -ggaps ] [ -hheaders ] [ -iflags ] [ -jflags ] [ -oflags ] [ -qflags ] [ -sflags ] [ -:[i|o] ] [ --PAR=value ]
必选选项
- table
输入表数据文件名。-fg 表明输入坐标为 (lon, lat);-Ci 表明输入数据为 (x, y) 或 (x, y, z),其他情况下,坐标为 (r, theta) 形式。
可选选项
- -Am[conf]|vector
指定单个向量,而不从文件中读取。m 选项可以对输入文件中的向量平均,得到一个向量作为主向量(即对所有点的平均),并可计算该向量的置信椭圆(长轴以及方位角,地理坐标的轴单位为 km)。可使用百分比的形式添加置信水平 conf [95]。这三个参数将在输出的最后三列。
- -C[i|o]
将输入和输出设置笛卡尔坐标。 i 和 o 分别表示输入和输出。默认情况下,二维向量为极坐标,三维向量为地理坐标。
- -E
将输入的地理坐标从大地坐标转换为地心坐标,并将输出的地理坐标从地心坐标转换为大地坐标。该选项只有 -fg 设置时,才会生效。
- -N
在输出前,将向量进行归一化(仅在 -Co 设置时有效)
- -S[vector]
指定第二个向量,格式与第一个向量相同。-T 选项可以实现两向量之间的运算。
- -Ta|b|d|D|pazim|s|r[arg]|R|s|t[arg]|x
对向量进行变换
a 平均位置
b 经过两向量(点)的大圆的中点
d 点积
D 两向量之间的角度
pazim 求大圆的极点,该大圆的极点必须以 azim 方位角经过设定的点
s 相加
rpar 向量旋转,par 对二维笛卡尔数据表示旋转角度,对三维向量,则为 lon/lat/angle 中的角度
R 通过输入的文件指定旋转的角度
t[args] args 表示 azimuth/distance[unit] ;给定距离 distance 和方位角 azimuth 计算其对应方位角上的点,同时可以追加单位,默认距离单位为 m。如果不指定距离和方位角,则 GMT 默认从文件读取方位角和距离
x 计算两个向量的叉乘
不设置 -T 选项,则不实施转换,对于 -Tt ,不设置 -je 时,使用大圆计算,设置时则使用大地线/测地线计算(即大地测量学中的大地主题正算)
- -V[level] (more …)
设置 verbose 等级 [w]
- -bi[ncols][type][w][+l|b] (more …)
设置二进制输入数据的格式
- -bo[ncols][type][w][+l|b] (more …)
设置二进制输出的数据格式
- -d[i|o]nodata (more …)
将输入数据中等于 nodata 的记录替换为 NaN,或将输出数据中值为 NaN 的记录替换为 nodata
- -e[~]“pattern” | -e[~]/regexp/[i] (more …)
筛选或剔除匹配指定模式的数据记录
- -f[i|o]colinfo (more …)
指定输入或输出列的数据类型
- -g[a]x|y|d|X|Y|D|[col]zgap[+n|p] (more …)
确定数据或线段的间断
- -h[i|o][n][+c][+d][+msegheader][+rremark][+ttitle] (more …)
跳过或生成指定数目的头段记录
- -icols[+l][+sscale][+ooffset][,…][,t[word]] (more …)
设置输入数据列及简单变换(0表示第一列,t 表示文本列)
- -je|f|g (more …)
设置球面距离的计算方式
- -ocols[,…][,t[word]] (more …)
设置输出数据列(0表示第一列,t 表示文本列)
- -q[i|o][~]rows[+ccol][+a|f|s] (more …)
筛选输入或输出的行或数据范围
- -:[i|o] (more …)
交换输入或输出中的第一和第二列
- -^ 或 -
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -)
- -+ 或 +
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
- -? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
- --PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数
示例
确定 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 相关模块