WebGIS在智能电网大数据可视化中的应用与分析

2020-04-09 10:12曾强
综合智慧能源 2020年2期
关键词:视图处理器可视化

曾强

(国电南京自动化股份有限公司,南京 211153)

0 引言

随着智能电网的不断升级和发展,电网在电力系统运行、用电信息采集、设备状态监测、告警信息汇总、营销业务等各个方面都会产生大量数据,如何充分挖掘这些数据具有十分重要的意义[1]。针对智能电网中的海量数据,调度人员亟须一套高效可靠的大数据可视化方案来及时获得关键的信息[2],观察系统运行情况,减少排查事故的反应时间,从而更好地管理、监控电网。

地理信息系统(GIS)技术在当前电网行业内应用广泛,电网信息化的研究时间也比较早[3],特别是欧美等发达国家,早期主要应用于配电系统的管理,之后随着智能电网的发展,GIS逐渐应用于输配电系统、客户服务系统、数据采集与监视控制(SCADA)系统等方面[4]。我国对GIS技术的研究起步比较晚,并主要应用于配电管理系统,之后也逐步向SCADA和输配电系统转变[5]。网络地理信息系统(WebGIS)作为图形化的超媒体信息系统,提供了集成多媒体信息的能力,把视频、音频、地图、文本等集中到网络(Web)页面上,是专门以浏览器/服务器模式(B/S)实现的GIS,极大地丰富扩展了GIS的内容和表现能力[6]。

本文针对电网大数据的特征和WebGIS的技术要点,阐述了电网线路分层显示和设备定位方法这2个内容,并提出了1种基于Spring 模型-视图-控制器(MVC)架构的WebGIS电网信息可视化的构建方法,实现了电网站内图、线路图等数据信息的展示、浏览。相比于传统GIS,首先优化了客户端界面加载缓慢的速度;其次通过增加对点、线的可视化分层绘制,解决了传统方案因线路分级结构造成在界面缩放时的视觉干扰问题;最后引用的SpringMVC开发框架,配置简单,开发成本也更低。

1 WebGIS的实现技术

1.1 Spring MVC介绍

MVC(model view controller)指的是一种软件设计的框架模式[7],它采用模型(model)-视图(view)-控制器(controller)的方法把业务逻辑、数据与界面显示分离,将众多的业务逻辑聚集到1个部件里面。相比其他的MVC框架更具有灵活性和扩展性[8],Spring MVC通过使用1套注解,使1个Java类成为前端控制器而不需要实现任何接口。同时,Spring MVC在数据绑定、视图解析、本地化处理及静态资源处理上都有很好的性能。

1.2 电网线路分层显示

由于WebGIS在展示数据信息的时候是范围性的,因此当前界面上信息的数量较多时,势必会造成数据点的重叠,遮盖信息,造成视觉干扰。通常所使用的方法是通过位图(光栅图)来进行背景的缩放调整。

1.2.1 背景信息缩放在WebGIS上的实现

在WebGIS的实现上,一般使用矢量图光栅格式化的方式来分割成所需的背景大小[9]。将背景图栅格化后生成图像金字塔模型,当用户通过浏览器查看的时候,离视角越近的图层,显示得越清楚,细节度也越高[10]。光栅图金字塔如图1所示,在金字塔的底部是背景图像的高分辨率表示,而顶部是低分辨率的近似。

1.2.2 电力设备定位方法

当前线路的定位方法都是通过GPS获取线路上点的位置坐标来实现,如变电站、发电厂等[11]。当电网信息在WebGIS上显示时,我们将电网分成点和线2部分[12],其中线表示线路,点表示线路中的坐标位置点,同时通过自定义一种存储结构来表示线路上某个点的坐标信息,其中Ci表示线路上某一个点,Linei表示该条线路的名称,m为线路分级编号,xi,yi分别表示对应地理图上的坐标:

Ci=(Linei,m,xi,yi)。

(1)

我们将GIS读取到的位置信息转化为这种数据结构存储,然后以空间结构化查询语言(SQL)的形式写入PostGIS中,示例如图2所示。

图2 空间SQL写入

我们将线路等级和相应的坐标等信息用Keyhole标记语言(KML,以XML语法格式描述地理空间数据)的格式进行封装,之后再解析KML,解析出的线路等级越高,该等级下所有坐标的连线细节度和分辨率就越高,然后加载到图层上进行显示。这样,每1条线路便能更直观地展示给用户,而不是大量错综复杂的数据点汇集在一起。

2 WebGIS电网信息可视化的构建方法

2.1 基于Spring MVC的B/S架构分析

Spring框架为构建Web应用程序提供了全功能MVC模块[13],Spring框架包含多种视图技术,并且通过策略接口可以实现框架的高度可配置[14]。相比于Struts2,它的开发更加方便,同时执行效率也更高,SpringMVC处理请求流程如下。

首先,用户发送请求至前端控制器,然后前端控制器收到请求后调用处理器映射器,接着处理器映射器根据请求的URL找到具体的处理器,生成处理器对象及处理器拦截器HandlerIntercepter(如果有则生成)一并返回给前端控制器。前端控制器通过处理器适配器调用处理器,执行完成后返回模型数据和逻辑视图(ModelAndView)。之后,处理器映射器将处理器执行返回的结果送至前端控制器,前端控制器将ModelAndView传给视图解析器,待其解析后返回具体的视图。最后前端控制器对视图进行渲染,前端控制器再将结果响应给用户。

2.2 电网信息可视化框架结构概述与搭建

由于WebGIS是基于B/S的架构方式[15-20],本文选择tomcat作为服务器端中的Web服务器,地图应用服务器因为需要发布地图信息数据,并且需要支持用户对特征数据进行插入、删除和更新的操作,所以选择使用GeoServer,通过GeoServer可以非常容易地实现用户之间迅速共享空间地理信息。本文构建地图服务器的Applet步骤如下:

