电网设备的布局方法及计算机可读存储介质与流程

专利2022-06-30  69


本发明涉及电网绘图领域,尤其涉及一种电网设备的布局方法及计算机可读存储介质。



背景技术:

目前,国网公司低压台区成图主要依靠由pms2.0系统提供的成图工具绘图和人力手工绘图两种形式。

人力手工绘图通过参照低压台区图实际线路设备位置和设备间连接关系,使用如cad等制图软件进行图元及拓扑关系绘制输出,该方式存在人力投入工作量大和设备连接关系容易受人为因素出错的情况,在电力信息化、自动化普及较低的网省及地市多为该种制图模式。

pms2.0系统进行低压台区图成图是通过现有国网统推pms2.0客户端自带的低压台区图成图工具进行图形制图。该种方式目前已实现一键出图功能,主要实现逻辑为通过电网数据抽取拼接成树状结构数据,再结合实际地理位置进行简单四方位坐标映射处理布局,该方式虽然可以成图,但在图形图元排布、标注布局、图形权值分布、大数据量低压计量箱排布等方面存在较大问题。存在图元设备压盖、标注重叠、线路穿站、图元排布不均匀、设备图元缺失、拓扑连接异常等问题,在图形成图输出后需人工介入进行图形调整和数据复核。存在较大的后期调整工作量。



技术实现要素:

本发明所要解决的技术问题是:提供一种电网设备的布局方法及计算机可读存储介质,可保证设备图元均互不压盖。

为了解决上述技术问题,本发明采用的技术方案为:一种电网设备的布局方法,包括:

获取待布局的电网设备集合,所述电网设备集合存储有待布局线路中各设备的节点信息,所述节点信息包括设备标识、设备类型和连接关系;

根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树;

根据预设的设备类型白名单,对所述线路拓扑树进行过滤;

根据深度递归法,在预设的坐标系中依次对所述线路拓扑树中各节点对应的设备的图元进行布局,并记录各节点对应的设备的图元坐标和图元角度;

遍历完所述线路拓扑树后,将所述线路拓扑树中各节点对应的设备的图元坐标和图元角度写入所述电网设备集合,并输出电网设备集合。

本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。

本发明的有益效果在于:通过构建线路拓扑树,便于后续采用深度递归法,依次对各节点的图元进行布局;通过对不属于设备类型白名单的设备进行过滤,降低线路拓扑树的复杂度,提高后续深度递归布局的效率;通过采用深度递归法,优先布局末端节点,通过保证线路拓扑树中任意子树的父节点对应的图元均不与其子孙节点对应的图元重叠,从而保证所有节点对应的图元之间互不压盖。本发明在保证生成的电网线路接线图中的设备图元均互不压盖的同时,使得设备图元尽可能的紧凑排布且清晰,提高布局图纸的空间利用率。

附图说明

图1为本发明的一种电网设备的布局方法的流程图;

图2为本发明实施例一的方法流程图;

图3为本发明实施例一步骤s6的方法流程图;

图4为本发明实施例一的局部布局效果示意图;

图5为本发明实施例二的联合多边形的生成示意图。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明最关键的构思在于:优先独立布局站房设备群和高密度设备群;采用深度递归算法,并结合多边形碰撞避让机制,对线路拓扑树上的各节点对应的设备的图元进行布局;预先将摆放方位固定的标注与图元绑定在一起。

请参阅图1,一种电网设备的布局方法,包括:

获取待布局的电网设备集合,所述电网设备集合存储有待布局线路中各设备的节点信息,所述节点信息包括设备标识、设备类型和连接关系;

根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树;

根据预设的设备类型白名单,对所述线路拓扑树进行过滤;

根据深度递归法,在预设的坐标系中依次对所述线路拓扑树中各节点对应的设备的图元进行布局,并记录各节点对应的设备的图元坐标和图元角度;

遍历完所述线路拓扑树后,将所述线路拓扑树中各节点对应的设备的图元坐标和图元角度写入所述电网设备集合,并输出电网设备集合。

从上述描述可知,本发明的有益效果在于:在保证生成的电网线路接线图中的设备图元均互不压盖的同时,使得设备图元尽可能的紧凑排布且清晰,提高布局图纸的空间利用率。

进一步地,所述根据预设的设备类型白名单,对所述线路拓扑树进行过滤具体为:

遍历所述电网设备集合,依序获取一设备作为当前设备;

若当前设备的设备类型不属于预设的设备类型白名单,则判断当前设备对应的节点是否为所述线路拓扑树的起始节点;

若是,则将与当前设备相连的设备作为起始设备,并在所述电网设备集合中删除当前设备,同时在所述线路拓扑树中将当前设备对应的节点的子节点作为起始节点,并删除当前设备对应的节点;

若否,则在所述电网设备集合中修改与当前设备相连的设备的连接关系,并删除当前设备,同时在所述线路拓扑树中将当前设备对应的节点的子节点作为当前设备对应的节点的父节点的子节点,并删除当前设备对应的节点。

由上述描述可知,通过进行过滤,滤除待布局线路中不需要进行布局的设备,使得最后生成的布局图可清晰表明电网工作人员所关注的设备的布局效果。

进一步地,所述节点信息还包括所属容器;所述根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树之后,进一步包括:

根据所述线路拓扑树中各节点对应的设备的所属容器,在线路拓扑树中获取各站房对应的站房子树,并将各站房子树分别替换为各站房对应的第一架空节点;

分别根据各站房的站房子树,对各站房的站内设备进行布局,得到各站房的布局图,并记录各站房的站内设备相对各站房的站房起点的偏移坐标。

进一步地,所述根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树之后,进一步包括:

若所述线路拓扑树中存在一节点,所述一节点对应的设备的设备类型为预设的设备类型,且所述一节点的子节点个数大于预设的数量阈值,则获取所述一节点及其预设个数的子节点所构成的高密度节点子树,并将所述高密度字节子树替换为所述一节点对应的第二架空节点;

按照预设的格式对所述高密度节点子树中各节点对应的设备进行布局,得带所述一节点的布局图,并记录高密度节点子树中各节点对应的设备相对所述一节点对应的设备的偏移坐标。

由上述描述可知,通过优先布局站房设备群和高密度设备群,可降低图元压盖与标注压盖的出现概率,并保证站房和高密度设备群的布局效果,同时可提高后续深度递归布局的效率。

进一步地,所述根据深度递归法,在预设的坐标系中依次对所述线路拓扑树中各节点对应的设备的图元进行布局,并记录各节点对应的设备的图元坐标和图元角度;遍历完所述线路拓扑树后,将所述线路拓扑树中各节点对应的设备的图元坐标和图元角度写入所述电网设备集合,并输出电网设备集合具体为:

将所述线路拓扑树的起始节点作为当前布局节点;

判断当前布局节点是否存在未遍历的子节点;

若存在,则将未遍历的子节点作为当前布局节点,继续执行所述判断当前布局节点是否存在未遍历的子节点的步骤;

若不存在,则将当前布局节点对应的设备的图元布局在预设的坐标系的原点;

生成当前布局节点对应的独立多边形;

判断当前布局节点是否为叶子节点;

