triangiulate

官方文档

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或二进制表数据。若不提供表数据,则会从标准输入中读取。

可选选项

-Cslpfile

读取坡度网格 slpfile (单位为度),并使用 CURVE 算法计算水深测量中传播的不确定性 (Zambo et al, 2016)。需要 -G 选项指定输出网格,但不需要 -R-I 等选项,这些信息通过网格获取。该选项不能和 -D-F-M-N-Q-S 以及 -T 选项共同使用。

-Dx|y

在设置 -G 选项时,求 x 方向或 y 方向的导数

-Eempty

使用 -G 选项时,设置空节点的值,默认为 NaN

-Goutgrid[=ID][+ddivisor][+ninvalid] [+ooffset|a][+sscale|a] [:driver[dataType][+coptions]]

使用三角化将数据网格化,该选项用于指定输出网格名。各子选项含义见 网格文件

-Ixinc[+e|n][/yinc[+e|n]]

指定X和Y方向的网格间隔

  • xincyinc 为 X 和 Y 方向的网格间隔。对于地理坐标,可以指定网格间隔单位 [默认单位为度]

  • +e 微调X和Y方向范围的最大值,使得其是网格间隔的整数倍(默认会微调网格间隔以适应给定的数据范围)

  • +n 表明 xincyinc 不是网格间隔,而是X和Y方向的节点数。此时会根据节点数、网格区域范围以及网格配准方式重新计算网格间隔。

注意:

  • yinc 设置为0,则表示其与 xinc 相同

  • 若使用 -Rgrdfile 选项,则网格间隔和配准方式已经根据网格文件自动初始化,此时依然可以使用 -I-r 覆盖相应的值

-Jprojection (more …)

设置地图投影方式

-M

将输出的三角网以多段线的形式输出,中间以段信息分隔 [默认输出顶点索引]

-N

-G 选项同时使用,用来将三角网的顶点输出到标准输出 [默认只输出网格]

-Q[n]

输出 Voronoi 图的边,而不是三角网的边。需要和 -R 同时使用,并且只有使用 Shewchuk 算法时可用。n 选项用来将边组成闭合的多边形

-Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)

指定数据范围

-S

以多边形的形式输出三角网,中间以段头信息分隔,不能和 -Q 同时使用

-T

即使使用 -G 选项输出网格,仍然输出边或者多边形 [默认输出网格时不输出三角网或 Voronoi 多边形]。

-Z

指定输出和输入为 (x,y,z) 形式的数据,使用 -G 选项时,会自动使用该选项 [默认为 (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 …)

指定输入或输出列的数据类型

-h[i|o][n][+c][+d][+msegheader][+rremark][+ttitle] (more …)

跳过或生成指定数目的头段记录

-icols[+l][+sscale][+ooffset][,][,t[word]] (more …)

设置输入数据列及简单变换(0表示第一列,t 表示文本列)

-qi[~]rows[+ccol][+a|f|s] (more …)

筛选输入的行或数据范围

-r[g|p] (more …)

设置网格配置方式 [默认为网格线配准]

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

设置 NaN 记录的处理方式

-wy|a|w|d|h|m|s|cperiod[/phase][+ccol] (more …)

将输入坐标转换为循环坐标

-:[i|o] (more …)

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

-^-

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

-++

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

-? 或无参数

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

--PAR=value

临时修改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.

Shewchuk’s Homepage

相关模块

greenspline, nearneighbor, contour, sphdistance, sphinterpolate, sphtriangulate, surface