✍️ 何星辰 • 📅 2025-12-22

# backtracker

官方文档:

  backtracker

简介:

  生成前向和后向流线和热点轨迹

backtracker 从 infiles （或标准输入）中读取 ( longitude, latitude, age ) 三列数据， 并使用指定的旋转参数计算旋转后的 ( x, y, t ) 坐标。 它可以执行两种操作： （1）计算最终位置[默认]， （2）或在初始位置与最终位置之间生成一个采样轨迹（流线或热点轨迹）[Wessel, 1999]。

在第一种模式下，输入数据前三列必须为 (longitude, latitude, age)，后续可包含其他字段。 参见 -: 选项 了解如何读取 (latitude, longitude, age) 格式的文件。

## 语法

gmt backtracker [ table ] `-E` rot_file|ID1-ID2|lon/lat/angle[+i] [ `-A`[young/old] ] [ `-D` f|b ] [ `-F` driftfile ] [ `-L` f|b F|B[step] ] [ `-M`[factor] ] [ `-N` upper_age ] [ `-Q` fixed_age ] [ `-S` filestem ] [ `-T` zero_age ] [ `-V`[level] ] [ `-W`[a|t] ] [ `-bi` binary ] [ `-bo` binary ] [ `-d` nodata[+c col] ] [ `-e` regexp ] [ `-f` flags ] [ `-h` headers ] [ `-i` flags ] [ `-o` flags ] [ `-q` flags ] [ `-s` flags ] [ `-:`[i|o] ] [ --PAR=value ]

## 输入数据

table

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

## 必须选项

-E

-E rot_file|ID1-ID2|lon/lat/angle[+i]

  可通过以下三种方式之一指定旋转参数：

  - 提供一个包含旋转参数的文件。该文件必须为每个旋转包含一条记录， 每条记录的格式如下：

    lon lat tstart [tstop] angle [ khat a b c d e f g df ]

    其中 tstart 和 tstop 以百万年（Myr）为单位，lon lat angle 均以度为单位。 tstart 和 tstop 分别为阶段的起始与结束年龄。 若记录中未提供 tstop，则表示为一次总重建旋转，此时 tstop 默认设为 0， 且文件中其他记录也不应指定 tstop。 若旋转的协方差矩阵 C 可用，则必须按照括号中列出的九个可选项提供： 此处 C = (g/khat)*[ a b d; b c e; d e f ]， 即 C 由三个行向量组成。 若拟合旋转的自由度 (df) 为 0 或未给出，则默认设置为 10000。 文件中空行以及以 # 开头的记录将被忽略。

  - 提供由两个板块 ID 组成的文件名（以连字符连接，例如 PAC-MBL）， 程序将从 GPlates 旋转数据库中提取相应的旋转参数。 若未找到对应旋转，将返回错误。

  - 直接指定 lon/lat/angle，即旋转极的经度、纬度与旋转角度（均以度为单位）， 用于单一的总重建旋转。

    无论采用哪种方式，都可以在参数后附加 +i， 表示希望对旋转进行反转（invert rotation）。

## 可选选项

-A

-A[young/old]

  与 -Lb|f 联用，用于限制输出轨迹的预测年龄区间， 仅输出年龄介于 young 和 old 之间的部分。 如果使用 -LB|F，则限制条件适用于阶段编号（id 1 表示最年轻阶段）。 若未指定区间，则期望输入文件的第 4、5 列分别提供各记录的年龄上下限。

-D

-Df|b

  设置时间方向：-Df 表示时间向后（从年轻到年老位置）， -Db 表示时间向前（从年老到年轻位置）[默认]。 注意：对于 -Db，输入位置的年龄即为该点的实际年龄； 而对于 -Df，输入的年龄对应的是重建点的时间。

-F

-F driftfile

  提供一个包含 (lon, lat, age) 记录的文件，描述当前热点随时间的运动历史。 反演时程序将根据输入的第 3 列（即年龄）插值热点在该时间的位置， 并据此调整输入点或路径的位置变化[默认无漂移]。 注意： (1) 使用 `-F` 时， `-L` 的 step 单位为时间（百万年）； (2) 漂移仅在回溯点（-Db）或预测海山链（-Df -Lb）时考虑； (3) 不能与 `-M` 同时使用。

-L

