一种电力数据可视化系统的制作方法

文档序号:12364461阅读:1113来源:国知局
一种电力数据可视化系统的制作方法与工艺

本发明涉及电力系统领域,尤其是涉及一种电力数据可视化系统。



背景技术:

数据可视化起源于1960s计算机图形学,人们使用计算机创建图形图表,可视化提取出来的数据,将数据的各种属性和变量呈现出来。随着计算机硬件的发展,人们创建更复杂规模更大的数字模型,发展了数据采集设备和数据保存设备。同理也需要更高级的计算机图形学技术及方法来创建这些规模庞大的数据集。随着数据可视化平台的拓展,应用领域的增加,表现形式的不断变化,以及增加了诸如实时动态效果、用户交互使用等,数据可视化像所有新兴概念一样边界不断扩大。

而我们熟悉的那些饼图、直方图、散点图、柱状图等,是最原始的统计图表,它们是数据可视化的最基础和常见应用。但最原始统计图表只能呈现基本的信息,发现数据之中的结构,可视化定量的数据结果。面对复杂或大规模异型数据集,比如商业分析、财务报表、人口状况分布、媒体效果反馈、用户行为数据等,数据可视化面临处理的状况会复杂得多。

大型的数据可视化作品或项目的创建,需要多领域专业人士的协同工作才能取得成功,尤其是BI商业智能。人类能够操纵和解释如此来源多样、错综复杂跨领域的信息,其本身就是一门艺术。目前数据可视化的应用范围很广,但是针对电力数据的可视化系统目前比较缺乏。



技术实现要素:

本发明的目的是针对上述问题提供一种电力数据可视化系统。

本发明的目的可以通过以下技术方案来实现:

一种电力数据可视化系统,用于展示居民用电的详细数据和相应的变化趋势,所述系统包括:

数据采集模块,用于通过爬虫的手段采集电力数据;

挖掘模块,用于对数据采集模块采集的电力数据进行挖掘;

数据可视化模块,用于将挖掘后的电力数据进行图示化,展示具体的电力数据以及电力数据的变化趋势;

数据库,用于存储数据采集模块采集的电力数据和挖掘模块挖掘后的电力数据。

所述数据采集模块包括:

Scrapy爬虫单元,用于对电力数据通过爬虫的手段进行爬取采集,并将采集的电力数据传输至数据库;

消息传输队列,用于传输Scrapy爬虫单元产生的爬取记录,将爬取记录传输至数据库,并对Scrapy爬虫单元内部进行任务分配和负载平衡。

所述Scrapy爬虫单元包括Scrapy爬虫框架,所述Scrapy爬虫框架的数量不少于2个。

所述Scrapy爬虫框架包括:

Scrapy引擎,用于作为Scrapy爬虫框架的核心控制整个Scrapy爬虫框架的数据处理流程;

调度机,用于发出抓取网页的请求并将请求传输至Scrapy引擎;

下载器,用于接受由Scrapy引擎传来的抓取网页的请求,并根据请求从网络上抓取网页;

蜘蛛,用于对抓取的网页进行解析,采集电力数据并将电力数据传输至Scrapy引擎,或根据解析结果产生新的抓取网页的请求并将请求反馈至Scrapy引擎;

项目管道组件,用于从Scrapy引擎处获取并保存蜘蛛采集的电力数据。

所述消息传输队列由Kafka或Zookeeper实现。

所述挖掘模块包括:

第一API接口,用于从数据库中调用数据采集模块采集的电力数据;

数据预处理单元,用于对第一API接口调用的电力数据进行预处理;

聚类和分类单元,用于对预处理后的电力数据进行聚类和分类,并将聚类和分类后的电力数据存储至数据库中。

所述预处理包括分词、特征表示和特征提取。

所述数据可视化模块包括:

第二API接口,用于从数据库中调用挖掘模块挖掘后的电力数据;

可视化单元,用于将第二API接口调用的数据以图表的形式进行展示。

所述可视化单元通过Echarts、Google Charts、Leaflet、Dygraphs或FushionCarts实现。

与现有技术相比,本发明具有以下有益效果:

(1)数据采集模块通过Scrapy爬虫单元对网络数据进行爬取,比起调用数据商提供的数据API相比,获取数量大且节省成本,同时也可以加快数据的采集速度。

(2)Scrapy爬虫单元中采取至少2个Scrapy框架,可以加快数据的爬取速度,同时也能增加获取的数据数量。

