基于“节点-边”关系的管线更新系统的制作方法

文档序号:33484247发布日期:2023-03-15 13:55阅读:94来源:国知局
基于“节点-边”关系的管线更新系统的制作方法

1.本发明涉及地下管线技术领域,尤其涉及一种基于“节点-边”关系的管线更新系统。


背景技术:

2.城市地下管线是城市地下市政基础设施重要组成部分,地下管线的建设是城市安全有序运行的重要基础,是城市高质量发展的重要内容。城市地下管线主要包括供水、雨水、污水、燃气等管线及附属设施等。管线数据是管线分析、可视化应用等的基础。
3.城市地下管网可以抽象为“管线点-管线段”数学模型,现有技术中主要采用“两点一线”的数据结构。管线矢量数据由带有管线段属性、坐标信息的线和带有管线点属性信息、坐标信息的节点数据构成。对于,城市地下管线部分二维矢量数据,存在关键折点未被标记的情况,即在划分管线段时存在将多条连续的有向线划分为一个管线段的情况;同时当管线网络新增加管线数据时,需要根据新增的管线数据对原管线数据进行更新。
4.现有技术中,针对上述管线数据某些节点未被标记的问题,通常直接忽略未标记的点,或者人工逐条线进行校准。直接忽略某些关键节点必然影响建模效果和分析结果,而人工校准费时费力,效率低,并且换一套新的数据相当于一切从新来做,因此人工逐条校准缺乏可推广性。当出现新的管线数据时也需要人工将新增加的管线数据与原管线数据融合,对管线网络进行更新,费时费力,效率低下。


技术实现要素:

