基于双边结构的TIN模型等值线搜索方法技术

技术编号:18446408 阅读:24 留言:0更新日期:2018-07-14 10:59
本发明专利技术提供了一种基于双边结构的TIN模型等值线搜索方法,包括以下步骤:基于离散点数据构建双边结构的TIN模型,在每个点加入TIN模型中的同时根据其离散点值Z进行升序排序;取排序后的集合中的最小Z值和最大Z值,分别记为Zmin和Zmax;根据外部传入的等值间距参数d,计算所有需要追踪的等值线;从ArrayZ中第一个元素开始依次搜索等值线,搜索每一条等值线之前首先对离散数据进行预处理,消除搜索过程中可能因出现二义性而导致出错的数据。本发明专利技术基于双边结构的强大拓扑关系,可快速根据回复边的拓扑关系游走追踪等值线,较好的处理追踪过程中的多义性,既能找到所有的等值线又通过三角形过滤避免了非法等值线的出现。

【技术实现步骤摘要】
基于双边结构的TIN模型等值线搜索方法
本专利技术涉及基于GIS的应用业务系统及计算机软件开发领域,具体涉及一种基于双边结构的TIN模型等值线搜索方法。
技术介绍
等值线在气象、地质、环境、规划、资源及其相关领域应用非常广泛。它将三维的信息显示到二维平面,是进行地理要素等空间分析的强大工具,能从区域上把握要素的总体变化特征与变化规律。然而,在计算机平台下的地下水水位等值线自动生成工具还不多见,目前的相关研究主要有:(1)单独的等值线生成算法,分别有基于矩形规则网格算法和基于不规则三角网算法,由于是生成独立的图片,没有与GIS相结合,因此限制了其应用范围;(2)与其它专业软件相结合,但需要单独安装等值线绘制显示软件;(3)与GIS相结合的等值线自动生成算法,采用矩形规则网进行了基于GIS等值线生成研究,但基于矩形网格的算法需要在网格点进行插值,并且搜索矩形内第2条等值边时存在二义性,以及等值线经过站点时往往与实测值不符。双边结构由三个对象组成:顶点、半边、面,每一个对象都有指针指向其他对象,大致指向情况如下:1、顶点对象:包含一个指针指向离开它的半边vertex->leaving.2、半边对象:包含一个指向它离开的顶点的指针halfedge->orgin.一个它所对应的面(左手定则)halfedge->face.一个指向它的twins的指针,halfedge->twins.一个指向它的下一条半边的指针,halfedge->next.3、面对象:包含一个指向与它对应的半边的指针,face->halfedge.双边数据结构中并不会存储网格的边的信息,取而代之的是半边(half-edges,DualEdge)。是把一条边保持长度不变,形式上分为两条半边(因为按照定义边没有宽度或者至少是单位宽度)。这两条半边组合在一起称为一条边,也就是一条边等于一对半边。半边是有方向的,并且一条边的一对半边有相反的方向。
技术实现思路
本专利技术的目的在于提供一种基于双边结构的TIN模型等值线搜索方法,旨在用于解决现有的但基于矩形网格的算法需要在网格点进行插值,并且搜索矩形内第2条等值边时存在二义性,以及等值线经过站点时往往与实测值不符的问题。本专利技术是这样实现的:本专利技术提供一种基于双边结构的TIN模型等值线搜索方法,包括以下步骤:S1,基于离散点数据构建双边结构的TIN模型,在每个点加入TIN模型中的同时根据其离散点值Z进行升序排序;直至所有离散点均加入TIN模型中,记排序后的集合为OrderZArray;S2,取排序后的集合中的最小Z值和最大Z值,分别记为Zmin和Zmax;根据外部传入的等值间距参数d,计算所有需要追踪的等值线,该集合记为ArrayZ={Zmin,Zmin+d,Zmin+2d,Zmin+3d,...,Zmax};S3,从ArrayZ中第一个元素开始依次搜索等值线,搜索每一条等值线之前首先对离散数据进行预处理,消除搜索过程中可能因出现二义性而导致出错的数据;在同一值的等值线搜索过程中,初始化所有边的状态为可用,基于双边结构的边和对边的关系,在三角形中搜索等值线,如果边为边界,则停止搜索,并从开始边反向再搜索;如果边已经搜索过,将其状态置为不可用;一条等值线追踪完成后,判断起始边与终止边的关系,如果等值线的起始边和终止边是在同一个三角形内,则认为该等值线闭合,添加点使其闭合,否则认为是开曲线。进一步地,所述步骤S3中对数据进行预处理的具体方法如下:记当前搜索值为Z0,采用二分搜索在OrderZArray中快速找到值比Z0小的原始离散点索引,然后从索引处开始,向后遍历,查找是否存在值Z与当前值Z0相同的点,一旦Z值大于当前值Z0,即退出循环,开始搜索等值线,如果Z值与Z0相同,则对Z值进行微调,加上一个微小数,使两者不等,并记录被修改数据的索引值,记为ModifyIndex。进一步地,在微调后保存修改的离散点的索引值和原始值,在该等值线搜索完成后,恢复离散点到初始状态。进一步地,所述步骤S3中搜索等值线的具体方法如下:S3.1,在TIN模型中找到第一条起始边Edge0;S3.2,标记该边已经访问,并判断该边是否存在等值点,如存在,将该等值点加入线集合Line,如果该边是边界,则停止搜索,否转步骤S3.3;如果不存在则转步骤S3.4;S3.3,判断当前边的下一条边NextEdge是否已经访问过,如果未访问,则转步骤S3.2继续循环,否则转步骤S3.4;S3.4,判断当前边的对边DualEdge是否已经访问过,如果未访问,则转到步骤S3.2继续循环,否则退出循环;S3.5,上述循环结束后,即可找到从Edge0边上开始的一系列等值点,然后从Edge0边的对边DualEdge开始,转到步骤S3.2,再反向找一遍;S3.6,所述步骤S3.5之后,即可搜索出一系列等值点,如果线集合Line中只有一个点,则忽略;如果有多个点,连接生成等值线。进一步地,对形成的等值点集数据进行样条曲线插值,形成最终的平滑的等值线并在GIS系统中完成绘制显示。进一步地,上述方法中,判断在当前边上是否存在等值点的判断依据如下:对于任一边,其两端的Z值为别记为Z1和Z2,该边存在等值点Z0的条件是Z1<Z0<Z2。进一步地,所述步骤S1中,采用优化的堆排序的算法对离散点进行排序。与现有技术相比,本专利技术具有以下有益效果:本专利技术提供的这种基于双边结构的TIN模型等值线搜索方法,在搜索前对特殊情况进行了快速处理,去除了搜索过程中的二义性;基于双边结构的强大拓扑关系,可快速根据回复边的拓扑关系游走追踪等值线,较好的处理追踪过程中的多义性,既能找到所有的等值线又通过三角形过滤避免了非法等值线的出现。附图说明图1为本专利技术实施例提供的一种基于双边结构的TIN模型等值线搜索方法的流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。如图1所示,本专利技术实施例提供一种基于双边结构的TIN模型等值线搜索方法,其中离散点用用(X,Y,Z)来表示,XY表示其在二维平面的位置,Z表示值,该方法包括以下步骤:S1,基于离散点数据构建双边结构的TIN模型,在每个点加入TIN模型中的同时根据其离散点值Z进行升序排序;直至所有离散点均加入TIN模型中,记排序后的集合为OrderZArray;S2,取排序后的集合中的最小Z值和最大Z值,分别记为Zmin和Zmax;根据外部传入的等值间距参数d,计算所有需要追踪的等值线,该集合记为ArrayZ={Zmin,Zmin+d,Zmin+2d,Zmin+3d,...,Zmax};S3,从ArrayZ中第一个元素开始依次搜索等值线,搜索每一条等值线之前首先对离散数据进行预处理,消除搜索过程中可能因出现二义性而导致出错的数据;在同一值的等值线搜索过程中,初始化所有边的状态为可用,基于双边结构的边和对边的关系,在三角形中本文档来自技高网
...

