一种基于图算法的测量线路搜索方法
技术领域
本发明属于测量
技术领域
,具体涉及一种基于图算法的测量线路搜索方法。背景技术
传统测量作业模式下,观测数据较少,人工可以组成简单的测网与线路进行数据解算与观测质量评估。但是随着智能化、数字化与自动化走入测量领域,观测变得实时、动态,观测数据变得庞大、无序,测网与线路由简单小型变得复杂庞大。若依靠人工作业,不仅工作效率低、人工成本高,而且工作质量难以保证。因此,需要提出一种可以自动搜索测网与线路的方法,以便进行数据解算与观测质量评估。
近年来,图算法在测量线路搜索方面有着广泛的应用,比如,专利号为CN104573396A的中国专利进行了水准网中最小闭合水准环,最短附和水准线路的搜索;专利号为CN105868538A的中国专利进行了导线平面控制网内闭合水准环的搜索。大多研究基于图算法做了适用性改进,并应用于闭合水准环的搜索,本专利将基于图算法利用观测数据进行自主组网与线路搜索,继而实现未知参数的自主解算与观测质量评估。
发明内容
本发明的目的是根据上述现有技术的不足之处,提供一种基于图算法的测量线路搜索方法,该测量线路搜索方法通过图算法将观测数据进行自主组网与网中线路自主搜索,进而高效便捷的进行网中未知参数的自主解算与观测数据质量检查。
本发明目的实现由以下技术方案完成:
一种基于图算法的测量线路搜索方法,其特征在于所述测量线路搜索方法包括以下步骤:
(1)将观测数据整理成线路点对集合H、线路点集合N以及起算点集合C;
(2)基于无向图广度优先搜索法将步骤(1)中的所述观测数据组合成若干个测网,每个所述测网中包括线路点对H net 、线路点N net 以及起算点C net ;
(3)对步骤(2)中每个所述测网基于无向图深度优先搜索法进行线路搜索;
(4)根据步骤(2)中每个所述测网中的线路点对H net 、线路点N net 以及起算点C net 的信息,列立误差方程组,解算每个所述测网中的未知参数;
(5)计算步骤(3)中线路的闭合水准差或者附和水准差,根据步骤(4)中的解算结果评估观测精度与质量。
所述步骤(1)包括以下步骤:
(1.1)将观测数据整理成线路点对集合H,其中,每个线路点对包括线路两端的线路点;
(1.2)去除线路点对集合H中重复的点名以获取一组线路点集合N;
(1.3)整理线路点集合N中已知线路点以获取起算点集合C。
所述步骤(2)中的所述无向图广度优先搜索法包括以下步骤:
(2.1)从线路点集合N中选取任意线路点作为测网搜索的起始点S;
(2.2)初始化队列Q,起始点S入队,起始点S染色;
(2.3)当队列Q不为空时,队列Q的队头点q出队,队头点q是存储在队头的线路点名,所述队头是进行删除操作的前端;搜索线路点对集合H中线路点对包含队头点q且未标记访问的若干线路点对信息,对若干所述线路点对信息标记访问;对若干所述线路点对中另一个不为队头点q且未染色的线路点进行染色,并且入队,如此往复,直至队列Q为空;
(2.4)所有染色的线路点组成一个所述测网,整合所述测网的信息,包括所有染色的线路点N net 、标记访问的线路点对H net 以及起算点C net ;
(2.5)移除线路点集合N中所有染色的线路点,若线路点集合N为空则测网搜索结束,否则执行步骤(2.1)搜索下个测网,直至线路点集合N为空,即获得所有测网。
所述步骤(3)中对每个所述测网根据无向图深度优先搜索法进行线路搜索包括以下步骤:
(3.1)获取搜索起始点集S net ,起始点集S net 为所述测网中起算点C net 组成的集合,若所述测网中没有起算点则取所述测网中任一线路点;初始化存储线路集合Line;
(3.2)判断起始点集S net 是否为空,若为空则表示搜索结束,对存储线路集合Line进行去重,结束搜索;若不为空,则表示搜索未结束,从起始点集S net 取出任意点
具体实施方式
以下结合附图通过实施例对本发明的特征及其它相关特征作进一步详细说明,以便于同行业技术人员的理解:
实施例:如图1、2所示,本实施例具体涉及一种基于图算法的测量线路搜索方法,包括以下步骤:
【1】将观测数据整理成线路点对集合H、线路点集合N以及起算点集合C;
(1.1)将观测数据整理成线路点对集合H,其中,每个线路点对包括线路两端的线路点;
(1.2)整理线路点对集合H中的所有唯一线路点以获取一组线路点集合N;
(1.3)整理已知线路点以获取起算点集合C。
【2】基于无向图广度优先搜索法将步骤(1)中的观测数据组合成若干个测网,每个测网中包括线路点对H net 、线路点N net 以及起算点C net ;
(2.1)从线路点集合N中选取任意线路点作为测网搜索的起始点S;
(2.2)初始化先进先出队列Q,用于存储待遍历线路点的点名,起始点S入队,起始点S染色;其中,队列是一种特殊的线性表,队列只允许在后端进行插入,这个操作称为入队,在前端进行删除操作,这个操作称为出队;所述染色就是加入标记以识别该线路点是否进行了遍历;
(2.3)当队列Q不为空时,队列Q的队头点q出队,队头点q是存储在队头的线路点名,所述队头是进行删除操作的前端;搜索线路点对集合H中线路点对包含队头点q且未标记访问的若干线路点对信息,对若干所述线路点对信息标记访问;对若干所述线路点对中另一个不为队头点q且未染色的线路点进行染色,并且入队,如此往复,直至队列Q为空;
(2.4)所有染色的线路点组成一个测网,整合测网的信息,包括所有染色的线路点N net 、标记访问的线路点对H net 以及起算点C net ;
(2.5)移除线路点集合N中所有染色的线路点,若线路点集合N为空则测网搜索结束,否则执行步骤(2.1)搜索下个测网,直至线路点集合N为空,即获得所有测网。
【3】对步骤(2)中每个所述测网基于无向图深度优先搜索法进行线路搜索;
(3.1)获取搜索起始点集S net ,起始点集S net 为所述测网中起算点C net 组成的集合,若所述测网中没有起算点则取所述测网中任一线路点;初始化存储线路集合Line;
(3.2)判断起始点集S net 是否为空,若为空则表示搜索结束,对存储线路集合Line进行去重,结束搜索;若不为空,则表示搜索未结束,从起始点集S net 取出任意点