triangulate
- 官方文档:
- 简介:
笛卡尔数据的 Delaunay 三角剖分或 Voronoi 图和网格化
triangulate 读取表数据并进行 Delaunay 三角化,该三角化方法能最大程度地避免狭窄
的三角形。如果使用了 -R 和 -J 选项,则表明输入为地理坐标,首先使用投影,
然后执行三角化。默认情况下,输出组成每个三角形的点 ID,并输出到标准输出。ID 编号
为输入文件时,点的位置,从 0 开始计算。该模块同时可以创建一个多段数据文件,通过
管道传递给 plot 模块后可绘制三角网。如果设置了 -G 和 -I 选项,则
基于平面三角形计算网格。具体算法来自 Watson (1982) [默认] 或 Shewchuk (1996) ,
此选择是在 GMT 安装期间确定的,通过 gmt get GMT_TRIANGULATE 可查看具体安装了
哪种算法,如果安装了 Shewchuk 算法,还可以进一步计算 Voronoi 图,并可选择自然最邻
近算法对数据进行网格化。
语法
gmt triangulate
[ table ]
[ -Cslpfile ]
[ -Dx|y ]
[ -Eempty ]
[ -Goutgrid ]
[ -Iincrement ]
[ -Jparameters ]
[ -M ]
[ -N ]
[ -Q[n] ]
[ -Rregion ]
[ -S ]
[ -T ]
[ -V[level] ]
[ -Z ]
[ -bbinary ]
[ -dnodata[+ccol] ]
[ -eregexp ]
[ -fflags ]
[ -hheaders ]
[ -iflags ]
[ -qiflags ]
[ -rreg ]
[ -sflags ]
[ -wflags ]
[ -:[i|o] ]
[ --PAR=value ]
必选选项
- table
一个或多个ASCII或二进制表数据。若不提供表数据,则会从标准输入中读取。
可选选项
- -C
- -Cslpfile
读取坡度网格 slpfile (单位为度),并使用 CURVE 算法计算水深测量中传播的不确定性 (Zambo et al, 2016)。需要
-G选项指定输出网格,但不需要-R,-I等选项,这些 信息通过网格获取。该选项不能和-D,-F,-M,-N,-Q,-S以及-T选项共同使用。
- -D
- -Dx|y
在设置
-G选项时,求 x 方向或 y 方向的导数
- -E
- -Eempty
使用
-G选项时,设置空节点的值,默认为 NaN
- -G
-Goutgrid[=ID][+ddivisor][+ninvalid] [+ooffset|a][+sscale|a] [:driver[dataType][+coptions]]
使用三角化将数据网格化,该选项用于指定输出网格名。各子选项含义见 网格文件
- -I
- -Ixinc[+e|n][/yinc[+e|n]]
指定X和Y方向的网格间隔
xinc 和 yinc 为 X 和 Y 方向的网格间隔。对于地理坐标,可以指定网格间隔单位 [默认单位为度]
+e 微调X和Y方向范围的最大值,使得其是网格间隔的整数倍(默认会微调 网格间隔以适应给定的数据范围)
+n 表明 xinc 和 yinc 不是网格间隔,而是X和Y方向的节点数。 此时会根据节点数、网格区域范围以及网格配准方式重新计算网格间隔。
注意:
若 yinc 设置为0,则表示其与 xinc 相同
若使用 -Rgrdfile 选项,则网格间隔和配准方式已经根据网格文件自动初始化, 此时依然可以使用 -I 和 -r 覆盖相应的值
- -J
- -Jprojection
设置地图投影方式。 (参数详细介绍)
- -M
- -M
将输出的三角网以多段线的形式输出,中间以段信息分隔 [默认输出顶点索引]
- -N
- -N
与
-G选项同时使用,用来将三角网的顶点输出到标准输出 [默认只输出网格]
- -Q
- -Q[n]
输出 Voronoi 图的边,而不是三角网的边。需要和
-R同时使用,并且只有使用 Shewchuk 算法时可用。n 选项用来将边组成闭合的多边形
- -R
- -Rxmin/xmax/ymin/ymax[+r][+uunit]
指定数据范围。 (参数详细介绍)
- -S
- -S
以多边形的形式输出三角网,中间以段头信息分隔,不能和
-Q同时使用
- -T
- -T
即使使用
-G选项输出网格,仍然输出边或者多边形 [默认输出网格时不输出三角网或 Voronoi 多边形]。
- -Z
- -Z
指定输出和输入为 (x,y,z) 形式的数据,使用
-G选项时,会自动使用该选项 [默认为 (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
显式指定当前输入或输出数据中每一列的数据类型。 (参数详细介绍)
- -h
- -h[i|o][n][+c][+d][+msegheader][+rremark][+ttitle]
在读/写数据时跳过文件开头的若干个记录。 (参数详细介绍)
- -i
- -icols[+l][+sscale][+ooffset][,…][,t[word]]
对输入的数据进行列选择以及简单的代数运算。 (参数详细介绍)
- -qi
- -qi[~]rows[+ccol][+a|f|s]
筛选输入的行或数据范围。 (参数详细介绍)
- -r
- -r[g|p]
设置网格配置方式 [默认为网格线配准]。 (参数详细介绍)
- -s
- -s[cols][+a|+r]
设置 NaN 记录的处理方式。 (参数详细介绍)
- -w
- -wy|a|w|d|h|m|s|cperiod[/phase][+ccol]
将输入坐标转换为循环坐标。 (参数详细介绍)
- -:
- -:[i|o]
交换输入或输出数据的前两列。 (参数详细介绍)
- -^ 或 -
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -)
- -+ 或 +
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
- -? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
- --PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数
网格值精度
不管输入数据的精度如何,创建网格文件的 GMT 程序将在内部以 4 字节浮点数组的形式保存网格。 这样做是为了节省内存,而且大多数实际数据都可以使用 4 字节浮点值存储。 具有更高精度的数据(即双精度值)将在 GMT 操作网格或写入新网格时失去该精度。 为了限制处理数据时的精度损失,用户应该始终考虑在处理之前对数据进行归一化。
点位于多边形内/外
为了确定点在多边形内,外或在边界上,GMT 会平衡数据类型以及多边形形状等因素来 确定算法。对于笛卡尔坐标,GMT 使用 non-zero winding 算法,该算法非常快。对于 地理坐标,如果多边形不包括两极点且多边形的经度范围不超过 360 度,同样使用该 算法。否则,GMT 会采用 full spherical ray-shooting 方法。
示例
对 samples.xyz 进行三角化,在二进制文件中保存三角网结果,并创建网格
gmt triangulate samples.xyz -bo -R0/30/0/30 -I2 -Gsurf.nc > samples.ijk
使用 15 cm 的墨卡托图绘制基于上述同样数据生成的三角网
gmt triangulate samples.xyz -M -R-100/-90/30/34 -JM15c |\
gmt plot -R-100/-90/30/34 -JM15c -W0.5p -B1 -pdf network
同样使用上述数据,但绘制 Voronoi 图
gmt triangulate samples.xyz -M -Q -R-100/-90/30/34 -JM15c |\
gmt plot -R-100/-90/30/34 -JM15c -W0.5p -B1 -pdf cells
将 Voronoi 的线段组合成多边形并根据他们的 ID 填充
gmt triangulate samples.xyz -M -Qn -R-100/-90/30/34 -JM15c | \
gmt plot -R-100/-90/30/34 -JM15c -W0.5p+cf -L -B1 -Ccolors.cpt -L -pdf polygons
使用自然最邻近算法进行网格化
gmt triangulate samples.xyz -Gnnn.nc -Qn -R-100/-90/30/34 -I0.5
参考文献
Shewchuk, J. R., 1996, Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator, First Workshop on Applied Computational Geometry (Philadelphia, PA), 124-133, ACM, May 1996.
Watson, D. F., 1982, Acord: Automatic contouring of raw data, Comp. & Geosci., 8, 97-101.
Zambo, S., Elmore, P. A., Bourgeois, B. S., and Perkins, A. L., 2016, Uncertainty estimation for sparse data gridding algorithms, Proceedings of the U.S. Hydro Conference,National Harbor, MD, 16-19 March 2015.
Zhou, Q., and Liu, X., 2004, Error analysis on grid-based slope and aspect algorithms, Photogrammetric Eng. & Remote Sensing, 70 (8), 957-962.
相关模块
greenspline, nearneighbor, contour, sphdistance, sphinterpolate, sphtriangulate, surface