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_filter 和 z_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