若是,则将当前布局节点对应的独立多边形作为当前布局节点的联合多边形,将当前布局节点的父节点作为当前布局节点,继续执行所述判断当前布局节点是否存在未遍历的子节点的步骤;

若否,则获取当前布局节点的各子节点对应的联合多边形;

将当前布局节点的各子节点对应的联合多边形按照面积降序的顺序进行排序,并将面积最大的联合多边形调整至最后一个位置,得到顺序序列;

根据预设的布局策略,依序对所述顺序序列中的各子节点对应的联合多边形的位置和角度进行调整,并同步更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

根据当前布局节点及其子孙节点对应的设备的图元坐标,生成当前布局节点的联合多边形;

判断当前布局节点是否为起始节点;

若是,则将所述线路拓扑树中各节点对应的设备的图元坐标和图元角度写入所述电网设备集合,并输出电网设备集合;

若否,则将当前布局节点的父节点作为当前布局节点,继续执行所述判断当前布局节点是否存在未遍历的子节点的步骤。

进一步地,所述根据预设的布局策略,依序对所述顺序序列中的各子节点对应的联合多边形的位置和角度进行调整,并同步更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度具体为:

依序从所述顺序序列中获取一联合多边形;

若所述一联合多边形在所述顺序序列中的序号为1且不为m,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并以所述原点为旋转中心按照第一旋转方向旋转90度,m为所述顺序序列中的联合多边形的总个数;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的独立多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第二移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的独立多边形与所述一联合多边形不相交且不相切;

将当前布局节点对应的独立多边形和所述一联合多边形进行合并,得到当前布局节点对应的合并多边形;

若所述一联合多边形在所述顺序序列中的序号为2且不为m,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并以所述原点为旋转中心按照第二旋转方向旋转90度;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的合并多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第三移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的合并多边形与所述一联合多边形不相交且不相切;

将当前布局节点对应的合并多边形和所述一联合多边形进行合并,更新当前布局节点对应的合并多边形;

若所述一联合多边形在所述顺序序列中的序号大于2、小于m且为奇数,则将所述一联合多边形以所述原点为旋转中心按照第一旋转方向旋转90度,并向所述原点的第二移动方向移动一个单位距离;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的合并多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的合并多边形与所述一联合多边形不相交且不相切;

将当前布局节点对应的合并多边形和所述一联合多边形进行合并,更新当前布局节点对应的合并多边形;

若所述一联合多边形在所述顺序序列中的序号大于2、小于m且为偶数,则将所述一联合多边形以所述原点为旋转中心按照第二旋转方向旋转90度,并向所述原点的第三移动方向移动一个单位距离;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的合并多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的合并多边形与所述一联合多边形不相交且不相切;

若所述一联合多边形为所述顺序序列中的的序号为m,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至所述一联合多边形与当前布局节点对应的独立多边形或当前布局节点对应的合并多边形不相交且不相切。

由上述描述可知,通过深度递归结合多边形碰撞避让机制,从末端节点开始将设备图元聚类成簇形成外接多边形,通过设备簇的多边形避让,从局部扩展至全图,实现全图幅设备避让,从而解决图元压盖相关问题。

进一步地,所述第二移动方向与所述第三移动方向相反,所述第一移动方向分别与第二移动方向和第三移动方向垂直;所述第一旋转方向与所述第二旋转方向相反。

由上述描述可知,保证图元的布局是横平竖直的,从而保证最后布局效果的美观性。

进一步地,所述节点信息还包括标注内容和标注摆放方位;所述生成当前布局节点对应的独立多边形具体为:

判断当前布局节点对应的设备的标注的摆放方位是否固定;

若固定,则根据当前布局节点对应的设备的图元和标注占用的平面空间,生成当前布局节点对应的独立多边形,并将当前布局节点对应的设备的标注相对图元的摆放方位写入当前布局节点对应的设备的标注摆放方位;

若不固定,则根据当前布局节点对应的设备的图元占用的平面空间,生成当前布局节点对应的独立多边形。

由上述描述可知,通过预先在已知摆放方位的标注与图元绑定在一定,使得在深度递归的布局过程中,也保证了这些标注不与其他图元压盖;深度递归结束后,再对未知摆放方位的标注进行摆放,从而在保证了图元互不压盖的同时,也保证了标注与标注之间、标注与图元之间互不压盖。

进一步地,所述根据当前布局节点及其子孙节点对应的设备的图元坐标,生成当前布局节点的联合多边形具体为:

根据当前布局节点及其子孙节点对应的设备的图元坐标,获取同一y值中x值最大和x值最小的图元坐标,得到边界图元坐标;

根据所述边界图元坐标及其对应的图元大小,计算边界点坐标,得到边界点集合;

根据边界点集合中各边界点坐标,生成当前布局节点的联合多边形。

由上述描述可知,通过确定位于边界的图元坐标,确定出边界点坐标,从而可绘制生成多边形。

本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。

实施例一

请参照图2-4,本发明的实施例一为:一种电网设备的布局方法,可应用于电网低压台区图的布局成图,如图2所示,本方法包括如下步骤:

s1:获取待布局的电网设备集合和预设的风格配置信息。

所述电网设备集合中存储有待布局线路中的所有设备的节点信息,每个节点信息主要包括:设备标识(设备id)、设备类型、符号类型(点、线和面)、标注内容、连接关系、所属容器以及其他一些备用信息,还包括图元坐标、图元角度和标注相关信息(如标注相对图元的摆放方位),但这几个字段的值在初始时为空。

其中,连接关系以“端子号对应连接点”的方式体现,当两个设备各自的一个端子号对应同一个连接点id,就可以确定这两个设备是相连的。例如线设备a,线设备b都是双端子设备(即有1号、2号两个端子,设备两端都可以与其它设备连接),点设备c是单端子设备(即只有一个1号端子,只有一端可以与其它设备连接),现假设线设备a的一端与点设备c相连,假设连接点id为100,另一端与线设备b的一端相连,假设连接点id为200,同时点设备c又与线设备b的一端相连,则此时设备a节点的连接关系会被记录为“端子1-100、端子2-200”,设备b节点的连接关系记录为“端子1-100、端子2-200”,设备c的连接关系为“端子1-100”。若想找出与设备a相连的设备,则可以通过其端子1与端子2对应的连接点id找出与此id对应的其它设备的端子,从而找到相连设备。

进一步地,所述电网设备集合中还包括一个虚拟设备,该虚拟设备的节点信息包括设备类型和map容器,设备类型为线路,map容器中以键值对的形式记录着线路的相关信息,其中包括键为“出线开关”的键值对,其值即为该线路的起始设备标识,起始设备即整条线路的起点,其面前没有设备。后续可根据该键值对,获取待布局线路的起始设备。

所述风格配置信息主要记录关注设备的类型(即设备类型白名单)、定义单位距离的长度、图元信息和站房风格等信息,其内置字段包括:maptype(图类型id)、subtypeid(设备类型id数组,记录所关注设备类型)、stationsimplify(值为“true”或“false”,标识站房是否简化)、polesimplify(值为“true”或“false”,标识杆塔是否简化)、circuitdistance(单位架空间距,一般为一个整数)、stationdistance(单位站房间距,一般为一个整数)、stationstyle(以“站房类型id:0”或者“站房类型id:1”的形式标识站房是否带外框)和symbolstyle(图元符号信息,记录着各类型设备id对应的图元符号大小、端子个数等信息)。

