✍️ 周茂 • 📅 2025-12-30

# x2sys_datalist

官方文档:

  x2sys_datalist

简介:

  提取轨迹观测数据

x2sys_datalist 读取一个或多个文件沿轨观测数据，根据一定规则， 提取满足规则的数据。

## 语法

gmt x2sys_datalist track(s) `-T` TAG [ `-A` ] [ `-E` ] [ `-F` name1,name2,... ] [ `-I`[list] ] [ `-L`[corrections] ] [ `-R` region ] [ `-S` ] [ `-V`[level] ] [ `-bo` binary ] [ `-do` nodata[+c col] ] [ `-h` headers ] [ --PAR=value ]

## 必选选项

tracks

  可以是一个或者多个 ASCII，二进制或 COARDS netCDF 1-D 沿轨数据文件。 如果输入的沿轨数据文件很多，可以把所有的文件名放在一个轨迹列表文件中， 然后使用 = 后紧跟轨迹列表文件名的形式，例如，如果轨迹列表文件名为 tracks.lis，即为 =tracks.lis 。如果 tracks.lis 中的轨迹文件名不包含 后缀， gmt 将自动根据 TAG 添加后缀。gmt 将首先在当前文件夹下搜索这些 轨迹文件，如果设置了 $X2SYS_HOME/TAG/TAG_paths.txt 的话，然后在 该文件中包含的路径中查找。如果没有设置 $X2SYS_HOME ，默认设置为 $GMT_SHAREDIR/x2sys。

备注

对于 MGD77 格式的轨迹数据，同时还在 MGD77_HOME/mgd77_paths.txt 中的路径和位于 *.gmt 中的 $GMT_SHAREDIR/mgg/gmtfile_paths 中查找 轨迹数据。

-T

-T TAG

  指定 x2sys TAG，参见 x2sys_init

## 可选选项

-A

-A

  通过轨迹的权重来消除两个轨迹在交叉点的不符值

-E

-E

  输出两个轨迹的信息作为头部信息 [默认不写入这些头部信息]

-F

-F name1,name2,...

  指定要输出的变量列表，每个变量以逗号分隔[默认输出所有列]

-I

-I[list]

  list 为轨迹列表文件名，其中包含若干轨迹文件名，这些轨迹将不参与计算 [默认包含所有的轨迹]

-L

-L[corrections]

  如果存在改正值，对观测量进行最优改正，corrections 为改正表，该改正表可以由 x2sys_solve 生成 [默认使用位于 $X2SYS_HOME/TAG 文件夹中的 TAG_corrections.txt] 对于改正表文件的格式，见 Corrections

-R

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

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

-S

-S

  使用该选项后，所有的列均为 NaN 的行将不输出 [默认输出所有行]

-V

-V[level]

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

-bo

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

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

-do

-do nodata

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

-h

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

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

-^ 或 -

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

-+ 或 +

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

-? 或无参数

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

--PAR=value

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

## 示例

从老格式的 MGG 文件 `c2104.gmt` 中提取所有数据:

    gmt x2sys_datalist c2104.gmt -TGMT > myfile

为在其他模块中使用 `track.lis` 文件中包含的所有轨迹，这些轨迹的 TAG 为 TRK，只输出指定范围，并设置为二进制:

    gmt x2sys_datalist =tracks.lis -TTRK -Flon,lat,depth -R40/-30/25/35 -bo > alltopo_bin.xyz

## Corrections

改正值文件是一个 ASCII 文件，其中包含了改正必须的系数和参数。 该文件通常由 x2sys_solve 模块生成，可以使用 # 进行注释， 所有改正值的格式为

    trackID observation correction

其中 trackID 是轨迹名称，observation 是某个观测量， correction 由一个或多个空格分隔的项 term ，观测量输出的时候会减去这些量。 term 的语法为

    *factor*\ [\*[*function*]([*scale*](\ *abbrev*\ [-*origin*]))[^\ *power*]]

括号中的项是可选的（必须严格按照指示使用括号）。除了 term 之间的空格， 其他部分不能有多余的空格。 factor 是基本函数的尺度，可选的基本函数包括 sin，cos 或者 exp。 可选的 scale 和 origin 可以用来转换参数。 abbrev 是 TAG 中指定的某列的缩写，也可以是其他三种 terms 。 包括：

> dist 沿轨距离

> vel 沿轨速度

> azim 沿轨方位角

如果 origin 指定为 T , 这意味着应该使用缩写的值替换第一列（通常 为时间）。如果第一列的值为 NaN ，将 origin 置为 0。 power 和 factor 分别表示对表达式进行幂运算和缩放运算。 下面是对一个名称为 ABC 的轨迹进行改正的例子。 假设 z 需要校正线性漂移，OBS 需要校正纬度依赖的变化， weight 需要进行常数校正（常数为 1，所以改正值为 -1）， fule 需要进行一定的缩放:

    ABC z 7.1 1e-4*((time-T))
    ABC obs 0.5*exp(-1e-3(lat))^1.5
    ABC weight -1
    ABC fuel 0.02*((dist))

## 相关模块

x2sys_binlist, x2sys_datalist, x2sys_get, x2sys_list, x2sys_put, x2sys_report, x2sys_solve, x2sys_cross, x2sys_merge