(3)利用消息队列对Scrapy爬虫单元内的多个Scrapy爬虫框架进行任务分配和负载平衡,避免了出现部分Scrapy爬虫框架闲置的情况,进一步提高了数据采集的效率和质量。

(4)挖掘模块和数据可视化模块都通过API接口从数据库中获取数据,而非直接调用上一模块的数据,这样避免了某一模块瘫痪而导致整个系统崩溃的情况,增强了系统的稳定性。

(5)整个系统分为数据采集模块、挖掘模块、数据可视化模块和数据库四大部分,整个系统模块化,便于维护和维修。

(6)可视化单元包括Echarts、Google Charts、Leaflet、Dygraphs和FushionCarts等目前主流的可视化工具,可以针对实际情况进行相应的选择,保障了数据可视化的效果。

(7)挖掘模块首先对数据进行预处理后再进行聚类和分类,增强了挖掘的效果,提高了挖掘数据的质量。

附图说明

图1为本发明的结构示意图;

图2为Scrapy爬虫框架的结构示意图;

图3为数据可视化的效果图,其中(3a)为主页面,(3b)为居民用电热点图,(3c)为商业热点迁徙图,(3d)为综合数据图;

其中,1为数据采集模块,2为挖掘模块,3为数据可视化模块,4为数据库,11为Scrapy爬虫单元,12为消息传输队列,111为Scrapy引擎,112为调度机,113为下载器,114为蜘蛛,115为项目管道组件,21为第一API接口,22为数据预处理单元,23为聚类和分类单元,31为第二API接口,32为可视化单元。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

如图1所示,为电力数据可视化系统,用于展示居民用电的详细数据和相应的变化趋势,该系统包括:数据采集模块1,用于通过爬虫的手段采集电力数据;挖掘模块2,用于对数据采集模块1采集的电力数据进行挖掘;数据可视化模块3,用于将挖掘后的电力数据进行图示化,展示具体的电力数据以及电力数据的变化趋势;数据库4,用于存储数据采集模块1采集的电力数据和挖掘模块2挖掘后的电力数据。

其中,数据采集模块1包括:Scrapy爬虫单元11,用于对电力数据通过爬虫的手段进行爬取采集,并将采集的电力数据传输至数据库4;消息传输队列12,通过Kafka或Zookeeper实现,用于传输Scrapy爬虫单元11产生的爬取记录,将爬取记录传输至数据库4,并对Scrapy爬虫单元11内部进行任务分配和负载平衡。Scrapy爬虫单元11包括Scrapy爬虫框架,如图2所示,该Scrapy爬虫框架的数量不少于2个,每个Scrapy爬虫框架包括:Scrapy引擎111,用于作为Scrapy爬虫框架的核心控制整个Scrapy爬虫框架的数据处理流程;调度机112,用于发出抓取网页的请求并将请求传输至Scrapy引擎;下载器113,用于接受由Scrapy引擎传来的抓取网页的请求,并根据请求从网络上抓取网页;蜘蛛114,用于对抓取的网页进行解析,采集电力数据并将电力数据传输至Scrapy引擎,或根据解析结果产生新的抓取网页的请求并将请求反馈至Scrapy引擎;项目管道组件115,用于从Scrapy引擎处获取并保存蜘蛛采集的电力数据。

蜘蛛114的整个抓取流程(周期)是这样的:首先获取第一个URL的初始请求,当请求返回后调取一个回调函数。第一个请求是通过调用start_requests()方法。该方法默认从start_urls中的Url中生成请求,并执行解析来调用回调函数。在回调函数中,可以解析网页响应并返回项目对象和请求对象或两者的迭代。这些请求也将包含一个回调,然后被Scrapy下载,然后有指定的回调处理。在回调函数中,解析网站的内容,同程使用的是Xpath选择器(但是也可以使用BeautifuSoup,lxml或其他任何你喜欢的程序),并生成解析的数据项。最后,从蜘蛛114返回的项目通常会进驻到项目管道组件115。

挖掘模块2包括:第一API接口21,用于从数据库4中调用数据采集模块1采集的电力数据;数据预处理单元22,用于对第一API接口21调用的电力数据进行预处理,即对调用的电力数据进行预处理包括分词、特征表示和特征提取;聚类和分类单元23,用于对预处理后的电力数据进行聚类和分类,并将聚类和分类后的电力数据存储至数据库4中。

