疫情背景下学生外出避险导航系统设计与实现

2022-03-25 07:24许健豪张欣佳
北京测绘 2022年2期
关键词:网页尺度因子

许健豪 杨 虎 王 迪 彭 松 张欣佳

(郑州大学 地球科学与技术学院, 河南 郑州 450001)

0 引言

2021年上半年,由于我国疫情得到了有效地控制并进入常态化管理阶段,全国高校相继开学,并推出了一系列学生在校管理措施,包括但不限于:利用大数据统计分析实时掌握学生在校园内的行动轨迹与人员聚集情况,封闭式校园管理严格控制人员进出[1]。随着国内疫情的进一步缓解,校园的部分开放势在必行。但现有措施仅能于对学生在校活动进行监测和管理,缺少校外管控。一旦有学生自危险区域返回而不主动上报,校园的高人口密度和高人口接触水平可能使得传染病的传播能力更强[2],将对在校师生的人身安全产生巨大的威胁。

而安卓(Android)技术是一个真正意义上的开放性移动设备综合平台。Android打破了应用之间的界限,比如开发人员可以把万维网(world wide web, Web)上的数据与本地的联系人、时间、位置信息结合起来,为用户创造全新的体验[3]。疫情防控中可以结合基于位置服务(location based services,LBS)技术,获取用户位置信息,配合现有的防疫措施。

Web技术可以提供一个可以突破时空局限、交流各种信息的互动平台,使得用户无论身在何处,都能够通过网络充分共享全社会的智慧。Web技术与数据库技术结合,实现了海量数据的可视化调用,便于数据分析,能够在疫情中收集各种风险数据,并提供分析结果供决策者定夺[4]。

网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。使用网络编程框架实现分布式计算业务可以大大提高开发效率,开发者只需要在事件驱动框架中设计一个状态机去维护上层的非阻塞业务逻辑,将阻塞业务逻辑交由多线程框架中处理,根本不用过多关心底层的实现,可以将精力更多地放在业务逻辑的实现上[5]。

爬虫技术的使用可以抓取互联网上用户所需要的信息,利用数据清洗可以进一步提高数据质量,结合合适的主题描述与定义,可以提高爬虫抓取效率[6],应用爬虫技术,让疫情数据的获取事半功倍。

基于以上情况,本研究基于疫情风险指数评估、疫情风险区域划分、避障路径规划等算法,并结合Android开发、Web开发、派森(Python)爬虫技术、网络编程等关键技术,提出并实现了一种新冠肺炎疫情背景下学生外出避险导航系统。系统旨在填补大学生校外管理方面的空白,进一步保障在校人员的安全。

1 需求分析

本系统旨在新冠肺炎疫情防控常态化背景下,对校园防疫管理进行升级以填补学生外出管理方面的空缺,提高校园安全管理的科学性、针对性以及管理效率,更好为学校校园安全管理服务[7]。

1.1 系统设计目标

(1)集成现有防疫管理系统,满足学生日常打卡、外出申请等需求。

(2)合理划分风险区域并能实现高精度定位。

(3)对用户途径风险区域进行预警、记录以及实时上报。

(4)为用户出行提供导航和避险路径规划服务。

1.2 可行性分析

本系统用到的疫情风险指数评估、基于路网分层的Dijkstra算法路径规划等算法均已成熟理论为基础,项目组成员具有相应的知识储备可以结合系统的应用实际进行修改和优化。本系统利用了Android开发、Web开发、Python爬虫技术、网络编程等关键技术。

Android开发基于Android Sudio并利用高德地图应用程序编程接口(application programming interface,API) 进行开发,为系统提供了移动端用户平台,负责记录并发送学生出行数据,提供各类辅助出行功能。Web开发基于VS Code使用Vue框架进行开发,为系统提供了网页端数据管理与分析平台,负责接收并管理数据,进行数据统计与分析。Python爬虫技术基于PyCharam通过编写Python语言对疫情详情网页进行数据爬取,利用BeautifulSoup逐一解析关键数据,保存至数据库中。网络编程技术利用Socket套接字使用TCP建立起各个客户端与服务端的数据通信,构成了数据通信的桥梁。

最终系统的总体实现流程如下:移动端平台提供用户数据发送至Web服务器,Python爬取疫情数据并保存在数据库中,利用网络编程技术进行数据的写入与读取,数据将在客户端网页进行可视化处理与分析,并将响应结果传回至移动端,同时在移动端平台进行可视化显示。以上技术均为成熟技术。除了需要添加少数传感器设备外可在现有计算机、通信网络、移动终端基础上完成系统的搭建。

