大气污染属于当今世界所面对的重大环境问题。世界卫生组织(WHO)的报告显示,全世界90%以上的人都长期处在未达到标准的污染空气中,每年由于空气污染造成大约700万人过早死亡[1]。随着我国经济的迅速发展和城市化的不断推进,以PM2.5、PM10、臭氧(O3)为主要污染物的复合型大气污染问题越来越严重,给人们的健康和生活质量带来了极大的影响[2]。
空气质量指数(Air Quality Index,AQI)是用以定量表示空气质量状况的无量纲指数,可以将各种污染物浓度转化为统一的指数值,方便公众理解以及政府监管。准确的空气质量预测,是做好污染预警、应急处置和公众健康保障工作的基本前提。传统的预测方法是以数值天气预报(NWP)模式为主,用模拟大气物理化学过程来预测污染物的扩散,但是计算成本高、时空分辨率低。
物联网技术的发展使得空气质量监测点越来越多,监测数据量也越来越大。中国环境监测总站每天收到全国数以千计的监测站点实时数据,年数据量达到TB级,传统的单机数据处理工具已经不能满足大规模数据的存储、处理和分析的要求。大数据技术的发展给该问题提供了解决思路,Apache Spark作为新一代分布式计算框架,具有内存计算、高效迭代、易用性好等特点,是大数据处理领域的主要技术。
本文以Spark为依托,创建了城市空气质量分析与预测系统,利用分布式存储、大规模并行计算、机器学习预测以及Web可视化技术对空气质量海量数据进行处理和预测,为环境管理工作以及公众服务提供技术支持。
本次研究完成系统整体架构搭建和功能实现,建立数据采集、存储、处理、分析、展示的全流程。系统搭建起完整的数据采集和存储架构,可以自动获取全国重点城市空气质量监测数据,使用HDFS实现分布式存储管理。基于Spark分布式计算框架,根据Spark SQL开发ETL处理流程,对数据进行清洗、格式转换、缺失值填充和特征工程等操作,得到日粒度、小时粒度多维分析结果。研究使用多步长分位数预测法,用LightGBM算法建立24到168小时的AQI区间预测模型,可以得到带有不确定性的预测结果。同时使用Flask和ECharts搭建Web可视化平台,实现对实时监测、历史趋势分析、预测预警等各方面的功能,给用户带来直观方便的数据交互方式。使用Linux Crontab定时任务服务对数据采集、处理、模型训练、缓存刷新等工作进行自动执行。从系统的测试结果可知,该平台可以很好地处理大量的历史监测数据,并且预测模型在验证集上的表现也较好,在硬件和软件环境得到改善之后,其实际应用的价值会更高。
(1)数据采集与存储层设计,使用Python爬虫获取全国城市空气质量监测数据,用HDFS分布式存储架构,可以处理大量的CSV文件。
(2)重点围绕Spark进行ETL处理流程,借助Spark的分布式内存计算框架对大规模数据进行清洗、格式转换、异常值处理,为后续的分析和建模提供数据支持。
(3)多步长分位数预测模型,根据24-168小时(7个步长)的预测需求,使用LightGBM分位数回归算法建立预测区间估计模型,度量预测的不确定程度。
(4)Web可视化分析平台,用Flask框架搭建B/S架构的分析预测系统,把ECharts集成到系统中实现地图可视化、趋势分析、排名统计等功能。
(5)定时任务自动调度,用虚拟机的Crontab服务来完成数据采集、数据处理、模型训练以及缓存刷新的自动化操作。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论