燃气管网拓扑数据中异常数据的检修方法、系统和芯片转让专利

申请号 : CN202311575145.X

文献号 : CN117290798B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 魏海东栾星王子峥石岱辉陈宝周乐乐

申请人 : 上海叁零肆零科技有限公司

摘要 :

本申请提供燃气管网拓扑数据中异常数据的检修方法、系统和芯片,所述方法包括:获取燃气管网的拓扑数据并对所述拓扑数据进行标准化处理,得到标准化后的拓扑数据,其中,所述拓扑数据包括点表数据和线表数据;对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,所述异常检测包括以下一种或多种:管径突变检测、ID异常检测和坐标异常检测;根据所述异常记录信息,对所述异常数据进行修复,ID异常、坐标异常修复作为管径突变修复的前置必要条件,并更新燃气管网的属性和拓扑数据。本申请对燃气管网中的属性和拓扑数据进行自动检查与修复,提高效率的同时减少了数据处理的时间成本和人工成本。

权利要求 :

1.一种燃气管网拓扑数据中异常数据的检修方法,其特征在于,

所述方法包括:

获取燃气管网的拓扑数据并对所述拓扑数据进行标准化处理,得到标准化后的拓扑数据,其中,所述拓扑数据包括相互关联的点表数据和线表数据,其中,点表数据表示城市燃气管网地理信息系统中的节点信息,线表数据表示城市燃气管网地理信息系统中的管道信息;

对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,所述异常检测包括以下一种或多种:管径突变检测、ID异常检测和坐标异常检测,其中,以任意一根管道作为目标管道,目标管道发生管径突变是指目标管道两端节点的通道数为2,且目标管道与任意一端相连管道的管径的差值大于预设突变阈值;

根据所述异常记录信息,对所述异常数据进行修复,并更新燃气管网的拓扑数据;

所述异常检测包括管径突变检测,所述异常数据包括管径异常数据,所述异常记录信息包括管径异常表单;

所述对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,包括:以线表数据的source字段为起点,target字段为终点,pipe_id字段和pipe_diam字段为管道属性,构建燃气管网拓扑;

针对燃气管网拓扑中的每个连通子图,判断连通子图中的节点数量是否小于3,若小于

3,则确定连通子图不存在管径突变;若不小于3,则预设连通子图存在管径突变;

将预设存在管径突变的连通子图中所有通道数为2的节点记为异常节点,针对每个异常节点,计算异常节点相邻的两条管道之间的管径差值的绝对值,若所述绝对值大于预设的突变阈值,则将异常节点列入预设的异常节点列表;

判断所述异常节点列表中的两两节点之间是否有单根管道相连,若存在,确定所述单根管道为突变管道;

将所述突变管道的管道ID作为管径异常数据,根据所述管径异常数据生成对应的管径异常表单;

其中,pipe_id用于指示管道的ID标识;source用于指示管道起始节点标识;target用于指示管道终止节点标识;pipe_diam用于指示管道的管径长度;

所述方法还包括:

根据修复后的线表数据对点表数据进行更新,得到修复后的点表数据,将点表数据和线表数据入库保存。

2.根据权利要求1所述的燃气管网拓扑数据中异常数据的检修方法,其特征在于,所述对所述拓扑数据进行标准化处理,包括:针对点表数据,对node_id字段进行去重,对node_id字段中的非整数ID标识进行取整;

对x_coordinate字段和y_coordinate字段保留m位小数,m为正整数;

针对线表数据,对pipe_id字段进行去重,并分别对pipe_id字段、source字段和target字段中的非整数ID标识进行取整;对x_source字段、y_source字段、x_target字段、y_target字段保留m位小数,pipe_diam字段保留n位小数,n为正整数;

其中,node_id用于指示节点的ID标识;x_coordinate用于指示点表x坐标;y_coordinate用于指示点表y坐标;x_source用于指示线表起点x坐标;y_source用于指示线表起点y坐标;x_target用于指示线表终点x坐标;y_target用于指示线表终点y坐标。

3.根据权利要求1所述的燃气管网拓扑数据中异常数据的检修方法,其特征在于,所述根据所述异常记录信息,对所述异常数据进行修复,包括:读取所述管径异常表单中的每个突变管道的管道ID,生成突变管道ID集合;

获取每个突变管道的两根相邻管道的pipe_id字段和pipe_diam字段,分别判断每个相邻管道的pipe_id字段对应的管道ID是否在突变管道ID集合中;

若所述突变管道的相邻管道的pipe_id字段对应的管道ID不在突变管道ID集合中,则用所述相邻管道的pipe_diam字段替换突变管道的pipe_diam字段,并从所述突变管道ID集合中移除所述突变管道的管道ID;

若所述突变管道的两根相邻管道的pipe_id字段对应的管道ID均不在所述突变管道ID集合中,则将所述突变管道置后处理,直到所述突变管道ID集合中的所有管道ID均被移除。

4.根据权利要求1所述的燃气管网拓扑数据中异常数据的检修方法,其特征在于,所述异常检测包括ID异常检测,所述异常数据包括ID异常数据,所述异常记录信息包括ID异常表单;

所述对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,包括:将线表数据中的x_source字段与y_source字段进行列的拼接,得到source端坐标标识,记为xy_source字段;

将线表数据中的x_target字段与y_target字段进行列的拼接,得到target端坐标标识,记为xy_target字段;

将线表数据中的pipe_id、source、xy_source三列字段与pipe_id、target、xy_target三列字段按行进行拼接,依次得到id字段、st字段和xy字段,并根据id字段、st字段和xy字段生成临时表单,对所述临时表单中的所有行进行去重;

将st字段作为分组条件,对所述临时表单进行分组拆分,获得st字段不同的多个子表单,每个子表单中st字段相同,而xy字段不同;

统计每个子表单中的行数,将所有行数大于1的st字段对应的节点ID标识作为ID异常数据,根据所述ID异常数据生成对应的ID异常表单;

其中,x_source用于指示线表起点x坐标;y_source用于指示线表起点y坐标;x_target用于指示线表终点x坐标;y_target用于指示线表终点y坐标;xy_source用于指示线表source端x坐标和y坐标拼接后的坐标唯一标识;xy_target用于指示线表target端x坐标和y坐标拼接后的坐标唯一标识。

5.根据权利要求4所述的燃气管网拓扑数据中异常数据的检修方法,其特征在于,所述根据所述异常记录信息,对所述异常数据进行修复,包括:读取所述ID异常表单,得到ID异常列表,记为ST_LIST;

将线表数据中的source字段和target字段对应的ID标识列入第一集合,从所述第一集合中筛选出最大的ID标识,记为st_max;

向线表数据插入两列字段,分别记为source_flag字段和target_flag字段,将source_flag字段和target_flag字段的数值初始化为0;

针对线表数据的每一行,判断source字段对应的ID标识是否在ST_LIST中,若在,则将source_flag字段设置为1,否则设置为0;判断target字段对应的ID标识是否在ST_LIST中,若在,则将target_flag字段设置为1,否则设置为0;