2 总体架构

该避险导航系统使用现有移动通信网络,将手持移动终端与网页端管理平台进行统筹结合,本系统的总架构如图1所示。

图1 系统总架构

本系统有系统支持层、众源数据层、数据处理层、应用实现层及用户层五个层级组成:

(1)系统支持层。利用现有移动通信网络建立中心服务器、移动端应用程序(application,APP)、网页端管理平台,另有多种传感器设备如红外温度传感器为上层服务提供必要的支撑。

(2)众源数据层。接受来自互联网、移动终端、用户以及管理平台的各类众源数据,包括疫情数据、时空数据、终端数据、用户数据等,为数据处理层做准备。

(3)数据处理层。主要进行疫情数据和用户位置数据的处理。

(4)应用实现层。基于以上层级的支持,实现学生在疫情背景下校园外活动管理与辅助的全过程。包括路径规划、实时监控、高风险预警三个主要模块。

(5)用户层。主要面向外出学生以及学校的管理人员,管理人员可以通过网页管理平台对持有手机的外出学生进行管理,外出学生可以根据提供的移动端APP来选择合适的路径出行避开疫情高风险区域。

3 系统设计与实现

3.1 关键技术与原理

3.1.1疫情风险指数评估原理

各等级行政边界对于人口流动、经济活动存在显著的边界效应[8-9],而疫情隔离政策则会加剧这种边界效应,使得疫情风险在行政区划之间呈现不连续状态[10]。

社区作为承载人们日常生活的普遍性社会实体,不但是城乡空间治理的基本单元,也是此次新冠肺炎疫情下病毒预防控制和易感人群保护的第一道防线[11]。而城市作为第二道防线,是新冠肺炎疫情防控的重点和关键,疫情防控的全局性效果取决于城市[12]。

由于不同空间尺度下疫情风险指数的评估因子存在较大的差异,现有疫情风险地图的空间尺度往往是以省区为最小单元,而本研究基于导航和避险路径规划服务的设计目标,需要补充现有地图在空间尺度上的不足,满足系统实际应用的需求。

基于上述考虑以及疫情区域化管理[13]的需求,本研究基于行政区划等级在原有地图的基础上补充以下两个尺度:以地级市为最小单元的尺度疫情风险指数评估;以社区为最小单元的尺度疫情风险指数评估。

(1)地级市尺度疫情风险指数评估原理。目前新型冠状肺炎病毒已经进入社区传播阶段,影响地理空间疫情的风险主要来源于疫情本身及其传播(阻断)[14]。本研究提出地理区位、交通道路、医疗卫生、疫情现状四项指标用以构建地级市尺度疫情风险指数(urben-scale epidemic risk index,UERI),其中前3种指标用来衡量疫情传播风险,疫情现状用来衡量疫情本身风险。

在宏观条件下根据其他学者的研究发现:地理区位对疫情的空间风险存在较强的负相关性;交通道路因素对疫情的空间风险影响较大;而医疗卫生因素对疫情的空间风险能够起到缓解的作用;疫情本身的严重程度对疫情的空间风险构成仍有重要作用[15]。

