一种基于线程池的石油管线等间距线生成方法与流程

专利2022-06-29  81


本发明涉及石油管线巡检领域,具体为一种基于线程池的石油管线等间距线生成方法。



背景技术:

目前我国石油管道的安全状况检查需求与日俱增,主要是由于我国现役油气长输管道80%以上超过设计寿命,已进入事故多发期,再加上人为破坏等因素,管道事故频繁发生。各大油田都非常重视石油管道巡检工作,通常是由巡线工人携带设备定期对管线周围进行检查并记录、汇报、排查问题等。石油管线距离长,有的部分会穿过居民区,农田,工厂,学校等场所附近,所处的地形有时也会很复杂,给巡线工作的开展带来极大的不便。

近年来无人机发展迅速,随着无人机在航拍领域的兴起,采用无人机进行石油管线巡检一方面可以极大的减轻了巡线工人的工作量,另一方面通过航拍地图能够清晰的了解到管线周围的环境状况,对实施安全措施,有助于进一步研究。由于石油管线大部分埋于地下,在用无人机巡检时,通常是航拍管线周围环境,然后无人机航拍后的地形图片通过后期的合成处理,再使用一些软件工具,例如奥维互动地图将合成后的图替换到地图的对应区域,使得地图显示更加直观,很方便进行标记处理和高后果区识别,同时也方便后期的管线勘察和维护。

在做航拍图标记时根据需求往往要考虑管线两侧等间距划线问题,对于成千上万的坐标数据,采用现有软件的等间距偏移功能进行标注的时候,由于平移算法较为简单,对于管线夹角处往往只能照顾到夹角的一条边,生成的等间距线会出现很多交叉,再加上管线的走向曲折多变,而对于几百公里乃至上千公里的管线进行等间距线生成操作时,问题更加明显,如果用这些软件的手动编辑功能来修正的话将会是一项十分繁琐的工作,常见的等间距线问题如图2所示,左边是右边中线的等间距线。



技术实现要素:

针对现有软件不能进行复杂管线走向等间距标记的问题,本发明提供一种基于线程池的石油管线等间距线生成方法,通过应用线程池技术,实现了复杂管线等间距线的快速生成。

本发明是通过以下技术方案来实现:

一种基于线程池的石油管线等间距线生成方法,包括以下步骤:

步骤1、对管线的经纬度坐标数进行过滤,得到管线轴线的经纬度坐标数据;

步骤2、计算相邻两个经纬度坐标组成的向量,然后根据相邻的两个向量计算对应的角平分线向量;

步骤3、以角平分线对应夹角的交点为旋转点,将角平分线向量顺时针或者逆时针旋转90°,将旋转后每个角平分线向量的终点坐标依次连接,得到带有交叉点的等间距线;

步骤4、设定每次遍历的线段量,以带有交叉点的等间距线的起始点为起点,对设定数量的线段逆序依次遍历;

步骤5、当出现交叉点,则删除相交两条线段之间的线段,并设该交叉点为转折点,再次以该转折点为起点,再次遍历设定数量的线段,重复该过程,直至遍历整个等间距线;

步骤6、重复步骤5,直至带有交叉点的等间距线中的交叉点为0,将所有的转折点依次连接,形成管线的最终的等间距线。

优选的,步骤1中所述对管线的经纬度坐标数进行过滤的方法为,查找管线轴线经纬度坐标数据中相邻两个经纬度坐标是否相同,相同则保留一个。

优选的,步骤2中,创建线程池,通过线程池计算角平分线向量。

优选的,所述线程池的线程小于等于200。

优选的,将管线的经纬度坐标数据由管线的起点到终点,分为多个坐标数据组,每个坐标数据组中包涵n个连续的经纬度坐标,线程池分组计算每个坐标数据组中的角平分线向量。

优选的,相邻两个坐标数据组衔接点的两个经纬度坐标重合。

优选的,对每个坐标数据组设置一个键值key,并创建一个全局map,根据全局map的排序功能,把得到的多个组的角平分线数据按照键值key进行排序,得到整个管线排序后的角平分线向量。

优选的,步骤4中设定每次遍历的线段量为,带有交叉点的等间距线的2/3长度范围内的线段数量。

与现有技术相比,本发明具有以下有益的技术效果:

本发明提供了一种基于线程池的石油管线等间距线生成方法,首先计算管线轴线上的相邻坐标的向量,在通过相邻两个相邻得到角平分线向量,然后对角平分线向量进行旋转,得到管线轴线的等间距线,通过遍历等间距线中的交叉点,并将交叉点依次连接,形成管线最终的等间距线,解决了现有软件生成的等间距线带有交叉点的问题。

