connect
- 官方文档:
- 简介:
将端点接近的线段连接起来
该命令会读入一个或多个多段数据,并检查所有线段的两个端点。若某对端点完全相同 或者二者的距离在可容忍的范围内,则将两段线段连接成一条线段。该进程会一直重复, 直到剩余的端点均不在可容忍的范围内。最终连接得到的线段会被写到终端或特定的 输出文件中。
若不清楚该如何确定可容忍范围值,可以使用 -L 选项,获得所有端点之间的距离的
列表,通过分析该列表来得到合适的值。
语法
gmt connect
[ table ]
[ -C[closed] ]
[ -D[template] ]
[ -L[linkfile] ]
[ -Q[template] ]
[ -T[cutoff[+ssdist]] ]
[ -V[level] ]
[ -aflags ]
[ -bibinary ]
[ -bobinary ]
[ -dnodata[+ccol] ]
[ -eregexp ]
[ -fflags ]
[ -ggaps ]
[ -hheaders ]
[ -iflags ]
[ -oflags ]
[ -qflags ]
[ -sflags ]
[ -:[i|o] ]
[ --PAR=value ]
输入数据
- table
一个或多个ASCII或二进制表数据。若不提供表数据,则会从标准输入中读取。
可选选项
- -C
- -C[closed]
将所有闭合多边形写到文件 closed (默认文件名为
gmtconnect_closed.txt)i 中并将其他数据段写到标准输出。使用该选项不会对线段做连接。
- -D
- -D[template]
对于多段数据文件,将每段数据分别输出到不同的数据文件中。
template 是文件名的模板,该模板中必须包含一个整型参数的格式,比如
%d或%08d,也可以在整型参数格式前加上字符参数格式%c,实际 输出时会被C或O代替,分别表示closed和open。默认的模板为
gmtconnect_segment_%d.txt。
- -L
- -L[linkfile]
将连接信息写到指定的文件中,默认文件名为
gmtconnect_link.txt。对于每段数据而言,会写入原始的数据段ID;对于线段的起始点和终点而言,会报告 离得最近的线段的ID,以及两个线段端点之间的距离。
- -Q
- -Q[template]
与
-D结合使用,写入一个包含各个输出文件名列表的文件。 可以为各个文件名附加一个文件名模板;该模板 可能 包含一个 C 语言格式说明符, 用于格式化一个字符(分别代表闭合或打开的 C 或 O)。[默认值为 gmtconnect_list.txt]。
- -T
- -T[cutoff[+ssdist]]
指定以数据坐标为单位的分离容差 [0];对于地理数据,请附加 距离单位 。 如果两条线的端点距离小于 cutoff,则它们将被合并。附加 +ssdist 将增加一个额外约束: 只有在第二短的连接距离超过 sdist 时,才会建立连接。后者的距离必须使用与 cutoff 相同的单位。 如果
-T没有参数,将关闭每个线段或多边形,而 不考虑 该段起点和终点之间的间隙距离。
- -V
- -V[level]
设置 verbose 等级 [w]。 (参数详细介绍)
- -a
- -a[[col=]name][,…]
控制输入或输出为 OGR/GMT 格式时对非空间元数据的处理方式。 (参数详细介绍)
- -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]]
对输入的数据进行列选择以及简单的代数运算。 (参数详细介绍)
- -o
- -ocols[,…][,t[word]]
对输出的数据进行列选择以及简单的代数运算。 (参数详细介绍)
- -q
- -q[i|o][~]rows[+ccol][+a|f|s]
对输入或输出的行进行筛选,该选项在一定程度上可以代替 gawk 的某些功能。 (参数详细介绍)
- -s
- -s[cols][+a|+r]
设置 NaN 记录的处理方式。 (参数详细介绍)
- -:
- -:[i|o]
交换输入或输出数据的前两列。 (参数详细介绍)
- -^ 或 -
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -)
- -+ 或 +
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
- -? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
- --PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数
距离单位
ASCII 格式精度
ASCII 格式输出数据通过 gmt.conf 配置文件控制。控制经纬度格式的参数为 FORMAT_GEO_OUT ;控制绝对时间的的参数包括 FORMAT_DATE_OUT 和 FORMAT_CLOCK_OUT ;普通浮点数通过参数 FORMAT_FLOAT_OUT 控制。上述格式控制可能会导致精度损失,这会在下游计算中导致一些问题。 如果用户需要保证数据精度,则应考虑将数据写为二进制文件,或者使用 FORMAT_FLOAT_OUT 指定更多的有效数字。
示例
注: 下面是该模块的一些有效语法示例。使用远程文件(文件名以 @ 开头)的示例可以剪切并粘贴到您的终端中进行测试。其他需要输入文件的命令只是常见的使用类型的虚拟示例,但不能按编写的原样运行。
将线段文件 segment_*.txt(其笛卡尔坐标单位为厘米)尽可能地合并为最少的完整线条,假设端点的数字化误差最高可达 0.1 毫米:
gmt connect segment_*.txt -T0.1 > new_segments.txt
将多段文件 my_lines.txt(其坐标为 经度, 纬度)中的线段尽可能地合并为最少的完整线条, 假设端点数字化误差最高可达 150 米,并将完整的线段写入名为 Map_segment_0001.txt、Map_segment_0002.txt 等的独立文件中:
gmt connect my_lines.txt -T150e -DMap_segment_%04d.txt
Bugs
如果线条仅包含单个点,则线条连接功能将无法工作。
但是 connect 会正确地将该点添加到最近的线段中。
对新的线条集合再次运行 connect,最终将连接所有满足 -T 给定标准的线条。