CN116756895B - 一种基于gis的城市复杂多源管网爆管分析方法及系统 - Google Patents
一种基于gis的城市复杂多源管网爆管分析方法及系统 Download PDFInfo
- Publication number
- CN116756895B CN116756895B CN202311025479.XA CN202311025479A CN116756895B CN 116756895 B CN116756895 B CN 116756895B CN 202311025479 A CN202311025479 A CN 202311025479A CN 116756895 B CN116756895 B CN 116756895B
- Authority
- CN
- China
- Prior art keywords
- valve
- entering
- downstream
- array
- traversed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 64
- 238000004880 explosion Methods 0.000 title claims abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims abstract description 5
- 238000011144 upstream manufacturing Methods 0.000 claims description 121
- 230000008569 process Effects 0.000 claims description 29
- 238000007689 inspection Methods 0.000 claims description 13
- 238000003491 array Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 claims description 6
- 238000013523 data management Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 238000011160 research Methods 0.000 description 7
- 238000013499 data model Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/904—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/14—Pipes
Abstract
本发明公开了一种基于GIS的城市复杂多源管网爆管分析方法及系统,包括以下步骤:对管网数据进行拓扑处理;基于GIS建立管网几何网络数据集;区分干线、支线、多源汇气、环网及非环网等情况设计关阀算法,针对传统流向分析只能对单一流向进行溯源的分析函数进行拓展,能够适应环网上的不固定流向和对下游分析中的多源汇气流向,对城市复杂管网给出快速而全面的关阀决策支持;基于C#和ArcEngine编程完成实现关阀算法,得到对泄露处的关阀分析结果并可将结果及分析路径可视化显示。本发明所提供的方法对数据处理操作易学简便,对关阀方案算法分析快速准确,原理可靠,能够普遍适用于复杂的管网关阀决策的需要。
Description
技术领域
本发明涉及城市地下管网应急处置技术领域,特别是一种基于GIS的城市复杂多源管网爆管分析方法及系统。
背景技术
城市地下管线为城市生产、居民生活担负着资源输送、信息传递、废物排放等功能,是城市基础设施的重要组成部分,更是发挥城市功能、确保城市经济、社会协调可持续发展的重要物质基础。管网安全管理是城市安全运行管理的重要内容,直接关系人民群众生命财产安全。当前,我国地下管网使用规模不断增长,地下管网安全隐患点多面广,管网事故时有发生。仅2022年一年,就发生了千余起地下管网泄露爆炸事故。地下管网泄露事故发生后不但会造成直接的经济损失,也会对居民的生命安全和财产安全造成威胁。因此研究快速全面的适应城市复杂管网的泄露关阀方法,能够有效减少管网泄露造成的损失,并针对性地全面性地给出应急保供措施,能有效地保证居民的生命安全和财产安全。
目前,对于管网关阀分析的研究主要聚集在改进遍历的算法上面,比如申请号为CN201911287302.0的《一种基于三维地下管道的爆管搜索方法》和申请号CN202010933324.6的《一种基于图式理论的供水管网爆管分析方法及分析系统》,在无向图的广度优先遍历算法中加入有向图进行分析。但是大部分研究中,有向图均只有单一来源,应用到管网上时,只能对简单的气源单一的管线进行关阀分析,面对现在多元且复杂的城市管网时经常会出现漏析的情况,无法给用户提供安全的应急保供方案。并且这些研究中对管网数据的存储和管理仍然使用传统MySQL数据库进行管理,对于管网数据之间的拓扑关系不重视,导致关阀分析也会出现漏析的情况。
发明内容
本发明针对城市地下燃气管道管理管网数据模型不够合理,没有针对关阀分析而建立的数据网络模型使得搜索算法较为繁琐的不足,以及当前大部分关阀算法无法适应城市燃气管道日渐复杂的情况,遇到多元环网时出现少分析、漏分析、无法给出完整的应急措施的缺陷,提供一种基于GIS的城市复杂多源管网爆管分析方法及系统。
本发明使用ArcGIS软件为数据重建拓扑和几何网络后,将环网套环网、多源环网等复杂场景归类,充分分析当前算法存在的问题,扩展基本的关阀分析功能,提供多情景的爆管后影响区域分析结果,实现满足城市复杂场景的失效关阀方法。
本发明解决上述技术问题所提供的技术方案是:一种基于GIS的城市复杂多源管网爆管分析方法,包括以下步骤:
S1、通过ArcCatalog创建地理数据库,将管网数据中的点图层、线图层入库,并保留需要的属性;
S2、基于GIS对地理数据库中的管段、三通及阀门数据进行处理,重构管线与管线、管线与阀门之间的拓扑关系,对点数据与线数据进行拓扑检查并对节点重新编号;
S3、基于GIS建立管网几何网络数据集;
S4、根据管网几何网络数据集确定管网泄露上游一级二级关阀路径;
S5、根据管网几何网络数据集确定管网泄露下游一级二级关阀路径;
S6、根据管网泄露上游一级二级关阀路径、管网泄露下游一级二级关阀路径确定管网泄露后的影响区域。
进一步的技术方案是,所述步骤S1的具体步骤是:
S1.1、利用ArcCatalog创建地理数据库,并在地理数据库中创建要素数据集,在要素数据集中新增点要素、线要素;
S1.2、将管网数据中管段、三通、阀门数据导入地理数据库的要素数据集中;
S1.3、保留关阀分析所需要的管网属性信息。
进一步的技术方案是,所述管网属性信息包括点数据的坐标信息、管网线数据的区别干线支线、环网非环网的字段标识。
进一步的技术方案是,所述步骤S2的具体步骤是:
S2.1、在要素数据集中创建拓扑,并对点要素添加点必须在线上的拓扑规则,生成拓扑检查并编辑修改;
S2.2、在输入要素中输入线图层,点要素中分别输入阀门点图层和三通点图层,保留打断后的管线图层;
S2.3、在要素数据集中创建拓扑,并对点要素添加点必须作为线的端点的拓扑规则,生成拓扑检查并编辑修改;
S2.4、将线要素的起点、终点以及起终点分别转出;
S2.5、利用转出的要素起点、终点以及起终点的坐标信息作为连接所用的基于字段,分别将起点的属性表和终点的属性表连接到起终点的属性表上,利用起终点的属性表中的唯一标识字段对起点和终点进行重新编号并转到线要素的属性表上。
进一步的技术方案是,所述步骤S3的具体步骤是:
S31、创建几何网络,输入地理数据库中的要素数据集并为几何网络附上名称,将要素数据集中的所有要素类添加进几何网络中;
S32、将几何网络的流向设置为根据数字化方向建立流向;
S33、将地理数据库中已设置好流向的几何网络数据集同地理数据库中的所有要素集保存到一个MXD格式的地图文档中。
进一步的技术方案是,所述步骤S4的具体步骤是:
S4.1、设定两个上游判定一级阀门的布尔变量has_upfirstFM_GX和二级阀门的布尔变量has_upfirstFM_ZX,初始值为TRUE;
确定泄露点发生所在位置,利用ArcEngine类库中的流向分析获取泄露点上游所有管段信息存储在集合A中,视为上游有效边集合,通过管线类型标识判断管段是否为干线,若是干线则在集合A中找出管线类型为干线的管段存储在集合B中,将集合B视为上游有效边集合,进入步骤S4.2;若为支线,将集合A视为上游有效边集合,进入步骤S4.2;
S4.2、在上游有效边集合中进行规定流向的结点遍历,即通过管段的终点编码去匹配上一管段的起点编码或管段的起点编码去匹配下一管段的终点编码,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤S4.3,未遇到环网标识则进入步骤S4.4;
S4.3、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤S45;
S4.4、未遇到环,则继续在上游有效边集合中进行上游结点遍历,进入步骤S45;
S4.5、按规定的流向进行遍历,在遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤S4.6;若在遇到分支前没遍历到阀门则进入步骤S4.7;
S4.6、判断一级阀门的布尔变量has_upfirstFM_GX是否为TRUE,若为TRUE则进入步骤S4.8;若为FALSE则进入步骤S4.9;
S4.7、需要依次遍历各分支,在多分支中选出其中一条分支进行遍历,进入步骤S4.10;
S4.8、将阀门编码存入上游一级阀门数组up_firstFM_code中,将遍历过的路径存入上游一级关阀路径数组up_firstEdges中,将一级阀门的布尔变量has_upfirstFM_GX变为FALSE;
将上游有效边集合中已遍历过的管段删除后重新组成上游有效边集合,判断集合是否为空,若为空则停止遍历输出上游一级阀门数组和二级数组;集合若不为空则进入步骤S4.2;
S4.9、将阀门编码存入上游二级阀门数组up_secondFM_code中,将遍历过的路径存入上游二级关阀路径数组up_secondEdges中,输出上游一级阀门数组和二级阀门数组并以up_firstEdges、up_secondEdges两个数组区分上游一级二级关阀路径;
S4.10、按规定的流向进行遍历,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤S4.11,未遇到环网标识则进入步骤S4.12;
S4.11、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤S4.13;
S4.12、未遇到环,则继续在上游有效边集合中进行上游结点遍历,进入步骤S4.13;
S4.13、继续按规定的流向进行遍历,遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤S4.14;若在遇到分支前没遍历到阀门则进入步骤S4.15;
S4.14、判断一级阀门的布尔变量has_upfirstFM_GX是否为TRUE,若为TRUE则进入步骤S4.16;若为FALSE则进入步骤S4.17;
S4.15、继续遍历分支,判断集合是否遍历完,若未遍历完,则删除已遍历的管段进入步骤S4.7继续遍历;若集合已遍历完则进入步骤S4.20;
S4.16、判断二级阀门的布尔变量has_upfirstFM_ZX是否为TRUE,若为TRUE则进入步骤S4.18;若为FALSE则进入步骤S4.19;
S4.17、将阀门编码存入上游二级阀门数组up_secondFM_code中,将遍历过的路径存入上游二级关阀路径数组up_secondEdges中;支线遍历完成,将已遍历过的管段删除后进入步骤S4.7;
S4.18、将阀门编码存入上游一级阀门数组up_firstFM_code中,将遍历过的路径存入上游一级关阀路径数组up_firstEdges中,将二级阀门的布尔变量has_upfirstFM_ZX变为FALSE;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_upfirstFM_ZX调回TRUE并进入步骤S4.7;集合若不为空则进入步骤S4.10继续支线遍历;
S4.19、将阀门编码存入上游二级阀门数组up_secondFM_code中,将遍历过的路径存入上游二级关阀路径数组up_secondEdges中;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_upfirstFM_ZX调回TRUE并进入步骤S4.7;集合若不为空则进入步骤S4.10继续支线遍历;
S4.20、上游关阀遍历已完成,输出上游一级关阀数组up_firstFM_code以及二级关阀数组up_secondFM_code,并以up_firstEdges、up_secondEdges两个数组区分上游一级二级关阀路径。
进一步的技术方案是,所述步骤S5的具体步骤是:
S5.1、设定下游判定一级阀门的布尔变量has_downfirstFM_GX和二级阀门的布尔变量has_downfirstFM_ZX,初始值为TRUE;
确定泄露点发生所在位置,利用ArcEngine类库中的流向分析获取泄露点下游所有管段信息存储在集合C中,视为下游有效边集合;将全部管段信息存储在集合D;进入步骤S5.2;
S5.2、若发生泄露的管段的终点匹配到阀门,则输出阀门进入下游一级阀门数组中,并将一级阀门的布尔变量has_downfirstFM_GX变为FLASE,将下游有效边集合中已遍历过的管段删除后重新组成下游有效边集合,进入步骤S5.3;若发生泄露的管段的终点不是阀门,进入步骤S5.3;
S5.3、通过管线类型标识判断管段是否为干线,若是干线则在集合C中找出管线类型为干线的管段存储在集合E中,将集合E视为下游有效边集合,进入步骤S5.4;若为支线,将集合C视为下游有效边集合,进入步骤S5.4;
S5.4、在下游有效边集合中进行下游结点遍历,即通过管段的起点编码去匹配下一管段的终点编码,若遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤S5.5,未遇到环网标识则进入步骤S5.6;若遇到以终点编码为终点的管段有两条时,则为下游多气源汇入情况,进入步骤S5.7;
S5.5、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤S5.8;
S5.6、未遇到环,则继续在下游有效边集合中进行下游结点遍历,进入步骤S5.8;
S5.7、下游多气源汇入时,将第二条管段作为起始管段,在集合D中进行上游遍历,进入步骤S5.8;
S5.8、按规定的流向进行遍历,在遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤S5.9;若在遇到分支前没遍历到阀门则进入步骤S5.10;
S5.9、判断一级阀门的布尔变量has_downfirstFM_GX是否为TRUE,若为TRUE则进入步骤S5.11;若为FALSE则进入步骤S5.12;
S5.10、需要依次遍历各分支,在多分支中选出其中一条分支进行遍历,进入步骤S5.13;
S5.11、将阀门编码存入下游一级阀门数组down_firstFM_code中,将遍历过的路径存入下游一级关阀路径数组down_firstEdges中,将一级阀门的布尔变量has_downfirstFM_GX变为FALSE;将下游有效边集合中已遍历过的管段删除后重新组成下游有效边集合,判断集合是否为空,若为空则停止遍历输出下游一级阀门数组和二级数组;集合若不为空则进入步骤S5.4;
S5.12、将阀门编码存入下游二级阀门数组down_secondFM_code中,将遍历过的路径存入下游二级关阀路径数组down_secondEdges中,输出下游一级阀门数组和二级数组并以down_firstEdges、down_secondEdges两个数组区分下游一级二级关阀路径;
S5.13、按规定的流向进行遍历,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤S5.14,未遇到环网标识则进入步骤S5.15;
S5.14、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤S5.16;
S5.15、未遇到环,则继续在下游有效边集合中进行下游结点遍历,进入步骤S5.16;
S5.16、继续按规定的流向进行遍历,遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤S5.17;若在遇到分支前没遍历到阀门则进入步骤S5.18;
S5.17、判断一级阀门的布尔变量has_downfirstFM_GX是否为TRUE,若为TRUE则进入步骤S5.19;若为FALSE则进入步骤S5.20;
S5.18、继续遍历分支,判断集合是否遍历完,若未遍历完,则删除已遍历的管段进入步骤S5.10继续遍历;若集合已遍历完则进入步骤S5.23;
S5.19、判断二级阀门的布尔变量has_downfirstFM_ZX是否为TRUE,若为TRUE则进入步骤S5.21;若为FALSE则进入步骤S5.22;
S5.20、将阀门编码存入下游二级阀门数组down_secondFM_code中,将遍历过的路径存入下游二级关阀路径数组down_secondEdges中;支线遍历完成,将已遍历过的管段删除后进入步骤S5.10;
S5.21、将阀门编码存入下游一级阀门数组down_firstFM_code中,将遍历过的路径存入下游一级关阀路径数组down_firstEdges中,将二级阀门的布尔变量has_downfirstFM_ZX变为FALSE;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_downfirstFM_ZX调回TRUE并进入步骤S5.10;集合若不为空则进入步骤S5.13继续支线遍历;
S5.22、将阀门编码存入下游二级阀门数组down_secondFM_code中,将遍历过的路径存入下游二级关阀路径数组down_secondEdges中;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_downfirstFM_ZX调回TRUE并进入步骤S5.10;集合若不为空则进入步骤S5.13继续支线遍历;
S5.23、下游关阀遍历已完成,输出下游一级关阀数组down_firstFM_code以及二级关阀数组down_secondFM_code,并以down_firstEdges、down_secondEdges两个数组区分下游一级二级关阀路径。
进一步的技术方案是,所述步骤S6的具体步骤是:
S6.1、获取泄露点关阀分析中的一级关阀路径,存储在数组first_close_edges中;创建influnce_edges数组用来存储影响区域管段;通过环网标识判断泄露点发生管段是否为多源环网,若为环网则进入步骤S6.2,若不是环网则进入步骤S6.3;
S6.2、创建n_arry数组存储一级关阀路径上的管段的终点,判断数组n_arry是否为空,若为空则进入步骤S6.4,若不为空则进入步骤S6.5;
S6.3、利用ArcEngine类库中的流向分析获取一级阀下游所有管段信息存储在influnce_edges数组中,输出influnce_edges作为泄露点影响区域;
S6.4、无影响区域支线管段,将一级关阀路径存进influnce_edges数组中,输出influnce_edges作为影响区域;
S6.5、在n_arry数组中取一个终点,在整个管网中遍历以终点为起点的管段,通过管段类型标识判断遍历到的管段是否为支线,若是则进入步骤S6.6,若不是支线则进入步骤S6.7;
S6.6、遍历管段的下游,将下游管段的信息存储在influnce_edges数组,并在n_arry数组中删除终点,判断n_arry数组是否为空,若为空则进入步骤S6.8,若不为空则返回步骤S6.2继续遍历;
S6.7、不对管段进行操作,并在n_arry数组中删除终点,判断n_arry数组是否为空,若为空则进入步骤S6.8,若不为空则返回步骤S6.2继续遍历;
S6.8、将一级关阀路径存进influnce_edges数组中,输出influnce_edges作为影响区域。
一种基于GIS的城市复杂多源管网爆管分析系统,该系统采用上述的一种基于GIS的城市复杂多源管网爆管分析方法得到管网泄露后的影响区域。
本发明的有益效果在于:本发明能够解决传统考虑流向分析的关阀方法在日渐复杂的多源城市管网上对应关阀门的漏析、错析等危及群众安全的问题;本发明采用地理数据库管理管网数据,相比于传统按管网、节点去组织数据,采用几何网络数据集建立数据模型,重建管网数据之间的拓扑关系,并且使用能够体现管网数据之间空间关系的地理数据库来存储管网数据,使得关阀分析检索效率变快;同时本发明充分考虑目前城市燃气管网的复杂性,将多源环网情况和多气源汇入情况列入关阀算法的考虑范围,使得关阀算法得出的关阀结果更加完善,为人民为社会提供更完善的应急保供措施。
附图说明
图1是整体思路流程图。
具体实施方式
为了使本发明的技术特点和流程特征更加便于理解,下面对本发明方法做进一步详细说明。
本发明的一种基于GIS的城市复杂多源管网爆管分析方法,具体包括以下步骤:
步骤一、创建地理数据库,将管网数据中的点图层、线图层入库,并保留需要的属性:
1)利用ArcCatalog创建地理数据库,在地理数据库中新建要素数据集,并确定投影和坐标系;将管网数据中的管线数据(线数据)阀门数据(点数据)等导入数据库中;
2)根据需求在数据库中,保证关阀分析所需的管线数据与阀门数据的属性字段信息;
如阀门数据需预留阀门编号字段、坐标字段。管线数据需预留环网标识字段、干线与支线区分字段、阀门编号字段以及起止点标识字段等。
步骤二、重构管线与管线、管线与阀门之间的拓扑关系,并对结点重新编号:
1)目前管网信息系统中将管道等线状设备抽象为网络的弧段,阀门和调压箱等点状设备抽象为网络的节点。在GIS网络拓扑中就简化为只考虑弧段与弧段、弧段与节点的拓扑关系问题。弧段与弧段、弧段与节点没有在拓扑意义上进行衔接,就会出现拓扑错误,随后的几何网络也会出现错误,导致泄露分析出现不准确甚至是错误的分析结果。因此,开展可靠的管网泄露分析的前提是建立正确的管段网络拓扑关系。
2)利用ArcGIS10.2中的拓扑工具,首先对管线要素进行拓扑检查。对线要素添加“不能有悬挂点”、“不能有伪结点”、“必须为单一部分”的拓扑规则,进行检查并修改,以确保管线不存在多部件、伪节点、未连通等数据拓扑问题;利用ArcGIS10.2中的拓扑工具,对管线及阀门进行拓扑检查,对点要素添加“必须被线覆盖”的拓扑规则以确保所有的点要素均在线要素上;
3)利用ArcGIS10.2数据管理工具-要素-在点处分割线,在输入要素中输入线图层,点要素中分别输入阀门和三通等点图层,保留打断后的管线图层;利用ArcGIS10.2中的拓扑工具,在对点要素添加“必须被其他要素的端点”的拓扑规则,生成拓扑检查并编辑修改,确保所有的点要素都在线要素的端点上;
4)利用ArcGIS10.2数据管理工具-要素-要素折点转点,将线要素的起点、终点以及起终点分别转出;利用ArcGIS10.2属性表中的连接工具,用上述转出的要素起点终点以及起终点的坐标信息作为连接所用的基于字段,分别将起点属性表和终点的属性表连接到起终点的属性表上,利用其中点属性表中的唯一标识字段对起点和终点进行重新编号并转到线要素的属性表上。
步骤三、建立管网几何网络数据集;
1)由于目前大多数的关阀分析的管网数据模型不够合理,多数都是按管网、节点去组织数据,或者是根据燃气压力分析需要建立逻辑网络模型,这样会使得关阀搜索算法较为繁琐。而几何网络数据集是由一系列不同类别的点要素和线要素(可以度量并能图形表达)组成的,可进行图形与属性的编辑,常用于基础设施网络(如综合管网、电缆线等),这样的管网数据模型能更好地保存管网之间的空间关系与拓扑关系,能更好地实现关阀算法;
2)利用ArcGIS10.2数据管理工具-几何网络-创建几何网络,输入地理数据库中的要素数据集并为几何网络附上名称,将要素数据集中的所有要素类添加进几何网络中;
3)利用ArcGIS10.2数据管理工具-几何网络-设置流向,输入已经创建好的几何网络,在流向选项中选择根据数字化方向建立流向;
4)将地理数据库中已设置好流向的几何网络数据集同数据库中的所有要素集保存到一个MXD格式的地图文档中。
步骤四、确定管网泄露后的影响区域;
1)随着城市的发展,城市地下燃气管网越来越复杂,新老管网交错,燃气管网逐渐由单一气源供向变成多气源供向。并且目前许多关阀算法已无法适应复杂的城市燃气管网,他们大多只能进行单一气源流向的关阀检索致使无法将泄露处气源来向的阀门全部关闭。因此针对多源环网的复杂情况需要拓展基本的关阀分析功能使其能对环状管网进行最优关阀分析;
2)判断获取泄露点所在的管段是干线还是支线,干线和支线的遍历有效边的集合不同,需要根据干线和支线区分有效边集合;
3)遍历过程中遇到环网时,需要针对环网上的特殊情况,分别对环网进行上游分析和下游分析;
4)遍历下游过程中遇到多气源汇入流向时需要针对多气源汇入的特殊情况沿多气源汇入方向往上游分析;
5)对上游情况进行分析,实现上游关阀分析函数,函数包括:
①设定两个上游判定一级阀门的布尔变量has_upfirstFM_GX和二级阀门的布尔变量has_upfirstFM_ZX,初始值为TRUE。确定泄露点发生所在位置,利用ArcEngine类库中的流向分析获取泄露点上游所有管段信息存储在集合A中,视为上游有效边集合,通过管线类型标识判断该管段是否为干线,若是干线则在集合A中找出管线类型为干线的管段存储在集合B中,将集合B视为上游有效边集合,进入②;若为支线,将集合A视为上游有效边集合,进入②;
②在上游有效边集合中进行规定流向的结点遍历,即通过管段的终点编码去匹配上一管段的起点编码或管段的起点编码去匹配下一管段的终点编码,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入③,未遇到环网标识则进入④;
③在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入⑤;
④未遇到环,则继续在上游有效边集合中进行上游结点遍历,进入⑤;
⑤按规定的流向进行遍历,在遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入⑥;若在遇到分支前没遍历到阀门则进入⑦;
⑥判断布尔变量has_upfirstFM_GX是否为TRUE,若为TRUE则进入⑧;若为FALSE则进入⑨;
⑦需要依次遍历各分支,在多分支中选出其中一条分支进行遍历,进入⑩;
⑧将该阀门编码存入上游一级阀门数组up_firstFM_code中,将遍历过的路径存入上游一级关阀路径数组up_firstEdges中,将布尔变量has_upfirstFM_GX变为FALSE。将上游有效边集合中已遍历过的管段删除后重新组成上游有效边集合,判断集合是否为空,若为空则停止遍历输出上游一级阀门数组和二级数组;集合若不为空则进入②;
⑨将该阀门编码存入上游二级阀门数组up_secondFM_code中,将遍历过的路径存入上游二级关阀路径数组up_secondEdges中,输出上游一级阀门数组和二级数组;
⑩按规定的流向进行遍历,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入⑪,未遇到环网标识则进入⑫;
⑪在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入⑬;
⑫未遇到环,则继续在上游有效边集合中进行上游结点遍历,进入⑬;
⑬继续按规定的流向进行遍历,遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入⑭;若在遇到分支前没遍历到阀门则进入⑭;
⑭判断布尔变量has_upfirstFM_GX是否为TRUE,若为TRUE则进入⑯;若为FALSE则进入⑰;
⑮继续遍历分支,判断集合是否遍历完,若未遍历完,则删除已遍历的管段进入⑦继续遍历;若集合已遍历完则进入⑳;
⑯判断布尔变量has_upfirstFM_ZX是否为TRUE,若为TRUE则进入⑱;若为FALSE则进入⑲;
⑰将该阀门编码存入上游二级阀门数组up_secondFM_code中,将遍历过的路径存入上游二级关阀路径数组up_secondEdges中。该支线遍历完成,将已遍历过的管段删除后进入⑦;
⑱将该阀门编码存入上游一级阀门数组up_firstFM_code中,将遍历过的路径存入上游一级关阀路径数组up_firstEdges中,将布尔变量has_upfirstFM_ZX变为FALSE。将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则该支线遍历完成,将布尔变量has_upfirstFM_ZX调回TRUE并进入⑦;集合若不为空则进入⑩继续该支线遍历;
⑲将该阀门编码存入上游二级阀门数组up_secondFM_code中,将遍历过的路径存入上游二级关阀路径数组up_secondEdges中。将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则该支线遍历完成,将布尔变量has_upfirstFM_ZX调回TRUE并进入⑦;集合若不为空则进入⑩继续该支线遍历;
⑳上游关阀遍历已完成,输出上游一级关阀数组up_firstFM_code以及二级关阀数组up_secondFM_code,并以up_firstEdges、up_secondEdges两个数组区分上游一级二级关阀路径。
6)对下游情况进行分析,实现下游关阀分析函数,函数包括:
①设定下游判定一级阀门的布尔变量has_downfirstFM_GX和二级阀门的布尔变量has_downfirstFM_ZX,初始值为TRUE。确定泄露点发生所在位置,利用ArcEngine类库中的流向分析获取泄露点下游所有管段信息存储在集合C中,视为下游有效边集合。将全部管段信息存储在集合D。进入②;
②若发生泄露的该管段的终点匹配到阀门,则输出阀门进入下游一级阀门数组中,并将布尔变量has_downfirstFM_GX变为FLASE,将下游有效边集合中已遍历过的管段删除后重新组成下游有效边集合,进入③;若发生泄露的该管段的终点不是阀门,进入③;
③通过管线类型标识判断该管段是否为干线,若是干线则在C中找出管线类型为干线的管段存储在集合E中,将集合E视为下游有效边集合,进入④;若为支线,将集合C视为下游有效边集合,进入④;
④在下游有效边集合中进行下游结点遍历,即通过管段的起点编码去匹配下一管段的终点编码,若遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入⑤,未遇到环网标识则进入⑥;若遇到以终点编码为终点的管段有两条时,则为下游多气源汇入情况,进入⑦;
⑤在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入⑧;
⑥未遇到环,则继续在下游有效边集合中进行下游结点遍历,进入⑧;
⑦下游多气源汇入时,将第二条管段作为起始管段,在D中进行上游遍历,进入⑧;
⑧按规定的流向进行遍历,在遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入S5.9;若在遇到分支前没遍历到阀门则进入⑩;
⑨判断布尔变量has_downfirstFM_GX是否为TRUE,若为TRUE则进入⑪;若为FALSE则进入⑫;
⑩需要依次遍历各分支,在多分支中选出其中一条分支进行遍历,进入⑬;
⑪将该阀门编码存入下游一级阀门数组down_firstFM_code中,将遍历过的路径存入下游一级关阀路径数组down_firstEdges中,将布尔变量has_downfirstFM_GX变为FALSE。将下游有效边集合中已遍历过的管段删除后重新组成下游有效边集合,判断集合是否为空,若为空则停止遍历输出下游一级阀门数组和二级数组;集合若不为空则进入④;
⑫将该阀门编码存入下游二级阀门数组down_secondFM_code中,将遍历过的路径存入下游二级关阀路径数组down_secondEdges中,输出下游一级阀门数组和二级数组;
⑬按规定的流向进行遍历,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入⑭,未遇到环网标识则进入⑮;
⑭在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入⑯;
⑮未遇到环,则继续在下游有效边集合中进行下游结点遍历,进入⑯;
⑯继续按规定的流向进行遍历,遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入⑰;若在遇到分支前没遍历到阀门则进入⑱;
⑰判断布尔变量has_downfirstFM_GX是否为TRUE,若为TRUE则进入⑲;若为FALSE则进入⑳;
⑱继续遍历分支,判断集合是否遍历完,若未遍历完,则删除已遍历的管段进入⑩继续遍历;若集合已遍历完则进入㉓;
⑲判断布尔变量has_downfirstFM_ZX是否为TRUE,若为TRUE则进入㉑;若为FALSE则进入㉒;
⑳将该阀门编码存入下游二级阀门数组down_secondFM_code中,将遍历过的路径存入下游二级关阀路径数组down_secondEdges中。该支线遍历完成,将已遍历过的管段删除后进入⑩;
㉑将该阀门编码存入下游一级阀门数组down_firstFM_code中,将遍历过的路径存入下游一级关阀路径数组down_firstEdges中,将布尔变量has_downfirstFM_ZX变为FALSE。将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则该支线遍历完成,将布尔变量has_downfirstFM_ZX调回TRUE并进入⑩;集合若不为空则进入⑬,继续该支线遍历;
㉒将该阀门编码存入下游二级阀门数组down_secondFM_code中,将遍历过的路径存入下游二级关阀路径数组down_secondEdges中。将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则该支线遍历完成,将布尔变量has_downfirstFM_ZX调回TRUE并进入⑩;集合若不为空则进入⑬,继续该支线遍历;
㉓下游关阀遍历已完成,输出下游一级关阀数组down_firstFM_code以及二级关阀数组down_secondFM_code,并以down_firstEdges、down_secondEdges两个数组区分下游一级二级关阀路径。
7)对多情景、不同位置的泄露提供不同的影响区域,影响区域函数包括:
①获取泄露点关阀分析中的一级关阀路径,存储在数组first_close_edges中。创建influnce_edges数组用来存储影响区域管段。通过环网标识判断泄露点发生管段是否为多源环网,若为环网则进入②,若不是环网则进入③;
②创建n_arry数组存储一级关阀路径上的管段的终点,判断数组n_arry是否为空,若为空则进入④,若不为空则进入⑤;
③利用ArcEngine类库中的流向分析获取一级阀下游所有管段信息存储在influnce_edges数组中,输出influnce_edges作为泄露点影响区域;
④无影响区域支线管段,将一级关阀路径(first_close_edges)存进influnce_edges数组中,输出influnce_edges作为影响区域;
⑤在n_arry数组中取一个终点,在整个管网中遍历以该终点为起点的管段,通过管段类型标识判断遍历到的管段是否为支线,若是则进入⑥,若不是支线则进入⑦;
⑥遍历该管段的下游,将下游管段的信息存储在influnce_edges数组,并在n_arry数组中删除该终点,判断n_arry数组是否为空,若为空则进入⑧,若不为空则返回②继续遍历;
⑦不对该管段进行操作,并在n_arry数组中删除该终点,判断n_arry数组是否为空,若为空则进入⑧,若不为空则返回②继续遍历;
⑧将一级关阀路径(first_close_edges)存进influnce_edges数组中,输出influnce_edges作为影响区域;
8)调用ArcEngine中的类和方法并加以拓展,使用C#语言完成关阀方案的算法实现;
9)关阀方案结果分析:通过关阀方案,可以得到泄露点需要关闭的上下游一级阀门和二级阀门以及分析路径和影响范围,以便工作人员快速而全面的给出相应的应急措施。
一种基于GIS的城市复杂多源管网爆管分析系统,该系统采用上述的一种基于GIS的城市复杂多源管网爆管分析方法得到管网泄露后的影响区域。
实施例
以四川省成都市天府新区地下燃气管网数据作为研究数据,用本方法为该区域管网提供泄露关阀方案,整体思路如图1所示。
研究数据包含管网总长度约为700公里,阀门共有2000余个,复杂的环网有30余个,属于比较复杂的城市燃气管网。研究数据主要包括管线矢量数据、阀门矢量数据以及三通矢量数据。我国是人口大国,国家对人民安全看得极重,而燃气安全又与人民的生命安全与财产安全息息相关。应急管理部指出,燃气安全管理是城市安全运行管理的重要内容。因此为了保证人民群众的生命安全与财产安全,减少燃气泄露对社会造成的损失,有必要对燃气管网泄露的关阀算法进行优化。
采用本方法对研究区内的管网进行泄露关阀方案分析,步骤如下:
第一步,创建地理数据库并将数据入库。
应用ArcCatalog建立文件地理数据库,在数据库中新建要素数据集并为要素数据集添加投影和坐标系,这里使用的是CGCS-2000坐标系。数据库建好后,将研究数据即管网数据导入数据库中,并且管网分析数据中管线必须包含的属性字段为:管线id、管线编号、是否环网、管线类别、起点编码、终点编码;
第二步,对数据进行拓扑检查及预处理;
1、对数据进行拓扑检查;
在第一步中已导入数据的要素数据集中新建拓扑。首先对线要素即管线数据进行拓扑检查,目的是消除管线数据之间存在的伪结点、多部件、未连通等问题。在“要素类的要素”一栏中输入管线要素,为管线要素添加“不能有悬挂点”、“不能有伪节点”、“必须为单一部分”的拓扑规则,生成拓扑并验证,使用ArcGIS的编辑工具将拓扑关系错误的线数据进行编辑改正。
对管线数据拓扑检查完成后,接着对点要素与线要素进行拓扑检查,即对管线数据同阀门数据和三通数据进行拓扑检查目的是保证阀门和三通均在管线上。在“要素类的要素”一栏中输入阀门数据,“要素类”一栏中输入管线数据,为阀门数据同管线数据添加“必须被线覆盖” 的拓扑规则,生成拓扑并验证,使用ArcGIS的编辑工具将拓扑关系错误的线数据进行编辑改正。三通数据同上。
使用ArcGIS数据管理工具-要素-在点处分割线,在输入要素中输入管线图层,点要素中分别输入阀门和三通等点图层,保留打断后的管线图层。再次对点要素与线要素进行拓扑检查,
在“要素类的要素”一栏中输入阀门数据,“要素类”一栏中输入管线数据,为阀门数据同管线数据添加“必须被其他要素的端点覆盖” 的拓扑规则,生成拓扑并验证,使用ArcGIS的编辑工具将拓扑关系错误的线数据进行编辑改正。三通数据同上。目的是确保所有的阀门和三通都在管线的端点上。
2、对管网数据起止点进行重新编号;
使用ArcGIS数据管理工具-要素-要素折点转点,将管线的起点、终点以及起终点分别转出, 并分别给起点、终点、起终点这3个矢量数据附上XY坐标。
使用ArcGIS10.2属性表中的连接工具,在终点表上用坐标连接阀门表,把阀门的code赋给famen_code;在终点表上用坐标连接起终点表,把起终点表的FID赋给end_code;在起点表上用坐标连接起终点表,把起终点表的FID赋给start_code;在管段表上用FID分别连接起点表和终点表,把end_code、start_code、famen_code赋值。
第三步,建立几何网络数据集;
使用ArcGIS10.2数据管理工具-几何网络-创建几何网络,输入地理数据库中的要素数据集并为几何网络附上名称,将要素数据集中的所有要素类添加进几何网络中;
使用ArcGIS10.2数据管理工具-几何网络-设置流向,输入已经创建好的几何网络,在流向选项中选择根据数字化方向建立流向;
将地理数据库中已设置好流向的几何网络数据集同数据库中的所有要素集保存到一个MXD格式的地图文档中。
第四步,关阀分析算法的改进;
现有的管网系统大多数采用图论广序优先遍历搜索原理。在数据处理中,使用ArcGIS数据管理工具-要素-在点处分割线,将所有的阀门都变成管段的节点,并在整个管网中都遵循将阀门归属于以阀门为终点的管段上(亦可统一将阀门归属于以阀门为起点的管段上)。在解决数据的准确性及数据质量的良好性,并通过采用点对点的搜寻算法,在重新拓扑后,能够解决伪节点、多部件、串线等问题,并对每条管段的起止点附上编号,如start_code与end_code。算法思路如下:
(1)由于算法需要对泄露处上游和下游均进行分析,我们在设计上将上游和下游分开依次编程实现,比如先思考编写上游遍历算法结束后再进行下游遍历算法。
(2)算法考虑到支线与干线,也可将干线与支线上的泄露区别开来分析。
(3)对于发生在干线上的泄露上游和下游均只分析干线上的一二级阀门,若遇到泄露发生在干线遍历过程中到环网上的情况,则分析环网的上下游作为该级关阀。
(4)对于发生在支线上的泄露下游只分析该支线类别的一二级阀门。上游则分析该支线上游的所有支线的一二级阀门,若上游的支线上没有阀门,则继续分析给该支线供气的上游干线阀门,同时若遇到遍历过程中到环网上的情况,则分析环网的上下游作为该级关阀。
(5)对于发生在环网上的泄露,需分析环的上下游一二级阀门。
(6)特殊的,对于发生在环网上的泄露,若分析环的上下游过程中遇到给环供气的干线,需分析该干线上的阀门。
第五步,关阀算法的实现;
对于关阀算法,基于“封闭性”原则并充分考虑管网的干线、支线、环线等多种情况,给出的关阀方案如下:①根据管道泄露位置进行空间拓扑分析,快速找出需要关闭的阀门,分析出泄露点的一级关阀与二级关阀,一级关阀是指离泄露点最近的上下游阀门,二级关阀是指离泄露点第二近的上下游阀门;②如果遇支线管道下游无设备,可不分析;③如遇发生在环网干线的泄露事故,应分析到环网的上下游。如遇发生在环网的支线上的泄露事故,应分析到支线阀门与环网上下游阀门。
调用ArcEngine中的类和方法并加以拓展,使用C#语言完成关阀方案的算法实现,以桌面窗体运行程序为载体。
对于复杂城市燃气管网中的多源环网,本发明的关阀方案能快速准确的给出需要关闭的阀门以及分析路径,可以为用户提供完善的应急保供措施,起到降低燃气泄露造成爆炸的概率,从而达到减灾防灾的效果,为人民的生命安全和财产安全提供了保障。
需要注意的是,本发明的保护范围不仅仅局限于上述的实施范例,只要本领域的技术人员无需经过创造性劳动,即可联想到的实施方式,均属于本发明的保护范围。
Claims (6)
1.一种基于GIS的城市复杂多源管网爆管分析方法,其特征在于,包括以下步骤:
S1、通过ArcCatalog创建地理数据库,将管网数据中的点图层、线图层入库,并保留需要的属性;
S2、基于GIS对地理数据库中的管段、三通及阀门数据进行处理,重构管线与管线、管线与阀门之间的拓扑关系,对点数据与线数据进行拓扑检查并对节点重新编号;
S3、基于GIS建立管网几何网络数据集;
S4、根据管网几何网络数据集确定管网泄露上游一级二级关阀路径;
S4.1、设定两个上游判定一级阀门的布尔变量has_upfirstFM_GX和二级阀门的布尔变量has_upfirstFM_ZX,初始值为TRUE;
确定泄露点发生所在位置,利用ArcEngine类库中的流向分析获取泄露点上游所有管段信息存储在集合A中,视为上游有效边集合,通过管线类型标识判断管段是否为干线,若是干线则在集合A中找出管线类型为干线的管段存储在集合B中,将集合B视为上游有效边集合,进入步骤S4.2;若为支线,将集合A视为上游有效边集合,进入步骤S4.2;
S4.2、在上游有效边集合中进行规定流向的结点遍历,即通过管段的终点编码去匹配上一管段的起点编码或管段的起点编码去匹配下一管段的终点编码,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤S4.3,未遇到环网标识则进入步骤S4.4;
S4.3、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤S4.5;
S4.4、未遇到环,则继续在上游有效边集合中进行上游结点遍历,进入步骤S4.5;
S4.5、按规定的流向进行遍历,在遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤S4.6;若在遇到分支前没遍历到阀门则进入步骤S4.7;
S4.6、判断一级阀门的布尔变量has_upfirstFM_GX是否为TRUE,若为TRUE则进入步骤S4.8;若为FALSE则进入步骤S4.9;
S4.7、需要依次遍历各分支,在多分支中选出其中一条分支进行遍历,进入步骤S4.10;
S4.8、将阀门编码存入上游一级阀门数组up_firstFM_code中,将遍历过的路径存入上游一级关阀路径数组up_firstEdges中,将一级阀门的布尔变量has_upfirstFM_GX变为FALSE;
将上游有效边集合中已遍历过的管段删除后重新组成上游有效边集合,判断集合是否为空,若为空则停止遍历输出上游一级阀门数组和二级数组;集合若不为空则进入步骤S4.2;
S4.9、将阀门编码存入上游二级阀门数组up_secondFM_code中,将遍历过的路径存入上游二级关阀路径数组up_secondEdges中,输出上游一级阀门数组和二级阀门数组并以up_firstEdges、up_secondEdges两个数组区分上游一级二级关阀路径;
S4.10、按规定的流向进行遍历,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤S4.11,未遇到环网标识则进入步骤S4.12;
S4.11、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤S4.13;
S4.12、未遇到环,则继续在上游有效边集合中进行上游结点遍历,进入步骤S4.13;
S4.13、继续按规定的流向进行遍历,遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤S4.14;若在遇到分支前没遍历到阀门则进入步骤S4.15;
S4.14、判断一级阀门的布尔变量has_upfirstFM_GX是否为TRUE,若为TRUE则进入步骤S4.16;若为FALSE则进入步骤S4.17;
S4.15、继续遍历分支,判断集合是否遍历完,若未遍历完,则删除已遍历的管段进入步骤S4.7继续遍历;若集合已遍历完则进入步骤S4.20;
S4.16、判断二级阀门的布尔变量has_upfirstFM_ZX是否为TRUE,若为TRUE则进入步骤S4.18;若为FALSE则进入步骤S4.19;
S4.17、将阀门编码存入上游二级阀门数组up_secondFM_code中,将遍历过的路径存入上游二级关阀路径数组up_secondEdges中;支线遍历完成,将已遍历过的管段删除后进入步骤S4.7;
S4.18、将阀门编码存入上游一级阀门数组up_firstFM_code中,将遍历过的路径存入上游一级关阀路径数组up_firstEdges中,将二级阀门的布尔变量has_upfirstFM_ZX变为FALSE;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_upfirstFM_ZX调回TRUE并进入步骤S4.7;集合若不为空则进入步骤S4.10继续支线遍历;
S4.19、将阀门编码存入上游二级阀门数组up_secondFM_code中,将遍历过的路径存入上游二级关阀路径数组up_secondEdges中;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_upfirstFM_ZX调回TRUE并进入步骤S4.7;集合若不为空则进入步骤S4.10继续支线遍历;
S4.20、上游关阀遍历已完成,输出上游一级阀门数组up_firstFM_code以及二级阀门数组up_secondFM_code,并以up_firstEdges、up_secondEdges两个数组区分上游一级二级关阀路径;
S5、根据管网几何网络数据集确定管网泄露下游一级二级关阀路径;
S5.1、设定下游判定一级阀门的布尔变量has_downfirstFM_GX和二级阀门的布尔变量has_downfirstFM_ZX,初始值为TRUE;
确定泄露点发生所在位置,利用ArcEngine类库中的流向分析获取泄露点下游所有管段信息存储在集合C中,视为下游有效边集合;将全部管段信息存储在集合D;进入步骤S5.2;
S5.2、若发生泄露的管段的终点匹配到阀门,则输出阀门进入下游一级阀门数组中,并将一级阀门的布尔变量has_downfirstFM_GX变为FLASE,将下游有效边集合中已遍历过的管段删除后重新组成下游有效边集合,进入步骤S5.3;若发生泄露的管段的终点不是阀门,进入步骤S5.3;
S5.3、通过管线类型标识判断管段是否为干线,若是干线则在集合C中找出管线类型为干线的管段存储在集合E中,将集合E视为下游有效边集合,进入步骤S5.4;若为支线,将集合C视为下游有效边集合,进入步骤S5.4;
S5.4、在下游有效边集合中进行下游结点遍历,即通过管段的起点编码去匹配下一管段的终点编码,若遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤S5.5,未遇到环网标识则进入步骤S5.6;若遇到以终点编码为终点的管段有两条时,则为下游多气源汇入情况,进入步骤S5.7;
S5.5、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤S5.8;
S5.6、未遇到环,则继续在下游有效边集合中进行下游结点遍历,进入步骤S5.8;
S5.7、下游多气源汇入时,将第二条管段作为起始管段,在集合D中进行上游遍历,进入步骤S5.8;
S5.8、按规定的流向进行遍历,在遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤S5.9;若在遇到分支前没遍历到阀门则进入步骤S5.10;
S5.9、判断一级阀门的布尔变量has_downfirstFM_GX是否为TRUE,若为TRUE则进入步骤S5.11;若为FALSE则进入步骤S5.12;
S5.10、需要依次遍历各分支,在多分支中选出其中一条分支进行遍历,进入步骤S5.13;
S5.11、将阀门编码存入下游一级阀门数组down_firstFM_code中,将遍历过的路径存入下游一级关阀路径数组down_firstEdges中,将一级阀门的布尔变量has_downfirstFM_GX变为FALSE;将下游有效边集合中已遍历过的管段删除后重新组成下游有效边集合,判断集合是否为空,若为空则停止遍历输出下游一级阀门数组和二级数组;集合若不为空则进入步骤S5.4;
S5.12、将阀门编码存入下游二级阀门数组down_secondFM_code中,将遍历过的路径存入下游二级关阀路径数组down_secondEdges中,输出下游一级阀门数组和二级数组并以down_firstEdges、down_secondEdges两个数组区分下游一级二级关阀路径;
S5.13、按规定的流向进行遍历,遍历过程中,每个结点判断是否遇到环网标识,若遇到环网标识进入步骤S5.14,未遇到环网标识则进入步骤S5.15;
S5.14、在环网上,分别向连接环网结点的上游和下游进行结点遍历,进入步骤S5.16;
S5.15、未遇到环,则继续在下游有效边集合中进行下游结点遍历,进入步骤S5.16;
S5.16、继续按规定的流向进行遍历,遍历过程中在未遇到分支前是否遍历到阀门,若遍历到阀门则进入步骤S5.17;若在遇到分支前没遍历到阀门则进入步骤S5.18;
S5.17、判断一级阀门的布尔变量has_downfirstFM_GX是否为TRUE,若为TRUE则进入步骤S5.19;若为FALSE则进入步骤S5.20;
S5.18、继续遍历分支,判断集合是否遍历完,若未遍历完,则删除已遍历的管段进入步骤S5.10继续遍历;若集合已遍历完则进入步骤S5.23;
S5.19、判断二级阀门的布尔变量has_downfirstFM_ZX是否为TRUE,若为TRUE则进入步骤S5.21;若为FALSE则进入步骤S5.22;
S5.20、将阀门编码存入下游二级阀门数组down_secondFM_code中,将遍历过的路径存入下游二级关阀路径数组down_secondEdges中;支线遍历完成,将已遍历过的管段删除后进入步骤S5.10;
S5.21、将阀门编码存入下游一级阀门数组down_firstFM_code中,将遍历过的路径存入下游一级关阀路径数组down_firstEdges中,将二级阀门的布尔变量has_downfirstFM_ZX变为FALSE;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_downfirstFM_ZX调回TRUE并进入步骤S5.10;集合若不为空则进入步骤S5.13继续支线遍历;
S5.22、将阀门编码存入下游二级阀门数组down_secondFM_code中,将遍历过的路径存入下游二级关阀路径数组down_secondEdges中;将已遍历过的管段删除后判断当前遍历的支线集合是否为空,若为空则支线遍历完成,将二级阀门的布尔变量has_downfirstFM_ZX调回TRUE并进入步骤S5.10;集合若不为空则进入步骤S5.13继续支线遍历;
S5.23、下游关阀遍历已完成,输出下游一级阀门数组down_firstFM_code以及二级阀门数组down_secondFM_code,并以down_firstEdges、down_secondEdges两个数组区分下游一级二级关阀路径;
S6、根据管网泄露上游一级二级关阀路径、管网泄露下游一级二级关阀路径确定管网泄露后的影响区域;
S6.1、获取泄露点关阀分析中的一级关阀路径,存储在数组first_close_edges中;创建influnce_edges数组用来存储影响区域管段;通过环网标识判断泄露点发生管段是否为多源环网,若为环网则进入步骤S6.2,若不是环网则进入步骤S6.3;
S6.2、创建n_arry数组存储一级关阀路径上的管段的终点,判断数组n_arry是否为空,若为空则进入步骤S6.4,若不为空则进入步骤S6.5;
S6.3、利用ArcEngine类库中的流向分析获取一级阀下游所有管段信息存储在influnce_edges数组中,输出influnce_edges作为泄露点影响区域;
S6.4、无影响区域支线管段,将一级关阀路径存进influnce_edges数组中,输出influnce_edges作为影响区域;
S6.5、在n_arry数组中取一个终点,在整个管网中遍历以终点为起点的管段,通过管段类型标识判断遍历到的管段是否为支线,若是则进入步骤S6.6,若不是支线则进入步骤S6.7;
S6.6、遍历管段的下游,将下游管段的信息存储在influnce_edges数组,并在n_arry数组中删除终点,判断n_arry数组是否为空,若为空则进入步骤S6.8,若不为空则返回步骤S6.2继续遍历;
S6.7、不对管段进行操作,并在n_arry数组中删除终点,判断n_arry数组是否为空,若为空则进入步骤S6.8,若不为空则返回步骤S6.2继续遍历;
S6.8、将一级关阀路径存进influnce_edges数组中,输出influnce_edges作为影响区域。
2.根据权利要求1所述的一种基于GIS的城市复杂多源管网爆管分析方法,其特征在于,所述步骤S1的具体步骤是:
S1.1、利用ArcCatalog创建地理数据库,并在地理数据库中创建要素数据集,在要素数据集中新增点要素、线要素;
S1.2、将管网数据中管段、三通、阀门数据导入地理数据库的要素数据集中;
S1.3、保留关阀分析所需要的管网属性信息。
3.根据权利要求2所述的一种基于GIS的城市复杂多源管网爆管分析方法,其特征在于,所述管网属性信息包括点数据的坐标信息、管网线数据的区别干线支线、环网非环网的字段标识。
4.根据权利要求1所述的一种基于GIS的城市复杂多源管网爆管分析方法,其特征在于,所述步骤S2的具体步骤是:
S2.1、在要素数据集中创建拓扑,并对点要素添加点必须在线上的拓扑规则,生成拓扑检查并编辑修改;
S2.2、在输入要素中输入线图层,点要素中分别输入阀门点图层和三通点图层,保留打断后的管线图层;
S2.3、在要素数据集中创建拓扑,并对点要素添加点必须作为线的端点的拓扑规则,生成拓扑检查并编辑修改;
S2.4、将线要素的起点、终点以及起终点分别转出;
S2.5、利用转出的要素起点、终点以及起终点的坐标信息作为连接所用的基于字段,分别将起点的属性表和终点的属性表连接到起终点的属性表上,利用起终点的属性表中的唯一标识字段对起点和终点进行重新编号并转到线要素的属性表上。
5.根据权利要求1所述的一种基于GIS的城市复杂多源管网爆管分析方法,其特征在于,所述步骤S3的具体步骤是:
S31、创建几何网络,输入地理数据库中的要素数据集并为几何网络附上名称,将要素数据集中的所有要素类添加进几何网络中;
S32、将几何网络的流向设置为根据数字化方向建立流向;
S33、将地理数据库中已设置好流向的几何网络数据集同地理数据库中的所有要素集保存到一个MXD格式的地图文档中。
6.一种基于GIS的城市复杂多源管网爆管分析系统,其特征在于,该系统采用权利要求1-5任一所述的方法得到管网泄露后的影响区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311025479.XA CN116756895B (zh) | 2023-08-15 | 2023-08-15 | 一种基于gis的城市复杂多源管网爆管分析方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311025479.XA CN116756895B (zh) | 2023-08-15 | 2023-08-15 | 一种基于gis的城市复杂多源管网爆管分析方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116756895A CN116756895A (zh) | 2023-09-15 |
CN116756895B true CN116756895B (zh) | 2023-11-10 |
Family
ID=87959404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311025479.XA Active CN116756895B (zh) | 2023-08-15 | 2023-08-15 | 一种基于gis的城市复杂多源管网爆管分析方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116756895B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117091079B (zh) * | 2023-10-19 | 2024-01-16 | 杭州缥缈峰科技有限公司 | 一种基于多气源城市燃气管网的关阀方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317844A (zh) * | 2014-10-11 | 2015-01-28 | 讯腾数码科技(北京)有限公司 | 一种基于城市燃气管网拓扑分析的应急处理方法 |
CN111102476A (zh) * | 2019-12-14 | 2020-05-05 | 西安建筑科技大学 | 一种基于三维地下管道的爆管搜索方法 |
CN116486289A (zh) * | 2023-06-15 | 2023-07-25 | 西南石油大学 | 一种多源数据和知识驱动下的燃气管道高后果区识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015073313A1 (en) * | 2013-11-12 | 2015-05-21 | Infosense, Inc. | Detecting, identifying and locating anomalous events within a pressurized pipe |
-
2023
- 2023-08-15 CN CN202311025479.XA patent/CN116756895B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317844A (zh) * | 2014-10-11 | 2015-01-28 | 讯腾数码科技(北京)有限公司 | 一种基于城市燃气管网拓扑分析的应急处理方法 |
CN111102476A (zh) * | 2019-12-14 | 2020-05-05 | 西安建筑科技大学 | 一种基于三维地下管道的爆管搜索方法 |
CN116486289A (zh) * | 2023-06-15 | 2023-07-25 | 西南石油大学 | 一种多源数据和知识驱动下的燃气管道高后果区识别方法 |
Non-Patent Citations (3)
Title |
---|
Deeppipe: a customized generative model for estimations of liquid pipeline leakage parameters;Jianqin Zheng 等;《Computers & Chemical Engineering》;第149卷;1-10 * |
城市供水管网漏失信号识别及漏失定位研究——以H市为例;王书盛;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》(第02期);C038-3044 * |
城市地下管线三维空间GIS建模关键技术及计算;田红霞;《科学技术创新》;64-68 * |
Also Published As
Publication number | Publication date |
---|---|
CN116756895A (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116756895B (zh) | 一种基于gis的城市复杂多源管网爆管分析方法及系统 | |
CN111814289B (zh) | 一种基于图式理论的供水管网爆管分析方法及分析系统 | |
CN110442755B (zh) | 基于核电厂dcs平台站间网络连接的拓扑图展示方法 | |
CN110500512B (zh) | 燃气爆管分析方法和装置 | |
CN113553420B (zh) | 基于知识图谱的电网故障处理规程推荐方法和系统 | |
CN113408853B (zh) | 基于工程和制造物料清单的中性bom构建方法及系统 | |
CN101334933A (zh) | 路况信息处理设备及其方法和路况信息集成装置及其方法 | |
CN112966385A (zh) | 配电网网架拓扑薄弱点辨识方法与系统 | |
US5063520A (en) | Computer aided process for network analysis | |
Champati et al. | Automated operation sequencing in intelligent process planning: a case-based reasoning approach | |
CN117271500B (zh) | 燃气管网节点的数据修复方法及相关装置 | |
CN101895114A (zh) | 电力系统模型拼接中边界定义完整性检查方法 | |
Thom | A strategy for collapsing OS integrated transport network dual carriageways | |
CN104318501A (zh) | 管线网络拓扑关系构建方法、装置及系统 | |
Du et al. | Ontology-Based Information Integration and Decision Making in Prefabricated Construction Component Supply Chain. | |
CN111176992A (zh) | 流程引擎的测试方法、装置、计算机设备及存储介质 | |
CN106156411A (zh) | 一种基于可视化模式供热管网当量区识别方法 | |
CN110457529A (zh) | 岗位数据处理方法、装置、计算机设备及存储介质 | |
CN112182871B (zh) | 一种三维管道模型转换为MapGIS模型的系统和方法 | |
CN115577005A (zh) | 一种山地管道数据的数字化管理方法、系统和存储介质 | |
CN113656488A (zh) | 一种城市地下管线一体化管理方法 | |
CN108959638B (zh) | 一种面向城市燃气专业管线与综合管线的空间数据匹配方法 | |
JP2886022B2 (ja) | 管網解析データ生成方法 | |
CN112214648A (zh) | 一种根据采集点反馈异常信息实现爆管分析逻辑的方法 | |
CN115270250B (zh) | 基于bim的基础大样详图的自动校审方法、系统及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |