基于JFinal框架的洞庭湖环境监测系统

2021-10-18 09:56陈积富易小荣刘书铭
计算机与现代化 2021年10期
关键词:洞庭湖环境监测预警

李 明,陈积富,易小荣,刘书铭

(1.岳阳林纸股份有限公司,湖南 岳阳 414002; 2.江西财经大学软件与物联网工程学院,江西 南昌 330032)

0 引 言

洞庭湖处于湖南省的东北部地区,是我国第二大淡水湖,面积2579.2 km2,总容积为220亿 m3[1]。后来,由于受到了人工围垦以及自然淤积等因素的影响使得洞庭湖湖面面积逐渐缩小。随着社会的发展,工业化、城镇化建设步伐的加快,也使得洞庭湖流域地区污染排放激增,再加上过度捕捞以及湖砂采挖的影响导致整个洞庭湖的生态环境受到了一定程度的破坏[2-3]。因此,洞庭湖的生态环境保护问题迫在眉睫,必须通过使用有效的环境监测手段与监测系统确保环境污染不再发生[4-7];同时,还应根据监测所得到的数据有针对性地制定相应的防护措施[8]。

环境监测是指通过一系列布置在环境中的传感器,获得目标环境的实时环境数据[9-11]。这些环境监测数据将为环境健康监测、环境治理与改善提供重要的决策支持信息。环境监测系统利用计算机对这些监测数据进行分析,从而得到影响环境状况的各种要素,并且能通过污染源监测点的详细资料,对整体环境的状况进行分析、监测。环境监测系统的运用有利于收集更加全面、详尽的环境指标数据,方便对环境数据实现自动化处理与高效存储。此外,通过信息系统的运用,有利于对可能出现的环境问题作出快速的响应与处理。

环境监测是一项长期、持续性的工作,因此不可避免地需要收集海量、动态的监测指标数据,具备明显的大数据特征。大数据技术的快速发展与普及,展现了它在数据密集型行业的强大技术使能。不难看出,环境监测领域是一个非常典型的大数据技术应用场景。通过使用大数据技术手段[12],环境监测会变得更加高效:可以对各项环境指数实现全方位的采集、分析甚至预测;同时也可以检测监测数据的可信性,确保环境监测系统的可靠性与高效性[13]。

1 国内外研究现状

在环境监测技术的萌芽时期,因受科技发展的制约,整个监测的过程依赖人工进行。针对特定被监测环境,人工部署监测点并进行数据的采样、处理、保存等操作[14]。显然,这种环境监测的方式存在效率低、耗能大等问题。并且,通过人工方式干预的数据处理将会带来较大的误差,这使得环境监测对环境保护的意义大打折扣。

随着科学技术的快速发展,部分研究人员将计算机技术与无线传感技术应用到环境监测中开发了若干环境监测系统[15],这些系统具有误差小、实时性高等特点,实现了由效率低下的人工处理方式转变为自动化的监测方式。例如,张楠[16]将嵌入式处理器技术运用在大气环境监测系统的设计中,他的研究工作可以做到将传感器检测到的环境数据进行实时显示,具有较强的实时性特点。何蕴良[17]则从组网的角度考虑,在构建环境监测系统时采用ZigBee技术进行组网,相较于传统的环境监测系统能监测的项目更多。国外一些团队则从其它方面对环境监测技术进行了研究。例如,莫斯科技术大学的研究团队在环境监测系统的数据交换方式上提出了一种无线电网络最优信道选择方法[18],该方法能基于环境监测系统运行的某一特定时刻的特点进行候选信道切换,使得系统进行数据交换时能时刻保持最优的信道选择方案。针对不利于无线通信的恶劣环境情况,ABB公司研究中心的工程师设计了一种无线Thread网状网络数据传输系统[19],集成了该系统的环境监测系统能在恶劣环境条件下仍然保持良好的工作状态。

不同于上述研究中的技术,大数据是基于多种数据来源所得到的海量数据的总称,其特点不仅仅是数据量大,数据类型也相当繁多,同时还具有很强的时效性。和传统方式相比,大数据无论是在资源存储上,还是在对数据进行处理分析上都具有高效性[20]。因此,针对洞庭湖流域区域广的特点,为其构建实时、有效的环境数据监控与分析的监测系统,将大数据技术应用在环境监测系统中是不错的选择[21-22],是一次新模式的尝试。

