split
- 官方文档:
- 简介:
将表数据拆分成单独的段
split 将表数据拆分以使每段数据都具有近乎恒定的方位角。该模块可认为 是数据提取和 wiggle 模块之间的一个数据过滤模块,也可以用来将一个大的 数据集分割成小段。
语法
gmt split [ 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 不是递减的
可选选项
- -A
- -Aazimuth/tolerance
计算方位角,只输出和方位角 azimuth 相差小于 tolerance 的段
- -C
- -Ccourse_change
当检测到航向发生变化且超过 course_change 时,结束该航段
- -D
- -Dminimum_distance
输出总长度大于 minimum_distance 的段,默认值为 0
- -F
- -Fxy_filter/z_filter
对数据进行滤波,假定数据为 d 列(x 的增量)的函数。xy_filter 和 z_filter 分别为 x,y 值和 z 值的滤波的长度,单位和距离单位相同(见
-S)。如果长度 为 0 ,即不进行滤波。滤波长度的绝对值的是余弦滤波总的窗口宽度,如果长度为 正值,则数据为低通滤波,如果为负值,则为高通滤波。如果 z_filter 不为 0,则 在拆分之前对数据滤波,因此边缘效应只会发生在整体数据的开始和结尾处,在每段数据 的头尾则不会有。如果 xy_filter 不为 0,数据将先被拆分,然后对每段的 x 和 y 值滤波,即在每段首尾都可能存在边缘效应,但是可以避免低通滤波将测线拐弯处舍入。
- -N
- -Ntemplate
将拆分后的每段都单独输出到文件 [默认在一个文件输出所有段]。可以追加一个格式化 的文件模版,必须使用 C 语言格式的语法,例如 %d 表示整数,%08d 表示宽度为 8 的 整数,位数不够则在前面补 0 [默认模版为 gmtsplit_segment_%d.{txt|bin},后缀与 输出文件格式有关]。或者给出一个带有两个 C 语言格式的模版,使用表数据的编号和 段号生成文件名。
- -Q
- -S
- -S
支持包含 d 和 h 的列,这时输入数据为 x,y,z,d,h。其中 d 和 h 分别表示 x 的增量和 y 的增量。使用 -fg 时,数据为地理坐标,x 和 y 的坐标单位为度,增量的单位均 为 km,角度为方位角。若为笛卡尔坐标,距离的单位和 x 以及 y 相同,角度从水平方向 开始顺时针计算。
- -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]zgap[+n|p]
确定数据或线段的间断。 (参数详细介绍)
- -h
- -h[i|o][n][+c][+d][+msegheader][+rremark][+ttitle]
在读/写数据时跳过文件开头的若干个记录。 (参数详细介绍)
- -i
- -icols[+l][+sscale][+ooffset][,…][,t[word]]
对输入的数据进行列选择以及简单的代数运算。 (参数详细介绍)
- -q
- -q[i|o][~]rows[+ccol][+a|f|s]
对输入或输出的行进行筛选,该选项在一定程度上可以代替 gawk 的某些功能。 (参数详细介绍)
- -s
- -s[cols][+a|+r]
设置 NaN 记录的处理方式。 (参数详细介绍)
- -:
- -:[i|o]
交换输入或输出数据的前两列。 (参数详细介绍)
- -^ 或 -
显示简短的帮助信息,包括模块简介和基本语法信息(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 而不是使用 split 计算。
将一个包含经纬度以及重力观测值的二进制双精度文件,拆分为 survey_xxxx.txt 形式的一系列 文件,拆分原则为间隙大于 100 km
gmt split survey.bin -Nsurvey_%03d.txt -V -gd100k -D100 -: -fg -bi3d