其中,设备类型白名单主要包括变压器、电缆段及电缆、杆塔、导线段及导线、柱上负荷开关、低压配电箱、电缆分支箱、接户线、用户接入点、用电计量箱、母线、低压熔丝和站内开关类等。

s2:根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树。

具体地,在所述电网设备集合中获取待布局线路的起始设备,作为线路拓扑树的起始节点;根据起始设备的连接关系,获取与所述起始设备相连的设备,并将所述相连的设备作为所述起始节点的子节点;然后根据所述子节点对应的设备的连接关系,获取与子节点对应的设备相连的设备,并排除子节点的父节点对应的设备,将剩余的设备作为该子节点的子节点;以此类推,直至所述电网设备集合中的所有设备均加入至线路拓扑树中,即可得到线路拓扑树。

进一步地,在确定父子节点关系时,可将子节点的节点指针存储至父节点的节点对象的“child”成员变量中(child为指针数量类型),同时将父节点的节点指针存储至子节点的节点对象的“parent”成员变量中(parent为设备节点类指针)。

s3:根据风格配置信息中的设备类型白名单,对所述线路拓扑树进行过滤。

具体地,遍历所述电网设备集合,依序获取一设备作为当前设备;若当前设备的设备类型不属于所述风格配置信息中的关注设备类型,则判断当前设备对应的节点是否为起始节点;若为起始节点,则当前设备对应的节点的子节点标记为起始节点,并在所述线路拓扑树中删除当前设备对应的节点,同时将与当前设备相连的设备标记为起始设备,并在所述电网设备集合中删除当前设备;若不为起始节点,则将当前设备对应的节点的子节点作为当前设备对应的节点的父节点的子节点,即在所述线路拓扑树中修改当前设备对应的节点的父节点和子节点的连接关系,使所述父节点和子节点相连,并在所述线路拓扑树中删除当前设备对应的节点,同时在电网设备集合中修改所述父节点和子节点对应的设备的连接关系,使其相连,并删除当前设备。当遍历完电网设备集合后,即可得到过滤后的线路拓扑树。

s4:将过滤后的线路拓扑树中的站房子树替换为站房对应的第一架空节点,并根据站房子树,对站房的站内设备进行布局,得到各站房的站房布局图,记录各站房的站内设备相对各站房的站房起点的偏移坐标。

具体地,根据过滤后的线路拓扑树中各节点对应的设备的所属容器,在线路拓扑树中获取各站房对应的站房子树;即根据设备的所属容器字段的值,可获取属于同一个站房的设备,得到该站房的设备群,该设备群中各设备对应的节点所组成的子树即为该站房的站房子树,然后将各站房子树分别替换为各站房对应的第一架空节点,即将整个站房子树作为线路拓扑树中的一个节点。

站房子树的结构可表示站房的拓扑网络,站房拓扑网络可分为有母线和无母线两种。有母线情况下,将母线作为站房起点,从上而下布局。无母线情况下,将站内电缆接头作为站房起点,从下而上布局。可在预设的坐标系上进行布局,坐标系的原点为站房起点,布局完后即可得到站房布局图,同时记录站房内的各站内设备相对站房起点的偏移坐标。

进一步地,根据风格配置信息中的stationstyle字段的值选择是否为站房布局图添加矩形外框。

s5:将线路拓扑树中满足预设条件的高密度节点子树替换为对应的第二架空节点,并对高密度节点子树中各节点对应的设备进行布局,得到高密度节点子树对应的布局图,同时记录布局图中的各设备相对其中某一个设备的偏移坐标。

当出现局部设备密度过高的情况(如多个用电计量箱等挂载在同一个低压用户接入点),图元压盖和标注压盖问题出现的概率也会随之增大,如果为了避免压盖而过度拉伸两个原本相邻设备,则会影响到整图的美观度性和饱满度性。为了解决该问题,本实施例先分析是否存在高密度节点子树,即遍历全部节点,若一节点对应的设备的设备类型为预设的设备类型(如低压用户接入点和低压墙支架),且其子节点的个数大于预设的数量阈值,则获取所述一节点及其预设个数的子节点所构成的高密度节点子树,并将所述高密度字节子树替换为所述一节点对应的第二架空节点。

然后获取高密度节点子树中各节点对应的设备,以该高密度节点子树中的父节点(即所述一节点)对应的设备为圆心,将该高密度节点子树中的子节点(即所述一节点预设个数的子节点)对应的设备及其标注围绕成若干个同心圆环向外放射的形式进行布局。可在预设的坐标系上进行布局,将所述一节点对应的设备布置在坐标系的原点,布局完后即可得到高密度节点子树对应的布局图,同时记录高密度节点子树中各节点对应的设备相对所述一节点对应的设备的偏移坐标。

由于较好的布局都是横平竖直的,即在设备图元的上下左右四个方位布置其他设备图元,那么对于一个设备图元,留有一个方位是用于摆放其父节点的设备图元,那么还剩下三个方位可以摆放其子节点的设备图元。因此优选地,所述预设的数量阈值为3,获取所述一节点及其n-3个子节点所构成的子树作为高密度节点子树,n为所述一节点的子节点总个数。

经过步骤s4-s5后,线路拓扑网络中的站房和高密度设备群已经提前完成布局,且在整体拓扑网络中被视为一个架空节点,唯一不同的是这些节点所占据的平面空间比其他普通节点大。

s6:根据深度递归法,在预设的坐标系中依次对所述线路拓扑树中各节点对应的设备的图元进行布局,并记录各图元的图元坐标和图元角度,进一步地,还可记录标注相对图元的摆放方位,后续可根据新增这些信息的电网设备集合,生成待布局线路的布局图。

具体地,如图3所示,步骤s6包括如下步骤:

s101:将所述线路拓扑树的起始节点作为当前布局节点。

s102:判断当前布局节点是否存在未遍历的子节点,若是,则执行步骤s103,若否,则执行步骤s104。

s103:获取当前布局节点未遍历的一子节点,并将所述一子节点作为当前布局节点,然后继续执行步骤s102。

s104:将当前布局节点对应的设备的图元布局在预设的坐标系的原点,并将当前布局节点对应的设备的图元坐标设为所述原点的坐标,将图元角度设为0。

s105:生成当前布局节点对应的独立多边形。

具体地,先判断当前布局节点对应的设备的标注的摆放方位是否固定,若是,则根据当前布局节点对应的设备的图元和标注占用的平面空间,生成当前布局节点对应的独立多边形;若否,则根据当前布局节点对应的设备的图元占用的平面空间,生成当前布局节点对应的独立多边形。

本实施例中,可将事先预知摆放方位的标注与对应的图元进行绑定,并记录标注相对图元的摆放方位;例如末端节点设备的标注固定摆放在其父节点与其本身连接线的延长线方向,站房标注固定摆放在站房节点上方等。然后根据字体大小、单行字数和标注字数,计算出标注占用的平面空间,并结合对应的图元占用的平面空间,生成对应的独立多边形。