在本文的工作中,通过扩展现有的信息模型和对象模型,基于大数据技术并利用建模工具来构造适合洞庭湖环境监测的数据模型并开展应用设计,以便增加环境治理的效率。例如,针对水质、大气、污染等指标开展实时监测并引入预测模型,对未来环境的变化趋势作出合理的预测,为之后的环境保护规划等提供重要的信息、知识支撑。

2 系统开发

2.1 需求分析

作为软件计划阶段中必不可少的活动,需求分析是软件生命周期的一个重要环节。本文结合对洞庭湖流域环境监测的技术要求,主要从功能性需求方面对监测软件系统设计与开发需求进行分析。

功能性需求作为软件需求中的主体,用于分析开发人员必须在软件系统中实现的基本软件功能。因此在功能性需求上,本文对所提出的洞庭湖流域环境监测系统进行分析,基本功能包含如下:1)结合硬件对传感数据进行收集,并对数据进行初步验证,最后将数据保存至数据库中;2)利用数据处理方法对数据库中的数据进行清洗、变换、特征提取,从中挖掘出重要特征信息;3)基于处理后的监测数据构建环境监测的异常分析与预警处理模型,对实时传送过来的环境监测数据进行预测与预警。

2.2 概要设计

结合洞庭湖流域环境监测的实际需求,本文设计并实现一个功能完备的洞庭湖环境监测系统。系统模块架构如图1所示,该系统的核心功能模块包括用户管理模块、数据监测模块、数据分析模块以及预警处理模块。

图1 洞庭湖环境监测系统架构图

用户管理模块主要负责环境监测系统相关用户的注册、系统登录验证,以及对不同类型的用户实现不同层次的授权管理。数据监测模块则主要负责收集各环境监测点的传感数据,并对收集到的数据进行有效性校验,将通过校验的数据更新至数据库中并实施多个级别数据库的同步处理。后续的数据分析模块,则主要是对噪音、冗余数据进行清理,并将多个监测来源的数据进行集成,再在整体数据上实施统计分析与数据挖掘。最后,将大数据分析与挖掘出的异常信息通过预警处理模块进行可视化的显示,以提醒环境监测工作人员作出必要的应对处理。

2.3 详细设计

2.3.1 用户管理模块

用户管理模块主要是对系统中各类用户的基本信息、登录口令、访问与操作权限等进行存储,并提供这些信息的登记、注销与更新的操作接口。在系统的登录页面上,首先需要判断系统中是否存在该用户的账号信息。该信息在后台数据库中一般以用户表的形式进行存储,主要包括用户ID、用户真实姓名、登录密码等信息。在本系统用户管理模块中,若系统中不存在该用户,则跳转至用户注册页面进行信息登记并申请账号。后台系统管理员确认该用户的申请后,用户便可以用户ID和登录密码的形式登录系统。随后,用户便可以对自身的基本信息进行修改,并申请在该系统中的一些操作权限。该操作权限获批后,使得用户能在环境监测系统中从事对应工作岗位的操作与处理。

2.3.2 数据监测模块

数据监测模块的功能包括数据采集、同步数据库以及数据校验,其操作流程如图2所示。在数据采集阶段,当本监测系统检测并连接到已部署的传感器时,系统将会收集各传感器发送的信号,通过处理转换成数字信号,随后将数字信号进行转换得到具体的环境数字信息。针对洞庭湖的环境特点,本系统部署的传感器将收集空气湿度、降雨量、风速等较为基本的数据类型,除此之外,二氧化碳浓度、有机物含量、重金属含量、微生物含量等数据也在本系统的监测范围之内。

图2 数据监测模块流程图

系统采集完环境数据后,会将数据同步至数据库,并且系统会对已同步的传感器自检数据进行校验:当校验为正常时,传感器继续采集数据;当校验结果为异常或自检数据丢失时,系统会在用户查看数据页面显示传感器异常。

2.3.3 数据库设计