5.鉴于上述的分析,本发明实施例旨在提供一种基于“节点-边”关系的管线更新系统,用以解决现有技术中管线数据节点未被标记和新增管线数据时人工更新费时费力的问题。
6.本发明实施例提供了一种基于“节点-边”关系的管线更新系统,所述更新系统包括:
7.数据获取单元,用于获取新增的管线数据以及新增的折点;所述管线数据包括管线段矢量数据和管线点矢量数据;
8.数据更新单元,用于利用所述新增的折点对原管线段矢量数据进行划分,得到第二线矢量数据;基于新增的管线段矢量数据和所述第二线矢量数据判断是否存在新增的跨点;若是,则利用所述新增的跨点对所述第二线矢量数据和所述新增的管线段矢量数据中的管线段进行划分,得到第一线矢量数据;若否,将所述第二线矢量数据和所述新增的管线段矢量数据作为所述第一线矢量数据;对所述第一线矢量数据中所有的管线段重新编号;基于所述第一线矢量数据,生成与每条管线段对应的两个端点对的数据,即第二点矢量数据;根据所述原管线点矢量数据和所述新增的管线点矢量数据对所述第一线矢量数据中的管线点进行编号,获取第三点矢量数据;根据所述第三点矢量数据确定所述第二点矢量数据中每条管线段对应的起终方向,得到新管线数据;
9.数据存储单元,用于存储所述原管线数据和所述新管线数据。
10.基于上述系统的进一步改进,所述更新系统还包括:
11.可视化平台,用于显示所述原管线数据和所述新管线数据;还用于接收用户的管线查询信息,并将所述管线查询信息发送至数据查询单元;还用于接收所述数据查询单元发送的管线数据并显示;
12.数据查询单元,用于根据所述管线查询信息在所述数据存储单元中查找相应管线数据发送至所述可视化平台进行显示。
13.基于上述系统的进一步改进,所述更新系统还包括:
14.数据编辑单元,用于根据所述可视化平台发送的删除指令、修改指令对所述数据存储单元中相应的管线数据进行删除、修改。
15.基于上述系统的进一步改进,所述基于所述新增的管线段矢量数据和所述第二线矢量数据判断是否存在新增的跨点,包括:
16.将所述新增的管线段矢量数据中的管线段和所述第二线矢量数据中的管线段均投影至同一平面上,得到各个管线段的投影;若所述新增的管线段矢量数据中的管线段的投影与所述第二线矢量数据中的管线段的投影存在交点,则判断存在新增的跨点,并根据所述交点得到跨点。
17.基于上述系统的进一步改进,所述利用所述新增的折点对所述原管线段矢量数据进行划分,包括:以所述新增的折点为分界点,划分所述原管线段矢量数据中存在所述新增的折点的管线段;
18.所述利用所述新增的跨点对所述第二线矢量数据和所述新增的管线段矢量数据中的管线段进行划分,包括:以所述新增的跨点为分界点,划分所述第二线矢量数据和所述新增的管线数据中存在所述新增的跨点的管线段;
19.将划分前的各个管线段的线属性值赋值给划分后的各管线段;所述线属性值包括起点编号和终点编号。
20.基于上述系统的进一步改进,所述将划分前的各个管线段的线属性值赋值给划分后的各管线段,包括:
21.若某个管线段在划分后没有分割,则其线属性值不变;
22.若某个管线段在划分后分割为多个管线段,则将分割前的管线段的线属性值赋值给分割得到的多个管线段。
23.基于上述系统的进一步改进,所述根据所述原管线点矢量数据和所述新增的管线点矢量数据对所述第一线矢量数据中的管线点进行编号,获取第三点矢量数据,包括:
24.基于所述第一线矢量数据,利用网络分析工具生成所述第一线矢量数据中所有管线点的数据,得到第一点矢量数据;
25.基于所述原管线点矢量数据和所述新增的管线点矢量数据,对所述第一点矢量数据进行编号,获取第三点矢量数据。
26.基于上述系统的进一步改进,所述基于所述原管线点矢量数据和所述新增的管线点矢量数据,对所述第一点矢量数据进行编号,获取第三点矢量数据,包括:
27.在所述第一点矢量数据中找出位置坐标与所述原管线点矢量数据和所述新增的管线点矢量数据中位置坐标相同的管线点,作为旧管线点,并将所述原管线点矢量数据和
所述新增的管线点矢量数据中各点的点属性值赋值给各相应的旧管线点,所述点属性值包括物探点编号;
28.将所述第一点矢量数据中除所述旧管线点之外的管线点作为新划分出的管线点,对所述新划分出的管线点的物探点编号进行编号,得到所述第三点矢量数据。
29.基于上述系统的进一步改进,所述根据所述第三点矢量数据确定所述第二点矢量数据中每条管线段对应的起终方向,得到新管线数据,包括:
30.在所述第二点矢量数据中找出位置坐标与所述第三点矢量数据中位置坐标相同的管线点,将所述第三点矢量数据中位置坐标相同的管线点的点属性值映射给第二点矢量数据中各相应的管线点,得到映射后的各管线点的物探点编号;
31.根据映射前的所述第二点矢量数据中各管线段的起点编号、终点编号和映射后的对应的各管线段的两个端点的物探点编号,确定所述第二点矢量数据中各管线段对应的最终的起点编号、终点编号,得到各管线段的管线段编号与其起点编号和终点编号,进一步处理后作为新管线数据中的管线段矢量数据;
32.将第三点矢量数据作为新管线数据中的管线点矢量数据。
33.基于上述系统的进一步改进,所述根据映射前的所述第二点矢量数据中各管线段的起点编号、终点编号和映射后的对应的各管线段的两个端点的物探点编号,确定所述第二点矢量数据中各管线段对应的最终的起点编号、终点编号,包括:
34.若e_origin[i]=point[i]_1且s_origin[i]=point[i]_2,则end_point[i]=point[i]_1和start_point[i]=point[i]_2;
[0035]
若e_origin[i]=point[i]_2且s_origin[i]=point[i]_1,则end_point[i]=point[i]_2和start_point[i]=point[i]_1;
[0036]
若e_origin[i]=point[i]_1且s_origin[i]≠point[i]_2,则end_point[i]=point[i]_1和start_point[i]=point[i]_2;
[0037]
若e_origin[i]≠point[i]_1且s_origin[i]=point[i]_2,则end_point[i]=point[i]_1和start_point[i]=point[i]_2;
[0038]
若e_origin[i]≠point[i]_2且s_origin[i]=point[i]_1,则end_point[i]=point[i]_2和start_point[i]=point[i]_1;
[0039]
若e_origin[i]=point[i]_2且s_origin[i]≠point[i]_1,则end_point[i]=point[i]_2和start_point[i]=point[i]_1;
[0040]
若e_origin[i]≠point[i]_2且s_origin[i]≠point[i]_1,则根据拓扑关系规律确定end_point[i]和start_point[i];
[0041]
其中,e_origin[i]表示映射前第i个管线段的终点编号,s_origin[i]表示映射前第i个管线段的起点编号;point[i]_1表示映射后第i个管线段的一个端点物探点编号,point[i]_2表示映射后第i个管线段另一个端点物探点编号;end_point[i]表示第i个管线段的最终的终点编号,strart_point[i]表示第i个管线段的最终的起点编号。
[0042]
与现有技术相比,本发明至少可实现如下有益效果之一:
[0043]
1、本发明利用新增的折点和新增的跨点对原管线段矢量数据和新增的管线段矢量数据中的管线段进行重新划分,并对划分后的每条管线段的管线段编号进行重新编号和确定划分后的每条管线段对应的起终方向,实现了对原管线数据的更新。
[0044]
2、本发明通过智能化生成原管线数据和新增的管线数据中未被标记的跨点,避免了人工逐条对管线段进行检查,提高了数据处理的效率,提供了一种智能化的、高效的、可复制、可推广的管线更新系统。
[0045]
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
[0046]
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
[0047]
图1为本发明实施例提供的一种基于“节点-边”关系的管线更新系统的结构示意图;
[0048]
图2为本发明实施例提供的一种数据更新单元更新原管线数据的流程示意图;
[0049]
图3为本发明实施例提供的管线网络“折点”示意图;
[0050]
图4为本发明实施例提供的管线网络“新增的折点”示意图;
[0051]
图5为本发明实施例提供的管线网络“新增的跨点”示意图;
[0052]
图6为本发明实施例提供的管线网络的示意图之一;
[0053]
图7为本发明实施例提供的对管线点进行编号的示意图之一;
[0054]
图8为本发明实施例提供的对管线点进行编号的示意图之二。
具体实施方式
[0055]
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本技术一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
[0056]
本发明的一个具体实施例,公开了一种基于“节点-边”关系的管线更新系统,如图1所示,所述更新系统包括:
[0057]
数据获取单元,用于获取新增的管线数据以及新增的折点;所述管线数据包括管线段矢量数据和管线点矢量数据;
[0058]
数据更新单元,用于利用所述新增的折点对原管线段矢量数据进行划分,得到第二线矢量数据;基于新增的管线段矢量数据和所述第二线矢量数据判断是否存在新增的跨点;若是,则利用所述新增的跨点对所述第二线矢量数据和所述新增的管线段矢量数据中的管线段进行划分,得到第一线矢量数据;若否,将所述第二线矢量数据和所述新增的管线段矢量数据作为所述第一线矢量数据;对所述第一线矢量数据中所有的管线段重新编号;基于所述第一线矢量数据,生成与每条管线段对应的两个端点对的数据,即第二点矢量数据;根据所述原管线点矢量数据和所述新增的管线点矢量数据对所述第一线矢量数据中的管线点进行编号,获取第三点矢量数据;根据所述第三点矢量数据确定所述第二点矢量数据中每条管线段对应的起终方向,得到新管线数据;
[0059]
数据存储单元,用于存储所述原管线数据和所述新管线数据。
[0060]
具体地,数据更新单元更新原管线数据,如图2所示,包括:
[0061]
步骤s1:利用所述新增的折点对原管线段矢量数据进行划分,得到第二线矢量数据;基于新增的管线段矢量数据和所述第二线矢量数据判断是否存在新增的跨点;若是,则利用所述新增的跨点对所述第二线矢量数据和所述新增的管线段矢量数据中的管线段进行划分,得到第一线矢量数据;若否,将所述第二线矢量数据和所述新增的管线段矢量数据作为所述第一线矢量数据;对所述第一线矢量数据中所有的管线段重新编号;
[0062]
步骤s2:基于所述第一线矢量数据,生成与每条管线段对应的两个端点对的数据,即第二点矢量数据;
[0063]
步骤s3:根据所述原管线点矢量数据和所述新增的管线点矢量数据对所述第一线矢量数据中的管线点进行编号,获取第三点矢量数据;
[0064]
步骤s4:根据所述第三点矢量数据确定所述第二点矢量数据中每条管线段对应的起终方向,得到新管线数据。
[0065]
具体地,原管线数据包括原管线段矢量数据wsline1和原管线点矢量数据wspoint1文件,原管线点矢量数据为原管线数据中的节点,原管线段矢量数据为原管线数据中的管线段。新增的管线数据包括新增的管线段矢量数据wsline2和新增的管线点矢量数据wspoint2,新增的管线点矢量数据为新增的管线数据中的节点,新增的管线段矢量数据为新增的管线数据中的管线段。
[0066]
具体地,折点表示管线段矢量数据中多条连续的有向线段划分为一个管线段时,中间部分的节点。示例性的,如图3所示,在管线段p1p2中,将p1p2作为一个管线段,折点指的是p3和p4。
[0067]
值得说明的是,本发明实施例中的新增的管线段不存在折点,也就是说,折点仅是在原管线数据中的管线段上存在。
[0068]
可以理解的是,原管线数据表示历史的管线数据,新增的管线数据表示新导入的管线数据,新增的折点表示在原管线数据的任意一条管线段的基础上新增加的节点。如图4所示,原管线数据中的一条管线段a1a2,管线点为a1和a2,新增的折点表示为b9、b10。如图5所示,管线段a3a4为原管线数据中的一条管线段,管线段c7c8为新增的管线数据中的一条管线段。如图6所示,管线段a5a6为原管线数据中的一条管线段。
[0069]
值得说明的是,数据获取单元根据市政管线管理部门发布的管线信息获取新增的折点和新增的管线数据并存储;数据存储单元用于存储原管线数据和新管线数据。数据更新单元,基于新增的折点和新增的管线数据对原管线数据进行更新,得到新管线数据并存储至数据存储单元。
[0070]
具体地,在步骤s1中,利用所述新增的折点对原管线段矢量数据进行划分,得到第二线矢量数据;基于新增的管线段矢量数据和所述第二线矢量数据判断是否存在新增的跨点;若是,则利用所述新增的跨点对所述第二线矢量数据和所述新增的管线段矢量数据中的管线段进行划分,得到第一线矢量数据;若否,将所述第二线矢量数据和所述新增的管线段矢量数据作为所述第一线矢量数据;对所述第一线矢量数据中所有的管线段重新编号。
[0071]
优选地,所述利用所述新增的折点对所述原管线段矢量数据进行划分,包括:以所述新增的折点为分界点,划分所述原管线段矢量数据中存在所述新增的折点的管线段。
[0072]
示例性的,如图4所示,利用新增的折点b9和b10,以新增的折点b9和b10为分界点,对原管线数据中的管线段a1a2进行划分。利用新增的折点b9和b10对原管线数据中的管线
段a1a2进行划分,得到管线段a1b9、b9b10、b10a2。第二线矢量数据包括利用折点划分出的管线段,也包括没有经过折点划分的原管线段。即第二线矢量数据包括新划分出来的管线段a1b9、b9b10、b10a2,也包括原管线段a3a4和a5a6。
[0073]
具体地,基于新增的管线段矢量数据和所述第二线矢量数据判断是否存在新增的跨点,包括:
[0074]
将所述新增的管线段矢量数据中的管线段和所述第二线矢量数据中的管线段均投影至同一水平面上,得到各个管线段的投影;若所述新增的管线段矢量数据中的管线段的投影与所述第二线矢量数据中的管线段的投影存在交点,则判断存在新增的跨点,并根据所述交点得到跨点。
[0075]
如图5所示,新增的管线段矢量数据为管线段c7c8,将新增的管线段c7c8和第二线矢量数据中的所有管线段a1b9、b9b10、b10a2、a3a4和a5a6映射到同一水平面上,可以得到新增的管线段c7c8与第二线矢量数据的管线段a3a4的投影存在交点,根据交点得到新增的跨点b11。即,新增的管线段矢量数据与第二矢量数据中的管线段存在新增的跨点。如果新增的管线段矢量数据与第二线矢量数据中的管线段不存在交点,即不存在新增的跨点。
[0076]
可以理解的,在得到交点后,即可得到该交点在水平面上的坐标,将该交点沿垂直方向移动至相交的两条管线所在的高度,即可得到每个管线的跨点所在位置,即得到跨点。
[0077]
优选地,所述利用所述新增的跨点对所述第二线矢量数据和所述新增的管线段矢量数据中的管线段进行划分,包括:以所述新增的跨点为分界点,划分所述第二线矢量数据和所述新增的管线数据中存在所述新增的跨点的管线段。
[0078]
当新增的管线段矢量数据和所述第二线矢量数据中的管线段矢量数据存在新增的跨点,以新增的跨点为分界点,划分第二线矢量数据和新增的管线数据中存在新增的跨点的管线段。
[0079]
示例性的,如图5所示,以新增的跨点b11为分界点,对第二线矢量数据中的管线段a3a4和新增的管线段c7c8进行划分,得到管线段a3b11、b11a4、c7b11和b11c8。
[0080]
可以理解的,第一线矢量数据中包括第二线矢量数据中经过跨点分割后的所有管线段,也包括新增的管线段经过跨点分割后的所有管线段。在本实施例中,第一线矢量数据包括管线段a1b9、b9b10、b10a2、a5a6、a3b11、b11a4、c7b11和b11c8。若不存在新增的跨点,则第一线矢量数据即为第二线矢量数据和新增的管线段矢量数据的集合。
[0081]
优选地,将划分前的各个管线段的线属性值赋值给划分后的各管线段;所述线属性值包括起点编号和终点编号。
[0082]
优选地,将划分后的各个管线段的线属性值赋值给划分后的各管线段。优选地,所述将划分前的各个管线段的线属性值赋值给划分后的各管线段,包括:
[0083]
若某个管线段在划分后没有分割,则其线属性值不变;
[0084]
若某个管线段在划分后分割为多个管线段,则将分割前的管线段的线属性值赋值给分割得到的多个管线段。
[0085]
示例性的,如图4所示,划分前管线段a1a2的起点编号s_point为1、终点编号e_point为2,划分后的管线段a1b9、b9b10和b10a2的起点编号s_point均为1、终点编号e_point均为2。
[0086]
示例性的,如图5所示,划分前管线段a3a4的起点编号s_point为3、终点编号e_
point为4,管线段c7c8的起点编号s_point为7、终点编号e_point为8,划分后的管线段a3b11和b11a4的起点编号s_point均为3、终点编号e_point均为4,划分后的管线段c7b11和b11c8的起点编号s_point均为7、终点编号e_point均为8。
[0087]
值得说明的是,若某个管线段在划分后没有分割,如图6所示,在管线段a5a6中既没有新增的跨点,也没有新增的折点,起点编号s_point为5、终点编号e_point为6,保持不变。
[0088]
具体地,对划分后的第一线矢量数据中的所有管线段的管线段编号pipeid重新编号,将划分后的所有管线段进行汇总,确定管线段的数量。如图4、图5和图6所示,划分后的管线段a1b9、b9b10、b10a2、a5a6、a3b11、b11a4、c7b11和b11c8的管线段编号pipeid分别为1、2、3、4、5、6、7和8,得到第一线矢量数据。
[0089]
需要说明的是,原管线数据中的管线段远远不止上述管线段a1a2、a3a4和a5a6,新增的管线数据中的管线段远远不止上述管线段c7c8,新增的折点远远不止上述折点b9和b10,新增的跨点远远不止上述的跨点b11,本技术仅仅以上述部分管线段作为示例来对本发明的步骤进行说明。
[0090]
值得说明的是,在步骤s1结束后,针对第一线矢量数据中的每条管线段,我们可以确定每条管线段的管线段编号pipeid,但是无法确定每条管线段的方向。
[0091]
具体地,在步骤s2中,基于第一线矢量数据,生成与每条管线段对应的两个端点对的数据,即第二点矢量数据。
[0092]
具体地,第一线矢量数据中包括管线段a1b9、b9b10、b10a2、a5a6、a3b11、b11a4、c7b11和b11c8,针对每条管线段,生成对应的两个端点对的数据,端点为每条管线段的两个节点。
[0093]
具体地,在步骤s3中,根据原管线点矢量数据和所述新增的管线点矢量数据对所述第一线矢量数据中的管线点进行编号,获取第三点矢量数据。
[0094]
可以理解的是,在第一线矢量数据中,存在管线点a1、a2、a5、a6、b9、a3、c7、a4、b10、c8和b11,根据原管线点矢量数据wspoint1和新增的管线点矢量数据wspoint2对管线点a1、a2、a5、a6、b9、a3、c7、a4、b10、c8和b11进行编号,获取第三点矢量数据。
[0095]
优选地,所述根据所述原管线点矢量数据和所述新增的管线点矢量数据对所述第一线矢量数据中的管线点进行编号,获取第三点矢量数据,包括:
[0096]
基于所述第一线矢量数据,利用网络分析工具生成所述第一线矢量数据中所有管线点的数据,得到第一点矢量数据;
[0097]
基于所述原管线点矢量数据和所述新增的管线点矢量数据,对所述第一点矢量数据进行编号,获取第三点矢量数据。
[0098]
具体地,在第一线矢量数据中,是以管线段的形式存在的,所有管线段的端点不是单独存在。在第一线矢量数据的基础上,利用网络分析工具,将第一线矢量数据中的所有管线点确定出来,即确定管线点a1、a2、a5、a6、b9、a3、c7、a4、b10、c8和b11,得到第一点矢量数据。再根据原管线点矢量数据wspoint1和新增的管线点矢量数据wspoint2对管线点a1、a2、a5、a6、b9、a3、c7、a4、b10、c8和b11进行编号,获取包括物探点编号和其他点属性值的第三点矢量数据。
[0099]
实施时,可以使用arcgis中network analysis功能获取第一点矢量数据。通过标
准工具条打开“目录”,在目录中找到n_wsline所在目录及文件处右击|【新建网络数据集】,输入网络数据集的名称“n_wsline_nd”;是否要在此网络中构建转弯模型选择“否”;连通性选择默认设置;如何对网络要素的高程进行建模选择“无”;为网络数据集指定属性不进行设置,是否要为此网络数据集建立行驶方向设置选择“否”;新网络数据集已创建。是否立即构建选择“是”;是否还要将参与到“n_wsline_nd”中的所有要素类添加到地图选择“是”。
[0100]
至此内容列表多出三个图层,点图层“n_wsline_nd_junctions”、线图层“n_wsline”和“n_wsline_nd”。其中,“n_wsline_nd_junctions”为新生成的所有管点集合所在文件,即第一点矢量数据文件。
[0101]
优选地,所述基于所述原管线点矢量数据和所述新增的管线点矢量数据,对所述第一点矢量数据进行编号,获取第三点矢量数据,包括:
[0102]
在所述第一点矢量数据中找出位置坐标与所述原管线点矢量数据和所述新增的管线点矢量数据中位置坐标相同的管线点,作为旧管线点,并将所述原管线点矢量数据和所述新增的管线点矢量数据中各点的点属性值赋值给各相应的旧管线点,所述点属性值包括物探点编号;
[0103]
可以理解的是,若原管线点矢量数据和所述新增的管线点矢量数据中各点的物探点编号存在重复,则对新增的管线点矢量数据中的管线点进行重新编号,保证物探点编号对应节点的唯一性。
[0104]
将所述第一点矢量数据中除所述旧管线点之外的管线点作为新划分出的管线点,对所述新划分出的管线点的物探点编号进行编号,得到所述第三点矢量数据。
[0105]
具体地,在第一点矢量数据中找出位置坐标与原管线点矢量数据和新增的管线点矢量数据中位置坐标相同的管线点,作为旧管线点。将第一点矢量数据中除旧管线点之外的管线点作为新划分出的管线点。比如图4、图5和图6中的管线点a1、a2、a5、a6、a3、c7、a4和c8,作为旧管线点;管线点b9、b10和b11作为新划分出的管线点。
[0106]
针对旧管线点,将旧管线点中各点的点属性值赋值给各相应的旧管线点,所述点属性值包括物探点编号。比如旧管线点a1、a2、a5、a6、a3、c7、a4和c8的物探点编号分别为1、2、5、6、3、7、4和8。
[0107]
针对新划分出的管线点b9、b10和b11,对新划分出的管线点b9、b10和b11的物探点编号进行编号,比如编号后新划分出的管线点b9、b10和b11的物探点编号分别为9、10和11。
[0108]
将所有管线点的物探点编号都进行编号后,作为第三点矢量数据。可以理解的是,第三点矢量数据中的所有管线点均具有物探点编号。
[0109]
实施时,通过arctoolbox工具箱中的【分析工具】|【叠加分析】|【空间连接】,在弹出的空间连接窗口中的“目标要素”选择n_wsline_nd_junctions,在“连接要素”中选择原管线点矢量数据wspoint1和新增的管线点矢量数据wspint2,“输出要素类”选择输出文件保存路径及文件名称n_wspoint,“连接操作”选择join_one_to_many,勾选“保留所有目标要素”,“匹配选项”选择have_their_center_in,点击确定生成点集合数据文件n_wspoint。
[0110]
打开n_wspoint属性表,删掉join_count、target_fid、join_fid、id等多余字段。然后对exp_no进行排序通过计算器或者通过wps打开dbf文件对exp_no字段列未编号的数据进行编号。
[0111]
如图7、图8所示,以wps处理dbf为例,通过wps打开n_wspoint.dbf,在a列左侧插入
一列,在a2单元格输入1;在a2单元格左下角十字处双击,完成序列填充;以exp_no所在列为关键字进行降序排序,以筛选出编号为空的数据;在exp_no数据列第一个为空的单元格输入编号(已编号中最大值+1,确保新增编号与既有编号不重复),实施例中输入为wsp1165;双击该单元格十字,以完成对后续数据的填充;以a列为关键字进行升序排序;将a列新增的序号删除,保存文件。至此得到处理完成后的管点集合数据文件n_wspoint,即第三点矢量数据文件。
[0112]
优选地,所述点属性值还包括以下一项或多项:
[0113]
地面高程surf_h;
[0114]
特征feature;
[0115]
附属物subsid;
[0116]
位置location。
[0117]
在第三点矢量数据中,通过位置坐标,确定出新划分出的管线点和旧管线点,从而保持旧管线点属性值不变,而对新划分出的管线点进行接续编号,通过管线点的编号能够体现管线点的时间属性,便于后续对管线网络的分析。
[0118]
具体地,在步骤s4中,根据所述第三点矢量数据确定所述第二点矢量数据中每条管线段对应的起终方向,得到新管线数据。可以理解的是,第二点矢量数据中的点是以第一线矢量数据中的每条管线段为基础生成的,则每条管线段生成对应的两个管线点,即从第二点矢量数据中可以得到每条管线段对应的两个端点的位置信息,但此时无法区分两个端点与起终点的对应关系。特别地,第二点矢量数据中的点属性值继承自第一线矢量数据中的管线段编号pipid、终点编号e_point、起点编号s_point等,终点编号e_point、起点编号s_point为原管线数据中的管线段对应的终点编号e_point、起点编号s_point。但是第二点矢量数据中的每条管线段的起点编号和终点编号是不准确的,需要根据第三点矢量数据去校正,得到最终每条管线段的起点编号和终点编号。
[0119]
优选地,所述根据所述第三点矢量数据确定所述第二点矢量数据中每条管线段对应的起终方向,得到新管线数据,包括:
[0120]
在所述第二点矢量数据中找出位置坐标与所述第三点矢量数据中位置坐标相同的管线点,将所述第三点矢量数据中位置坐标相同的管线点的点属性值映射给第二点矢量数据中各相应的管线点,得到映射后的各管线点的物探点编号;
[0121]
根据映射前的所述第二点矢量数据中各管线段的起点编号s_point、终点编号e_point和映射后的对应的各管线段的两个端点的物探点编号,确定所述第二点矢量数据中各管线段对应的最终的起点编号s_point、终点编号e_point,得到各管线段的管线段编号与其起点编号s_point和终点编号e_point,进一步处理后作为新管线数据中的管线段矢量数据;
[0122]
可以理解的是,在第二点矢量数据中,每一行表示一个管线点矢量数据,每两个管线点矢量数据组成一个管线段的数据。在确定了第二点矢量数据中所有的端点对的起点编号start_point为和终点编号end_point之后,需要进一步处理将第二点矢量数据中的端点对数据转化成管线段矢量数据,每一个端点对数据对应一个管线段矢量数据,将进一步处理后得到的管线段矢量数据作为新管线数据中的管线段矢量数据。
[0123]
值得说明的是,最终的管线段编号pipeid与最终的起点编号s_point、终点编号e_
point对应关系存在于第二点矢量数据中,还需进一步处理将此对应关系作为更新后的管线数据中的管线段矢量数据,示例性的:使用arcgis的字段连接工具,将第二点矢量数据中的pipid与s_point、e_point的对应关系关联至管线段矢量数据中。
[0124]
将第三点矢量数据作为新管线数据中的管线点矢量数据。
[0125]
值得说明的是,经过基于第三点矢量数据的映射后,第二点矢量数据中的每个管线点均具有了物探点编号。
[0126]
具体地,在第二点矢量数据中找出位置坐标与第三点矢量数据中位置坐标相同的管线点,将第三点矢量数据中位置坐标相同的管线点的点属性值映射给第二点矢量数据中各相应的管线点,得到映射后的各管线点的物探点编号。
[0127]
可以理解的是,将位置坐标相同的管线点视为同一个管线点的情况下,第二点矢量数据和第三点矢量数据的管线点数量相同,将第三点矢量数据中位置坐标相同的管线点的点属性值映射给第二点矢量数据中各相应的管线点,映射后,在第二点矢量数据中的所有管线点均具有了物探点编号。
[0128]
比如图4、图5和图6中,管线段a1b9的两个端点a1和b9的物探点编号分别为1和9;管线段b9b10的两个端点b9和b10的物探点编号分别为9和10;管线段b10a2的两个端点b10和a2的物探点编号分别为10和2;管线段a3b11的两个端点a3和b11的物探点编号分别为3和11;管线段b11a4的两个端点b11和a4的物探点编号分别为11和4;管线段c7b11的两个端点c7和b11的物探点编号分别为7和11;管线段b11c8的两个端点b11和c8的物探点编号分别为11和8;管线段a5a6的两个端点a5和a6的物探点编号分别为5和6。
[0129]
实施时,利用空间连接工具,将经所述步骤s2得到的端点对数据turning_point和经所述步骤s3得到的管线点矢量数据n_wspoint中点的位置进行比对,将地理位置即坐标相同的点视为同一点,即将n_wspoint中管线点的编号映射到turning_point中。
[0130]
通过arctoolbox工具箱中的【分析工具】|【叠加分析】|【空间连接】,在弹出的空间连接窗口中的“目标要素”选择turning_point,在“连接要素”中选择n_wspoint,“输出要素类”选择输出文件保存路径及文件名称line_to_point,“连接操作”选择join_one_to_one,勾选“保留所有目标要素”,在“连接要素的字段映射”中选择保留pipeid、e_point、s_point、exp_no字段,“匹配选项”选择have_their_center_in,点击确定生成line_to_point,打开该文件的属性表,点击【表选项】|【导出】,在弹出的导出数据窗口中,在输出表中选择文件保存的路径及文件名称。
[0131]
优选地,所述根据映射前的所述第二点矢量数据中各管线段的起点编号s_point、终点编号e_point和映射后的对应的各管线段的两个端点的物探点编号,确定所述第二点矢量数据中各管线段对应的最终的起点编号s_point、终点编号e_point,包括:
[0132]
若e_origin[i]=point[i]_1且s_origin[i]=point[i]_2,则end_point[i]=point[i]_1和start_point[i]=point[i]_2;
[0133]
若e_origin[i]=point[i]_2且s_origin[i]=point[i]_1,则end_point[i]=point[i]_2和start_point[i]=point[i]_1。
[0134]
若e_origin[i]=point[i]_1且s_origin[i]≠point[i]_2,则end_point[i]=point[i]_1和start_point[i]=point[i]_2;
[0135]
若e_origin[i]≠point[i]_1且s_origin[i]=point[i]_2,则end_point[i]=
point[i]_1和start_point[i]=point[i]_2;
[0136]
若e_origin[i]≠point[i]_2且s_origin[i]=point[i]_1,则end_point[i]=point[i]_2和start_point[i]=point[i]_1;
[0137]
若e_origin[i]=point[i]_2且s_origin[i]≠point[i]_1,则end_point[i]=point[i]_2和start_point[i]=point[i]_1。
[0138]
若e_origin[i]≠point[i]_2且s_origin[i]≠point[i]_1,则根据拓扑关系规律确定end_point[i]和start_point[i]。
[0139]
其中,e_origin[i]表示映射前第i个管线段的终点编号e_point,s_origin[i]表示映射前第i个管线段的起点编号s_point;point[i]_1表示映射后第i个管线段的一个端点物探点编号,point[i]_2表示映射后第i个管线段另一个端点物探点编号;end_point[i]表示第i个管线段的最终的终点编号e_point,strart_point[i]表示第i个管线段的最终的起点编号s_point。
[0140]
具体地,示例性的,如图4和图5所示。在图4中第1个管线段a1b9映射前的起点编号s_point为1,终点编号e_point为2;映射后第1个管线段a1b9的两个端点的物探点编号为1和9。比较可知,第1个管线段a1b9对应的最终的起点编号s_point为1,终点编号e_point为9。第3个管线段b10a2映射前的起点编号s_point为1,终点编号e_point为2;映射后第3个管线段b10a2的两个端点的物探点编号为10和2,比较可知,第3个管线段b10a2对应的最终的起点编号s_point为10,终点编号e_point为2。
[0141]
在图5中,第5个管线段a3b11映射前的起点编号s_point为3,终点编号e_point为4;映射后第5个管线段a3b11的两个端点的物探点编号为3和11,比较可知,第5个管线段a3b11对应的最终的起点编号s_point为3,终点编号e_point为11。此外可知,第6个管线段b11a4对应的最终的起点编号s_point为11,终点编号e_point为4;第7个管线段c7b11对应的最终的起点编号s_point为7,终点编号e_point为11;第8个管线段b11c8对应的最终的起点编号s_point为11,终点编号e_point为8,在此不再赘述。
[0142]
示例性的,如图6所示,第4个管线段a5a6映射前的起点编号s_point为5,终点编号e_point为6;映射后第4个管线段a5a6的两个端点的物探点编号为5和6,比较可以确定第4个管线段a5a6对应的最终的起点编号s_point为5,终点编号e_point为6。
[0143]
示例性的,如图4所示,第2个管线段b9b10映射前的起点编号s_point为1,终点编号e_point为2,映射后第2个管线段b9b10的两个端点的物探点编号为9和10,此时根据拓扑关系规律确定第2个管线段b9b10对应的最终的起点编号s_point为9,终点编号e_point为10。
[0144]
实施时,具体步骤包括:
[0145]
1)输入描述:数据一共4列,第1列pipeid为管线段编号pipeid,;第二列e_point为映射前的终点编号;第三列s_point为映射前的起点编号;第四列exp_no为映射后两个端点的物探点编号(起终点对应关系未知)。
[0146]
2)输出需求:将管线段映射后的起终点编号与管线段对应起来。
[0147]
3)逻辑实现过程:
[0148]
i将exp_no列数据中代表同一管线两个端点的两个数据取出point_1、point_2;
[0149]
ii将对应管线的e_point、s_point列对应数据e_origin[i]、s_origin[i]与上一
步取出的point_1、point_2进行比较判断,得到管线i对应的起点编号start_point[i]和终点编号end_point[i]:
[0150]
a.若e_origin[i]=point_1且s_origin[i]=point_2则end_point[i]=point_1、start_point[i]=point_2;
[0151]
b.若e_origin[i]=point_2且s_origin[i]=point_1则end_point[i]=point_2、strart_point[i]=point_1;
[0152]
c.若e_origin[i]=point_1且s_origin[i]≠point_2则end_point[i]=point_1、strat_point[i]=point_2;
[0153]
d.若e_origin[i]=point_2且s_origin[i]≠point_1则end_point[i]=point_2、start_point[i]=point_1;
[0154]
e.若e_origin[i]≠point_1且s_origin[i]=point_2则end_point[i]=point_1、start_point[i]=point_2;
[0155]
f.若e_origin[i]≠point_2且s_origin[i]=point_1则end_point[i]=point_、start_point[i]=point_1;
[0156]
g.其他情况下start_point[i]=”待确定”、end_point[i]=”待确定”。
[0157]
针对g中情况,则根据拓扑关系规律确定。
[0158]
进一步地,所述管理系统还包括:
[0159]
可视化平台,用于显示所述原管线数据和所述新管线数据;还用于接收用户的管线查询信息,并将所述管线查询信息发送至数据查询单元;还用于接收所述数据查询单元发送的管线数据并显示;
[0160]
数据查询单元,用于根据所述管线查询信息在所述数据存储单元中查找相应管线数据发送至所述可视化平台进行显示;
[0161]
数据编辑单元,用于根据所述可视化平台发送的删除指令、修改指令对所述数据存储单元中相应的管线数据进行删除、修改。
[0162]
具体地,可视化平台可以根据用户的需求显示数据存储单元中的管线数据。当对原管线数据更新后生成新管线数据时,可视化平台用于显示新管线数据供用户查看。示例性的,可视化平台可以展示二维或三维的管线数据,并以不同的颜色显示新管线数据和原管线数据。当用户点击某个管线段时,在显示屏上显示该管线段的线属性值。
[0163]
值得说明的是,可视化平台可以作为与用户的交互平台,还用于接收用户的管线查询信息、删除指令和修改指令。当用户通过可视化平台输入管线查询信息时,数据查询单元根据管线查询信息在数据存储单元中查找到相应管线数据,然后发送到可视化平台进行显示。
[0164]
示例性的,可以输入管线段的编号查找相应管线段,或者输入管线段的起点坐标查找相应管线段;也可以输入管线点的物探点编号查找管线点。
[0165]
所述数据编辑单元用于对管线数据进行日常维护,当管线数据中的某个属性值需要删除或修改时,用户通过可视化平台输入删除指令或修改指令,数据编辑单元可以根据指令对数据存储单元中相应的管线数据进行删除、修改。
[0166]
与现有技术相比,本发明实施例提供的基于“节点-边”关系的管线更新系统利用新增的折点和新增的跨点对原管线段矢量数据和新增的管线段矢量数据中的管线段进行
重新划分,并对划分后的每条管线段的管线段编号进行重新编号和确定划分后的每条管线段对应的起终方向,实现了对管线数据的更新;同时,通过智能化生成原管线数据和新增的管线数据中未被标记的跨点,避免了人工逐条对管线段进行检查,提高了数据处理的效率,提供了一种智能化的、高效的、可复制、可推广的管线更新系统。
[0167]
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
[0168]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1