(1)新建MyEclipse Web工程,创建Java Applet程序,将GeoServer类库导入工程,并添加Spring MVC库的支持;

(2)初始化GeoServer对象并定义地图文件与地图绘制引擎统一资源定位符(URL)的映射关系;

(3)在Applet的init()函数中创建界面并将GeoServer对象添加至用户界面(UI)面板;

(4)创建GeoServer地图渲染器,在start()函数中调用装载地图的方法导入shp格式地图数据并绘制地图,以此来为仓库管理系统(WMS)服务;

(5)编写超文本标记语言(HTML)文件用来加载Applet,并在标签下定义需加载到客户端的Java Applet类及GeoServer库,同时编辑web.xml(服务器端初始化读取),将所有*.htm请求(客户端的用户请求)交给DispatcherServlet前端控制器处理,相关配置示例如下:

//DispathcerServlet

1

SpringMVCWebGIS

*.htm

(6)创建xml格式配置文件SpringMVCWebGIS Servlet(前端控制器读),定义WebGIS所需使用的控制器(如处理客户端对主页请求的控制器和对地图操作请求的控制器等);

(7)服务器端定义Spring MVC处理器映射器(用于前端控制器收到请求后,处理器映射器根据请求的URL找到具体的处理器),相关示例如下:

//主页控制器

//地图控制器

//处理器映射器

=“mapper”

mapController //定义映射关系

homepageController //定义映射关系

客户端上通过浏览器进行Web浏览,使用OpenLayer在网页中实现地图数据信息的动态显示和交互;选择uDig作为空间数据查看器/编辑器,uDig是1款基于Java和Eclipse平台的开源桌面GIS软件,可以对shp格式的地图文件进行查看编辑操作。在数据存储上,通过PostGIS(空间数据库)进行空间数据信息的存储,有了PostGIS之后,便不再需要专门的GIS数据引擎去操作处理空间数据了,应用程序只需要通过SQL语言就可以轻松地对空间数据进行操控。构建地图客户端的Servlet步骤如下:

(1)新建MyEclipse Web工程,创建地图服务 Servlet程序,将uDig类库导入工程WebRoot目录下;

(2)定义地图文件存放路径以及与地图绘制引擎URL的映射关系;

(3)在Servlet中的doGet()函数中初始化uDig对象,并建立地图数据请求消息以及地图渲染器;

(4)编辑web.xml文件中标签,加载执行Servlet。

在应用服务器端上使用Spring MVC框架,Spring MVC控制器的实现如下:

(1)在Spring MVC的配置文件中声明spring-context;

(2)在标签下修改对应的类为Controller类的类名;

(3)通过在1个JavaBeans类上引入@Controller将该类声明为处理器;

(4)在类的定义前增加@RequestMapping,表示获取URL到处理器处理方法的映射;

(5)实现控制器类中为每1个动作所映射的处理方法(函数);

(6)将返回值的类型定为ModelAndView。

模型-视图层的编写通过基于Spring MVC框架完成,而视图解析器(view resolver)首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。对于控制器的目标方法,无论其返回数据格式是字符串、视图、模型或模型视图,Spring MVC都会在内部将它们封装为1个ModelAndView格式的对象进行返回。Spring MVC视图解析器相关实现步骤如下:

(1)在springmvc.xml配置文件中通过编辑标签进行注册视图解析器;

(2)实现viewResolver()接口,新建并初始化InternalResourceViewResolver类;

(3)分别调用InternalResourceViewResolver类的方法setPrefix()和setSuffix()添加对应的视图和模型;

(4)返回InternalResourceViewResolver类对象。

基于WebGIS的可视化架构如图3所示。

图3 WebGIS可视化架构图

WebGIS可视化架构的优点如下:

(1)配置简单,开发环境构建方便,开发成本低;

(2)使用MVC开发模式,访问与请求分离,程序间的耦合性低,扩展性好;

(3)通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中解耦,请求时间短,避免了繁琐的递归调用,因此对于拥有大量复杂线路的智能电网系统来说,能够大大优化其画面的载入及其显示时间。

2.3 可视化效果展示

我们将该可视化框架集成在DS6000配网主站系统画面模块中,通过单击鼠标右键增加设置窗口,用于服务器端选择需要设置厂站的位置(经纬度和地图级别参数),运行效果如图4所示。

图4 WebGIS可视化框架在DS6000配网主站的展示效果

打开客户端,即可在地图中查看相关厂站的位置,如图5所示。

图5 厂站区域位置展示图

从显示结果来看,本文方案所应用的系统能够快速且正确地进行GIS信息的相关显示,同时所采用的点、线分级设计也进一步保证了数据的准确性与电网线路的完整性。最后,相比于现有的智能电网可视化方案,本方案实现简单,能够极大地提升工程的开发效率,降低配置成本。

3 结束语

本文针对所选的WebGIS开源框架,首先对WebGIS相关背景技术进行阐述,包括本文所使用的Spring MVC开发模式;接着从WebGIS数据的展示角度对背景信息的缩放和设备定位的方法进行了设计;最后对电网信息可视化框架结构的搭建进行了详尽的分层描述与实现步骤说明。对于所涉及的电力系统可视化工程领域,本文的方法实现容易、文件配置量低、使用方便,相比于现有的电网可视化架构,不论从开发成本、维护成本,还是版本升级来说都有了巨大的提升。

猜你喜欢
视图处理器可视化
基于CiteSpace的足三里穴研究可视化分析
思维可视化
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
Django 框架中通用类视图的用法
ADI推出新一代SigmaDSP处理器
火线热讯