根据系统需求与各阶段的设计分析,对洞庭湖环境监测系统的数据库表设计如表1所示。在本系统中,一共包含6个数据库表。其中用户数据库表存储系统用户的基本信息。每个监测站点的传感器设备信息则由传感设备信息表存储。通过传感器等硬件设备获取的监测数据则使用监测节点数据库表存储。预警数据表则被用来存储预警预测模型的预警信息。在本系统给出的预警信息中,会包含各种异常类型信息,它们由异常类型信息表来存储。

表1 洞庭湖环境监测系统数据库表

图3为洞庭湖环境监测系统的实体—关系图,为避免繁杂省略了各实体的属性。由图3可知,其中一个监测站点应包含多个传感器设备,这些设备被用来获取洞庭湖的环境指标数据,多个传感器设备同时监测可得到一组监测节点数据。因此监测站点与传感设备是1对n的关系,而与监测节点数据是1对1的关系。通过对一组监测节点数据进行处理分析可判断洞庭湖这一监测站点附近的环境状况,系统将给出相对应的预警信息,而预警信息包含了各种异常类型信息。则预警信息与监测节点数据之间为1对1的关系,异常类型信息是1对n的关系。用户可以查看所有的预警信息,预警信息也可被不同权限等级的用户查看。所以用户与预警信息之间为m对n的多对多关系。

图3 洞庭湖环境监测系统实体—关系图

因篇幅限制,本文以数据监测模块的监测节点数据为例,来介绍具体的属性信息。如图4所示,其中监测节点为实体,其它信息则为该实体的属性信息。节点ID是在环境监测模块中为每个监测节点设置的一个唯一的编号,通过该编号查询监测节点信息表便可获得监测点的物理经纬度、传感器个数、传感器类型等方面的信息。对于每个监测节点,在本系统中将通过传感设备收集空气湿度、风速、降雨量等基本环境信息数据。不仅如此,二氧化碳浓度、酸度、重金属含量、有机物含量、微生物含量等方面的环境数据也将被收集并用于处理分析。

图4 监测节点数据实体图

结合图4,可将数据监测模块的数据库概念结构设计转换为数据模型。数据监测模块的数据库表结构如表2所示。其中节点ID的数据类型为string,且该字段为唯一且不为空的主键。其它字段均为系统收集且处理后的监测数据,数据类型均为double,并且这些字段不能为空。

表2 数据监测模块数据表

2.3.4 数据分析模块

数据分析模块使用了大数据的虚拟化集成框架来处理、分析数据,其主要功能包括数据清理、数据变换、特征提取。

图5描述了数据分析的流程。通过传感器获取到原始监测数据后,首先对其进行数据清理处理。这里以清理冗余信息为例来介绍利用相关分析的技术手段解决该问题的途径。一般而言,相关分析是通过判断2个属性间的相关性以揭示它们之间是否存在关联性。对于标称类型的数据而言,一般采取以下方式来计算相关性[23]:

图5 数据分析流程图

(1)

其中,c和r分别表示特征变量M和N可能的取值类别数,oij代表联合特征(Mi,Nj)实际的计数,eij则代表(Mi,Nj)的期望频度。

针对数值型类别的数据,可以通过计算2个属性之间的相关系数来判断2个属性相关程度,具体计算方式如下:

(2)

完成数据的清理之后,需要将监测数据进行数据变换,使数据变得更加规范化,并落入一个长度统一、固定的区间内。本文使用min-max规范化的方法对数据实施变换处理。将各监测点的环境数据通过清理、变换、集成到一起之后,便可以构造一些模型来实施预测或者分类。为了提升这些机器学习模型的训练效率,需要对环境监测数据的指标进行分析与选择。为了在不降低(或尽量不降低)分类或预测精度的前提下,减小特征空间的维数以减少计算量,需要从全部的数据属性集中选择出部分关键性的特征用于后续的分类或预测。首先,对每个维度的特征进行打分,即给每个数据属性赋予一个权重,该权重代表该维特征的重要性,然后以信息增益为依据开展关键性特征选择。

完成上述数据清理、转换、特征提取之后,后续的预警处理模块可基于这些处理后的监测环境数据进行预警模型的构建,该模型能够对不同种类和环境下的环境监测数据开展有效的分类,从而判别哪些环境监测点的环境指标出现异常。

