一种基于GIS的城市复杂多源管网爆管分析方法及系统

文档序号:35464100发布日期:2023-09-16 02:43阅读:142来源:国知局
一种基于GIS的城市复杂多源管网爆管分析方法及系统

本发明涉及城市地下管网应急处置,特别是一种基于gis的城市复杂多源管网爆管分析方法及系统。


背景技术:

1、城市地下管线为城市生产、居民生活担负着资源输送、信息传递、废物排放等功能,是城市基础设施的重要组成部分,更是发挥城市功能、确保城市经济、社会协调可持续发展的重要物质基础。管网安全管理是城市安全运行管理的重要内容,直接关系人民群众生命财产安全。当前,我国地下管网使用规模不断增长,地下管网安全隐患点多面广,管网事故时有发生。仅2022年一年,就发生了千余起地下管网泄露爆炸事故。地下管网泄露事故发生后不但会造成直接的经济损失,也会对居民的生命安全和财产安全造成威胁。因此研究快速全面的适应城市复杂管网的泄露关阀方法,能够有效减少管网泄露造成的损失,并针对性地全面性地给出应急保供措施,能有效地保证居民的生命安全和财产安全。

2、目前,对于管网关阀分析的研究主要聚集在改进遍历的算法上面,比如申请号为cn201911287302.0的《一种基于三维地下管道的爆管搜索方法》和申请号cn202010933324.6的《一种基于图式理论的供水管网爆管分析方法及分析系统》,在无向图的广度优先遍历算法中加入有向图进行分析。但是大部分研究中,有向图均只有单一来源,应用到管网上时,只能对简单的气源单一的管线进行关阀分析,面对现在多元且复杂的城市管网时经常会出现漏析的情况,无法给用户提供安全的应急保供方案。并且这些研究中对管网数据的存储和管理仍然使用传统mysql数据库进行管理,对于管网数据之间的拓扑关系不重视,导致关阀分析也会出现漏析的情况。


技术实现思路

1、本发明针对城市地下燃气管道管理管网数据模型不够合理,没有针对关阀分析而建立的数据网络模型使得搜索算法较为繁琐的不足,以及当前大部分关阀算法无法适应城市燃气管道日渐复杂的情况,遇到多元环网时出现少分析、漏分析、无法给出完整的应急措施的缺陷,提供一种基于gis的城市复杂多源管网爆管分析方法及系统。

2、本发明使用arcgis软件为数据重建拓扑和几何网络后,将环网套环网、多源环网等复杂场景归类,充分分析当前算法存在的问题,扩展基本的关阀分析功能,提供多情景的爆管后影响区域分析结果,实现满足城市复杂场景的失效关阀方法。

3、本发明解决上述技术问题所提供的技术方案是:一种基于gis的城市复杂多源管网爆管分析方法,包括以下步骤:

4、s1、通过arccatalog创建地理数据库,将管网数据中的点图层、线图层入库,并保留需要的属性;

5、s2、基于gis对地理数据库中的管段、三通及阀门数据进行处理,重构管线与管线、管线与阀门之间的拓扑关系,对点数据与线数据进行拓扑检查并对节点重新编号;

6、s3、基于gis建立管网几何网络数据集;

7、s4、根据管网几何网络数据集确定管网泄露上游一级二级关阀路径;

8、s5、根据管网几何网络数据集确定管网泄露下游一级二级关阀路径;

9、s6、根据管网泄露上游一级二级关阀路径、管网泄露下游一级二级关阀路径确定管网泄露后的影响区域。

10、进一步的技术方案是,所述步骤s1的具体步骤是:

11、s1.1、利用arccatalog创建地理数据库,并在地理数据库中创建要素数据集,在要素数据集中新增点要素、线要素;

12、s1.2、将管网数据中管段、三通、阀门数据导入地理数据库的要素数据集中;

13、s1.3、保留关阀分析所需要的管网属性信息。

14、进一步的技术方案是,所述管网属性信息包括点数据的坐标信息、管网线数据的区别干线支线、环网非环网的字段标识。

15、进一步的技术方案是,所述步骤s2的具体步骤是:

16、s2.1、在要素数据集中创建拓扑,并对点要素添加点必须在线上的拓扑规则,生成拓扑检查并编辑修改;

