沙有闯,黄存东,雷惊鹏,赵新平
(1.安徽国防科技职业学院信息工程系,安徽 六安 237000; 2.平顶山天安煤业股份有限公司十二矿,河南 平顶山 467000)
基于Android平台的瓦斯监测数据可视化技术研究
沙有闯1,黄存东1,雷惊鹏1,赵新平2
(1.安徽国防科技职业学院信息工程系,安徽 六安 237000; 2.平顶山天安煤业股份有限公司十二矿,河南 平顶山 467000)
在研究基于Android平台的瓦斯数据监测与预警系统过程中,受Android平台制约,客户端在数据可视化方面存在一定的局限性。结合对Android平台数据分析、存储和第三方软件包的研究,提出了基于AChartEngine的数据可视化方法。客户端后台进程获取数据并存入SQLite后,前台进程直接从SQLite中读取并使用AChartEngine实现可视化。仿真实验表明,该方法简单可行,能满足Android平台数据可视化的需求。
数据可视化;瓦斯监测;Android平台;AChartEngine
数据可视化技术综合运用图形学和图形图像技术,将数据转换为图形或动态图像,并与终端进行交互[1]。可视化技术可以用图形图像展示大量复杂的数据,而且能够清晰地反映出数据的变化趋势,具有文本显示不具备的优势。数据可视化更重要的优点在于借助人脑的视觉思维能力,帮助用户发现数据中隐藏的规律,预测数据的潜在意义[2-3]。
本文提出了一种基于Android平台的瓦斯监测预警系统,该系统是一个具有数据采集、监测处理、数据可视化等功能的矿井安全保障系统。它根据井下各种状态数据的特点和需求,实现了基于Android平台的数据可视化功能。
基于Android平台的数据可视化技术可以让用户在手持设备端(手机、平板电脑等)实现人与数据的交互,让用户更加便捷地获取实时数据,判断数据变化趋势。传统的应用系统开发时,开发人员可以使用较为成熟的可视化技术[4-6]。针对Android平台的数据可视化需求,需要考虑Android平台设备的硬件性能以及数据不能大量本地化的特点。
目前,基于Android平台的较为常用的数据可视化解决方案有四种:(1) Google公司提供的绘图API;(2) 使用AChartEngine库;(3) 使用ChartDroid库;(4) 使用 RChart 2库。其中AchartEngine是目前较为流行的第三方可视化软件库之一[7]。它具有开源、不依赖网络、免费等特点,因此本文使用AChartEngine库实现对瓦斯数据的可视化。AChartEngine提供了丰富的操作类和数据结构用于各类图表的绘制,基本满足瓦斯等数据在Android客户端的呈现要求。以折线图为例,AChartEngine提供了图1所示的核心类。
图1 AChartEngine实现可视化的核心类
图1中,ChartFactory类可以接收传入的XYMutilpleSeriesRenderer类和XYMutilpleSeriesDataset类,调用其getLineChartIntent()方法就可以进行图表的显示。XYMutilpleSeriesRenderer类用于对绘制的控制,可以包含多个XYSeriesRender对象,用于同时显示多组数据。XYMutilpleSeriesDataset类用于数据集的控制,也可以包含多个XYSeries对象,保存多组数据。
2.1 瓦斯监测预警系统
该系统的总体架构如图2所示。该系统的工作流程为:(1)通过ZigBee网络采集矿井内瓦斯、二氧化碳、空气温度、空气湿度、井下气压、风度等数据[3];(2)通过数据网关将数据提交到服务器端;(3)服务器端将数据通过Web Service发布到Android客户端;(4)Android客户端对这些数据进行多种形式的可视化显示,并判断数据是否在正常范围,适时发布预警状态信息[3]。
图2 瓦斯监测预警系统架构设计
2.2 数据分析与结构设计
根据系统分析和Android客户端功能的划分,将数据划分为静态数据和实时数据两部分。静态数据包括工作面、传感器及预警基础信息等,这些数据发生变化较少。实时数据主要是指需要定时从数据网关获取的数据,例如瓦斯数据等。当系统中的数据在一定周期内发生的变化符合预警条件时,将会触发预警,发出声光警报的同时将信息存入数据库。因此,预警数据也属于实时数据。
受Android客户端的硬件条件限制,本文采用了Android系统自带的轻量化数据库系统SQLite实现数据本地化。结合SQLite和Android平台的特点,数据结构以轻量化为原则设计数据库模型(见图3)。
图3 瓦斯监测预警系统客户端数据模型
2.3 可视化功能模块设计
Android客户端的可视化任务分为前台进程和后台进程两大部分。后台进程采用多线程异步任务的方式,定时从数据网关加载数据,将经过分析、处理和压缩的数据保存在Android客户端的SQLite数据库中。前台进程通过对数据的实时访问加载定量的数据集,调用绘图方法并将数据填充到UI布局中。前台进程同时对数据进行实时计算,判断数据是否达到预警条件。如果数据达到预警条件,前台进程将会发出预警信息。Android平台实现数据可视化的功能模块设计如图4所示。
图4 Android平台可视化功能模块设计
3.1 瓦斯数据可视化的算法实现
Android客户端进行数据可视化时,从SQLite中加载定量的数据,交给AChartEngine实现数据可视化。调用AChartEngine的主要流程为:
步骤1 准备各工作层面数据,并存储在数据集合类中;
步骤2 初始化XYMultipleSeriesRenderer对象和XYMultipleSeriesDataset对象;
步骤3 将工作面的数据填充到XYMultipleSeriesDataset对象中;
步骤4 判断工作面数据是否填充完毕,如果填充完毕,则跳转到步骤5,否则跳转到步骤3;
步骤5 设置各个工作面数据的显示样式;
步骤6 绘制图形。
实现上述步骤的核心代码为:
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
for (int i = 1; i <= m; i++) {
XYSeries series = new XYSeries(i);
for (int k = 0; k < 100; k++) {
series.add(k, gslist[i][k]);
}
dataset.addSeries(series);
}
XYSeriesRenderer xyRenderer = new XYSeriesRenderer();
renderer.addSeriesRenderer(xyRenderer);
Intent intent = ChartFactory.getLineChartIntent(this, dataset, renderer);
3.2 仿真实验及结果
为了验证本文设计方法的有效性,本文采用随机模拟方式生成瓦斯样本数据,进行仿真实验。实验中客户端采用ARM Coretex A9平台,系统版本为Android 4.0.3(API 15)。实验中,Android客户端的后台线程每5 s为每个工作面模拟1条数据,模拟数据如表1所示。
表1 模拟瓦斯数据样本
Android客户端接收数据并将数据保存到SQLite数据库中。Android客户端查询SQLite数据库并调用AChartEngine实现数据的可视化。瓦斯实时监测数据的可视化效果如图5所示。预警条件的设置界面和预警发出效果如图6所示。
图5 瓦斯监测数据可视化效果
图6 预警条件的设置界面和预警发出效果
为了解决Android客户端实时数据的可视化问题,提出了采用第三方软件库AChartEngine的数据可视化方法。由于受到Android平台的制约,传感器数据首先需要经过优化处理才能存储到SQLite数据库中。通过仿真实验可以看出,AChartEngine在Android平台实现数据可视化简单可行,解决了实时数据的可视化问题。该技术在类似的实时数据监测系统中有良好的应用前景。
[1]唐泽圣.三维数据场可视化[M].北京:清华大学出版社,1994.
[2]赵巾帼, 罗庆云. 基于网络的数据可视化研究与实现[J].大庆师范学院学报,2010,6(30):5-7.
[3]沙有闯,颜世波.基于Android平台的智能瓦斯预警系统设计[J].长春大学学报,2014(6):744-747.
[4]肖汉. 地震数据的可视化技术研究[D]. 长沙: 湖南大学,2007.
[5]蔡朱华. 基于聚类分析的可视化技术及其应用研究[D]. 厦门: 厦门大学, 2014.
[6]刘鹏, 郭建文, 付卫平,等. 基于Web的科学数据可视化在数据共享中的应用[J]. 遥感技术与应用, 2011(6):836-844.
[7]AChartEngine. AChartEngine[EB/OL]. [2015-01-10].http://www.achartengine.org/index.html.
[8]钱政. Android平台下基于改进的K-means酒店信息聚类算法[J].淮海工学院学报:自然科学版,2014,27(4):22-25.
[9]袁勇. Oracle数据库大对象数据存取的两种实现方法及时间性能比较[J].佳木斯大学学报:自然科学版,2014,32(1):116-118.
[10]洪陆合, 蔡建立, 吴顺祥. 基于第三方控件的数据可视化系统的设计与实现[J]. 计算机工程与设计, 2010, 31(13):3096-3099.
[11]Devaldi LTD. Flexpaper—The Open Source Web based Document Viewer [EB/OL]. [2015-01-10].http://code. google.com/p/flexpaper/.
[12]孙迎春,范剑英,徐建东,等. 基于ZigBee技术的井下瓦斯监测系统[J]. 哈尔滨理工大学学报, 2012, 17(1):82-85.
Android-based gas data visualization technology
SHA You-chuang1, HUANG Cun-dong1, LEI Jing-peng1, ZHAO Xin-ping2
(1.DepartmentofInformationTechnology,AnhuiVocationalCollegeofDefenseTechnology,Liu’an237000,China; 2.Mine11,PingdingshanTian’anMiningCo.Ltd.,Pingdingshan467000,China)
During the research of gas explosion forewarning system based on android platform, the Android client has its particularity in data visualization. By the research of data analysis and some popular third-party software libraries, a data visualization solution was proposed by AChartEngine. In this solution, the client gets data and stores them into SQLite in back process, the front process fetches data from SQLite and shows them in different styles using AchartEngine. The simulation and experimental results show that the solution is simple and effective.
data visualization; gas explosion monitoring; Android system; AChartEngine
2015-01-19
安徽省青年人才基金重点项目(2013SQRL106ZD)
沙有闯(1984-),男,安徽人,硕士,讲师,主要从事移动应用开发研究。
1674-7046(2015)02-0077-05
10.14140/j.cnki.hncjxb.2015.02.017
TP311.52
A