2.3.5 预警处理模块

针对各监测点收集到的环境监测数据,经过上述的数据清理和转换之后,可得到集成与预处理的数据,随后便可运用基于信息增益的方法开展各特征属性重要程度的分析,对数据特征进行进一步的约简。完成特征选择之后,就可以进行下一步模型训练。

图6描述了模型的训练与预测过程。在训练阶段,首先对传感器收集到的历史监测数据集进行数据分析,随后将数据集作为训练数据输入到选定的模型中进行训练。本文使用Logistic Regression (LR)模型[24],选定假说函数和损失函数,基于已有的数据,使得损失函数达到最优,得到最终的模型。具体模型如下:

图6 预警模型训练与预测流程图

(3)

(4)

完成基于逻辑回归LR的分类模型构建后,在模型的预测阶段,输入一个给定的环境监测指标数据,便可判别该监测点周围可能发生了哪种类型的环境污染或异常。

整个预警处理模块流程如图7所示。每当收集到一条实时传送过来的环境监测数据记录,便作为输入代入训练好的分类模型,模型能很快地给出一个环境状况的预测结果。例如,环境正常、水质异常、空气污染、土壤酸度异常等。依照该预测结果,在系统中便会产生一个预警信息,环境管理部门的工作人员根据该异常预警信息,便可委派基层的环境巡查员赴对应的环境监测点开展实地核查。这样,通过环境监测数据的实时收集、快速预测等手段,保证了对环境污染问题的迅速响应与快速处置,能有效地避免环境污染问题的扩大化,极大地降低环境污染风险。

图7 预警处理模块流程图

3 系统实现

本系统基于JFinal、Layui、MySQL框架实现。其中JFinal框架用来构建本系统的业务逻辑处理层,它是基于Java语言的极速Web+ORM框架,特点是项目开发周期短、轻量级、易扩展,且支持RESTful架构[25-26]。此外,JFinal框架遵循CoC(Convention over Configuration)原则[27],符合大部分开发者的编程习惯。本系统的前端UI框架则采用了遵循模块化规范的Layui框架,该框架采用原生HTMLCSSJS的开发方式,极大地提高了开发效率。MySQL作为最流行的开源关系型数据库管理系统,它具有轻量化、速度快、易维护等特点,因此本系统使用MySQL框架来构建数据存储层。

3.1 监测设备状态

布置在洞庭湖流域的传感器数量庞大,相关维护人员不可能频繁地检查每个传感器运行情况。因此,布置在洞庭湖流域的传感器都有自检功能,维护人员可以通过页面查看传感器设备运行情况。监测设备状态的流程如图8所示。

图8 监测设备状态流程图

在本系统中,监测设备状态页面如图9所示,该界面显示的是针对洞庭湖流域环境监测设备开展全天候状态分析的程序模块。在该界面的左上角显示了设备的数量、设备增加数等基本信息。而右上角则可显示某一具体设备的使用频率、开关机次数、温度、信号强度等具体信息。还有一个较为重要的信息显示在界面的右下角,这里给出了设备维保的具体信息,包括维护时间、维保人、联系方式等重要信息,使得设备的维保做到有据可查、有迹可循。

图9 监测设备状态页面

3.2 数据分析

该系统通过大数据虚拟化集成框架,对数据进行一系列的预处理后,再对数据进行统计分析以及差异性分析,最后通过可视化方式进行展示。如图10所示,当系统中显示出异常后,首先需要排查是否是因为设备故障、天气变化等因素的影响,进而对所显示的异常指标开展有针对性的分析和追踪,指导基层的环境巡查人员开展有针对性的排查,从而快速、准确地处理环境污染问题。

图10 预警异常处理流程图

不难看出,通过监测系统所提供的自动化统计分析与可视化显示,能够实时地掌握洞庭湖流域内的各项环境监测指标,对出现的环境问题做到可追踪、可溯源,对环境污染问题能开展宏观分析与及时处置,从而为政策制定、环境治理、管理决策等提供重要的技术支持。