向线表数据插入一列字段,记为st_tag字段,若线表数据中的source_flag字段和/或target_flag字段为1,则将st_tag字段设置为1,若线表数据中的source_flag字段和target_flag字段为均为0,则将st_tag字段设置为0;

基于st_tag字段将线表分为需要处理的第一子表单和不需要处理的第二子表单,其中,第一子表单的st_tag字段为1,第二子表单的st_tag字段为0;

针对第一子表单,按每行从上到下的顺序以及每行从source字段到target字段的顺序,分别将source_flag字段为1的source字段对应的ID标识以及target_flag字段为1的target字段对应的ID标识用st_max进行替换,每次替换时,先将st_max加1,再进行填充;

将处理完后的第一子表单与不需要处理的第二子表单进行拼接得到处理后的线表数据;

根据线表数据的source字段或target字段生成点表的node_id字段,根据线表数据的x_source字段和x_target字段生成点表的x_coordinate字段,根据线表数据的y_source字段和y_target字段生成点表的y_coordinate字段,以得到新的点表,同时入库保存。

6.根据权利要求1所述的燃气管网拓扑数据中异常数据的检修方法,其特征在于,所述异常检测包括坐标异常检测,所述异常数据包括坐标异常数据,所述异常记录信息包括坐标异常表单;

所述对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,包括:将线表数据中的x_source字段与y_source字段进行列的拼接,得到source端坐标标识,记为xy_source字段;

将线表数据中的x_target字段与y_target字段进行列的拼接,得到target端坐标标识,记为xy_target字段;

将线表数据中的pipe_id、source、xy_source三列字段与pipe_id、target、xy_target三列字段按行进行拼接,依次得到id字段、st字段和xy字段,并根据id字段、st字段和xy字段生成临时表单,对所述临时表单中的所有行进行去重;

将xy字段作为分组条件,对所述临时表单进行分组拆分,获得xy字段不同的多个子表单,每个子表单中xy字段相同,而st字段不同;

统计每个子表单中的行数,将所有行数大于1的xy字段对应的坐标标识作为坐标异常数据,同时将子表单的st字段按从小到大进行排序;

获取所述子表单的首条坐标异常数据的xy字段和st字段,以生成对应的坐标异常表单;

其中,x_source用于指示线表起点x坐标;y_source用于指示线表起点y坐标;x_target用于指示线表终点x坐标;y_target用于指示线表终点y坐标;xy_source用于指示线表source端x坐标和y坐标拼接后的坐标唯一标识;xy_target用于指示线表target端x坐标和y坐标拼接后的坐标唯一标识。

7.根据权利要求6所述的燃气管网拓扑数据中异常数据的检修方法,其特征在于,所述根据所述异常记录信息,对所述异常数据进行修复,包括:读取所述坐标异常表单,得到坐标异常列表和对应的ID异常列表,分别记为XY_LIST和ST_LIST;

向线表数据插入两列字段,分别记为source_flag字段和target_flag字段,将source_flag字段和target_flag字段的数值初始化为0;

针对线表数据的每一行,判断xy_source字段对应的坐标标识是否在XY_LIST中,若在,则将source_flag字段设置为1,否则设置为0;判断xy_target字段对应的坐标标识是否在XY_LIST中,若在,则将target_flag字段设置为1,否则设置为0;

向线表数据插入一列字段,记为st_tag字段,若线表数据中的source_flag字段和/或target_flag字段为1,则将st_tag字段设置为1,若线表数据中的source_flag字段和target_flag字段为均为0,则将st_tag字段设置为0;

基于st_tag字段将线表分为需要处理的第一子表单和不需要处理的第二子表单,其中,第一子表单的st_tag字段为1,第二子表单的st_tag字段为0;

针对第一子表单,将source_flag字段为1的source字段和target_flag字段为1的target字段对应的节点记为目标节点,按每行从上到下以及每行从source字段到target字段的顺序,将每个所述目标节点的ID标识用所述目标节点的坐标标识在ST_LIST中相对应的ID标识进行替换;

将处理完后的第一子表单和不需要处理的第二子表单合并为线表数据;

根据线表数据的source字段或target字段生成点表的node_id字段,根据线表数据的x_source字段和x_target字段生成点表的x_coordinate字段,根据线表数据的y_source字段和y_target字段生成点表的y_coordinate字段,以得到修复后的点表数据,将点表数据和线表数据入库保存。

8.一种燃气管网拓扑数据中异常数据的检修系统,其特征在于,

所述系统包括:

标准化模块,用于获取燃气管网的拓扑数据并对所述拓扑数据进行标准化处理,得到标准化后的拓扑数据,其中,所述拓扑数据包括相互关联的点表数据和线表数据,其中,点表数据表示城市燃气管网地理信息系统中的节点信息,线表数据表示城市燃气管网地理信息系统中的管道信息;

异常检测模块,用于对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,所述异常检测包括以下一种或多种:管径突变检测、ID异常检测和坐标异常检测,其中,以任意一根管道作为目标管道,目标管道发生管径突变是指目标管道两端节点的通道数为2,且目标管道与任意一端相连管道的管径的差值大于预设突变阈值;

异常修复模块,用于根据所述异常记录信息,对所述异常数据进行修复,并更新燃气管网的拓扑数据;

所述异常检测包括管径突变检测,所述异常数据包括管径异常数据,所述异常记录信息包括管径异常表单;

所述异常检测模块用于:

以线表数据的source字段为起点,target字段为终点,pipe_id字段和pipe_diam字段为管道属性,构建燃气管网拓扑;

针对燃气管网拓扑中的每个连通子图,判断连通子图中的节点数量是否小于3,若小于

3,则确定连通子图不存在管径突变;若不小于3,则预设连通子图存在管径突变;

将预设存在管径突变的连通子图中所有通道数为2的节点记为异常节点,针对每个异常节点,计算异常节点相邻的两条管道之间的管径差值的绝对值,若所述绝对值大于预设的突变阈值,则将异常节点列入预设的异常节点列表;

判断所述异常节点列表中的两两节点之间是否有单根管道相连,若存在,确定所述单根管道为突变管道;

将所述突变管道的管道ID作为管径异常数据,根据所述管径异常数据生成对应的管径异常表单;

其中,pipe_id用于指示管道的ID标识;source用于指示管道起始节点标识;target用于指示管道终止节点标识;pipe_diam用于指示管道的管径长度;

所述异常修复模块用于根据修复后的线表数据对点表数据进行更新,得到修复后的点表数据,将点表数据和线表数据入库保存。

9.一种芯片,其特征在于,

所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行:如权利要求1‑7中任一项所述的方法。

说明书 :

燃气管网拓扑数据中异常数据的检修方法、系统和芯片

技术领域

[0001] 本申请涉及燃气管网数据信息技术领域,尤其涉及燃气管网拓扑数据中异常数据的检修方法、系统和芯片。

背景技术