因此本研究具体权衡四种指标及子因子权重进行计算。如表1所示,以2020年11月25日疫情通报为例,当日全国范围内新增病例21例,其中本土病例9例全部位于内蒙古自治区(http://www.nhc.gov.cn/)。因此当日系统将内蒙古动态调整为疫情策源地进行大尺度疫情风险指数评估。系统基于各市距离策源地的地理距离子因子确定了地理区位指标;根据全国各市公路网密度及铁路网密度作为子因子确定道路交通指标的权重;根据全国各市的医院密度以及居民点-医院的地理距离作为子因子确定医疗卫生指标;根据全国各市疫情密度确定疫情现状指标。

本研究选取2020年1月1日到2020年4月1日的各地级市患病人数数据和人口数据,并进行归一化处理,得到归一化患病率,该时间内疫情经历了发生、迅速发展和趋于稳定的完整发展过程,因此数据具有一定程度的代表性。

基于皮尔逊(Pearson)相关性分析,设置不同权重情况下6种指标因子所计算得出的UERI为因变量,设置归一化患病率为自变量,计算r,具体为

(1)

通过迭代算法得到最优解r=0.736,以及对应的评估因子权重(表1)。

表1 大尺度评估因子

通过指标因子与相应权重的乘积之和的计算,在强调客观实际的同时更能反映评价对象的综合水平,其具体为

(2)

式中,Ui代表第i个评价对象的地级市尺度疫情风险指数数值,数值越高表明该个评价对象各类因子的综合作用程度越高,地理空间疫情风险越大;n代表评估因子的数量,本研究取值n=6;Xij代表第i个评价对象j因子的归一化值,其取值范围为[1,15],采取归一化处理以平衡数据量纲差距使不同数据能够在相同条件下统计;Wij代表第i个评价对象j因子的权重。

(2)社区尺度疫情风险指数评估原理。当空间尺度缩小为社区时,原因子指标不再适用,因此本研究在UERI四项基本指标的基础上进行了改进,提出了社区尺度疫情风险指数(community-scale epidemic risk index,CERI)如表2所示。

表2 小尺度评估因子

地理区位:考虑到人口流动程度以及人与人的接触程度,往往越靠近市中心人流量越大,基于次将地理区位的子因子修改为距市中心的距离。

交通道路:出于实际应用的考量,选择使用有实际运用先例的交通密度指数(public transport density index,PTDI)[16]来作为交通道路的子因子,PTDI能结合区域的人口数进行相关性分析,从而适用于不同空间尺度。

医疗卫生:由于在小空间尺度下,单个医院的病人承载量要高于社区的人口数量,同时人们往往会选择就近就医,基于以上认识本研究将医疗卫生的子因子修改为距最近医院的距离。

疫情现状:同大尺度评估因子,在小空间尺度下疫情现状指标因考虑基于新增社区病例数量设置。

接着本研究参照地级市尺度评估因子对社区尺度评估因子进行定权,再使用加法合成法,具体公式为

(3)

式中,Ci代表第i个评价对象的大尺度疫情风险指数数值,数值越高表明该个评价对象各类因子的综合作用程度越高,地理空间疫情风险越大;n代表评估因子的数量,取值n=4;Xij代表第i个评价对象j因子的归一化值,其取值范围为[1,15],采取归一化处理以平衡数据量纲差距使不同数据能够在相同条件下统计;Wij代表第i个评价对象j因子的权重。

3.1.2风险区划分的阈值选取原理

本研究选取各省市面对新冠疫情实施Ⅲ级响应[17]时段的多尺度疫情风险指数进行算数平均,作为风险区划分的阈值。当某一区域的实时疫情风险指数高于阈值时,系统将该区域标记为风险区,并在设置疫情围栏。

根据各省市的评估因子使用加法合成法求出UERI,同理,通过统计同时间各市下所属社区的评估因子使用加法合成法求出CERI,并依据各社区所求得的CERI取算数平均值作为在较小空间尺度下定义风险区域的阈值。

3.1.3路径规划原理

系统得到风险区域后,结合区域内道路折线数据进行空间拓扑分析判断与风险区相交、包含、相离的道路,用Dijkstra算法规划最优路径后,剔除与风险区域相交和包含的道路。

(1)基于改进扫描线算法判断线面拓扑关系原理。线面的拓扑关系主要有相离、相交及包含(包含于)3种,判读拓扑关系算法的具体步骤如下:

ⓐ获取线和面实体的节点坐标,建立线实体、面实体边界的函数表达,线实体Fline、面边界Farea;

ⓑ以线函数Fline依次遍历面实体边界Farea,判断线与面的相交关系,如存在公共结点,则结束算法,线与面相交,否则,就只存在两种可能的拓扑关系即相离、包含,转到c。

ⓒ从线上任意取一点,通过改进扫描线算法[18]判断该点与面实体的拓扑关系,即可判断出线与面实体是相离或包含,结束算法。

通过上述算法筛选出于风险区相离的道路,进行下一步路径规划。

(2)基于路网分层的Dijkstra算法路径规划原理。本系统出于实际应用的考虑,道路具有不同的等级,基于地图分层的搜索算法[19-20]是根据道路等级来对路网进行分层,等级越高的道路其出行条件越优越,应优先选择。系统在剔除掉与风险区相交或包含的道路后,对余下的道路按等级进行分层。过多的层级会存在存储过多重复的路网数据,分层之间道路的连通性以及规划结果的绕远等问题[21]。因此通过综合考量系统将道路分为两层:高速公路、国道、省道以及快速路、主干道为第2层,第1层为县道、乡道以及次干道和支路。

Dijkstra算法[22]是狄克斯特拉于1959年提出的解决此问题的一般算法,系统将路网抽象为带权有向图G,设置一个起点v,通过Dijkstra算法能求出v到其他节点的最短路径。

整个基于路网分层的Dijkstra算法路径规划算法的具体步骤如下:

ⓐ加载所有的路网数据,并对路网数据进行分层。

ⓑ设置路网中的任意两个节点作为路网始点S与终点E,如S与E都为第2层路网节点,即在第2层路网中使用Dijkstra算法完成路径规划,结束算法。其他情况,转入c。

ⓒ采用Dijkstra算法求得第2层路网中距离始点S与终点E最近节点作为新的起点和终点,分别记为S′和E′,求得S到S′的路径为d1,E到E′的路径为d2。

ⓓ在第2层路网中采用Dijkstra算法计算得到S′到E′的最短路径d3。

ⓔ得到最优路径D=d1+d2+d3,算法结束。

3.2 功能设计

3.2.1安卓端功能设计

安卓端主要由学生使用,可以实现学生信息与账号的绑定,并集成校内、校外两大防疫功能模块,安卓端的功能设计如图2所示。

图2 安卓端功能设计

安卓端软件首先进入注册与登录界面,学生输入个人信息完成注册。

校内防疫模块集成了三个功能:健康打卡功能、领取绿码功能、扫一扫功能;校外防疫模块集成了四个功能:风险地图功能、个人轨迹功能、防疫导航功能、危险围栏功能。

目前校内防疫模块已经十分成熟,因此下面主要介绍校外防疫模块:

(1)风险地图功能。在学生申请外出后,本系统使用爬虫技术从互联网上收集各省市的疫情相关数据,并基于多尺度疫情风险指数评估原理和划分风险区域阈值选取原理,制作全国疫情风险等级地图。

(2)个人轨迹功能。安卓端软件向用户申请定位权限,在用户同意后实时记录学生的外出轨迹。如果学生长时间暴露在高风险区域,安卓端软件会将其外出路径信息反馈到网页端管理平台进行记录,并在其返校后进行隔离。

(3)防疫导航功能。外出申请批准后,学生可输入目的地,安卓端软件将筛选出未经过高风险区域的最优路径,为外出学生提供导航服务。

(4)危险围栏功能。在全国疫情风险等级地图的高风险区域设置危险围栏。当外出学生偏离最优路径并处于危险围栏中,安卓端软件会提醒学生离开该区域。

3.2.2网页端功能设计

网页端主要由学校管理人员使用,集成了日常管理、地图显示、数据分析、通知等模块,是系统的管理平台。网页端的功能设计如图3所示。

图3 网页端功能设计

如图3所示,网页分为五个模块:

(1)首页。集成了二个功能:今日热点、疫情新闻。

(2)日常管理.集成了三个功能:打卡管理、请假管理、预约管理。

(3)地图显示.集成了四个功能:显示位置、轨迹查询、地理围栏、风险等级。

(4)数据分析。集成了两个功能:出校学生分析、未打卡学生分析。

(5)通知。通过网页端管理平台,学校管理人员可以对学生的外出申请进行审批,并通过学号查询该外出学生的出行轨迹。网页端管理平台也能在地图上可视化疫情风险等级。此外网页端管理平台还具有一定的辅助分析功能,生成实时外出学生人数折线图。

4 系统测试与模拟应用

设计完成后的网页端管理平台学生外出管理页面,单击地图显示界面的【轨迹查询】按钮,可以激活轨迹查询功能,输入要查询的学生的学号,单击查询按钮,以红色折线显示该学生的轨迹情况。

同时单击地图显示界面的【风险等级】按钮,系统将会把地区风险等级可视化数据加载到地图上。

设计完成后的安卓端学生使用平台主界面、风险地图、防疫导航功能如图4所示,点击主页面的风险等级,跳转至风险等级页面,可查看当地风险等级。点击主页面的防疫导航按钮,即可跳转到防疫导航页面,选择搜索框输入相应的地名。点击导航按钮,规划路线,开始导航。

在系统通过测试后,邀请了58名志愿者(其中57名在校学生,1名老师)下载安装软件,在郑州大学展开了初步模拟应用,在模拟应用期间,系统各项功能均可以有效稳定的运行,志愿者在模拟期间进行了125次出行活动,其中98次市内出行,27次省内出行,均无一感染。

5 结束语

目前我国已进入常态化疫情防控阶段,各大高校急需加强校园外的学生防疫管理。本系统能实现对学生校外活动的实时监控,辅助学生出行,为疫情背景下高校管理工作进行了有力的支持与补充,具有极强的实用价值。

猜你喜欢
网页尺度因子
我刊2021年影响因子年报
基于HTML5与CSS3的网页设计技术研究
财产的五大尺度和五重应对
一些关于无穷多个素因子的问题
影响因子
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
基于URL和网页类型的网页信息采集研究
宇宙的尺度
扮靓爱车拒绝潜伏危险因子