对于不能预知标注摆放方位的设备,则根据自身图元的占用的平面空间生成独立多边形。此时先不考虑其标注的摆放,在深度递归完成后,分别在设备图元的八方位(上、下、左、右、左上、左下、右上、右下)上,用标注对应的多边形与设备图元对应的多边形进行碰撞检测,选择没有重叠或者重叠面积最小的最佳方位摆放标注,并记录标注相对图元的摆放方位。

s106:判断当前布局节点是否为叶子节点,若是,则执行步骤s107,若否,则执行步骤s108。

s107:将当前布局节点的独立多边形作为当前布局节点的联合多边形,将当前布局节点的父节点作为当前布局节点,然后继续执行步骤s102。

s108:获取当前布局节点的各子节点对应的联合多边形。进一步地,分别计算各子节点对应的联合多边形的面积。

s109:将当前布局节点的各子节点对应的联合多边形按照面积降序的顺序进行排序,并将面积最大的联合多边形调整至最后一个位置,得到当前布局节点对应的顺序序列;进一步地,放入顺序容器中。例如,假设多个子节点对应的联合多边形的面积分别为10、20、30、40,则顺序序列中的联合多边形的面积顺序为30,20,10,40。

s110:从所述顺序序列中获取第i个联合多边形;i的初始值为1。

s111:根据预设的布局策略,对所述第i个联合多边形进行布局,并更新所述第i个联合多边形包含的各节点对应的设备的图元坐标和图元角度。

具体地,若i=1且i≠m,m为所述顺序序列中的联合多边形的总个数,即当前获取的联合多边形为顺序序列中的第一个联合多边形,但不为最后一个(即顺序序列中包含至少两个的联合多边形,也即当前布局节点包含两个以上的子节点),则将所述联合多边形向所述原点的第一移动方向移动一个单位距离,并以所述原点为旋转中心按照第一旋转方向旋转90度;同时,对应更新所述联合多边形包含的各节点对应的设备的图元坐标和图元角度。

接着对所述联合多边形与当前布局节点对应的独立多边形进行碰撞检测,判断是否相交或相切,即是否存在重叠,若是,则将所述联合多边形向所述原点的第二移动方向移动一个单位距离,然后继续对所述联合多边形与当前布局节点对应的独立多边形进行碰撞检测,直至不相交且不相切,即不存在重叠。当移动所述联合多边形的同时,对应更新所述联合多边形包含的各节点对应的设备的图元坐标。

进一步地,每遍历完一个联合多边形后,将当前布局节点对应的独立多边形和已遍历的联合多边形进行合并,得到当前布局节点对应的合并多边形,用于与后续未遍历的联合多边形进行碰撞检测。此时遍历完第一个联合多边形,即将当前布局节点对应的独立多边形和第一个联合多边形进行合并,得到当前布局节点对应的合并多边形。

若i=2且i≠m,即当前获取的联合多边形为顺序序列中的第二个联合多边形,但不为最后一个(即顺序序列中包含至少三个的联合多边形,也即当前布局节点包含三个以上的子节点),则将所述联合多边形向所述原点的第一移动方向移动一个单位距离,并以所述原点为旋转中心按照第二旋转方向旋转90度;同时,对应更新所述联合多边形包含的各节点对应的设备的图元坐标和图元角度。

接着对所述联合多边形与当前布局节点对应的合并多边形进行碰撞检测,判断是否相交或相切,若是,则将所述联合多边形向所述原点的第三移动方向移动一个单位距离,然后继续对所述联合多边形与当前布局节点对应的独立多边形进行碰撞检测,直至不相交且不相切。当移动所述联合多边形的同时,对应更新所述联合多边形包含的各节点对应的设备的图元坐标。

此时遍历完第二个联合多边形,即将当前布局节点对应的合并多边形和第二个联合多边形进行合并,更新当前布局节点对应的合并多边形。即此次更新前的合并多边形中包含了当前布局节点的独立多边形和顺序序列中的第一个联合多边形,更新后的合并多边形中包含了当前布局节点的独立多边形、顺序序列中的第一个联合多边形和第一个联合多边形。

若2<i<m,且i为奇数,则将当前获取的联合多边形以所述原点为旋转中心按照第一旋转方向旋转90度,并向所述原点的第二移动方向移动一个单位距离;同时,对应更新所述联合多边形包含的各节点对应的设备的图元坐标和图元角度。

接着对所述联合多边形与当前布局节点对应的合并多边形进行碰撞检测,判断是否相交或相切,若是,则将所述联合多边形向所述原点的第一移动方向移动一个单位距离,直至当前布局节点对应的合并多边形与所述一联合多边形不相交且不相切。当移动所述联合多边形的同时,对应更新所述联合多边形包含的各节点对应的设备的图元坐标。

然后将当前布局节点对应的合并多边形和当前获取的联合多边形进行合并,更新当前布局节点对应的合并多边形。

若2<i<m,且i为偶数,则将当前获取的联合多边形以所述原点为旋转中心按照第二旋转方向旋转90度,并向所述原点的第三移动方向移动一个单位距离;同时,对应更新所述联合多边形包含的各节点对应的设备的图元坐标和图元角度。

接着对所述联合多边形与当前布局节点对应的合并多边形进行碰撞检测,判断是否相交或相切,若是,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,直至当前布局节点对应的合并多边形与所述一联合多边形不相交且不相切;当移动所述联合多边形的同时,对应更新所述联合多边形包含的各节点对应的设备的图元坐标。

然后将当前布局节点对应的合并多边形和当前获取的联合多边形进行合并,更新当前布局节点对应的合并多边形。

当i=m时,即当前获取的联合多边形为顺序序列中的最后一个联合多边形,则将所述联合多边形向所述原点的第一移动方向移动一个单位距离,同时,对应更新所述联合多边形包含的各节点对应的设备的图元坐标。

若m=1,即当前布局节点只有一个子节点,则对所述联合多边形与当前布局节点对应的独立多边形进行碰撞检测,判断是否相交或相切,即是否存在重叠,若是,则继续将所述联合多边形向所述原点的第一移动方向移动一个单位距离,同时,对应更新所述联合多边形包含的各节点对应的设备的图元坐标,然后继续对所述联合多边形与当前布局节点对应的独立多边形进行碰撞检测,直至不相交且不相切。

若m>1,那么通过上述的i的其他取值情况,可得到当前布局节点对应的合并多边形,则对所述联合多边形与当前布局节点对应的合并多边形进行碰撞检测,判断是否相交或相切,若是,则继续将所述联合多边形向所述原点的第一移动方向移动一个单位距离,同时,对应更新所述联合多边形包含的各节点对应的设备的图元坐标,然后继续对所述联合多边形与当前布局节点对应的合并多边形进行碰撞检测,直至不相交且不相切。

其中,第二移动方向和第三移动方向为相反的方向,第一移动方向在坐标系所在的平面上分别与第二移动方向和第三移动方向垂直;第一旋转方向与第二旋转方向相反。优选地,上述的第一移动方向为向右方向,第二移动方向为向下方向,第三移动方向为向上方向,第一旋转方向为顺时针方向,第二旋转方向为逆时针方向。

s112:判断所述顺序序列是否已遍历完毕,若是,则执行步骤s114,若否,则执行步骤s113。