进一步,将坐标数据进行分组,通过创建线程池对坐标数据进行处理,然后将处理后的数据进行交点检查处理,最终得到计算后的左右管线经纬度坐标点,实现了复杂管线等间距线的生成,能够一次性计算出复杂管线走向的等间距线坐标,该方法采用线程池进行经纬度数据处理,在效率和精确度方面都有一定的保证,与现有市场上奥维互动地图使用的方法对比,操作起来更加方便,而且处理效果好,效率高,同时可被开发成动态链接库使用到任何等间距线计算的场合。

附图说明

图1为奥维互动地图生成的带有交叉的线;

图2为本发明方法的算法流程图;

图3为本发明方法的逻辑框图;

图4为本发明方法生产的管线等间距线图。

具体实施方式

下面结合附图对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。

地球是个椭球体,本发明所提出的算法,在计算等间距线的时候用到了向量运算,故假设将整个管线平铺到直角坐标系中进行计算,具体是将经纬度平铺到一个假设的直角坐标系中,设横轴为经度,纵轴为纬度,两两相邻坐标点之间的走向和矢量运算都按照假设的直角坐标系进行,因此本发明的矢量运算可以看作是在同一直角坐标系下进行的。

参阅图2和3,一种基于线程池的石油管线等间距线生成方法,包括以下步骤:

步骤1、对管线轴线的经纬度坐标数据进行预处理,既全局遍历删除相同的坐标数据,得到管线的经纬度坐标数据。

具体为,检查相邻坐标点是否相同,如果相同则只保留一个,其余均删除。

步骤2、创建包含最大200个线程的线程池。

为了提高计算效率,创建一个适当数量线程的线程池,任务提交到线程池后,线程池会根据当前池中线程的处理情况,自动分配空闲的线程给当前任务,很大程度上减少了线程的创建(线程的创建和销毁的开销是巨大的),采用这种线程复用的方式可极大的提高数据处理速度。

步骤3、对管线的经纬度坐标数据,由管线的起到到终点分为m个坐标数据组,每个坐标数据组中包括n个连续的经纬度坐标,最后一组坐标数据组根据实际个数分为一组,m个坐标数据组,并且相邻两个数据组的衔接点的两个经纬度数据相同。

具体为,以500个经纬度坐标数据为一组进行分割,并将分割后的n组数据装载线程池,第一数据组包括1.2.3…500,第二数据组包括499.500.502…999,第三数据组包括998.999.1000…1498,依次类推。

步骤4、在每个线程中计算相邻两个经纬度坐标组成的向量,然后计算相邻两个向量的角平分线向量。将得到的角平分线向量封装成一个数组。

向量的方向按照遍历顺序由第一个点指向第二个点,向量的大小是相邻两个经纬度坐标的实际距离。

步骤5、对每组坐标数据设置一个键值key,索引来标记该组数据在整个管线数据段中的位置,并创建一个全局map。

将每各坐标数据组得到的角平分线向量封装成一个角平分线向量数据组,根据键值key将角平分线向量数据组向量存入全局map对象中。

由于相邻两组坐标数据的衔接点重合,这样既可保证各个线程独立求得的相邻向量之间的角平分线向量,同时使所有的角平分线向量数据组组合形成管线完整的角平分线数据,而不会出现中间断开的情况。

步骤6、利用标准模板库map容器的排序功能,把收集到的若干份角平分线数据集按照步骤5中的键值key进行排序,从而获得到整个管线排序后的角平分线向量。

步骤7、将排序后的角平分线向量顺时针或者逆时针旋转90°,旋转点为角平分线对应夹角的交点,取旋转后每个角平分线向量的终点坐标值作为等间距线的坐标值,将等间距线的坐标值依次连接,得到由多个线段依次连接形成的管线的带有交叉点的等间距线。

步骤8、如图1所示,由于带有交叉点的等间距线中存在多个叉的地方,针对这种情况,需要消除交叉点,方法如下:

步骤8.1、设定每次遍历线段量,也就是每次遍历的范围,以等间距线的起始点为起点逆序对设定数量的线段逆序依次遍历。

其中,逆序为沿管线的终点至起点的顺序。

步骤8.2、当出现交叉点,则设定为交叉点即为转折点,并删除相交两条线段之间的线段和对应的经纬度坐标值,再次以该转折点为起点,再次遍历设定的线段量,重复该过程,直至遍历整个带有交叉点的等间距线。

步骤8.3、重复步骤8.2,直至带有交叉点的等间距线中的交叉点为0。

具体的,参阅图4,经过该第一次遍历后会查找到大部分交叉点,等间距线内的交叉点数量会急剧下降,但是还是会存在一些交叉点,因此,这里需要反复循环遍历,直到交叉点个数为0,将所有查找到的转折点和带有交叉点的等间距线的起始点和终点依次连接,从而得到石油管线的等间距线。