17、s2.2、在输入要素中输入线图层,点要素中分别输入阀门点图层和三通点图层,保留打断后的管线图层;

18、s2.3、在要素数据集中创建拓扑,并对点要素添加点必须作为线的端点的拓扑规则,生成拓扑检查并编辑修改;

19、s2.4、将线要素的起点、终点以及起终点分别转出;

20、s2.5、利用转出的要素起点、终点以及起终点的坐标信息作为连接所用的基于字段,分别将起点的属性表和终点的属性表连接到起终点的属性表上,利用起终点的属性表中的唯一标识字段对起点和终点进行重新编号并转到线要素的属性表上。

21、进一步的技术方案是,所述步骤s3的具体步骤是:

22、s31、创建几何网络,输入地理数据库中的要素数据集并为几何网络附上名称,将要素数据集中的所有要素类添加进几何网络中;

23、s32、将几何网络的流向设置为根据数字化方向建立流向;

24、s33、将地理数据库中已设置好流向的几何网络数据集同地理数据库中的所有要素集保存到一个mxd格式的地图文档中。

25、进一步的技术方案是,所述步骤s4的具体步骤是:

26、s4.1、设定两个上游判定一级阀门的布尔变量has_upfirstfm_gx和二级阀门的布尔变量has_upfirstfm_zx,初始值为true;

27、确定泄露点发生所在位置,利用arcengine类库中的流向分析获取泄露点上游所有管段信息存储在集合a中,视为上游有效边集合,通过管线类型标识判断管段是否为干线,若是干线则在集合a中找出管线类型为干线的管段存储在集合b中,将集合b视为上游有效边集合,进入步骤s4.2;若为支线,将集合a视为上游有效边集合,进入步骤s4.2;

28、s4.2、在上游有效边集合中进行规定流向的结点遍历,即通过管段的终点编码去匹配上一管段的起点编码或管段的起点编码去匹配下一管段的终点编码,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤s4.3,未遇到环网标识则进入步骤s4.4;

29、s4.3、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤s45;

30、s4.4、未遇到环,则继续在上游有效边集合中进行上游结点遍历,进入步骤s45;

31、s4.5、按规定的流向进行遍历,在遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤s4.6;若在遇到分支前没遍历到阀门则进入步骤s4.7;

32、s4.6、判断一级阀门的布尔变量has_upfirstfm_gx是否为true,若为true则进入步骤s4.8;若为false则进入步骤s4.9;

33、s4.7、需要依次遍历各分支,在多分支中选出其中一条分支进行遍历,进入步骤s4.10;

34、s4.8、将阀门编码存入上游一级阀门数组up_firstfm_code中,将遍历过的路径存入上游一级关阀路径数组up_firstedges中,将一级阀门的布尔变量has_upfirstfm_gx变为false;

35、将上游有效边集合中已遍历过的管段删除后重新组成上游有效边集合,判断集合是否为空,若为空则停止遍历输出上游一级阀门数组和二级数组;集合若不为空则进入步骤s4.2;

36、s4.9、将阀门编码存入上游二级阀门数组up_secondfm_code中,将遍历过的路径存入上游二级关阀路径数组up_secondedges中,输出上游一级阀门数组和二级阀门数组并以up_firstedges、up_secondedges两个数组区分上游一级二级关阀路径;

37、s4.10、按规定的流向进行遍历,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤s4.11,未遇到环网标识则进入步骤s4.12;

38、s4.11、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤s4.13;

39、s4.12、未遇到环,则继续在上游有效边集合中进行上游结点遍历,进入步骤s4.13;

40、s4.13、继续按规定的流向进行遍历,遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤s4.14;若在遇到分支前没遍历到阀门则进入步骤s4.15;

41、s4.14、判断一级阀门的布尔变量has_upfirstfm_gx是否为true,若为true则进入步骤s4.16;若为false则进入步骤s4.17;

42、s4.15、继续遍历分支,判断集合是否遍历完,若未遍历完,则删除已遍历的管段进入步骤s4.7继续遍历;若集合已遍历完则进入步骤s4.20;

43、s4.16、判断二级阀门的布尔变量has_upfirstfm_zx是否为true,若为true则进入步骤s4.18;若为false则进入步骤s4.19;