【技术保护点】
1.一种基于双边结构的TIN模型等值线搜索方法,其特征在于,包括以下步骤:S1,基于离散点数据构建双边结构的TIN模型,在每个点加入TIN模型中的同时根据其离散点值Z进行升序排序;直至所有离散点均加入TIN模型中,记排序后的集合为OrderZArray;S2,取排序后的集合中的最小Z值和最大Z值,分别记为Zmin和Zmax;根据外部传入的等值间距参数d,计算所有需要追踪的等值线,该集合记为ArrayZ = {Zmin, Zmin+d, Zmin+2d, Zmin+3d, ... , Zmax};S3,从ArrayZ中第一个元素开始依次搜索等值线,搜索每一条等值线之前首先对离散数据进行预处理,消除搜索过程中可能因出现二义性而导致出错的数据;在同一值的等值线搜索过程中,初始化所有边的状态为可用,基于双边结构的边和对边的关系,在三角形中搜索等值线,如果边为边界,则停止搜索,并从开始边反向再搜索;如果边已经搜索过,将其状态置为不可用;一条等值线追踪完成后,判断起始边与终止边的关系,如果等值线的起始边和终止边是在同一个三角形内,则认为该等值线闭合,添加点使其闭合,否则认为是开曲线。

【技术特征摘要】
1.一种基于双边结构的TIN模型等值线搜索方法,其特征在于,包括以下步骤:S1,基于离散点数据构建双边结构的TIN模型,在每个点加入TIN模型中的同时根据其离散点值Z进行升序排序;直至所有离散点均加入TIN模型中,记排序后的集合为OrderZArray;S2,取排序后的集合中的最小Z值和最大Z值,分别记为Zmin和Zmax;根据外部传入的等值间距参数d,计算所有需要追踪的等值线,该集合记为ArrayZ={Zmin,Zmin+d,Zmin+2d,Zmin+3d,...,Zmax};S3,从ArrayZ中第一个元素开始依次搜索等值线,搜索每一条等值线之前首先对离散数据进行预处理,消除搜索过程中可能因出现二义性而导致出错的数据;在同一值的等值线搜索过程中,初始化所有边的状态为可用,基于双边结构的边和对边的关系,在三角形中搜索等值线,如果边为边界,则停止搜索,并从开始边反向再搜索;如果边已经搜索过,将其状态置为不可用;一条等值线追踪完成后,判断起始边与终止边的关系,如果等值线的起始边和终止边是在同一个三角形内,则认为该等值线闭合,添加点使其闭合,否则认为是开曲线。2.如权利要求1所述的基于双边结构的TIN模型等值线搜索方法,其特征在于:所述步骤S3中对数据进行预处理的具体方法如下:记当前搜索值为Z0,采用二分搜索在OrderZArray中快速找到值比Z0小的原始离散点索引,然后从索引处开始,向后遍历,查找是否存在值Z与当前值Z0相同的点,一旦Z值大于当前值Z0,即退出循环,开始搜索等值线,如果Z值与Z0相同,则对Z值进行微调,加上一个微小数,使两者不等,并记录被修改数据的索引值,记为ModifyIndex。3.如权利要求2所述的基于双边结构的TIN模型等值线搜索方...

【专利技术属性】
技术研发人员:叶玉强孙强林
申请(专利权)人:武汉智博创享科技股份有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1