s113:令i=i 1,继续执行步骤s110。

s114:根据当前布局节点及其子孙节点对应的设备的图元的坐标,生成当前布局节点对应的联合多边形。

s115:判断当前布局节点是否为起始节点,若是,则执行步骤s117,若否,则执行步骤s116。

s116:将当前布局节点的父节点作为当前布局节点,然后继续执行步骤s102。

s117:输出电网设备集合。经过上述步骤,已对电网设备集合中的设备进行过滤,并更新了设备的节点信息中的图元坐标、图元角度和标注相关信息,后续可依据电网设备集合中的设备节点信息,生成待布局线路的布局图。最后生成的布局图可直接用于实际电力业务生产应用中,如电网低压调度自动化、配网抢修、配变智能终端应用、结构化停电、线损分析等业务应用场景。

上述的深度递归过程可先忽略线设备,即采用递归方式从线路拓扑树的叶子节点开始往根节点方向排布点设备和面设备,当起始节点返回布局结果即线路图元布局结束,然后根据线设备的节点信息中的连接关系,将线两端的点面设备相连。进一步地,如果在连线的过程中发现线穿越站房,则会在穿越的位置适当添加拐点使线绕过站房,连线操作会尽量使其正交化,防止产生斜线。

对于上述的布局策略,例如,假设在所述预设的坐标系中,原点的向右方向为x轴正方向,原点的向上方向为y轴正方向,并假设逆时针旋转为旋转正方向。

假设当前布局节点a存在4个子节点b、c、d、e,这四个子节点对应的联合多边形的面积大小关系为e>b>c>d,因此得到的排序序列为b、c、d、e。在布局之前,当前布局节点a对应的设备a以及四个子节点对应的设备b、设备c、设备d和设备e的图元都布局在原点,并假设节点b、c、d、e为线路拓扑树的叶子节点,因此对四个子节点布局之前,这五个设备的图元坐标和图元角度分别如下所示:

a的图元坐标:(0,0),a的图元角度:0;

b的图元坐标:(0,0),b的图元角度:0;

c的图元坐标:(0,0),c的图元角度:0;

d的图元坐标:(0,0),d的图元角度:0;

e的图元坐标:(0,0),e的图元角度:0。

节点b对应的联合多边形为顺序序列中的第一个联合多边形,因此将节点b对应的联合多边形向右移动一个单位距离,此时b的图元坐标更新为(1,0),并绕原点顺时针旋转90度,此时,b的图元坐标更新为(0,-1),b的图元角度更新为-90。

节点c对应的联合多边形为顺序序列中的第二个联合多边形,因此,将节点c对应的联合多边形向右移动一个单位距离,此时c的图元坐标更新为(1,0),并绕原点逆时针旋转90度,此时,c的图元坐标更新为(0,1),b的图元角度更新为90。

节点d对应的联合多边形为顺序序列中的第二个联合多边形,因此,将节点d对应的联合多边形绕原点顺时针旋转90度,d的图元角度更新为-90,并向下移动一个单位距离,d的图元坐标更新为(0,-1)。此时d的图元与b的图元重叠了,因此,还需将节点d对应的联合多边形向右移动一个单位距离,d的图元坐标更新为(1,-1)。

节点e对应的联合多边形为顺序序列中的最后一个联合多边形,则直接向右移动一个单位距离,此时e的图元坐标更新为(1,0)。

遍历完上述的顺序序列后,这五个设备的布局效果如图4所示,图元坐标和图元角度分别如下所示:

a的图元坐标:(0,0),a的图元角度:0;

b的图元坐标:(0,-1),b的图元角度:-90;

c的图元坐标:(0,1),c的图元角度:90;

d的图元坐标:(1,-1),d的图元角度:-90;

e的图元坐标:(1,0),e的图元角度:0。

从上述可知,当移动时只需更新图元坐标,当旋转时除了更新图元角度外,有时还需更新图元坐标。假设旋转前的图元坐标为(x1,y1),则绕原点旋转θ度后的图元坐标(x2,y2)可根据下述坐标变换公式得到:

x2=x1×cosθ-y1×sinθ,y2=x1×sinθ y1×cosθ

其中,逆时针旋转时,θ为正值,顺时针旋转时,θ为负值。

当深度递归遍历到a的父节点,即当前布局节点为a的父节点时,并当对节点a对应的联合多边形进行布局时,若移动节点a对应的联合多边形,则对应更新节点a及其子孙节点的对应的设备的图元坐标,例如,若将节点a对应的联合多边形向右移动一个单位距离,则将a、b、c、d、e的图元坐标的x值都加一,若将节点a对应的联合多边形向下移动一个单位距离,则将a、b、c、d、e的图元坐标的y值都减一,以此类推。若旋转移动节点a对应的联合多边形,则根据上述坐标变换公式,更新节点a及其子孙节点的对应的设备的图元坐标,并根据旋转方向和旋转角度,更新节点a及其子孙节点的对应的设备的图元角度,例如,若将节点a对应的联合多边形逆时针旋转90度,则将a、b、c、d、e的图元角度都加上90度,若将节点a对应的联合多边形顺时针旋转90度,则将a、b、c、d、e的图元角度都减去90度。

从上述的描述可知,本实施例的布局策略规定摆放子节点对应的联合多边形的顺序为先摆放在下方、上方,然后摆放在右下方、右上方,最后再摆放在右方,为了使线路走向自然,摆放在右方的联合多边形是所有子节点的联合多边形中面积最大的。而为使整体匀称、饱满,上方和下方的分支的设备数量应该尽量多,摆放在右上方和右下方的分支的设备数量应该尽量少。

进一步地,若一节点为站房对应的第一架空节点,则只需对应记录并更新站房起点的图元坐标和图元角度,后续可根据站房起点的图元坐标、图元角度以及站房内其他站内设备相对站房起点的偏移坐标,计算出其他站内设备的图元坐标和图元角度。

同理,若一节点为高密度节点子树对应的第二架空节点,则只需记录高密度节点子树中父节点对应的设备的图元坐标和图元角度,后续结合高密度节点子树中子节点对应的设备相对父节点对应的设备的偏移坐标,计算出所述子节点对应的设备的图元坐标和图元角度。

进一步地,本实施例在数据成图前进行电网设备集合数据流crc校验,成图结束后对图形数据产生的数据流再次进行校验,确定码值是否一致,保障数据正确性,并且可解决原有成图算法中存在的布局设备图元缺失问题。

进一步地,根据输出的电网设备集合布局成图后进行拓扑分析校验,确保结果不存在设备孤岛、回环及拓扑缺失等问题,解决了原有成图算法中存在的布局拓扑连接异常问题。

本实施例中,为了解决原有低压台区图成图算法存在的设备图元压盖问题,深度递归低压成图算法结合现有的业务需求设计出图元避让较优方案,通过深度搜索后进行设备图元聚类成簇算法形成外接多边形集合,并结合递归布局思路,实现设备簇的多边形避让,从局部扩展至全图,实现全图幅设备避让,解决图元压盖相关问题。为了解决原有低压台区图成图算法存在的线路穿站问题,使用a*算法进行线路寻路操作,设置站房为障碍物,跨越站房线路需进行跨越处理,避免出现线路穿越情况。通过优先独立布局高密度设备群,并采用环形嵌套布局方法,解决台区末端用户计量箱过多的排布问题,避免出现大数据量计量箱图元、标注重叠及压盖。通过整合标注、图元进行图形布局结合不规则多边形避让算法,解决图形二次布局标注存在的标注压盖问题。