44、s4.17、将阀门编码存入上游二级阀门数组up_secondfm_code中,将遍历过的路径存入上游二级关阀路径数组up_secondedges中;支线遍历完成,将已遍历过的管段删除后进入步骤s4.7;

45、s4.18、将阀门编码存入上游一级阀门数组up_firstfm_code中,将遍历过的路径存入上游一级关阀路径数组up_firstedges中,将二级阀门的布尔变量has_upfirstfm_zx变为false;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_upfirstfm_zx调回true并进入步骤s4.7;集合若不为空则进入步骤s4.10继续支线遍历;

46、s4.19、将阀门编码存入上游二级阀门数组up_secondfm_code中,将遍历过的路径存入上游二级关阀路径数组up_secondedges中;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_upfirstfm_zx调回true并进入步骤s4.7;集合若不为空则进入步骤s4.10继续支线遍历;

47、s4.20、上游关阀遍历已完成,输出上游一级关阀数组up_firstfm_code以及二级关阀数组up_secondfm_code,并以up_firstedges、up_secondedges两个数组区分上游一级二级关阀路径。

48、进一步的技术方案是,所述步骤s5的具体步骤是:

49、s5.1、设定下游判定一级阀门的布尔变量has_downfirstfm_gx和二级阀门的布尔变量has_downfirstfm_zx,初始值为true;

50、确定泄露点发生所在位置,利用arcengine类库中的流向分析获取泄露点下游所有管段信息存储在集合c中,视为下游有效边集合;将全部管段信息存储在集合d;进入步骤s5.2;

51、s5.2、若发生泄露的管段的终点匹配到阀门,则输出阀门进入下游一级阀门数组中,并将一级阀门的布尔变量has_downfirstfm_gx变为flase,将下游有效边集合中已遍历过的管段删除后重新组成下游有效边集合,进入步骤s5.3;若发生泄露的管段的终点不是阀门,进入步骤s5.3;

52、s5.3、通过管线类型标识判断管段是否为干线,若是干线则在集合c中找出管线类型为干线的管段存储在集合e中,将集合e视为下游有效边集合,进入步骤s5.4;若为支线,将集合c视为下游有效边集合,进入步骤s5.4;

53、s5.4、在下游有效边集合中进行下游结点遍历,即通过管段的起点编码去匹配下一管段的终点编码,若遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤s5.5,未遇到环网标识则进入步骤s5.6;若遇到以终点编码为终点的管段有两条时,则为下游多气源汇入情况,进入步骤s5.7;

54、s5.5、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤s5.8;

55、s5.6、未遇到环,则继续在下游有效边集合中进行下游结点遍历,进入步骤s5.8;

56、s5.7、下游多气源汇入时,将第二条管段作为起始管段,在集合d中进行上游遍历,进入步骤s5.8;

57、s5.8、按规定的流向进行遍历,在遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤s5.9;若在遇到分支前没遍历到阀门则进入步骤s5.10;

58、s5.9、判断一级阀门的布尔变量has_downfirstfm_gx是否为true,若为true则进入步骤s5.11;若为false则进入步骤s5.12;

59、s5.10、需要依次遍历各分支,在多分支中选出其中一条分支进行遍历,进入步骤s5.13;

60、s5.11、将阀门编码存入下游一级阀门数组down_firstfm_code中,将遍历过的路径存入下游一级关阀路径数组down_firstedges中,将一级阀门的布尔变量has_downfirstfm_gx变为false;将下游有效边集合中已遍历过的管段删除后重新组成下游有效边集合,判断集合是否为空,若为空则停止遍历输出下游一级阀门数组和二级数组;集合若不为空则进入步骤s5.4;

61、s5.12、将阀门编码存入下游二级阀门数组down_secondfm_code中,将遍历过的路径存入下游二级关阀路径数组down_secondedges中,输出下游一级阀门数组和二级数组并以down_firstedges、down_secondedges两个数组区分下游一级二级关阀路径;

62、s5.13、按规定的流向进行遍历,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤s5.14,未遇到环网标识则进入步骤s5.15;

63、s5.14、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤s5.16;

64、s5.15、未遇到环,则继续在下游有效边集合中进行下游结点遍历,进入步骤s5.16;

