散乱离散点数据的三角形网格化快速成图
李小东1,2,3, 金胜1,2, 王阳玲1,2, 张加洪4, 程励辉1,2
1.中国地质大学 地球物理与信息技术学院,北京 100083
2.地下信息探测技术与仪器教育部重点实验室,北京 100083
3.贵州省有色金属和核工业地质勘查局物化探总队,贵州 都匀 558004
4.中国国土资源航空物探遥感中心,北京 100083
金胜(1970-),男,教授,博士生导师,长期从事地球物理学电法勘探的教学与研究工作。E-mail: jinsheng@cugb.edu.cn

作者简介: 李小东(1987-),男,硕士,四川达州人。主要研究方向为地球物理数据处理。E-mail:dragon2182436@sina.com

摘要

提出了一种基于三角网格的等值线成图线性插值方法。常规等值线成图都是基于矩形网格进行网格化插值的,三角网格能够更好地逼近地球物理场的形态和散乱离散点数据的边界,得到的等值线图更加光滑。通过搜索边界、三角网格化剖分、线性插值、搜索等值线、Bezier曲线光滑等值线等5个步骤,可以对任意散乱离散点数据进行快速成图。实际数据的成图结果表明:该方法插值效果好,不进行数据外推,得到的等值线图能直接反映散乱离散点数据的空间位置且成图速度快,可大大提高实际工作效率。

关键词: 凸包算法; Delaunay三角剖分; 线性插值; 等值线; Bezier曲线; 白化
中图分类号:P631 文献标志码:A 文章编号:1000-8918(2015)01-0156-05
Triangular grid-based rapid mapping of scattered data
LI Xiao-Dong1,2,3, JIN Sheng1,2, WANG Yang-Ling1,2, ZHANG Jia-Hong4, CHENG Li-Hui1,2
1. School of Geophysics and Information Technology, China University of Geosciences, Beijing 100083, China
2. Geo-detection and instruments Laboratory, Ministry of Education, China University of Geosciences, Beijing 100083, China
3. Non-ferrous Metals and Nuclear Industry Geological Exploration Bureau of Guizhou, Geophysical and Geochemical Exploring Group, Dujun 558004,China
4.China Aero Geophysics Survey & Remote Sensing Center foe Land and Resources, Beijing 100083, China
Abstract

Conventional contour mapping performs interpolation based on a rectangular grid. A linear interpolation method is presented in this paper based on triangular mesh. Triangular mesh can better approximate the boundary of scattered data and the morphology of geophysical field, which makes the contour maps smoother. By searching boundary, triangulated mesh, linear interpolation, search contours, Bezier curves and smooth contours, five steps can be carried out quickly for any scattered data mapping. The actual data mapping results show that the interpolation method is good in that no data extrapolation is needed, the contour map obtained directly reflect the spatial location of scattered data, and the mapping is speeded. The method can therefore greatly improve the efficiency of the actual work.

Keyword: convex hull algorithm; Delaunay triangulation; linear interpolation; contours; Bezier curve; blank

等值线图能够直观地反应各种地球物理场的形态特征, 是物探工作中一种必不可少的研究手段。在地球物理野外数据的采集过程中, 由于一些人文或地理的原因, 总不能按照规则的测点采集数据, 实际采集到的数据往往是不规则的散乱离散点数据。散乱离散点数据的成图过程一般是先用克里格插值(kriging)、自然邻点插值(natural neighbor)、径向基函数插值(radial basis function)等插值方法进行网格化处理[1, 2, 3], 得到规则节点上的场值, 然后根据这些场值来寻找等值点, 连接这些等值点, 光滑等值线便可画出等值线图。然而, 经过网格化得到的原始采集区域之外的场值往往是不真实的, 是经过一定的数学手段如概率、加权进行外推得到的, 在一般的成图过程中, 都要对这些外推区域进行“ 白化” 处理, 得到采集数据区域的等值线图, 这无疑花费了额外的计算代价, 降低了工作效率。

一般的网格化插值方法都是基于矩形网格, 如克里格插值、反距离加权插值法等, 也有基于三角形网格的插值方法如线性插值三角网法、自然邻点插值等[4, 5, 6, 7]。三角网格相较于矩形网格能够更好地逼近地球物理场的形态和散乱离散点数据的边界, 得到的等值线图更加光滑。为此, 提出一种基于三角形网格剖分的散乱离散点数据快速成图处理办法, 分为搜索边界、三角剖分、线性插值、等值线算法、Bezier曲线光滑等值线等五个步骤。

