gmtsplit

官方文档

gmtsplit

简介

将表数据拆分成单独的段

gmtsplit 将表数据拆分以使每段数据都具有近乎恒定的方位角。该模块可认为是数据提取和 wiggle 模块之间的一个数据过滤模块,也可以用来将一个大的数据集分割成小段。

语法

gmt gmtsplit [ table ] [ -Aazimuth/tolerance ] [ -Ccourse_change] [ -Dminimum_distance ] [ -Fxy_filter/z_filter ] [ -Ntemplate ] [ -Qflags ] [ -S ] [ -V[level] ] [ -bbinary ] [ -dnodata[+ccol] ] [ -eregexp ] [ -fflags ] [ -ggaps ] [ -hheaders ] [ -iflags ] [ -qflags ] [ -sflags ] [ -:[i|o] ] [ --PAR=value ]

必选选项

table

输入表文件,可以为 2 列,3 列或者 5 列,数据值为 (x,y,[z[,d,h]])。默认情况下认为输入只包含 3 列,若输入数据为 5 列,使用 -S 选项确保 d 不是递减的

可选选项

-Aazimuth/tolerance

计算方位角,只输出和方位角 azimuth 相差小于 tolerance 的段

-Ccourse_change

当检测到航向发生变化且超过 course_change 时,结束该航段

-Dminimum_distance

输出总长度大于 minimum_distance 的段,默认值为 0

-Fxy_filter/z_filter

对数据进行滤波,假定数据为 d 列(x 的增量)的函数。xy_filterz_filter 分别为 x,y 值和 z 值的滤波的长度,单位和距离单位相同(见 -S )。如果长度为 0 ,即不进行滤波。滤波长度的绝对值的是余弦滤波总的窗口宽度,如果长度为正值,则数据为低通滤波,如果为负值,则为高通滤波。如果 z_filter 不为 0,则在拆分之前对数据滤波,因此边缘效应只会发生在整体数据的开始和结尾处,在每段数据的头尾则不会有。如果 xy_filter 不为 0,数据将先被拆分,然后对每段的 x 和 y 值滤波,即在每段首尾都可能存在边缘效应,但是可以避免低通滤波将测线拐弯处舍入。

-Ntemplate

将拆分后的每段都单独输出到文件 [默认在一个文件输出所有段]。可以追加一个格式化的文件模版,必须使用 C 语言格式的语法,例如 %d 表示整数,%08d 表示宽度为 8 的整数,位数不够则在前面补 0 [默认模版为 gmtsplit_segment_%d.{txt|bin},后缀与输出文件格式有关]。或者给出一个带有两个 C 语言格式的模版,使用表数据的编号和段号生成文件名。

-Qflags

设置输出列包含 xyzdh 中的哪些列以及其顺序,中间不需要使用空格,且必须使用小写字母,默认为 -Qxyzdh ;如果输入只包含两列,则为 -Qxydh

-S

支持包含 d 和 h 的列,这时输入数据为 x,y,z,d,h。其中 d 和 h 分别表示 x 的增量和 y 的增量。使用 -fg 时,数据为地理坐标,x 和 y 的坐标单位为度,增量的单位均为 km,角度为方位角。若为笛卡尔坐标,距离的单位和 x 以及 y 相同,角度从水平方向开始顺时针计算。

-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 表示文本列)

-q[i|o][~]rows[+ccol][+a|f|s] (more …)

筛选输入或输出的行或数据范围

-s[cols][+a|+r] (more …)

设置 NaN 记录的处理方式

-:[i|o] (more …)

交换输入或输出中的第一和第二列

-^-

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

-++

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

-? 或无参数

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

--PAR=value

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

示例

使用 NCEI 提供的 JA020015 航次中 -R300/315/12/20 范围内东西方向的测线绘制磁异常的 wiggle 图,并对测线进行 100 km 的低通滤波和 500 km 的高通滤波

gmt mgd77list JA020015 -R300/315/12/20 -Flon,lat,mag,dist,azim |\
    gmt split -A90/15 -F100/-500 -D100 -S -V -fg |\
    gmt wiggle -R300/315/12/20 -Jm0.6i -Baf -B+tJA020015 -T1 \
    -W0.75p -Ggray -Z200 -pdf JA020015_wiggles

原始测量数据为 MGD77 格式,因此建议使用 mgd77list 模块提取 dist 和 azim 而不是使用 gmtsplit 计算。

将一个包含经纬度以及重力观测值的二进制双精度文件,拆分为 survey_xxxx.txt 形式的一系列文件,拆分原则为间隙大于 100 km

gmt split survey.bin -Nsurvey_%03d.txt -V -gd100k -D100 -: -fg -bi3d

相关模块

filter1d, mgd77list, wiggle