高洪波
(应急管理部信息研究院)
城市安全是国家安全的重要组成部分。伴随城市一体化快速发展,我国城市规模越来越大,流动人口多、高层建筑密集、经济产业集聚等特征日渐明显,正在成为复杂的社会机体和巨大的运行系统,随之产生的安全风险呈现日渐增多的趋势。为了有效应对这些风险,亟须建设城市综合风险监测预警系统。城市综合风险监测预警系统通过对城市综合风险的实时监测和预警,帮助城市管理者全面掌控城市的安全态势,并通过预警信息的开放共享,促进企业、公众参与城市安全风险的发现、防范、化解,提升城市安全管控的智能化水平[1]。
城市综合风险监测预警系统主要面向政府部门、企业和公众等多级用户。政府部门需要通过系统采集和分析大范围的数据,对整个城市的风险情况进行全面监测和预警,同时也需要对特定区域或特定场所的风险进行实时监测和预警,有利于针对事件及时发现、科学决策、高效处理,进而减少重特大事故发生;企业作为安全生产的责任主体,需要根据自身所处的行业和经营范围,对本单位的重大危险源、生产经营相关的风险隐患进行监测和预警,帮助企业管理者随时掌控安全生产动态;公众需要及时掌握所处区域的安全情况,并了解周边环境的风险隐患状况。
城市综合风险监测预警系统采用分布式架构,以提高系统的可靠性和稳定性,系统架构见图1。
图1 城市综合风险监测预警系统总体架构
数据汇聚层是城市综合风险监测预警系统的基础,通过与城市各行业各部门已建的监测系统对接,接入各类风险相关的多源异构数据,包括热力、水务、城管、住建、市监、应急、公安、交通、环保数据等,经过数据源配置、数据抽取、数据传输等步骤后,海量数据被汇聚至大数据平台。
数据处理层负责城市综合风险监测预警系统的数据处理与存储,其主要任务是将汇聚的原始数据进行清洗、转换等处理[2],加工后的数据分别存储于原始库、资源库、主题库、专题库中,以便后续的数据分析预测使用。
数据分析层通过数据挖掘、机器学习技术从数据中分析并识别各类安全风险,并基于指标评价模型对这些风险进行分级评估。
业务应用层是整个系统的最上层,负责将数据分析结果和监测预警信息以可视化的方式展示给用户,同时也提供风险管理决策支持和应急响应服务。
城市安全监测预警系统的技术路线需要围绕数据采集、数据处理、数据分析、建模、风险评估、预警预测、决策支持、可视化展示等方面进行设计和实现,旨在提升城市管理部门应对安全风险的能力和效率。系统基于物联网、云计算、大数据等技术实现,包括几方面的关键技术。
1)数据采集与处理技术
城市各行业的海量数据是实现智能化监测预警的依托,这些数据多分布于各部门的信息化系统中,需要部署一个高效的大数据平台支持数据采集、数据存储、处理和分析业务,打破数据壁垒信息孤岛。
数据采集模块对接各部门的安全监测系统,对各类安全监控数据进行采集并汇聚至本系统的大数据平台,这些数据需要经过清洗、归一化等处理,以便后续分析和建模。根据各系统的数据存储方式、采集频率、网络环境等因素,采取下述方式进行数据采集:①使用文件交换方式,通过定义csv,xml,json等文件实现数据按统一格式进行导出,导出后的文件被存放在ftp等指定的目录下,采集程序定期访问目录获取数据文件,并传回系统进行处理;②数据库交换方式,在数据提供方的系统中构建数据视图并开放读取权限,数据接收侧定时查询视图获取数据处理;③通过消息队列方式,配置生产者消费者模型,数据提供方将数据放入kafka 消息队列,接收方订阅消息后获取数据处理;④通过接口对接方式,数据提供方通过http+json 方式实现Restful 接口,数据接收方调用对应接口获取数据。
从各行业采集的数据存在一定的噪声和冗余,需要进行数据清洗和归一化手段对数据进行预处理,以提高数据的质量和可用性。数据清洗通过去除重复数据、修正错误数据、填充缺失数据等方式对数据进行预处理[3];数据归一化通过标准化、归一化等技术进行。
存储多源异构的数据需要考虑数据的类型、数据的量级、数据的结构等因素,对于不同类型的数据,本系统采用不同的数据格式进行存储,结构化数据采用关系型数据库集群,非结构化数据采用文档型数据库MongoDB 进行存储。为了避免数据丢失和意外故障,需要实现数据备份和恢复机制,数据备份通过数据复制和数据快照方式实现。
数据处理基于Apache Spark 实现,Spark 是一个高效的分布式计算框架,可以在内存中处理数据,比传统的MapReduce 计算速度更快。通过使用Spark SQL 和DataFrame API,可以进行复杂的数据转换、过滤和聚合操作。
由于城市安全监测预警系统中的数据具有敏感性,须保证数据安全和隐私保护。系统使用SSL/TLS 等协议进行数据加密传输,使用Kerberos 等身份验证工具进行身份验证,使用数据脱敏和访问控制等技术保证数据安全和隐私保护。
2)数据分析与建模技术
通过对采集的数据进行分析和建模,可以提取出城市内的安全风险特征和规律,构建预警指标和模型,这些指标和模型可用于城市风险评估和预警预测。数据分析与建模采用统计分析、机器学习、数据挖掘、模型评估和智能决策等多种技术实现,这些技术综合应用以提高系统的数据分析和预测能力,为城市安全管理和预警决策提供支持。数据分析和建模的过程包括数据收集和探索、数据清洗和预处理、特征工程、建模、模型评估、调优和优化、部署和监控等步骤。这些步骤是循环迭代的过程,需反复实验和优化,得到最好的模型效果。同时,数据分析和建模的过程也需考虑问题背景、目标和可行性等因素,以确保分析和建模结果的有效性、实用性。
3)风险评估与预测技术
风险评估与预测技术对应多种应用场景,包括安全生产、自然灾害、公共安全、城市生命线等领域,对城市面临的各种灾害风险进行定量化分析和预测。系统通过收集和分析相关的数据,建立风险评估模型,对城市灾害风险进行评估和预测,以便在风险事件发生前及时采取应对措施,最大程度地减轻灾害对城市的影响[4]。
风险评估与预测包括下述步骤:首先,对城市安全相关数据进行采集和预处理,以获取所需的数据集;其次,通过建立数学模型和算法,对数据进行分析和处理,评估不同因素对城市安全风险的影响程度,安全风险等级从高到低划分,分别为重大风险、较大风险、一般风险和低风险;然后,通过模型预测和模拟,对可能发生的风险事件进行预测;最后,输出评估结果和预测信息,基于评估结果,利用决策树、多目标规划等技术,制定城市安全管理的应对措施和紧急救援计划,并提供多种方案,为城市管理者提供决策支撑。
城市综合风险监测预警系统的主要功能见图2。
图2 系统功能架构
风险态势:将城市安全风险划分为安全生产、自然灾害、公共安全、城市生命线等专题,接入从属每个专题下相关行业的监测数据,以城市生命线为例,包括桥梁、燃气、供水、排水、地下管廊等监测信息[5]。所有监测数据及风险分析结果基于GIS 地图,形成综合风险监测预警一张图,以及各专题风险的可视化展示,直观呈现城市综合风险态势。
数据查询:对接入系统的监测数据、报警数据、视频数据、基础信息数据、统计数据等提供查询功能,既可对城市各行业的当前监测信息、报警信息进行查询,定位报警发生内容、地点及相关责任人,也可以查询历史数据,实现历史报警信息的溯源分析。
风险统计:对各类风险监测数据的接入情况、报警数量、报警处置情况等进行统计,可按时间、地点、类型进行分类统计,以柱状图、折线图、列表展示,支持统计结果下载。
智能分析:通过算法模型对各行业监测数据、监控视频等多种信息进行分析识别,并对这些事件的时空分布、发生规律、危害程度等进行分析和预测,提供有针对性的预警信息和建议,帮助相关部门制定科学有效的应急处置方案。
应急处置:一是快速响应,及时发出警报和预警信息,提醒相关部门和居民采取措施;二是实时监测和分析安全事件的发展趋势和危害程度,提供有针对性的处置建议,如疏散路线、救援队伍调配、资源调度等;三是与应急管理信息系统、指挥调度系统等进行联动协同,形成有效的应急处置机制,最大程度地减少安全事故对城市和居民的影响。
城市综合风险监测预警系统的设计和实现,综合考虑数据采集、处理、分析、风险评估及预警处置等方面的需求,采用物联网、大数据、机器学习等技术手段,为城市管理和居民生活提供更加安全和可靠的保障。