[0002] 城燃管网、管道、附属设施具有强隐蔽性和高安全性,同时管网终端连接着数以万计的气源、用户、调压站、阀门井、堵头、球阀等节点,使得城燃管网更加庞大复杂;管网的拓扑数据的来源多种多样,包括但不限于:分析仪(色谱等)、流量计(涡轮、超声波、毫米波)、加溴计、传感器、设备(保压、压力远传、燃气物联)等。
[0003] 拓扑数据一般以点表数据和线表数据构成,点表囊括拓扑中各种类型的节点,每个节点具有节点ID、位置、名称、属性、类型、坐标、高度等属性;线表囊括所有连接节点的管道,每条管道具有管道ID、管长、管径、壁厚、坐标、流进端点、流出端点等属性。
[0004] 复杂拓扑结构和多样的数据源使得管网、管道数据与真实数据存在偏差,既影响城燃管网的管道完整性管理,也影响城燃管网仿真计算的精准性,进而阻碍了智慧城市治理的进程;为推进我国智慧城市治理进程,需要完成对城市城燃管网及管道的数据治理,这是后继数据修复和实现智慧城市建设的前置环节。
[0005] 点表和线表的所有属性应当完整、准确,目前主流的数据检查修复方式是先人工校验筛查,再进一步核查并设计治理方式,最后人工统一处理,具有耗时长、成本高、效率较为低下、漏查率及出错率会随着数据量的增大而提高等不足。
[0006] 基于此,本申请提供了燃气管网拓扑数据中异常数据的检修方法、系统和芯片,以改进现有技术。

发明内容

[0007] 本申请的目的在于提供智燃气管网拓扑数据中异常数据的检修方法、系统和芯片,对燃气管网中的拓扑数据进行自动检查与修复,提高效率的同时减少了数据处理的时间成本和人工成本。
[0008] 本申请的目的采用以下技术方案实现:
[0009] 第一方面,本申请提供了一种燃气管网拓扑数据中异常数据的检修方法,所述方法包括:
[0010] 获取燃气管网的拓扑数据并对所述拓扑数据进行标准化处理,得到标准化后的拓扑数据,其中,所述拓扑数据包括点表数据和线表数据;
[0011] 对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,所述异常检测包括以下一种或多种:管径突变检测、ID异常检测和坐标异常检测;
[0012] 根据所述异常记录信息,对所述异常数据进行修复,并更新燃气管网的拓扑数据。
[0013] 在一些可选的实施例中,所述对所述拓扑数据进行标准化处理,包括:
[0014] 针对点表数据,对node_id字段进行去重,对node_id字段中的非整数ID标识进行取整;对x_coordinate字段和y_coordinate字段保留m位小数,m为正整数;
[0015] 针对线表数据,对pipe_id字段进行去重,对pipe_id字段、source字段和target字段中进行取整;对x_source字段、y_source字段、x_target字段、y_target字段保留m位小数,pipe_diam字段保留n位小数,n为正整数。
[0016] 在一些可选的实施例中,所述异常检测包括ID异常检测,所述异常数据包括ID异常数据,所述异常记录信息包括ID异常表单;
[0017] 所述对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,包括:
[0018] 将线表数据中的x_source字段与y_source字段进行列的拼接,得到source端坐标标识,记为xy_source字段;
[0019] 将线表数据中的x_target字段与y_target字段进行列的拼接,得到target端坐标标识,记为xy_target字段;
[0020] 将线表数据中的pipe_id、source、xy_source三列字段与pipe_id、target、xy_target三列字段按行进行拼接,依次得到id字段、st字段和xy字段,并根据id字段、st字段和xy字段生成临时表单,对所述临时表单中的所有行进行去重;
[0021] 将st字段作为分组条件,对所述临时表单进行分组拆分,获得st字段不同的多个子表单,每个子表单中st字段相同,而xy字段不同;
[0022] 统计每个子表单中的行数,将所有行数大于1的st字段对应的节点ID标识作为ID异常数据,根据所述ID异常数据生成对应的ID异常表单。
[0023] 在一些可选的实施例中,所述根据所述异常记录信息,对所述异常数据进行修复,包括:
[0024] 读取所述ID异常表单,得到ID异常列表,记为ST_LIST;
[0025] 将线表数据中的source字段和target字段对应的ID标识列入第一集合,从所述第一集合中筛选出最大的ID标识,记为st_max;
[0026] 向线表数据插入两列字段,分别记为source_flag字段和target_flag字段,将source_flag字段和target_flag字段的数值初始化为0;
[0027] 针对线表数据的每一行,判断source字段对应的ID标识是否在ST_LIST中,若在,则将source_flag字段设置为1,否则设置为0;判断target字段对应的ID标识是否在ST_LIST中,若在,则将target_flag字段设置为1,否则设置为0;
[0028] 向线表数据插入一列字段,记为st_tag字段,若线表数据中的source_flag字段和/或target_flag字段为1,则将st_tag字段设置为1,若线表数据中的source_flag字段和target_flag字段为均为0,则将st_tag字段设置为0;
[0029] 基于st_tag字段将线表分为需要处理的第一子表单和不需要处理的第二子表单,其中,第一子表单的st_tag字段为1,第二子表单的st_tag字段为0;
[0030] 针对第一子表单,按每行从上到下的顺序以及每行从source字段到target字段的顺序,分别将source_flag字段为1的source字段对应的ID标识以及target_flag字段为1的target字段对应的ID标识用st_max进行替换,每次替换时,先将st_max加1,再进行填充;
[0031] 将处理完后的第一子表单与不需要处理的第二子表单进行拼接得到处理后的线表数据;
[0032] 根据线表数据的source字段或target字段生成点表的node_id字段,根据线表数据的x_source字段和x_target字段生成点表的x_coordinate字段,根据线表数据的y_source字段和y_target字段生成点表的y_coordinate字段,以得到新的点表,同时入库保存。
[0033] 在一些可选的实施例中,所述异常检测包括坐标异常检测,所述异常数据包括坐标异常数据,所述异常记录信息包括坐标异常表单;
[0034] 所述对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,包括:
[0035] 将线表数据中的x_source字段与y_source字段进行列的拼接,得到source端坐标标识,记为xy_source字段;
[0036] 将线表数据中的x_target字段与y_target字段进行列的拼接,得到target端坐标标识,记为xy_target字段;
[0037] 将线表数据中的pipe_id、source、xy_source三列字段与pipe_id、target、xy_target三列字段按行进行拼接,依次得到id字段、st字段和xy字段,并根据id字段、st字段和xy字段生成临时表单,对所述临时表单中的所有行进行去重;
[0038] 将xy字段作为分组条件,对所述临时表单进行分组拆分,获得xy字段不同的多个子表单,每个子表单中xy字段相同,而st字段不同;
[0039] 统计每个子表单中的行数,将所有行数大于1的xy字段对应的坐标标识作为坐标异常数据,同时将子表单的st字段按从小到大进行排序;
[0040] 获取所述子表单的首条坐标异常数据的xy字段和st字段,以生成对应的坐标异常表单。
[0041] 在一些可选的实施例中,所述根据所述异常记录信息,对所述异常数据进行修复,包括:
[0042] 读取所述坐标异常表单,得到坐标异常列表对应的ID异常列表,分别记为XY_LIST和ST_LIST;
[0043] 向线表数据插入两列字段,分别记为source_flag字段和target_flag字段,将source_flag字段和target_flag字段的数值初始化为0;
[0044] 针对线表数据的每一行,判断xy_source字段对应的坐标标识是否在XY_LIST中,若在,则将source_flag字段设置为1,否则设置为0;判断xy_target字段对应的坐标标识是否在XY_LIST中,若在,则将target_flag字段设置为1,否则设置为0;
[0045] 向线表数据插入一列字段,记为st_tag字段,若线表数据中的source_flag字段和/或target_flag字段为1,则将st_tag字段设置为1,若线表数据中的source_flag字段和target_flag字段为均为0,则将st_tag字段设置为0;
[0046] 基于st_tag字段将线表分为需要处理的第一子表单和不需要处理的第二子表单,其中,第一子表单的st_tag字段为1,第二子表单的st_tag字段为0;
[0047] 针对第一子表单,按每行从上到下的顺序以及每行从source字段到target字段的顺序,分别将source_flag字段为1的source字段对应的ID标识以及target_flag字段为1的target字段对应的ID标识用自身节点的坐标标识在ST_LIST中相对应的ID标识进行替换;
[0048] 将处理完后的第一子表单和不需要处理的第二子表单合并为线表数据;
[0049] 根据线表数据的source字段或target字段生成点表的node_id字段,根据线表数据的x_source字段和x_target字段生成点表的x_coordinate字段,根据线表数据的y_source字段和y_target字段生成点表的y_coordinate字段,以得到修复后的点表数据,将点表数据和线表数据入库保存。
[0050] 在一些可选的实施例中,所述异常检测包括管径突变检测,所述异常数据包括管径异常数据,所述异常记录信息包括管径异常表单;
[0051] 所述对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,包括:
[0052] 以线表数据的source字段为起点,target字段为终点,pipe_id字段和pipe_diam字段为管道属性,构建燃气管网拓扑;
[0053] 针对燃气管网拓扑中的每个连通子图,判断连通子图中的节点数量是否小于3,若小于3,则确定连通子图不存在管径突变;若不小于3,则预设连通子图存在管径突变;
[0054] 将预设存在管径突变的连通子图中所有通道数为2的节点记为异常节点,针对每个异常节点,计算异常节点相邻的两条管道之间的管径差值的绝对值,若所述绝对值大于预设的突变阈值,则将异常节点列入预设的异常节点列表;
[0055] 判断所述异常节点列表中的两两节点之间是否有单根管道相连,若存在,确定所述单根管道为突变管道;
[0056] 将所述突变管道的管道ID作为管径异常数据,根据所述管径异常数据生成对应的管径异常表单。
[0057] 在一些可选的实施例中,所述根据所述异常记录信息,对所述异常数据进行修复,包括:
[0058] 读取所述管径异常表单中的每个突变管道的管道ID,生成突变管道ID集合;
[0059] 获取每个突变管道的两根相邻管道的pipe_id字段和pipe_diam字段,分别判断每个相邻管道的pipe_id字段对应的管道ID是否在突变管道ID集合中;
[0060] 若所述突变管道的相邻管道的pipe_id字段对应的管道ID不在突变管道ID集合中,则用所述相邻管道的pipe_diam字段替换突变管道的pipe_diam字段,并从所述突变管道ID集合中移除所述突变管道的管道ID;
[0061] 若所述突变管道的两根相邻管道的pipe_id字段对应的管道ID均不在所述突变管道ID集合中,则将所述突变管道置后处理,直到所述突变管道ID集合中的所有管道ID均被移除。
[0062] 第二方面,本申请提供了一种燃气管网拓扑数据中异常数据的检修系统,所述系统包括:
[0063] 标准化模块,用于获取燃气管网的拓扑数据并对所述拓扑数据进行标准化处理,得到标准化后的拓扑数据,其中,所述拓扑数据包括点表数据和线表数据;
[0064] 异常检测模块,用于对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,所述异常检测包括以下一种或多种:管径突变检测、ID异常检测和坐标异常检测;
[0065] 异常修复模块,用于根据所述异常记录信息,对所述异常数据进行修复,并更新燃气管网的拓扑数据。
[0066] 第三方面,本申请提供了一种芯片,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行:如上述任一项方法。
[0067] 本申请提供的技术方案至少具有以下有益效果:对城市天然气管网地理信息系统(GIS)中的拓扑数据进行管径突变、坐标异常和ID异常的自动检查与修复,提高效率的同时减少了数据处理的时间成本和人工成本,为天然气管网仿真奠定了基础,从而加速了天然气管网数字化运营的推进。