-Lf|b|F|B[step]

  指定在初始与最终位置之间生成采样路径： -Lf 绘制粒子流线，-Lb 绘制回溯（热点轨迹）。 追加采样间隔（单位：km）。 若 step < 0 或未指定，则仅返回旋转时间。 当使用 -LF 或 -LB 时， 输出的第 3 列为阶段编号（1 为最年轻阶段）[默认输出沿轨迹预测年龄]。 可通过 `-D` 控制路径方向。

-M

-M[factor]

  将输出的张开角按 factor 缩放[默认 0.5]。 通常用于获取计算流线所需的半扩张速率。

-N

-N upper_age

  设置向过去扩展最老阶段旋转的最大时间上限[默认不扩展]。

-Q

-Q fixed_age

  为所有位置指定固定年龄。仅需输入 (lon, lat) 两列[默认期望三列（longitude, latitude, age）]。 适用于输入为等时线点的情况。

-S

-S filestem

  当启用 `-L` 时，轨迹默认以多段文件形式写入标准输出。 通过指定 filestem，可令每条轨迹分别写入 filestem.# 文件，其中 # 为轨迹编号， 该编号同时写入输出的第 4 列。

-T

-T zero_age

  设置当前时间[默认 0 Ma]。

-V

-V[level]

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

-W

-W[a|t]

  旋转给定的输入点 (lon, lat, time)，并计算投影点的置信椭圆。 输入点的时间必须与某个总重建旋转的时间完全匹配，否则该点将被跳过。 可追加 t 或 a，分别表示在输出中追加时间或角度。 在这 2–3 个基本输出后， 程序将输出方位角、长轴、短轴（单位：km），表示 95% 置信椭圆。 参见 `-D` 了解旋转方向的控制。

-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

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

-h

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

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

-i

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

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

-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参数的值，可重复多次使用。参数列表见 配置参数

## 大地坐标与地心坐标

所有球面旋转均作用于地心坐标。 这意味着输入的数据点和网格被视为采用大地坐标表示， 在进行旋转之前，必须先将其转换为地心坐标。 旋转操作完成后，最终重建得到的点将再转换回大地坐标。 如果将椭球设置参数 PROJ_ELLIPSOID 更改为 Sphere， 则可跳过此默认的转换过程。

## 示例

要使用 DC85.txt 中的欧拉极点，将文件 seamounts.txt 中的 (x, y, t) 点回溯到其起源点（假定为热点），运行:

    gmt backtracker seamounts.txt -Db -EDC85.txt > newpos.txt

要从多个包含三列双精度二进制文件的 (x, y, t) 点向前预测流线，运行:

    gmt backtracker points.* -Df -EDC85.txt -Lf25 -bo -bi3 > lines.b

该文件可通过 plot 绘制。 若要根据热点运动历史文件 (HIdrift.txt) 和板块总重建旋转集 (PAC_APM.txt)， 计算 0–80 Ma 每 1 Ma 的夏威夷热点轨迹，可运行:

    echo 204 19 80 | gmt backtracker -Df -EPAC_APM.txt -Lb1 > path.txt

要使用 Doubrovine et al. [2012] 的太平洋绝对板块与地幔柱运动模型预测夏威夷-皇帝海山链，运行:

    echo -155.2872 19.3972 80 | gmt backtracker -Df -Lb1 -ED2012.txt -FD2012_HI_drift.txt > traildrift.txt

若要预测在无地幔柱漂移的情况下，由太平洋绝对板块运动模型 Doubrovine et al. [2012] 所产生的夏威夷-皇帝海山链，运行:

    echo -155.2872 19.3972 80 | gmt backtracker -Df -Lb1 -ED2012.txt > trail.txt

## 备注

GMT 自带 EarthByte 旋转模型文件 Global_EarthByte_230-0Ma_GK07_AREPS.rot。 若需使用其他旋转文件，请创建名为 GPLATES_ROTATIONS 的环境变量，并将其指向所需的旋转文件。

## 相关模块

pmodeler, grdpmodeler, grdrotater, grdspotter, hotspotter, mapproject, originater, project, plot

## 参考文献

Wessel, P., 1999, "Hotspotting" tools released, EOS Trans. AGU, 80 (29), p. 319.

Doubrovine, P. V., B. Steinberger, and T. H. Torsvik, 2012, Absolute plate motions in a reference frame defined by moving hot spots in the Pacific, Atlantic, and Indian oceans, J. Geophys. Res., 117(B09101), https://doi.org/10.1029/2011jb009072.