一种电网图形动态分布索引的实现方法

文档序号:7426177阅读:245来源:国知局

专利名称::一种电网图形动态分布索引的实现方法
技术领域
:本发明涉及电力自动化系统中图形引擎性能的
技术领域
,尤其涉及一种电力自动化系统中图形绘制、调度员界面图形刷新的加速。
背景技术
:电力监控软件系统中,对设备和动态图元刷新的效率要求比较高,一般都采用图形索引机制来提高图形刷新速度。目前图形索引常采用四叉树tile分配方式,它是具有高效定位的检索机制,但是它会引起重叠图元次序颠倒,同时这种分配方式的刷新效率提高也是有限制的1、这种索引机制无法体现图元绘制的先后,引起图元次序颠倒。1)为了保证顺序,编辑的时候必须对所有重叠的图元加顺序标志。设置标志的情况有所有按自然顺序绘制图元的时候;图元所有编辑操作的时候;及其手动设置重叠图元先后顺序的时候。这样就大大增加了编辑的复杂度。2)在调度员刷新的时候,需要分两次刷新没有设置重叠标志的图元和排序后的设置重叠标志的图元。2.对刷新效率提高的限制影响图形刷新速度的因素主要有两方面索引块tile的检索定位(简称tile的搜索)和图形实体(简称Entity)是否需要刷新的次数判断(简称Entity的搜索),而后者的效率提高更比前者更重要。
发明内容本发明的目的是为了克服现有技术中存在的上述缺陷,提出了一种新的动态分布索引机制的实现方法。所述的方法是通过如下的技术方案实现的,所述的方法包括一种电网图形动态分布索引及其存储、增量修改的实现方法,该实现方法综合利用四叉树索引方法和动态分配平铺块索引方法作为电网图形的两级索引,将电网图形的实体数据存储在数据库中,通过索引和实体数据建立映射关系,其特征在于,所述的方法包括(1)每次打开图形的时候使用四叉树索引方法作为第一级索引,按照常规四叉树索引方法在电网图形上进行平均四分划分,然后在每一个划分后的部分再进行四分,如此递归调用,直到划分的区tile能包容最小的块block的包容矩形为止,将所述区tile进行编号,所述区tile的编号是在每次打开图形的时候重新生成,而不存储到数据库,所述区tile不用来索引电网图形上的图元,而是用来定位索引其包含的块Block、即计算第二级索引生成的块Block的包容矩形来决定图元属于哪个区tile;(2)利用动态分配平铺block索引方法作为第二级索引逻辑上建立空间平均分配的平铺逻辑块Block,将所述逻辑块Block编号,即以二维坐标定位索引该逻辑块Block,有图元Entity生成的时候,创建包含图元Entity的真实的块Block;每次打开图形的时候形成真实块Block的索引,并且将该真实块Block的索引装载到实时数据库中;将真实块Block包含的图元Entity的实体数据存储到数据库中,并且建立该实体数据与真实块Block的索引之间映射;(3)在系统运行状态变化或者其他原因引起图形刷新的时候,用当前视窗去截切电网图形,如果区tile的包容矩形在当前视窗的包容矩形内,或者区tile的包容矩形与当前视窗的包容矩形有交迭找到需要刷新的区tile,再按照步骤(1)所述的第一级索引方法把区tile中包含的实际块Block找出;(4)把实际块block中按照生成的时间先后排好顺序的每个图元的包容矩形与当前视窗的包容矩形比较,如果图元的包容矩形在当前视窗的包容矩形内,或者图元的包容矩形与当前视窗的包容矩形有交迭,则这个图元需要刷新数据,最终返回需要刷新的图元组,对这些需要更新的图元进行真正的实体数据绘制,完成电网图形的刷新。在编辑过图形后,增量的修改涉及到内存库中块block表和entity表的修改。索引增量的实施具体方案在图形比较小(图元Entity的个数小于一定的数量)或者图形大但增量数量比较多的情况(大于一设定的数量),所有增量操作更新表记录,然后块Block表重新分配,Tile也重新分配。在图形比较大增量比较少的情况采用下面的索引增量方案根据图元编辑的增删改的标志向实时库更新的时候,发送"实时库更新"字段不为0的记录到实时库更新模块,实时库更新模块根据操作码调用算法产生Entity和block表索引更新的记录发送到实时库。本发明公开的这种以块为核心的两级索引在实际应用的刷新效率能很好地满足电力系统的调度的需求,在配网测试系统中也取得了满意的刷新效果。图1是本发明方法使用的常规四叉树模式示意图;图2是本发明方法使用的利用block索引机制的一个图例。具体实施例方式下面根据说明书附图对本发明的技术方案作进一步详细说明。本发明综合利用四叉树索引方法和动态分配平铺块索引方法作为电网图形的两级索弓l,将电网图形的实体数据存储在数据库中,通过索引和实体数据建立映射关系,具体包括1.区Tile的建立如图1所示Tile的划分按照四叉树组织原则,把整张图形按照空间进行平均四分划分,然后在每四个中的一个再进行四分,如此递归调用,直到划分的子区域能包容最小的块block的包容矩形为止。2.动态分配平铺块Block的建立2.1逻辑上建立空间平均分配的平铺逻辑块Block,以二维坐标(x,y)索引定位逻辑块Block。有图元Entity生成的时候,创建真实的块Block包含图元Entity,仍然用逻辑Block的二维坐标作为索引。以索引为顺序,真实Block有先后顺序先画的在下面,后画的在上面。例如附图2所示,先后绘制了1,2,3,4四个图元,Block先后顺序为(0,0)(0,-1)(-l,0)(-l,-1)。2.2块Block的大小是动态的,即块Block当前所包含图元Entity的最大包容矩形。增加图元Entity的时候,块Block会扩大;删除图元Entity的时候。块Block会縮小。如果一个块Block中所有图元Entity都被删除,此块Block被删除。2.3图元Entity在添加的时候分配到属于哪个块Block的时候采用原则1)若没有和其他已经有图元Entity交迭,属于以图元Entity中心做索引的块Block(如果图元Entity跨越2个块Block,以图元Entity左下角所在块Block为父块Block).2)若有交迭,图元属于当前交迭图元中最上面的块Block.2.4图元Entity在编辑(旋转、改变线宽、改变字体、粘贴等)的时候分配到属于哪个块Block的时候采用原则从当前块Block删除,再按照2.3的原则重新找图元Entity适合的块Block2.5有交迭的图元Entity在置前的时候分配到属于哪个块Block的时候1)从当前块Block删除2)图元属于当前交迭图元中最上面的块Block.2.6有交迭的图元Entity在置后的时候分配到属于哪个块Block的时候1)从当前块Block删除2)图元属于当前交迭图元中最下面的块Block.3.索引存储区tile索引编号不存储在关系库中,是在图形加载到内存的时候一次生成的。实时库中存储区索引块block表和图形的实体数据Entity表,并且在实时库图形的实体数据Entity表中存储按照绘制先后顺序的下一个图元的ID。在编辑过电网图形后,需要修改内存库中索引±央block表和图元entity表3.1编辑操作后索引变化选取的原则由于大数据记录的修改同时更新到实时库中,会引起电力监控系统的暂时CPU过高,如果长时间高负荷,会引起监控系统实时数据状态刷新的延时,这是不容许的。通过系统容量测试,对大批量记录修改测试结果显示当数据记录增量为20万条时,各个操作系统的CPU负荷能控制在1分钟内60%。所以确定产生操作变化时候,索引变化原则1)在图形比较小、即图元Entity的个数小于1000;.或者图形比较大、即图元Entity的个数大于IOOO,并且操作比较多、即增量数量大于10万的数量时,根据相应的操作更新图元Entity表的记录,然后索引块Block表重新生成,区Tile也重新分配2)在图形比较大即图元Entity的个数大于1000,并且操作比较少、即增量数量小于于10万的数量时,根据图元编辑的增删改的标志向实时库更新,产生图元Entity和索引更新的记录发送到实时库3.2建立实时索引块SBlock表(BLOCK索引的内存表)<table>tableseeoriginaldocumentpage7</column></row><table>其中PKId是快索引的ID;indeXindexY是索引X,Y号(xO,y0)(xl,yl)分别为索引块的左上和右下角坐标startEntityld是第一个图元ID;nextBlockld是下一个块索引记录的ID3.3图元的实体数据的内存表SEntity增加索引字段<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>其中PKId是图元ID,nextEntityld是下一个图元ID综上所述,本发明的方法是在现有技术基础上,针对现有技术应用领域的不足,提供一种这种以block为核心的两级索引己经成功应用于调度一体化平台CSGC-3000中,实际应用的刷新效率很好满足电力系统的调度的需求,在配网测试系统中也取得了满意的测试刷新结果。权利要求1、一种电网图形动态分布索引及其存储、增量修改的实现方法,该实现方法综合利用四叉树索引方法和动态分配平铺块索引方法作为电网图形的两级索引,将电网图形的实体数据存储在数据库中,通过索引和实体数据建立映射关系,其特征在于,所述的方法包括(1)每次打开图形的时候使用四叉树索引方法作为第一级索引,按照常规四叉树索引方法在电网图形上进行平均四分划分,然后在每一个划分后的部分再进行四分,如此递归调用,直到划分的区tile能包容最小的块block的包容矩形为止,将所述区tile进行编号,所述区tile的编号是在每次打开图形的时候重新生成,而不存储到数据库,所述区tile不用来索引电网图形上的图元,而是用来定位索引其包含的块Block、即计算第二级索引生成的块Block的包容矩形来决定图元属于哪个区tile;(2)利用动态分配平铺block索引方法作为第二级索引逻辑上建立空间平均分配的平铺逻辑块Block,将所述逻辑块Block编号,即以二维坐标定位索引该逻辑块Block,有图元Entity生成的时候,创建包含图元Entity的真实的块Block;每次打开图形的时候形成真实块Block的索引,并且将该真实块Block的索引装载到实时数据库中;将真实块Block包含的图元Entity的实体数据存储到数据库中,并且建立该实体数据与真实块Block的索引之间映射;(3)在系统运行状态变化或者其他原因引起图形刷新的时候,用当前视窗去截切电网图形,如果区tile的包容矩形在当前视窗的包容矩形内,或者区tile的包容矩形与当前视窗的包容矩形有交迭找到需要刷新的区tile,再按照步骤(1)所述的第一级索引方法把区tile中包含的实际块Block找出;(4)把实际块block中按照生成的时间先后排好顺序的每个图元的包容矩形与当前视窗的包容矩形比较,如果图元的包容矩形在当前视窗的包容矩形内,或者图元的包容矩形与当前视窗的包容矩形有交迭,则这个图元需要刷新数据,最终返回需要刷新的图元组,对这些需要更新的图元进行真正的实体数据绘制,完成电网图形的刷新。2、根据权力要求1所述的实现方法,其特征为所述实际块block块是动态生成的,只有该区tile下存在图元才生成,图元Entity在生成的时候若没有和其他已经有的图元Entity交迭,则该生成的图元Entity属于以图元Entity中心坐标做索引的实际块Block,如果图元Entity跨越2个块Block,则该图元属于图元Entity左下角所在的实际块Block;若该生成的图元Entity与其他己有的图元Entity交迭有交迭,该图元属于当前交迭图元中最上面的实际块Block,从而保证正确表示图元在块Block中生成的先后顺序。3、根据权力要求1所述的实现方法,其特征为,在编辑过电网图形后,需要修改内存库中索引块block表和图元entity表在图形比较小、即图元Entity的个数小于设定的数量时,或者图形比较大、即图元Entity的个数大于设定的数量,并且操作比较多、即增量数量大于另一设定的数量时,根据相应的操作更新图元Entity表的记录,然后索引块Block表重新生成,区Tile也重新分配;在图形比较大即图元Entity的个数大于所述设定的数量,并且操作比较少、即增量数量小于所述另一设定的数量时,根据图元编辑的增删改的标志向实时库更新,产生图元Entity和索引更新的记录发送到实时库。全文摘要本发明公开了一种动态分配平铺块索引及其存储、增量修改的实现方法,扩展了常规索引方法,综合四叉树和动态分配平铺块两种索引机制的特点,采用两级索引机制提高图形系统的刷新先用一级四叉树索引生成区tile,用来索引块。然后用二级动态分配平铺块索引生成块block,块包含的是图元对象,用来组织图元对象的顺序。在图形刷新的时候,是用当前视窗去截切区tile,找到需要刷的区tile,再把区中包含的块找出排序。最后检查排好顺序的块block中的图元对象是否在当前视窗中,最终返回在视窗中需要重新刷新的图元对象列表。动态分配平铺块索引存储和增量修改都有对应的算法。这种以块为核心的两级索引在实际应用的刷新效率能很好地满足电力系统的调度的需求,在配网测试系统中也取得了满意的刷新效果。文档编号H02J3/00GK101587487SQ20091008229公开日2009年11月25日申请日期2009年4月22日优先权日2009年4月22日发明者于晓阳,余庭豹,云刘,张云娜,祝朝晖,亮葛,赵玉才申请人:北京四方继保自动化股份有限公司;北京四方继保工程技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1