具体为,根据当前带有交叉点的等间距线的长短,设定每次遍历的线段为50条,线段自起点的编号分别为1.2.3.4…50。

以带有交叉点的等距离线的起始点为起点,每次遍历连续的50条线段,遍历时自第50条线段向第1条线段方法遍历,假设当第17条线段和第8线段出现交叉点,并删除第9到第16条线段的数据,设该交叉点为转折点,以转折点为起点,再次遍历50条线段,其线段编号为17.18.19.20…67,重复该过程直至遍历整个带有交叉点的等距离线。

优选的,根据当前带有交叉点的等间距线的长短,以带有交叉点的等间距线的起始点2/3位置处为第一次遍历的起点,每次遍历的线段数量为连续的50条线段,从检查点开始逆序往管线的起点方向遍历交叉点,当出现两个线段的交叉点,则设定该交叉点为转折点,以转折点为再次遍历的起点,再次遍历。

附图3为本发明管线等间距线的算法流程图,该基于线程池的石油管线等间距线生成方法,首先根据石油管线经纬度坐标数据进行了去除重复坐标处理,创建最大个数不超过200个线程的线城池,然后对管线数据按照一定数据量进行分割装载线程池,最后对于处理后的数据进行交叉点检测和修剪,本发明不仅能很好的计算出中线的等间距线坐标值,减轻人工修改的工作量,同时采用线程池有很好的并发计算和运行速度快的优势,能够进行大数据量处理。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。


技术特征:

1.一种基于线程池的石油管线等间距线生成方法,其特征在于,包括以下步骤:

步骤1、对管线的经纬度坐标数进行过滤,得到管线轴线的经纬度坐标数据;

步骤2、计算相邻两个经纬度坐标组成的向量,然后根据相邻的两个向量计算对应的角平分线向量;

步骤3、以角平分线对应夹角的交点为旋转点,将角平分线向量顺时针或者逆时针旋转90°,将旋转后每个角平分线向量的终点坐标依次连接,得到带有交叉点的等间距线;

步骤4、设定每次遍历的线段量,以带有交叉点的等间距线的起始点为起点,对设定数量的线段逆序依次遍历;

步骤5、当出现交叉点,则删除相交两条线段之间的线段,并设该交叉点为转折点,并以该转折点为起点,再次遍历设定数量的线段,重复该过程,直至遍历整个等间距线;

步骤6、重复步骤5,直至带有交叉点的等间距线中的交叉点为0,将所有的转折点依次连接,形成管线的最终的等间距线。

2.根据权利要求1所述的一种基于线程池的石油管线等间距线生成方法,其特征在于,步骤1中所述对管线的经纬度坐标数进行过滤的方法为,查找管线轴线经纬度坐标数据中相邻两个经纬度坐标是否相同,相同则保留一个。

3.根据权利要求1所述的一种基于线程池的石油管线等间距线生成方法,其特征在于,步骤2中,创建线程池,通过线程池计算角平分线向量。

4.根据权利要求3所述的一种基于线程池的石油管线等间距线生成方法,其特征在于,所述线程池的线程小于等于200。

5.根据权利要求3所述的一种基于线程池的石油管线等间距线生成方法,其特征在于,将管线的经纬度坐标数据由管线的起点到终点,分为多个坐标数据组,每个坐标数据组中包涵n个连续的经纬度坐标,线程池分组计算每个坐标数据组中的角平分线向量。

6.根据权利要求5所述的一种基于线程池的石油管线等间距线生成方法,其特征在于,相邻两个坐标数据组衔接点的两个经纬度坐标重合。

7.根据权利要求5所述的一种基于线程池的石油管线等间距线生成方法,其特征在于,对每个坐标数据组设置一个键值key,并创建一个全局map,根据全局map的排序功能,把得到的多个组的角平分线数据按照键值key进行排序,得到整个管线排序后的角平分线向量。

8.根据权利要求1所述的一种基于线程池的石油管线等间距线生成方法,其特征在于,步骤4中设定每次遍历的线段量为,带有交叉点的等间距线的2/3长度范围内的线段数量。

技术总结
本发明公开了一种基于线程池的石油管线等间距线生成方法,首先根据石油管线经纬度坐标数据进行了去除重复坐标处理,创建最大个数不超过200个线程的线城池,然后对管线数据按照一定数据量进行分割装载线程池,最后对于处理后的数据进行交叉点检测和修剪,本发明不仅能计算出中线的等间距线坐标值,减轻人工修改的工作量,同时采用线程池有很好的并发计算和运行速度快的优势,能够进行大数据量处理。

技术研发人员:刘贞报;院金彪;江飞鸿;严月浩;张军红
受保护的技术使用者:西北工业大学
技术研发日:2020.01.20
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-20532.html

最新回复(0)