1 快速成图方法
1.1 搜索边界

要对散乱离散点数据点进行三角网格剖分, 必须得到数据点的边界, 数据点的边界可以人工读取也可以用算法识别。对于采集到的大量数据来说, 其边界点的数量必然也很多, 人工识别耗时耗力。为了提高实际工作效率, 采用美国数学学会主席Graham教授发明的凸包(convex hull)扫描算法。已知离散点集P{p1(x, y), p2(x, y), …, pn(x, y)} 的凸包Ω 是指一个最小凸多边形, 满足P中的点在多边形边上或在其内, 凸包算法的目的是要找到这个最小凸多边形, 即数据点的边界。常见的凸包算法有分治法、快包法、增量式算法、Graham扫描法、Jarvis步进法等, 这些算法的时间复杂度从O(nlnn)到O(n2)[8, 9, 10, 11]

野外采集到的数据点集并不都是凸包, 可能会存在如图1AB处的凹边界, 仍然采用凸包算法则不能够识别凹边界。对应的办法是对数据点集进行分块, 得到多块子凸包Ω , 用凸包算法对每一个子凸包进行边界提取得到子边界Γ , 按逆时针拼接各个子边界, 得到数据点集的整个边界:Γ =Γ 1Γ 2∪ …∪ Γ n

图1 散乱离散点数据点凹边界的分块搜索

1.2 基于Delaunay准则的三角剖分

常规网格化方法都是基于矩形网格进行插值的, 用数据坐标的最值得到一个能够包围所有数据点的矩形, 通过一定间距的网格剖分、插值, 得到每一节点的值。矩形网格化方法不仅不能模拟工区测网的实际形状, 成图之后还要根据数据边界对外推区域进行白化, 这无疑增加了额外计算量, 降低了工作效率。

三角剖分对于数值分析(比如有限元计算)以及图形学来说, 是一项极为重要的预处理技术。基于Delaunay准则剖分的三角网格必须满足3个条件[12, 13]:产生的三角形不相重叠, 不产生新的数据节点以及所有剖分出来的三角形的合集是点集P的凸包。三角网格剖分已经开发出了很多成熟的商业软件和算法, 如美国麻省理工学院Per-Olof Persson博士[14]开发的Distmesh、加利福尼亚大学Jonathan Shewchuk教授[15]开发的Triangle程序包, 都可以对各种形状进行剖分。在获得了数据点集的凸包边界后, 就可以用数据节点进网格剖分, 剖分后的三角网格顶点就是数据节点的位置(图2)。

图2 用边界和数据点进行三角剖分

1.3 线性插值

剖分出三角网格后, 理论上就可以连接等值点作出等值线图, 但原始数据点太少, 得到的等值线由折线构成, 不光滑。因此, 需要在原来的网格内部剖分出尺寸更小的三角形, 新增加的三角形顶点的值可以采用线性插值的办法得到, 原来的三角形顶点的值仍然保留, 所以用这种方法插值不会超过原始数据的幅值范围。

图3 面积坐标插值原理示意

图3所示, 设Pi(x, y)、Pj(x, y)、Pk(x, y)是某个三角单元的顶点, 将该三角单元内的插值点与3个顶点连线得到3个新的三角单元, 利用它们与原三角形面积的比值可以惟一确定该点的场值[16, 17]:

u(x, y)=Liui+Ljuj+Lkuk, (1)

其中, 面积坐标Lx, y的线性函数。对所有加密剖分后的三角单元的顶点进行插值计算, 便可得到新顶点处的场值:

Lix, y=12yj-ykx+xk-xjy+xjyk-xkyj,

Ljx, y=12yk-yix+xi-xky+xkyi-xiyk,

Lkx, y=12yi-yjx+xj-xiy+xiyj-xjyi,

=12yj-ykxi-xk-yk-yixk-xj.(2)

1.4 等值线算法

经过第三步, 已经形成了更小的三角网格, 且节点上的场值已经通过线性插值的办法得到。确定等值线的条数, 就可以根据场值的最大、最小值得到每一条等值线的值。对于每一条等值线, 将所有三角形搜索一遍, 寻找该等值线的值对应的等值点, 连接所有等值点得到一条等值线。重复操作, 就可得到所有等值线[18]