65、s5.16、继续按规定的流向进行遍历,遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤s5.17;若在遇到分支前没遍历到阀门则进入步骤s5.18;

66、s5.17、判断一级阀门的布尔变量has_downfirstfm_gx是否为true,若为true则进入步骤s5.19;若为false则进入步骤s5.20;

67、s5.18、继续遍历分支,判断集合是否遍历完,若未遍历完,则删除已遍历的管段进入步骤s5.10继续遍历;若集合已遍历完则进入步骤s5.23;

68、s5.19、判断二级阀门的布尔变量has_downfirstfm_zx是否为true,若为true则进入步骤s5.21;若为false则进入步骤s5.22;

69、s5.20、将阀门编码存入下游二级阀门数组down_secondfm_code中,将遍历过的路径存入下游二级关阀路径数组down_secondedges中;支线遍历完成,将已遍历过的管段删除后进入步骤s5.10;

70、s5.21、将阀门编码存入下游一级阀门数组down_firstfm_code中,将遍历过的路径存入下游一级关阀路径数组down_firstedges中,将二级阀门的布尔变量has_downfirstfm_zx变为false;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_downfirstfm_zx调回true并进入步骤s5.10;集合若不为空则进入步骤s5.13继续支线遍历;

71、s5.22、将阀门编码存入下游二级阀门数组down_secondfm_code中,将遍历过的路径存入下游二级关阀路径数组down_secondedges中;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_downfirstfm_zx调回true并进入步骤s5.10;集合若不为空则进入步骤s5.13继续支线遍历;

72、s5.23、下游关阀遍历已完成,输出下游一级关阀数组down_firstfm_code以及二级关阀数组down_secondfm_code,并以down_firstedges、down_secondedges两个数组区分下游一级二级关阀路径。

73、进一步的技术方案是,所述步骤s6的具体步骤是:

74、s6.1、获取泄露点关阀分析中的一级关阀路径,存储在数组first_close_edges中;创建influnce_edges数组用来存储影响区域管段;通过环网标识判断泄露点发生管段是否为多源环网,若为环网则进入步骤s6.2,若不是环网则进入步骤s6.3;

75、s6.2、创建n_arry数组存储一级关阀路径上的管段的终点,判断数组n_arry是否为空,若为空则进入步骤s6.4,若不为空则进入步骤s6.5;

76、s6.3、利用arcengine类库中的流向分析获取一级阀下游所有管段信息存储在influnce_edges数组中,输出influnce_edges作为泄露点影响区域;

77、s6.4、无影响区域支线管段,将一级关阀路径存进influnce_edges数组中,输出influnce_edges作为影响区域;

78、s6.5、在n_arry数组中取一个终点,在整个管网中遍历以终点为起点的管段,通过管段类型标识判断遍历到的管段是否为支线,若是则进入步骤s6.6,若不是支线则进入步骤s6.7;

79、s6.6、遍历管段的下游,将下游管段的信息存储在influnce_edges数组,并在n_arry数组中删除终点,判断n_arry数组是否为空,若为空则进入步骤s6.8,若不为空则返回步骤s6.2继续遍历;

80、s6.7、不对管段进行操作,并在n_arry数组中删除终点,判断n_arry数组是否为空,若为空则进入步骤s6.8,若不为空则返回步骤s6.2继续遍历;

81、s6.8、将一级关阀路径存进influnce_edges数组中,输出influnce_edges作为影响区域。

82、一种基于gis的城市复杂多源管网爆管分析系统,该系统采用上述的一种基于gis的城市复杂多源管网爆管分析方法得到管网泄露后的影响区域。

83、本发明的有益效果在于:本发明能够解决传统考虑流向分析的关阀方法在日渐复杂的多源城市管网上对应关阀门的漏析、错析等危及群众安全的问题;本发明采用地理数据库管理管网数据,相比于传统按管网、节点去组织数据,采用几何网络数据集建立数据模型,重建管网数据之间的拓扑关系,并且使用能够体现管网数据之间空间关系的地理数据库来存储管网数据,使得关阀分析检索效率变快;同时本发明充分考虑目前城市燃气管网的复杂性,将多源环网情况和多气源汇入情况列入关阀算法的考虑范围,使得关阀算法得出的关阀结果更加完善,为人民为社会提供更完善的应急保供措施。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1