本实施例的布局策略采用多边形碰撞避让机制,对比以往的矩形避让机制,大幅度降低空间占用的计算颗粒度,空间利用率大幅提升,对于正常数量级的电网线路设备,其所成的图纸整体紧凑程度得到了提升,打印效果再加清晰、美观。同时,通过高密度设备群独立优先布局、设备标注参与布局计算和采用“放射状同心圆”的形式布局高密度图元和标注等方法,最终在图纸紧凑的前提下实现了图元与标注、图元与图元、标注与标注间互不压盖且间距得当,线路走向自然,图纸清晰的效果。大幅度减少了事后人工调图的工作量,从而降低了人工成本的投入,实现电力生产减负增效。

实施例二

本实施例是上述实施例的进一步拓展,具体地,是对步骤s114的进一步拓展。

通过实施例一中的布局策略,设备图元都是横平竖直地进行布局,因此,可以通过获取同一y值中x值最大和x值最小的图元坐标,得到位于左右边界的图元坐标,然后根据这些边界图元坐标、对应的图元大小以及预设的边界距离,确定边界点坐标,后续即可根据各边界点坐标,绘制得到联合多边形。

本实施例中,边界点包括左下边界点、左边界点、左上边界点、右下边界点、右边界点和右上边界点。具体的获取方法如下所述。

根据y值最小的图元坐标中x值最小的图元坐标,假设为(x1,ymin),计算得到左下边界点的坐标为(x1-w1/2-l,ymin-h1/2-l),其中,w1为该图元坐标对应的图元的宽,h1为该图元坐标对应的图元的高,l为预设的边界距离,优选地,l=1。

根据y值最大的图元坐标中x值最小的图元坐标,假设为(x2,ymax),计算得到左上边界点的坐标为(x2-w2/2-l,ymax h2/2 l),其中,w2为该图元坐标对应的图元的宽,h2为该图元坐标对应的图元的高。

分别根据y值相等(y值不为y值最大值,也不为y值最小值)的图元坐标中x值最小的图元坐标,假设为(xj,yi),计算得到左边界点的坐标(xj-wj/2-l,yi),其中,wj为分别为这些图元坐标对应的图元的宽。

根据y值最小的图元坐标中x值最大的图元坐标,假设为(x3,ymin),计算得到右下边界点的坐标为(x3 w3/2 l,ymin-h3/2-l),其中,w3为该图元坐标对应的图元的宽,h3为该图元坐标对应的图元的高。

根据y值最大的图元坐标中x值最大的图元坐标,假设为(x4,ymax),计算得到右上边界点的坐标为(x4 w4/2 l,ymax h4/2 l),其中,w4为该图元坐标对应的图元的宽,h4为该图元坐标对应的图元的高。

分别根据y值相等(y值不为y值最大值,也不为y值最小值)的图元坐标中x值最大的图元坐标,假设为(xk,yi),计算得到左边界点的坐标(xk wk/2 l,yi),其中,wk为分别为这些图元坐标对应的图元的宽。

优选地,本实施例中,各设备对应的图元的图元宽高是一致的,因此,上述的各图元的宽高的值均相等,可直接获取预设的宽高值进行计算,从而便于计算,也可提高后续成图的美观性。

例如,如图5所示,图中处于同一行的图元的图元坐标的y值相等,处于同一列的图元的图元坐标的x值相等。

由于最下方一行只有一个图元,因此,y值最小的图元坐标中x值最小的图元坐标和y值最小的图元坐标中x值最大的图元坐标为同一图元坐标,根据该图元坐标,计算出左下边界点p1和右下边界点p8。同理,由于最上方一行只有一个图元,因此根据该图元的图元坐标,计算出左上边界点p4和右上边界点p5。

第三行的第一个图元的图元坐标为该行中x值最小的图元坐标,因此根据该图元坐标,计算出左边界点p2。同理,根据第二行的第一个图元的图元坐标,计算出左边界点p3。

第二行的最后一个图元的图元坐标为该行中x值最大的图元坐标,因此根据该图元坐标,计算出右边界点p6。同理,根据第三行的最后一个图元的图元坐标,计算出右边界点p7。

经过上述步骤,即可得到左下边界点p1,左边界点p2、p3,左上边界点p4,右上边界点p5,右边界点p6、p7,右下边界点p8,依次连接p1、p2、p3、p4、p5、p6、p7、p8、p1,即可生成联合多边形。

进一步地,对于步骤s105中包含标注的独立多边形,可将标注当作是一个图元,从而也可按照本实施例的方法生成独立多边形。另外,步骤s111中的合并多边形,也可采用本实施例的方法生成。

实施例三

本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:

获取待布局的电网设备集合,所述电网设备集合存储有待布局线路中各设备的节点信息,所述节点信息包括设备标识、设备类型和连接关系;

根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树;

根据预设的设备类型白名单,对所述线路拓扑树进行过滤;

根据深度递归法,在预设的坐标系中依次对所述线路拓扑树中各节点对应的设备的图元进行布局,并记录各节点对应的设备的图元坐标和图元角度;

遍历完所述线路拓扑树后,将所述线路拓扑树中各节点对应的设备的图元坐标和图元角度写入所述电网设备集合,并输出电网设备集合。

进一步地,所述根据预设的设备类型白名单,对所述线路拓扑树进行过滤具体为:

遍历所述电网设备集合,依序获取一设备作为当前设备;

若当前设备的设备类型不属于预设的设备类型白名单,则判断当前设备对应的节点是否为所述线路拓扑树的起始节点;

若是,则将与当前设备相连的设备作为起始设备,并在所述电网设备集合中删除当前设备,同时在所述线路拓扑树中将当前设备对应的节点的子节点作为起始节点,并删除当前设备对应的节点;

若否,则在所述电网设备集合中修改与当前设备相连的设备的连接关系,并删除当前设备,同时在所述线路拓扑树中将当前设备对应的节点的子节点作为当前设备对应的节点的父节点的子节点,并删除当前设备对应的节点。

进一步地,所述节点信息还包括所属容器;所述根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树之后,进一步包括:

根据所述线路拓扑树中各节点对应的设备的所属容器,在线路拓扑树中获取各站房对应的站房子树,并将各站房子树分别替换为各站房对应的第一架空节点;

分别根据各站房的站房子树,对各站房的站内设备进行布局,得到各站房的布局图,并记录各站房的站内设备相对各站房的站房起点的偏移坐标。

进一步地,所述根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树之后,进一步包括:

若所述线路拓扑树中存在一节点,所述一节点对应的设备的设备类型为预设的设备类型,且所述一节点的子节点个数大于预设的数量阈值,则获取所述一节点及其预设个数的子节点所构成的高密度节点子树,并将所述高密度字节子树替换为所述一节点对应的第二架空节点;