由上面各式可进一步推出面积坐标

Li(x, y)+Lj(x, y)+Lk(x, y)=1, (3)

式中, Li, Lj, Lk∈ (0, 1)。已知ui, uj, uk为某个三角单元顶点处的场值, 结合上述各式可知, 该三角单元内任意一点的场值u∈ (min(ui, uj, uk), max(ui, uj, uk))。如果该等值点不在该三角单元的幅值之间, 则等值线不经过该三角形; 反之, 让搜索点的坐标在三角单元的边上循环, 当边上的点(xi, yi)满足u(xi, yi)=u0(u0为某条等值线的值), 则等值线经过该三角单元。等值线与三角单元有5种位置关系, 如图4所示。

图4 等值线与三角单元的5种位置关系

1.5 Bezier曲线光滑等值线

第四步得到的等值线仍然是由尺寸更小的折线构成, 不光滑, 需要对等值线进行光滑处理。光滑算法有很多, 比如分段多项式插值法、张力样条函数法、Bezier曲线法等[19, 20, 21]。在此主要介绍Bezier曲线法, 它是用来光滑等值线的常用方法。

已知3个等值点P0P1P2的坐标, 则二次贝塞尔曲线函数B(t)定义为[22-23]:

B(t)=(1-t)2P0+2t(1-t)P1+t2P2, (4)

式中, t∈ [0, 1]。经过贝塞尔曲线光滑后, 便可得到如图5所示的光滑等值线 P0P2

图5 Bezier曲线光滑原理

2 成图实例

通过以上五个步骤, 可以得到任意散乱离散点数据的等值线图。为了验证成图效果和算法的稳定性, 分别用反演电阻率数据和磁异常数据进行网格化成图。

2.1 高密度数据的快速成图

应用高密度电阻率法得到的视电阻率数据, 由于在数据采集过程中地形高低起伏, 其反演电阻率剖面往往不是规则的倒梯形, 而是与勘探深度有关的不规则多边形。图6a为用凸包算法得到散乱数据点的边界和加密剖分后的插值网格, 然后连接各等值点得到未光滑前的等值线图如图6b, 用Bezier曲线得到光滑后的等值线(图6c), 在Surfer中采用克里格插值法对散乱数据网格化并白化后得到的等值线如图6d。

图6 本文方法与Surfer的反演电阻率成图结果对比

图6d中电阻率最大值为1 575 Ω · m, 最小值为669 Ω · m, 而原始数据最大值为1 613 Ω · m, 最小值为616 Ω · m。可见, 本方法与克里格插值方法一样, 都能清晰地反映异常体的形态, 但本方法不会改变原始数据的范围。

2.2 磁场数据的快速成图

在实际金属矿产勘查工作中, 往往会用磁法对工区进行“ 扫面” , 得到数据量很大的散乱离散点数据。为了验证算法的稳定性, 采用云南某工区的磁异常数据进行成图, 共15条测线, 线距500 m, 测线沿北东向分布, 每条测线约60个测点, 点距50 m, 共906个散乱离散点。使用Surfer, 经克里格网格化插值得到的等值线如图7a, 用本文方法进行边界识别后剖分7 808个三角单元得到的等值线如图7b。

图7 磁异常数据的成图对比

图7显示, 本文方法明显比surfer得到的等值线光滑, 且两者皆有明显的正负异常, 可以确定磁异常的范围。图7a出现的锯齿状边界是因为Surfer在网格化过程中根据网格尺寸对边缘进行白化舍去, 而图7b的直线边界是根据散乱离散点数据最初的位置得到。表1显示, 相比其他网格化方法, 本文方法不需要白化, 成图速度快, 效率高。

表1 磁异常数据成图中各种网格化方法的效率比较
3 结语

通过成图实例可以看出, 本方法具有成图步骤简单、做图速度快、不进行数据外推、可进行批量成图等优点, 在白化过程中不需要知道散乱离散点数据的边界, 通过凸包算法自动识别边界, 得到的等值线图直接反映散乱离散点数据的空间位置, 对于大规模不规则分布的地球物理数据, 可以快速网格化成图。同时, 用编写的程序成图不需要人工成图那样一步一步的鼠标操作, 只要充分考虑可能存在的几种情况, 设置好坐标体系、色标棒, 就一样能作出高质量的图件。因此, 在实际工作中采集的数据量很多需要多次成图时, 本文提出的方法能够明显的提高工作效率。