数据可视化模块3包括:第二API接口31,用于从数据库4中调用挖掘模块2挖掘后的电力数据;可视化单元32,用于将第二API接口31调用的数据以图表的形式进行展示,其中可视化单元32可以采用Echarts、Google Charts、Leaflet、Dygraphs或FushionCarts来实现。其中FusionCharts提供了超过90种图表和图示,从最基本款的到进阶版,例如漏斗图、热点地图、放缩线图和多轴图等。Dygraphs是一款快捷、灵活的开源JavaScript图表库,用户可以自由探索和编译密集型数据集。它具有极强的交互性,比如缩放、平移和鼠标悬停等都是默认动作。更棒的是,它还对误差线有很强的支持。Dygraphs也是高度兼容的,所有的主流浏览器都可正常运行(包括不受待见的IE8)。Leaflet是为移动端友好型交互地图所做的开源JavaScript库,其中包含了大部分在线地图开发人员都需要的所有特征。Leaflet被设计为简单易用、性能优良的工具。归功于HTML5和CSS3,它得以支持所有主流电脑和移动平台。Google Charts为网站提供完美的数据可视化处理。从简单的折线图到复杂的分级树形图,他的图表库里提供了海量的模版可供选择。Google Charts如同JavaScript的类(classes)一样是开放的,可以按需定制,但通常默认样式就能满足所有需求。所有的图表样式都是使用数据库4表类(DataTable class)来填充数据的,这意味着可以在挑选完美表现效果的时候轻松转换表格类型。

然而本实施例中最终选择了Echarts,ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。支持折线图(区域图)、柱状图(条状图)、散点图(气泡图)、K线图、饼图(环形图)、雷达图(填充雷达图)、和弦图、力导向布局图、地图、仪表盘、漏斗图、事件河流图等12类图表,同时提供标题,详情气泡、图例、值域、数据区域、时间轴、工具箱等7个可交互组件,支持多图表、组件的联动和混搭展现。Echarts可以和百度地图无缝连接,支持大规模数据展示,拥有非常详细的开发技术文档,数据驱动方式开发成本效率高。而所以最终选择Echarts作为我们的项目的数据可视化开发工具。

本实施例中基于Echarts和百度地图结合实现的地图类数据可视化,从深度和广度上详细展示了上海市历年来工商业以及居民用电的详细变化和数据,最高精确到小时。使用的技术包括:Echarts作为数据可视化效果实现的核心、Bootstrap作为web前端页面效果的开发以及Geocoding API百度地图WEB后台API,用来处理大量的上海工商业居民用电监测点地址转换为GPS作为供地图显示,并区分出它们所属的行政区。

最后的效果如图3所示,主页面展示的是上海市历年来各个行政区的工商业用电量的数据展示,可以支持任意的时间段的选择精确到小时,点击导航栏会出现下拉菜单1月~12月和全年,默认选择的是全年。如果选择全年的那么以月为单位展示上海各个行政区从1月到12月每个月份的用电量数据如果选择某一个月例如1月,那么还需要选择具体1月的哪一天或者选择全月,默认全月,如果选择全月,则以天为单位展示1月全部的时间数据。如果选择这个月的某一天,则以小时为单位展示这一天的24小时的电力数据,所以首页的上海行政区数据展示了所有行政区全年的全部用电数据精确到某月某一天的某一小时。除了时间的选择还可以选择行政区,可以点击地图中的各个数据选择单独查看这个行政区的全年数据,例如单独点击宝山区,可以看见宝山区行政区边界被加粗代表被选择,此时右上角出现一个直角系坐标数据图,用来展示被选择的行政区在所选时区间的电力数据,它的数据和时间轴是完全同步的。如果选择多选,任意点击多个按钮,然后点击旁边的比较按钮它将转到一个新的页面将展示多个选择的行政区的直角坐标图,方便比较不同行政区之间直接的区别。

居民用电热点图以百度图地图为背景,以热力图的形势,展示了居民用电的全部数据变化。由于居民检测数据点非常庞大,没法在一张图上展示数以千万级的全部数据监测点。所以必须对数据进行优化,将上海市区地图划分为一张30*30的围棋网格,然后将所有落在网格中的点作为该网格的全部数据。这样极大的降低了数据量,也能达到需要展示的数据变化的意思。

商业热点迁徙图展示了10个商圈的用电高峰的迁徙图,选择了10个商圈点,统计了这10个点附近的1公里范围内的全部商业监测用电数据,然后以百度迁徙图的效果展示了它们的高峰的用电的转移情况。

综合数据图的效果同主页面一样,但它同时展示了上海市三个综合指标数据,可以同时查看三个数据变化和值域变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1