按照预设的格式对所述高密度节点子树中各节点对应的设备进行布局,得带所述一节点的布局图,并记录高密度节点子树中各节点对应的设备相对所述一节点对应的设备的偏移坐标。

进一步地,所述根据深度递归法,在预设的坐标系中依次对所述线路拓扑树中各节点对应的设备的图元进行布局,并记录各节点对应的设备的图元坐标和图元角度;遍历完所述线路拓扑树后,将所述线路拓扑树中各节点对应的设备的图元坐标和图元角度写入所述电网设备集合,并输出电网设备集合具体为:

将所述线路拓扑树的起始节点作为当前布局节点;

判断当前布局节点是否存在未遍历的子节点;

若存在,则将未遍历的子节点作为当前布局节点,继续执行所述判断当前布局节点是否存在未遍历的子节点的步骤;

若不存在,则将当前布局节点对应的设备的图元布局在预设的坐标系的原点;

生成当前布局节点对应的独立多边形;

判断当前布局节点是否为叶子节点;

若是,则将当前布局节点对应的独立多边形作为当前布局节点的联合多边形,将当前布局节点的父节点作为当前布局节点,继续执行所述判断当前布局节点是否存在未遍历的子节点的步骤;

若否,则获取当前布局节点的各子节点对应的联合多边形;

将当前布局节点的各子节点对应的联合多边形按照面积降序的顺序进行排序,并将面积最大的联合多边形调整至最后一个位置,得到顺序序列;

根据预设的布局策略,依序对所述顺序序列中的各子节点对应的联合多边形的位置和角度进行调整,并同步更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

根据当前布局节点及其子孙节点对应的设备的图元坐标,生成当前布局节点的联合多边形;

判断当前布局节点是否为起始节点;

若是,则将所述线路拓扑树中各节点对应的设备的图元坐标和图元角度写入所述电网设备集合,并输出电网设备集合;

若否,则将当前布局节点的父节点作为当前布局节点,继续执行所述判断当前布局节点是否存在未遍历的子节点的步骤。

进一步地,所述根据预设的布局策略,依序对所述顺序序列中的各子节点对应的联合多边形的位置和角度进行调整,并同步更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度具体为:

依序从所述顺序序列中获取一联合多边形;

若所述一联合多边形在所述顺序序列中的序号为1且不为m,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并以所述原点为旋转中心按照第一旋转方向旋转90度,m为所述顺序序列中的联合多边形的总个数;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的独立多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第二移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的独立多边形与所述一联合多边形不相交且不相切;

将当前布局节点对应的独立多边形和所述一联合多边形进行合并,得到当前布局节点对应的合并多边形;

若所述一联合多边形在所述顺序序列中的序号为2且不为m,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并以所述原点为旋转中心按照第二旋转方向旋转90度;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的合并多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第三移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的合并多边形与所述一联合多边形不相交且不相切;

将当前布局节点对应的合并多边形和所述一联合多边形进行合并,更新当前布局节点对应的合并多边形;

若所述一联合多边形在所述顺序序列中的序号大于2、小于m且为奇数,则将所述一联合多边形以所述原点为旋转中心按照第一旋转方向旋转90度,并向所述原点的第二移动方向移动一个单位距离;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的合并多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的合并多边形与所述一联合多边形不相交且不相切;

将当前布局节点对应的合并多边形和所述一联合多边形进行合并,更新当前布局节点对应的合并多边形;

若所述一联合多边形在所述顺序序列中的序号大于2、小于m且为偶数,则将所述一联合多边形以所述原点为旋转中心按照第二旋转方向旋转90度,并向所述原点的第三移动方向移动一个单位距离;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的合并多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的合并多边形与所述一联合多边形不相交且不相切;

若所述一联合多边形为所述顺序序列中的的序号为m,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至所述一联合多边形与当前布局节点对应的独立多边形或当前布局节点对应的合并多边形不相交且不相切。

进一步地,所述第二移动方向与所述第三移动方向相反,所述第一移动方向分别与第二移动方向和第三移动方向垂直;所述第一旋转方向与所述第二旋转方向相反。

进一步地,所述节点信息还包括标注内容和标注摆放方位;所述生成当前布局节点对应的独立多边形具体为:

判断当前布局节点对应的设备的标注的摆放方位是否固定;

若固定,则根据当前布局节点对应的设备的图元和标注占用的平面空间,生成当前布局节点对应的独立多边形,并将当前布局节点对应的设备的标注相对图元的摆放方位写入当前布局节点对应的设备的标注摆放方位;

若不固定,则根据当前布局节点对应的设备的图元占用的平面空间,生成当前布局节点对应的独立多边形。

进一步地,所述根据当前布局节点及其子孙节点对应的设备的图元坐标,生成当前布局节点的联合多边形具体为:

根据当前布局节点及其子孙节点对应的设备的图元坐标,获取同一y值中x值最大和x值最小的图元坐标,得到边界图元坐标;

根据所述边界图元坐标及其对应的图元大小,计算边界点坐标,得到边界点集合;

根据边界点集合中各边界点坐标,生成当前布局节点的联合多边形。

综上所述,本发明提供的一种电网设备的布局方法及计算机可读存储介质,在图纸紧凑的前提下实现了图元与标注、图元与图元、标注与标注间互不压盖且间距得当,线路走向自然,图纸清晰的效果。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。


技术特征:

1.一种电网设备的布局方法,其特征在于,包括:

获取待布局的电网设备集合,所述电网设备集合存储有待布局线路中各设备的节点信息,所述节点信息包括设备标识、设备类型和连接关系;

根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树;

根据预设的设备类型白名单,对所述线路拓扑树进行过滤;

根据深度递归法,在预设的坐标系中依次对所述线路拓扑树中各节点对应的设备的图元进行布局,并记录各节点对应的设备的图元坐标和图元角度;

遍历完所述线路拓扑树后,将所述线路拓扑树中各节点对应的设备的图元坐标和图元角度写入所述电网设备集合,并输出电网设备集合。

2.根据权利要求1所述的电网设备的布局方法,其特征在于,所述根据预设的设备类型白名单,对所述线路拓扑树进行过滤具体为:

遍历所述电网设备集合,依序获取一设备作为当前设备;

若当前设备的设备类型不属于预设的设备类型白名单,则判断当前设备对应的节点是否为所述线路拓扑树的起始节点;

若是,则将与当前设备相连的设备作为起始设备,并在所述电网设备集合中删除当前设备,同时在所述线路拓扑树中将当前设备对应的节点的子节点作为起始节点,并删除当前设备对应的节点;

若否,则在所述电网设备集合中修改与当前设备相连的设备的连接关系,并删除当前设备,同时在所述线路拓扑树中将当前设备对应的节点的子节点作为当前设备对应的节点的父节点的子节点,并删除当前设备对应的节点。

3.根据权利要求1所述的电网设备的布局方法,其特征在于,所述节点信息还包括所属容器;所述根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树之后,进一步包括:

根据所述线路拓扑树中各节点对应的设备的所属容器,在线路拓扑树中获取各站房对应的站房子树,并将各站房子树分别替换为各站房对应的第一架空节点;

分别根据各站房的站房子树,对各站房的站内设备进行布局,得到各站房的布局图,并记录各站房的站内设备相对各站房的站房起点的偏移坐标。