附图说明

[0068] 下面结合附图和实施例对本申请进一步说明。
[0069] 图1是本申请实施例提供的一种燃气管网拓扑数据中异常数据的检修方法的流程示意图。
[0070] 图2是本申请实施例提供的一种燃气管网拓扑数据的整体修复过程的示意图。
[0071] 图3是本申请实施例提供的一种ID异常检查的流程示意图。
[0072] 图4是本申请实施例提供的一种修复ID异常的流程示意图。
[0073] 图5是本申请实施例提供的一种坐标异常检查的流程示意图。
[0074] 图6是本申请实施例提供的一种修复坐标异常的流程示意图。
[0075] 图7是本申请实施例提供的一种管径突变检查的流程示意图。
[0076] 图8是本申请实施例提供的一种修复管径突变的流程示意图。

具体实施方式

[0077] 为了使本申请实现的技术手段、创造特征、达成目的和功效易于明白了解,下结合具体图示,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。
[0078] 基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0079] 须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本申请可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本申请所能产生的功效及所能达成的目的下,均应仍落在本申请所揭示的技术内容得能涵盖的范围内。
[0080] 同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本申请可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本申请可实施的范畴。
[0081] 术语解释:
[0082] GIS:城市燃气管网地理信息系统;
[0083] 点表:城市燃气管网地理信息系统GIS中的节点信息(node_id、xcoordinate、ycoordinate);
[0084] 线表:城市燃气管网地理信息系统GIS中的管道信息(pipe_id、source、target、x_source、y_source、x_target、y_target、x_source、y_source、x_target、y_target、pipe_diam);
[0085] ID异常:线表中一个端点ID对应于管道中多个不同的端点坐标;
[0086] 坐标异常:线表中一个端点坐标对应于管道中多个不同的端点ID;
[0087] 管径突变:以任意一根管道作为目标管道,目标管道发生管径突变是指目标管道两端节点的通道数为2,且目标管道与任意一端相连管道的管径的差值大于预设突变阈值;
[0088] node_id:节点标识(即节点的ID标识);
[0089] pipe_id:管道标识;
[0090] source:管道起始节点标识;
[0091] target:管道终止节点标识;
[0092] x_coordinate:点表x坐标;
[0093] y_coordinate:点表y坐标;
[0094] x_source:线表起点x坐标;
[0095] y_source:线表起点y坐标;
[0096] xy_source:线表source端x坐标和y坐标拼接后的坐标唯一标识;
[0097] x_target:线表终点x坐标;
[0098] y_target:线表终点y坐标;
[0099] xy_target:线表target端x坐标和y坐标拼接后的坐标唯一标识;
[0100] pipe_diam:管道的管径长度。
[0101] 点表和线表的所有属性应当完整、准确,除ID标识和空间坐标位置具有唯一对应关系外,在管网建设中,节点的通道数是指节点所连接的管道的个数,针对通道数大于或等于三根管道的节点,此节点所连接的多根管道是由管道连接器所连接,通常它们不考虑连接该节点的管道管径之间的差异,而针对通道数为2的节点,连接该节点的管道之间的管径差异正常情况下是相同或相差较小的,如果管道两端点任意一端相连接的管道之间的管径差值大于预设定突变阈值(例如是1cm、2cm或者3cm),则表明发生了管径突变。因此,管径突变定义为:以任意一根管道作为目标管道,目标管道发生管径突变是指目标管道两端的管道通道数为2,且任意一端相连接管道的的管径差值大于预设突变阈值;目前主流处理方式是先人工校验筛查,再进一步核查并设计治理方式,最后人工统一处理,具有耗时长、成本高、效率较为低下、漏查率及出错率会随着数据量的增大而提高等不足;也可使用QGIS系统来检查拓扑数据,但只能可视化出某根具体管道或某个具体节点的情况,并不能直观地反映出所有的异常数据以及管径突变的状态;无法列出拓扑数据中的异常数据表单。
[0102] 早期,为解决修复拓扑数据属性错误、缺失和无法映射等问题,只能由专职工作人员人工去检查和修复,这种方式下在准确率和效率方面,无法满足数据治理的时效化需求;随着计算机技术的不断发展,开始普遍使用ARCGIS系统(绘制地图和地理信息的基础架构)来辅助人工修复拓扑数据,但当数据量很大时,人工修复犯错率和漏查率会增大,同时对人员能力要求较高。
[0103] 目前比较流行的是人工以及配合ARCGIS系统来修复,即单纯人工肉眼去查看ARCGIS系统中的分布情况然后再修复,这种修复速度慢,效率低,差错率高。除此之外,可以借助部分自动修复的工具,如EXCEL等,但只是作为局部的技术方案,没有从系统和整体的角度出发去系统性地解决GIS数据存在的ID异常,坐标异常和管径突变的问题。
[0104] 基于此,本申请提供了智燃气管网拓扑数据中异常数据的检修方法、系统和芯片,以克服现有技术的缺陷,并提高修复的精度和效率。相较于人工修复,从整体和系统的角度出发,结果准确度高,效率高,标准化模块程度高,处理时间短。
[0105] 方法实施例
[0106] 参见图1,图1是本申请实施例提供的一种燃气管网拓扑数据中异常数据的检修方法的流程示意图。
[0107] 所述方法包括:
[0108] 步骤S101:获取燃气管网的拓扑数据并对所述拓扑数据进行标准化处理,得到标准化后的拓扑数据,其中,所述拓扑数据包括点表数据和线表数据;
[0109] 步骤S102:对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,所述异常检测包括以下一种或多种:管径突变检测、ID异常检测和坐标异常检测,其中,以任意一根管道作为目标管道,目标管道发生管径突变是指目标管道两端节点的通道数为2,且目标管道与任意一端相连管道的管径的差值大于预设突变阈值;
[0110] 步骤S103:根据所述异常记录信息,对所述异常数据进行修复,并更新燃气管网的拓扑数据。
[0111] 需要说明的是:本申请实施例中,对管径突变检测、ID异常检测和坐标异常检测的检测顺序不做限定,管径突变检测、ID异常检测和坐标异常检测可以依次进行。
[0112] 在一个实施例中,步骤S101中,对所述拓扑数据进行标准化处理,包括:
[0113] 针对点表数据,对node_id字段进行去重,对node_id字段中的非整数ID标识进行取整;对x_coordinate字段和y_coordinate字段保留m位小数,m为正整数;
[0114] 针对线表数据,对pipe_id字段进行去重,对pipe_id字段、source字段和target字段中的非整数ID标识进行取整;对x_source字段、y_source字段、x_target字段、y_target字段保留m位小数,pipe_diam字段保留n位小数,n为正整数。
[0115] 本申请实施例对m和n不做限定,m例如是2、3、5、7或者8,n例如是2、3、5、7或者8。
[0116] 作为一个示例,对于标准化后的点表数据,每个node_id字段有且仅有唯一一个不重复的整数ID,x_coordinate字段和y_coordinate字段为保留3位小数的经纬度数据;
[0117] 对于标准化后的线表数据,pipe_id字段、source字段和target字段为整数ID且pipe_id字段唯一不重复,x_source字段、y_source字段、x_target字段和y_target字段为保留3位小数的经纬度数据,而pipe_diam字段则为保留3位小数管径数据。
[0118] 参见图2,图2是本申请实施例提供的一种燃气管网拓扑数据的整体修复过程的示意图。
[0119] 具体地,燃气管网拓扑数据的修复过程如下(a h):~
[0120] a、获取标准化处理后的点表和线表数据;
[0121] b、检查出ID异常的数据并生成表单:
[0122] c:解决ID异常的数据问题并更新点线表;
[0123] d:检查出坐标异常的数据并生成表单;
[0124] e:解决坐标异常的数据问题并更新点线表;
[0125] f:检查出管径突变的数据并生成表单;
[0126] g:解决管径突变的数据问题并更新线表;
[0127] h:保存点表和线表修复数据。
[0128] 本申请实施例通过对城市天然气管网地理信息系统(GIS)中的拓扑数据进行管径突变、ID异常和坐标异常的自动检查与修复,提高效率的同时减少了数据处理的时间成本和人工成本,为天然气管网仿真奠定了基础,从而加速了天然气管网数字化运营的推进。
[0129] 在一个实施例中,所述异常检测包括ID异常检测,所述异常数据包括ID异常数据,所述异常记录信息包括ID异常表单;
[0130] 步骤S102中,对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,包括:
[0131] 将线表数据中的x_source字段与y_source字段进行列的拼接,得到source端坐标标识,记为xy_source字段;
[0132] 将线表数据中的x_target字段与y_target字段进行列的拼接,得到target端坐标标识,记为xy_target字段;
[0133] 将线表数据中的pipe_id、source、xy_source三列字段与pipe_id、target、xy_target三列字段按行进行拼接,依次得到id字段、st字段和xy字段,并根据id字段、st字段和xy字段生成临时表单,对所述临时表单中的所有行进行去重;
[0134] 将st字段作为分组条件,对所述临时表单进行分组拆分,获得st字段不同的多个子表单,每个子表单中st字段相同,而xy字段不同;
[0135] 统计每个子表单中的行数,将所有行数大于1的st字段对应的节点ID标识作为ID异常数据,根据所述ID异常数据生成对应的ID异常表单。
[0136] 由于人工抄录带来的疏漏以及早期管网建立时信息数据技术的落后,线表数据中的source字段或target字段虽是同一个ID却在拓扑中对应于多个不同的坐标;这使得用户无法通过管道末端ID定位该管道在拓扑中的位置,也为管网仿真计算带来了巨大困难。因此,本申请为解决城市天然气管网地理信息系统(GIS)中的拓扑数据ID异常的问题,有针对性地对拓扑中的管道数据进行ID异常检查,涉及管道的标识ID和坐标数据,包括线表中的七个字段:pipe_id、source、target、x_source、y_source、x_target、y_target。本申请采用插入坐标标识、生成表单、分组、筛选等方式检查ID异常数据。
[0137] 参见图3,图3是本申请实施例提供的一种ID异常检查的流程示意图。
[0138] 具体地,ID异常检查的过程如下(b1 b6):~
[0139] b1:获取标准化处理后的线表数据。
[0140] b2:将线表中source端坐标数据x_source字段和y_source字段以“_”作为分隔符拼接为source端坐标唯一性标识,记为xy_source;target端坐标数据x_target字段和y_target字段以“_”作为分隔符拼接为target端坐标唯一性标识,记为xy_target。
[0141] 例如,标准化后的线表数据如表1所示,拼接x_source和y_source、x_target和y_target后的线表数据如表2所示。pipe_id为1且source端ID为1合并后的坐标唯一性标识为376182.563_547951.997;同理,pipe_id为1且target端ID为2合并后的target端坐标唯一性标识为376197.392_547981.453。
[0142] 表1:
[0143]
[0144] 表2:
[0145]
[0146] b3:将线表数据中的pipe_id、source、xy_source三列字段与pipe_id、target、xy_target三列字段按行进行拼接,将拼接得到的三列名称重命名为id字段、st字段和xy字段,并生成临时表单,对临时表单中pipe_id字段、st字段和xy字段完全相同的行进行去重。
[0147] 例如,按行拼接前,pipe_id、source、xy_source三列字段如表2‑1所示,pipe_id、target、xy_target三列字段如表2‑2所示。按行拼接后,id字段、st字段和xy字段三列字段如表2‑3所示。
[0148] 表2‑1:
[0149]
[0150] 表2‑2:
[0151]
[0152] 表2‑3:
[0153]
[0154] b4:在临时表单中以st作为分组条件来对临时表单进行分组拆分从而获得st字段不同的各个子表单,每个子表单中,st字段都相同,而xy字段不相同。
[0155] b5:统计每个子表单中的行的数量,若行的数量大于1,则表明子表单中管道末端同一个标识对应多个管道末端节点,子表单ID异常;若行的数量等于1,则表明子表单中管道末端节点标识与坐标唯一对应,子表单ID正常;保留所有行数大于的st末端标识。
[0156] b6:生成ID异常表单并保存。
[0157] 在一个实施例中,步骤S103中,根据所述异常记录信息,对所述异常数据进行修复,包括:
[0158] 读取所述ID异常表单,得到ID异常列表,记为ST_LIST;
[0159] 将线表数据中的source字段和target字段对应的ID标识列入第一集合,从所述第一集合中筛选出最大的ID标识,记为st_max;
[0160] 向线表数据插入两列字段,分别记为source_flag字段和target_flag字段,将source_flag字段和target_flag字段的数值初始化为0;
[0161] 针对线表数据的每一行,判断source字段对应的ID标识是否在ST_LIST中,若在,则将source_flag字段设置为1,否则设置为0;判断target字段对应的ID标识是否在ST_LIST中,若在,则将target_flag字段设置为1,否则设置为0;
[0162] 向线表数据插入一列字段,记为st_tag字段,若线表数据中的source_flag字段和/或target_flag字段为1,则将st_tag字段设置为1,若线表数据中的source_flag字段和target_flag字段为均为0,则将st_tag字段设置为0;
[0163] 基于st_tag字段将线表分为需要处理的第一子表单和不需要处理的第二子表单,其中,第一子表单的st_tag字段为1,第二子表单的st_tag字段为0;
[0164] 针对第一子表单,按每行从上到下的顺序以及每行从source字段到target字段的顺序,分别将source_flag字段为1的source字段对应的ID标识以及target_flag字段为1的target字段对应的ID标识用st_max进行替换,每次替换时,先将st_max加1,再进行填充;
[0165] 将处理完后的第一子表单与不需要处理的第二子表单进行拼接得到处理后的线表数据;
[0166] 根据线表数据的source字段或target字段生成点表的node_id字段,根据线表数据的x_source字段和x_target字段生成点表的x_coordinate字段,根据线表数据的y_source字段和y_target字段生成点表的y_coordinate字段,以得到新的点表,同时入库保存。
[0167] 采用前述ID异常检测方式,可以检查出线表中所有ID异常的数据清单,但仅通过人工处理的方式仍费时费力。为保证快速而又准确地对拓扑进行治理,需要基于ID异常的检查结果对线表中ID异常的数据进行自动修复,同时基于线表治理的结果更新点表数据。
[0168] 参见图4,图4是本申请实施例提供的一种修复ID异常的流程示意图。
[0169] 具体地,修复ID异常的过程如下(c1 c9):~
[0170] c1:获取标准化处理后的点表和线表数据。
[0171] c2:读取ID异常表单得到ID异常列表,记为ST_LIST。
[0172] c3:将线表source字段和target字段两列所有管道ID整理为一个集合,然后从集合中筛选出最大的管道ID,记为st_max,用于后续对ID异常的编号进行填充。
[0173] c4:向线表中插入两列标记,记为source_flag字段和target_flag字段,将两列数值都初始化为0,表示source端和target端ID均不是ID异常数据。
[0174] c5:依次从线表中取出每行source字段和target字段的ID标识,若source字段的ID标识在ST_LIST中,则将source_flag设置为1,否则设置为0;若target字段的ID标识在ST_LIST中,则将target_flag设置为1,否则设置为0。
[0175] c6:线表中插入一列标记筛选ID异常行数据的字段,记为st_tag,若线表中source_flag或target_flag为1,则将st_tag设置为1,若线表中source_flag和target_flag均为0,则将st_tag设置为0。
[0176] 通过st_tag字段,从线表数据中找出source_flag或target_flag为1的子表单,记为第一子表单。
[0177] c7:在第一子表单中依次按行从上到下的顺序以及每行从source字段到target字段的顺序,分别将source_flag为1的source字段和target_flag为1的taget字段用st_max进行替换并填充,每次执行一次操作,先将st_max加1,再进行填充。
[0178] c8:将线表中source字段或targe t字段的ID标识以及X坐标和Y坐标按行依次取出,生成以source或target端ID为node_id,x_source、y_source和x_target、y_target作为点表x坐标和点表y坐标,生成新的点表。
[0179] c9:入库保存修复完后的点表以及线表数据。
[0180] ID异常治理完成后的点表数据如表3所示,ID异常治理完成后的线表数据如表4所示。
[0181] 表3:
[0182]
[0183] 表4:
[0184]
[0185] 在一个实施例中,所述异常检测包括坐标异常检测,所述异常数据包括坐标异常数据,所述异常记录信息包括坐标异常表单;
[0186] 步骤S102中,对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,包括:
[0187] 将线表数据中的x_source字段与y_source字段进行列的拼接,得到source端坐标标识,记为xy_source字段;
[0188] 将线表数据中的x_target字段与y_target字段进行列的拼接,得到target端坐标标识,记为xy_target字段;
[0189] 将线表数据中的pipe_id、source、xy_source三列字段与pipe_id、target、xy_target三列字段按行进行拼接,依次得到id字段、st字段和xy字段,并根据id字段、st字段和xy字段生成临时表单,对所述临时表单中的所有行进行去重;
[0190] 将xy字段作为分组条件,对所述临时表单进行分组拆分,获得xy字段不同的多个子表单,每个子表单中xy字段相同,而st字段不同;
[0191] 统计每个子表单中的行数,将所有行数大于1的xy字段对应的坐标标识作为坐标异常数据,同时将子表单的st字段按从小到大进行排序;
[0192] 获取所述子表单的首条坐标异常数据的xy字段和st字段,以生成对应的坐标异常表单。
[0193] ID异常检查修复虽然可以解决管网中一个管道末端ID对应于多个坐标的问题,但由于拓扑的复杂性,管道末端也会存在一个端点坐标对应于多个不同的source或target端ID标识问题。为修复这些坐标异常的数据点,本申请采用插入坐标标识,生成表单,分组,筛选等方式来检查出这些坐标异常的数据点。
[0194] 参见图5,图5是本申请实施例提供的一种坐标异常检查的流程示意图。
[0195] 具体地,坐标异常检查的过程如下(d1 d6):~
[0196] d1:获取标准化处理后的线表数据。
[0197] d2:将线表中source端坐标数据x_source字段和y_source字段以“_”作为分隔符拼接为source端坐标唯一性标识,记为xy_source;target端坐标数据x_target字段和y_target字段以“_”作为分隔符拼接为target端坐标唯一性标识,记为xy_target。
[0198] d3:将线表数据中的pipe_id、source、xy_source三列字段与pipe_id、target、xy_target三列字段按行进行拼接,将拼接得到的三列名称重命名为id字段、st字段和xy字段,并生成临时表单,对临时表单中pipe_id字段、st字段和xy字段完全相同的行进行去重。
[0199] d4:在临时表单中以xy作为分组条件来对临时表单进行分组拆分从而获得xy字段不同的各个子表单,每个子表单中,xy字段都相同,而st字段不相同。
[0200] d5:统计每个子表单中的行的数量,若行的数量大于1,则表明子表单中管道末端同一个坐标对应多个管道末端标识的节点,子表单坐标异常;若行的数量等于1,则表明子表单中管道末端坐标与source或target端点ID唯一对应,子表单坐标正常;保留所有行数大于1的xy坐标标识。
[0201] d6:生成坐标异常表单并保存。
[0202] 在一个实施例中,步骤S103中,根据所述异常记录信息,对所述异常数据进行修复,包括:
[0203] 读取所述坐标异常表单,得到坐标异常列表和对应的ID异常列表,分别记为XY_LIST和ST_LIST;
[0204] 向线表数据插入两列字段,分别记为source_flag字段和target_flag字段,将source_flag字段和target_flag字段的数值初始化为0;
[0205] 针对线表数据的每一行,判断xy_source字段对应的坐标标识是否在XY_LIST中,若在,则将source_flag字段设置为1,否则设置为0;判断xy_target字段对应的坐标标识是否在XY_LIST中,若在,则将target_flag字段设置为1,否则设置为0;
[0206] 向线表数据插入一列字段,记为st_tag字段,若线表数据中的source_flag字段和/或target_flag字段为1,则将st_tag字段设置为1,若线表数据中的source_flag字段和target_flag字段为均为0,则将st_tag字段设置为0;
[0207] 基于st_tag字段将线表分为需要处理和不需要处理两个子表单;
[0208] 针对第一子表单,按每行从上到下以及每行从source字段到target字段的顺序,分别将source_flag字段为1的source字段对应的ID标识以及target_flag字段为1的target字段对应的ID标识用自身节点的坐标标识在ST_LIST中相对应的ID标识进行替换;
[0209] 将处理完后的第一子表单和不需要处理的第二子表单合并为线表数据;
[0210] 根据线表数据的source字段或target字段生成点表的node_id字段,根据线表数据的x_source字段和x_target字段生成点表的x_coordinate字段,根据线表数据的y_source字段和y_target字段生成点表的y_coordinate字段,以得到修复后的点表数据,将点表数据和线表数据入库保存。
[0211] 采用前述坐标异常检测方式,可以检查出线表中所有坐标异常的数据清单,但仅通过人工的方式来处理这种一个坐标对应于多个ID的情况仍费时费力,需要基于坐标异常的检查结果对线表中坐标异常的数据进行自动修复,同时基于线表治理的结果更新点表数据。
[0212] 参见图6,图6是本申请实施例提供的一种修复坐标异常的流程示意图。
[0213] 具体地,修复坐标异常的过程如下(e1 e9):~
[0214] e1:获取标准化处理后的点表和线表数据。
[0215] e2:读取坐标异常表单得到坐标异常列表和对应的ID异常列表,记为XY_LIST和ST_LIST。
[0216] e3:将线表中source端坐标数据x_source字段和y_source字段以“_”作为分隔符拼接为source端坐标唯一性标识,记为xy_source;target端坐标数据x_target字段和y_target字段以“_”作为分隔符拼接为target端坐标唯一性标识,记为xy_target。
[0217] e4:向线表中插入两列标记,记为source_flag字段和target_flag字段,将两列数值都初始化为0,表示xy_source字段和xy_target字段均不是坐标异常数据。
[0218] e5:依次从线表中取出每行xy_source和xy_target坐标唯一性标识,判端source端xy_source标识以及target端xy_target的坐标标识是否存在于XY_LIST中,若xy_source存在于XY_LIST中,则将source_flag设置为1,否则设置为0;若target端xy_target的坐标标识存在于XY_LIST中,则将target_flag设置为1,否则设置为0。
[0219] e6:线表中插入一列标记筛选坐标异常行数据的字段st_tag,若线表中source_flag或target_flag为1,则将st_tag设置为1,否则置为0。
[0220] 通过st_tag字段,从线表数据中找出source_flag或target_flag为1的子表单。
[0221] e7:将线表分为需要处理的第一子表单和不需要处理的第二子表单,其中,第一子表单的st_tag字段为1,第二子表单的st_tag字段为0;
[0222] 针对第一子表单,将source_flag字段为1的source字段和target_flag字段为1的target字段对应的节点记为目标节点,按每行从上到下以及每行从source字段到target字段的顺序,将每个所述目标节点的ID标识用所述目标节点的坐标标识在ST_LIST中相对应的ID标识进行替换;
[0223] 将处理完后的第一子表单和不需要处理的第二子表单合并为线表数据;。
[0224] e8:将线表中source或target的ID标识以及X坐标和Y坐标按行依次取出,生成以source或target端ID为node_id,x_source、y_source和x_target、y_target作为点表x坐标和点表y坐标,生成新的点表。
[0225] e9:入库保存修复完后的点表以及线表数据。
[0226] 在一个实施例中,所述异常检测包括管径突变检测,所述异常数据包括管径异常数据,所述异常记录信息包括管径异常表单;
[0227] 步骤S102中,对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,包括:
[0228] 以线表数据的source字段为起点,target字段为终点,pipe_id字段和pipe_diam字段为管道属性,构建燃气管网拓扑;
[0229] 针对燃气管网拓扑中的每个连通子图,判断连通子图中的节点数量是否小于3,若小于3,则确定连通子图不存在管径突变;若不小于3,则预设连通子图存在管径突变;
[0230] 将预设存在管径突变的连通子图中所有通道数为2的节点记为异常节点,针对每个异常节点,计算异常节点相邻的两条管道之间的管径差值的绝对值,若所述绝对值大于预设的突变阈值,则将异常节点列入预设的异常节点列表;
[0231] 判断所述异常节点列表中的两两节点之间是否有单根管道相连,若存在,确定所述单根管道为突变管道;
[0232] 将所述突变管道的管道ID作为管径异常数据,根据所述管径异常数据生成对应的管径异常表单。
[0233] 本申请对突变阈值不做限定,突变阈值例如可以是20、30、40或者50。
[0234] 管径突变是指在管网拓扑中,中间大于等于三根管道相连的节点彼此之间连接的管段的管径是相同或相差较小的;然而,由于人工抄录的疏忽以及原始数据的缺失,将很多不符合要求的数据也填充到了线表中,这使得管网仿真计算结果与真实采集值之间的差异较大。为了对这些管径突变的数据进行自动化地修复,检查出线表中管径突变的管道数据就成了必要的措施。
[0235] 参见图7,图7是本申请实施例提供的一种管径突变检查的流程示意图。
[0236] 具体地,管径突变检查的过程如下(f1 f6):~
[0237] f1:获取标准化处理后的线表数据和突变阈值Mutation_threshold。
[0238] 标准化后的线表数据如表5所示。
[0239] 表5:
[0240]
[0241] f2:以线表中source端为起点,target端为终点,pipe_id和pipe_diam为管道属性,构建燃气管网的无向拓扑。
[0242] f3:获取燃气管网拓扑中的各个连通子图,判断每个连通子图中的节点数量是否小于3,若小于3,则表明连通子图中只有一根管道,不存在管径突变;若不小(大于等于)3,则获取该连通子图下的所有通道数为2的节点。
[0243] f4:在一个连通子图中,获取通道数为2的节点相邻的两条管道以及它们的管道ID和管径大小,将它们的管径直接做差并取绝对值与突变阈值进行比较,若大于Mutation_threshold,则进行保留,否则继续对下一个节点进行判断,直到遍历所有通道数为2的节点。
[0244] f5:统计出所有管径突变的节点列表,同时判断列表中两两节点之间是否有单根管段相连,若存在,则统计出所有突变管段的pipe_id列表;
[0245] f6:生成管径突变表单并保存。
[0246] 在一个实施例中,步骤S103中,根据所述异常记录信息,对所述异常数据进行修复,包括:
[0247] 读取所述管径异常表单中的每个突变管道的管道ID,生成突变管道ID集合;
[0248] 获取每个突变管道的两根相邻管道的pipe_id字段和pipe_diam字段,分别判断每个相邻管道的pipe_id字段对应的管道ID是否在突变管道ID集合中;
[0249] 若所述突变管道的相邻管道的pipe_id字段对应的管道ID不在突变管道ID集合中,则用所述相邻管道的pipe_diam字段替换突变管道的pipe_diam字段,并从所述突变管道ID集合中移除所述突变管道的管道ID;
[0250] 若所述突变管道的两根相邻管道的pipe_id字段对应的管道ID均不在所述突变管道ID集合中,则将所述突变管道置后处理,直到所述突变管道ID集合中的所有管道ID均被移除。
[0251] 采用前述管径突变检测方式,可以检查出线表中所有管径突变的数据清单,但仅通过人工的方式遍历管径突变检查清单中的所有管道并对其进行修复仍就费时费力。为保证快速而又准确地对拓扑进行修复,这就需要基于管径突变的检查结果对线表中突变的管道数据进行自动修复,同时更新线表数据。
[0252] 参见图8,图8是本申请实施例提供的一种修复管径突变的流程示意图。
[0253] 具体地,修复管径突变的过程如下(g1 g4):~
[0254] g1:获取标准化处理后的线表数据。
[0255] g2:依次读取管径突变检查表单中的每个管道ID,并生成突变管道ID集合。
[0256] g3:获取每个突变管道相邻的两根管道以及相邻管道的pipe_id字段和pipe_diam字段,判断每个相邻管道的pipe_id字段是否存在于突变管道ID集合中。
[0257] 若存在,则继续判断下一个相邻管道是否存在于突变管道ID集合中;
[0258] 若不存在,则用该相邻管道的管径替换突变管道的管径并从突变管道ID集合中,并移除该突变管道ID;
[0259] 若突变管道ID的相邻两个管道ID均不在突变管道ID集合中,则将该突变管道ID放置最后处理,直到突变管道ID集合中的所有管道ID均被移除。
[0260] g4:当突变管道ID集合中无管道ID后,入库保存修复完后的线表数据。
[0261] 本申请着力于解决GIS数据治理过程中管径突变和ID、坐标异常问题,该问题将严重影响之后发起仿真计算。本申请为找出GIS拓扑中的ID和坐标异常数据,运用插入坐标唯一标识,分组筛选等技术手段对GIS数据进行检查,2. 为修复ID异常,坐标异常和管径突变的异常数据,采用建立多条件判断流程处理等技术解决异常数据问题,3. 为快速地解决异常数据问题,检查和修复进行流程化和模块化,通过ID异常检查、ID异常修复、坐标异常检查、坐标异常修复、管径突变检查和管径突变修复等方式,系统性地进行了GIS修复,能够得到相对完美的管网数据。相较于人工修复,从整体和系统的角度出发,结果准确度高,效率高,标准化模块程度高,处理时间短。
[0262] 系统实施例
[0263] 基于以上叙述的燃气管网拓扑数据中异常数据的检修方法,本申请还提供一种用于燃气管网拓扑数据中异常数据的检修系统,包括:
[0264] 标准化模块,用于获取燃气管网的拓扑数据并对所述拓扑数据进行标准化处理,得到标准化后的拓扑数据,其中,所述拓扑数据包括点表数据和线表数据;
[0265] 异常检测模块,用于对标准化后的拓扑数据进行异常检测,筛选出异常数据并生成对应的异常记录信息,所述异常检测包括以下一种或多种:管径突变检测、ID异常检测和坐标异常检测;
[0266] 异常修复模块,用于根据所述异常记录信息,对所述异常数据进行修复,并更新燃气管网的拓扑数据。
[0267] 芯片实施例
[0268] 基于以上叙述的燃气管网拓扑数据中异常数据的检修方法,本申请还提供一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行以上任一种燃气管网拓扑数据中异常数据的检修方法。
[0269] 本申请从使用目的上,效能上,进步及新颖性等观点进行阐述,已符合专利法所强调的功能增进及使用要件,本申请以上的说明书及说明书附图,仅为本申请的较佳实施例而已,并非以此局限本申请,因此,凡一切与本申请构造,装置,特征等近似、雷同的,即凡依本申请专利申请范围所作的等同替换或修饰等,皆应属本申请的专利申请保护的范围之内。