本方法只适用于数据的最终结果成图。如需通过观察等值线图后进行再处理(如傅里叶变换), 则需保留原始数据的处理结果。

The authors have declared that no competing interests exist.

参考文献
[1] 刘兆平, 杨进, 武炜. 地球物理数据网格化方法的选取[J]. 物探与化探, 2010, 34(1): 93-97. [本文引用:1]
[2] 陈欢欢, 李星, 丁文秀. Surfer8. 0等值线绘制中的十二种插值方法[J]. 工程地球物理学报, 2007, 4(1): 52. [本文引用:1]
[3] Goetze X L A H. Comparison of some gridding methods[J]. The Leading Edge, 1999, (8): 898-900. [本文引用:1]
[4] 郭良辉, 孟小红, 郭志宏, . 地球物理不规则分布数据的空间网格化法[J]. 物探与化探, 2005, 29(5): 438-442. [本文引用:1]
[5] Hardy R L. Multiquadric Equations of Topography and Other Irregular Surfaces[J]. Journal of Geophysics Research, 1971, 78: 1905-1915. [本文引用:1]
[6] 郭志宏. 一种实用的等值线型数据网格化方法[J]. 物探与化探, 2001, 25(3): 203-208. [本文引用:1]
[7] 孟小红, 侯建全, 梁宏英, . 离散光滑插值方法在地球物理位场中的快速实现[J]. 物探与化探, 2002, 26(4): 302-306. [本文引用:1]
[8] Cormen T H. 算法导论[M]. 潘金贵, 顾铁成, 译. 北京: 机械工业出版社, 2013. [本文引用:1]
[9] Graham R L. An efficient algorithm for determining the convex hull of a finite planar set[J]. Information processing letters, 1972, 1(4): 132-133. [本文引用:1]
[10] Jarvis R A. On the identification of the convex hull of a finite set of points in the plane[J]. Information Processing Letters, 1973, (2): 18-21. [本文引用:1]
[11] 陈涛, 李光耀. 平面离散点集的边界搜索算法[J]. 计算机仿真, 2004, 21(3): 21-23. [本文引用:1]
[12] Lee D T, Schacheer B J. Two algorithms for constructing a Delaunay triangulation[J]. International Journal of Computer and Information Science, 1980, 9(3): 219-242. [本文引用:1]
[13] Watson D F. Computing the n-dimension Delaunay tessellation with application to Voronoi polygons[J]. The computer journal, 1981, 24(2): 167-172. [本文引用:1]
[14] Persson P O, Strang G. A simple mesh generator in MATLAB[J]. SIAM review, 2004, 46(2): 329-345. [本文引用:1]
[15] Shewchuk J R. Triangle: Engineering a 2D quality mesh generator and delaunay triangulator[J]. Applied Computational Geometry Towards Geometric Engineering, 1996, 1148: 124-133. [本文引用:1]
[16] 徐世浙. 地球物理中的有限单元法[M]. 北京: 科学出版社, 1994: 40-42. [本文引用:1]
[17] 柳建新, 蒋鹏飞, 童孝忠, . 不完全 LU 分解预处理的 BICGSTAB 算法在大地电磁二维正演模拟中的应用[J]. 中南大学学报: 自然科学版, 2009, 40(2): 484-491. [本文引用:1]
[18] 苗润忠. 光滑的等值线生成算法[J]. 长春理工大学学报, 2004, (1): 16-18. [本文引用:1]
[19] 施法中. 计算机辅助几何设计与非均匀有理B样条[M]. 北京: 北京航空航天大学出版社, 1994. [本文引用:1]
[20] ROBERT C B. An Introduction to the Curves and Surfaces of Computer-aided Design[M]. Stanford Linear Accelerator Center: Van Nostrand Reinhold, 1991. [本文引用:1]
[21] Mallet J L. Discrete smooth interpolation in geometric modeling[J]. Computer-aided design, 1992, 24(4) : 178-191. [本文引用:1]
[22] 王正林, 龚纯. 精通matlab科学计算[M]. 北京: 电子工业出版社, 2007. [本文引用:1]
[23] Farin G. Algorithms for rational Bézier curves[J]. Computer-Aided Design, 1983, 15(2): 73-77. [本文引用:1]