4.根据权利要求1所述的电网设备的布局方法,其特征在于,所述根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树之后,进一步包括:

若所述线路拓扑树中存在一节点,所述一节点对应的设备的设备类型为预设的设备类型,且所述一节点的子节点个数大于预设的数量阈值,则获取所述一节点及其预设个数的子节点所构成的高密度节点子树,并将所述高密度字节子树替换为所述一节点对应的第二架空节点;

按照预设的格式对所述高密度节点子树中各节点对应的设备进行布局,得带所述一节点的布局图,并记录高密度节点子树中各节点对应的设备相对所述一节点对应的设备的偏移坐标。

5.根据权利要求1所述的电网设备的布局方法,其特征在于,所述根据深度递归法,在预设的坐标系中依次对所述线路拓扑树中各节点对应的设备的图元进行布局,并记录各节点对应的设备的图元坐标和图元角度;遍历完所述线路拓扑树后,将所述线路拓扑树中各节点对应的设备的图元坐标和图元角度写入所述电网设备集合,并输出电网设备集合具体为:

将所述线路拓扑树的起始节点作为当前布局节点;

判断当前布局节点是否存在未遍历的子节点;

若存在,则将未遍历的子节点作为当前布局节点,继续执行所述判断当前布局节点是否存在未遍历的子节点的步骤;

若不存在,则将当前布局节点对应的设备的图元布局在预设的坐标系的原点;

生成当前布局节点对应的独立多边形;

判断当前布局节点是否为叶子节点;

若是,则将当前布局节点对应的独立多边形作为当前布局节点的联合多边形,将当前布局节点的父节点作为当前布局节点,继续执行所述判断当前布局节点是否存在未遍历的子节点的步骤;

若否,则获取当前布局节点的各子节点对应的联合多边形;

将当前布局节点的各子节点对应的联合多边形按照面积降序的顺序进行排序,并将面积最大的联合多边形调整至最后一个位置,得到顺序序列;

根据预设的布局策略,依序对所述顺序序列中的各子节点对应的联合多边形的位置和角度进行调整,并同步更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

根据当前布局节点及其子孙节点对应的设备的图元坐标,生成当前布局节点的联合多边形;

判断当前布局节点是否为起始节点;

若是,则将所述线路拓扑树中各节点对应的设备的图元坐标和图元角度写入所述电网设备集合,并输出电网设备集合;

若否,则将当前布局节点的父节点作为当前布局节点,继续执行所述判断当前布局节点是否存在未遍历的子节点的步骤。

6.根据权利要求5所述的电网设备的布局方法,其特征在于,所述根据预设的布局策略,依序对所述顺序序列中的各子节点对应的联合多边形的位置和角度进行调整,并同步更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度具体为:

依序从所述顺序序列中获取一联合多边形;

若所述一联合多边形在所述顺序序列中的序号为1且不为m,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并以所述原点为旋转中心按照第一旋转方向旋转90度,m为所述顺序序列中的联合多边形的总个数;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的独立多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第二移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的独立多边形与所述一联合多边形不相交且不相切;

将当前布局节点对应的独立多边形和所述一联合多边形进行合并,得到当前布局节点对应的合并多边形;

若所述一联合多边形在所述顺序序列中的序号为2且不为m,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并以所述原点为旋转中心按照第二旋转方向旋转90度;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的合并多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第三移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的合并多边形与所述一联合多边形不相交且不相切;

将当前布局节点对应的合并多边形和所述一联合多边形进行合并,更新当前布局节点对应的合并多边形;

若所述一联合多边形在所述顺序序列中的序号大于2、小于m且为奇数,则将所述一联合多边形以所述原点为旋转中心按照第一旋转方向旋转90度,并向所述原点的第二移动方向移动一个单位距离;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的合并多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的合并多边形与所述一联合多边形不相交且不相切;

将当前布局节点对应的合并多边形和所述一联合多边形进行合并,更新当前布局节点对应的合并多边形;

若所述一联合多边形在所述顺序序列中的序号大于2、小于m且为偶数,则将所述一联合多边形以所述原点为旋转中心按照第二旋转方向旋转90度,并向所述原点的第三移动方向移动一个单位距离;同时,更新所述联合多边形中包含的各节点对应的设备的图元坐标和图元角度;

若当前布局节点对应的合并多边形与所述一联合多边形相交或相切,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至当前布局节点对应的合并多边形与所述一联合多边形不相交且不相切;

若所述一联合多边形为所述顺序序列中的的序号为m,则将所述一联合多边形向所述原点的第一移动方向移动一个单位距离,并更新所述联合多边形中包含的各节点对应的设备的图元坐标,直至所述一联合多边形与当前布局节点对应的独立多边形或当前布局节点对应的合并多边形不相交且不相切。

7.根据权利要求6所述的电网设备的布局方法,其特征在于,所述第二移动方向与所述第三移动方向相反,所述第一移动方向分别与第二移动方向和第三移动方向垂直;所述第一旋转方向与所述第二旋转方向相反。

8.根据权利要求5所述的电网设备的布局方法,其特征在于,所述节点信息还包括标注内容和标注摆放方位;所述生成当前布局节点对应的独立多边形具体为:

判断当前布局节点对应的设备的标注的摆放方位是否固定;

若固定,则根据当前布局节点对应的设备的图元和标注占用的平面空间,生成当前布局节点对应的独立多边形,并将当前布局节点对应的设备的标注相对图元的摆放方位写入当前布局节点对应的设备的标注摆放方位;

若不固定,则根据当前布局节点对应的设备的图元占用的平面空间,生成当前布局节点对应的独立多边形。

9.根据权利要求5所述的电网设备的布局方法,其特征在于,所述根据当前布局节点及其子孙节点对应的设备的图元坐标,生成当前布局节点的联合多边形具体为:

根据当前布局节点及其子孙节点对应的设备的图元坐标,获取同一y值中x值最大和x值最小的图元坐标,得到边界图元坐标;

根据所述边界图元坐标及其对应的图元大小,计算边界点坐标,得到边界点集合;

根据边界点集合中各边界点坐标,生成当前布局节点的联合多边形。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9任一项所述的步骤。

技术总结
本发明公开了一种电网设备的布局方法及计算机可读存储介质,方法包括:获取待布局的电网设备集合,所述电网设备集合存储有待布局线路中各设备的节点信息;根据待布局线路的起始设备和所述电网设备集合中各设备的连接关系,构建线路拓扑树;根据预设的设备类型白名单,对线路拓扑树进行过滤;根据深度递归法,在预设的坐标系中依次对所述线路拓扑树中各节点对应的设备的图元进行布局,并记录各节点对应的设备的图元坐标和图元角度;遍历完所述线路拓扑树后,将所述线路拓扑树中各节点对应的设备的图元坐标和图元角度写入所述电网设备集合,并输出电网设备集合。本发明可保证设备图元均互不压盖。

技术研发人员:王震;赵光;黄超;林清渠;曹荣林;李静发
受保护的技术使用者:厦门亿力吉奥信息科技有限公司;国网信息通信产业集团有限公司;国家电网有限公司
技术研发日:2020.01.10
技术公布日:2020.06.05

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

最新回复(0)