在本系统中,图11为数据分析异常的可视化显示。该界面的左上角可选择需要查询数据的日期及区域。其余位置则依次显示本系统监测到的各类数据信息,包括水量、二氧化碳、重金属等具体的环境监测数据。在该界面的数据汇总选项卡中,各类监测信息将被计算统计处理后显示在此,使得技术人员能更直观、全面地获取监测信息。

图11 数据分析可视化页面

3.3 预警处理可视化

利用监测点收集的环境监测数据,预警处理模型可快速准确地对环境状况进行预测。预警处理模型给出的预测数据结构复杂并且难以理解,而预警处理可视化模块则能使用可视化的方法将预测数据转换为图文的方式进行表达,这样能高效地将预测数据信息传递给监测人员,保证对环境问题的快速响应与处理。下面给出预警处理可视化模块的部分代码,其中第3行为清空预警预测数据展示区域,第12行代码读取预警预测数据,第24行代码将预警预测数据添加到展示区域。

1.public void writeFileToTextArea(String filePath, String fileName, TabPane tabPane, Tab tab, TextArea textArea){

2.tab.setText(fileName);

3.textArea.clear(); //清空预警预测数据展示区域

4.File file=new File(filePath);

5.String content="";

6.if (file.exists()){

7.String line;

8.try{

9.FileReader fileReader=new FileReader(file);

10.BufferedReader bufferedFileReader=new BufferedReader(fileReader);

11.while ((line=bufferedFileReader.readLine())!=null){

12.content+=line+" ";//读取预警预测数据

13.}

14.bufferedFileReader.close();

15.fileReader.close();

16.} catch (Exception e){

17.}

18.}

19.//设置数据展示区域

20.textArea.setParagraphGraphicFactory(LineNumberFactory.get(textArea));

21.Subscription cleanupWhenNoLongerNeedIt=textArea.multiPlainChanges()

22..successionEnds(Duration.ofMillis(500))

23..subscribe(ignore->textArea.setStyleSpans(0, computeHighlighting(textArea.getText())));

24.textArea.appendText(content);//添加预警预测数据到展示区域

25.tab.setContent(textArea);

26.tabPane.getTabs().add(tab);

27.}

4 结束语

随着社会的快速发展与经济水平的不断提升,广大民众的生活水平日益提高。与此同时,人们对生活环境问题的关注程度也越来越高。建设生态文明和美丽中国也已经成为了新时代社会、经济发展的一项重要任务。在开展环境保护与治理过程中,对生活和生产环境开展连续性的监测与记录就显得尤为必要。通过传感设备及对应的监测系统通常会收集到海量级的环境指标数据,运用大数据分析与挖掘技术可以从中挖掘出用于指导环境污染治理的知识。本文针对洞庭湖流域环境监测的实际需求,设计了一个集环境数据收集、处理、挖掘与可视化于一体的环境监测系统,并成功地实现了系统部署与运行。洞庭湖流域管理人员面临的问题是无法获取可量化的环境数据作为依据来作出合理的治理决策,以降低管理成本。而本系统则可为管理人员提供洞庭湖环境治理、管理决策等方面重要的技术支持。

本系统的重点在于预警模型的建立,而模型的训练则依赖于数据,因此本文研究的重难点在于数据的处理。本文首先根据不同类型的环境监测数据使用不同的数据清理计算方式,随后使用了min-max规范化方法对清理后的数据进行变换处理,最后以信息增益为依据在规范化后数据的基础上开展特征选择处理。从本系统在洞庭湖的实际运行可知,本文采用的数据处理方法可大幅度提高预警模型的预测准确性。不仅如此,因为数据清理与特征选择大大降低了环境监测数据的体量与复杂性,所以在数据吞吐量、响应时间等系统性能指标上也得到了较大提高。

在后续的研究中,将继续使用分布式技术来优化系统的性能,使之能存储更长时间段的历史监测数据,并提升环境污染监测的响应速度。

猜你喜欢
洞庭湖环境监测预警
洞庭湖
轻松松聊汉语 洞庭湖
环境监测系统的数据分析与处理
法国发布高温预警 严阵以待备战“史上最热周”
大气污染问题的环境监测
园林有害生物预警与可持续控制
好一个洞庭湖
对环境监测数据造假必须零容忍
洞庭湖的麋鹿
机载预警雷达对IFF 的干扰分析