許健豪 楊 虎 王 迪 彭 松 張欣佳
(鄭州大學 地球科學與技術學院, 河南 鄭州 450001)
2021年上半年,由于我國疫情得到了有效地控制并進入常態化管理階段,全國高校相繼開學,并推出了一系列學生在校管理措施,包括但不限于:利用大數據統計分析實時掌握學生在校園內的行動軌跡與人員聚集情況,封閉式校園管理嚴格控制人員進出[1]。隨著國內疫情的進一步緩解,校園的部分開放勢在必行。但現有措施僅能于對學生在?;顒舆M行監測和管理,缺少校外管控。一旦有學生自危險區域返回而不主動上報,校園的高人口密度和高人口接觸水平可能使得傳染病的傳播能力更強[2],將對在校師生的人身安全產生巨大的威脅。
而安卓(Android)技術是一個真正意義上的開放性移動設備綜合平臺。Android打破了應用之間的界限,比如開發人員可以把萬維網(world wide web, Web)上的數據與本地的聯系人、時間、位置信息結合起來,為用戶創造全新的體驗[3]。疫情防控中可以結合基于位置服務(location based services,LBS)技術,獲取用戶位置信息,配合現有的防疫措施。
Web技術可以提供一個可以突破時空局限、交流各種信息的互動平臺,使得用戶無論身在何處,都能夠通過網絡充分共享全社會的智慧。Web技術與數據庫技術結合,實現了海量數據的可視化調用,便于數據分析,能夠在疫情中收集各種風險數據,并提供分析結果供決策者定奪[4]。
網絡編程最主要的工作就是在發送端把信息通過規定好的協議進行組裝包,在接收端按照規定好的協議把包進行解析,從而提取出對應的信息,達到通信的目的。使用網絡編程框架實現分布式計算業務可以大大提高開發效率,開發者只需要在事件驅動框架中設計一個狀態機去維護上層的非阻塞業務邏輯,將阻塞業務邏輯交由多線程框架中處理,根本不用過多關心底層的實現,可以將精力更多地放在業務邏輯的實現上[5]。
爬蟲技術的使用可以抓取互聯網上用戶所需要的信息,利用數據清洗可以進一步提高數據質量,結合合適的主題描述與定義,可以提高爬蟲抓取效率[6],應用爬蟲技術,讓疫情數據的獲取事半功倍。
基于以上情況,本研究基于疫情風險指數評估、疫情風險區域劃分、避障路徑規劃等算法,并結合Android開發、Web開發、派森(Python)爬蟲技術、網絡編程等關鍵技術,提出并實現了一種新冠肺炎疫情背景下學生外出避險導航系統。系統旨在填補大學生校外管理方面的空白,進一步保障在校人員的安全。
本系統旨在新冠肺炎疫情防控常態化背景下,對校園防疫管理進行升級以填補學生外出管理方面的空缺,提高校園安全管理的科學性、針對性以及管理效率,更好為學校校園安全管理服務[7]。
(1)集成現有防疫管理系統,滿足學生日常打卡、外出申請等需求。
(2)合理劃分風險區域并能實現高精度定位。
(3)對用戶途徑風險區域進行預警、記錄以及實時上報。
(4)為用戶出行提供導航和避險路徑規劃服務。
本系統用到的疫情風險指數評估、基于路網分層的Dijkstra算法路徑規劃等算法均已成熟理論為基礎,項目組成員具有相應的知識儲備可以結合系統的應用實際進行修改和優化。本系統利用了Android開發、Web開發、Python爬蟲技術、網絡編程等關鍵技術。
Android開發基于Android Sudio并利用高德地圖應用程序編程接口(application programming interface,API) 進行開發,為系統提供了移動端用戶平臺,負責記錄并發送學生出行數據,提供各類輔助出行功能。Web開發基于VS Code使用Vue框架進行開發,為系統提供了網頁端數據管理與分析平臺,負責接收并管理數據,進行數據統計與分析。Python爬蟲技術基于PyCharam通過編寫Python語言對疫情詳情網頁進行數據爬取,利用BeautifulSoup逐一解析關鍵數據,保存至數據庫中。網絡編程技術利用Socket套接字使用TCP建立起各個客戶端與服務端的數據通信,構成了數據通信的橋梁。
最終系統的總體實現流程如下:移動端平臺提供用戶數據發送至Web服務器,Python爬取疫情數據并保存在數據庫中,利用網絡編程技術進行數據的寫入與讀取,數據將在客戶端網頁進行可視化處理與分析,并將響應結果傳回至移動端,同時在移動端平臺進行可視化顯示。以上技術均為成熟技術。除了需要添加少數傳感器設備外可在現有計算機、通信網絡、移動終端基礎上完成系統的搭建。
該避險導航系統使用現有移動通信網絡,將手持移動終端與網頁端管理平臺進行統籌結合,本系統的總架構如圖1所示。

圖1 系統總架構
本系統有系統支持層、眾源數據層、數據處理層、應用實現層及用戶層五個層級組成:
(1)系統支持層。利用現有移動通信網絡建立中心服務器、移動端應用程序(application,APP)、網頁端管理平臺,另有多種傳感器設備如紅外溫度傳感器為上層服務提供必要的支撐。
(2)眾源數據層。接受來自互聯網、移動終端、用戶以及管理平臺的各類眾源數據,包括疫情數據、時空數據、終端數據、用戶數據等,為數據處理層做準備。
(3)數據處理層。主要進行疫情數據和用戶位置數據的處理。
(4)應用實現層?;谝陨蠈蛹壍闹С?實現學生在疫情背景下校園外活動管理與輔助的全過程。包括路徑規劃、實時監控、高風險預警三個主要模塊。
(5)用戶層。主要面向外出學生以及學校的管理人員,管理人員可以通過網頁管理平臺對持有手機的外出學生進行管理,外出學生可以根據提供的移動端APP來選擇合適的路徑出行避開疫情高風險區域。
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.1安卓端功能設計
安卓端主要由學生使用,可以實現學生信息與賬號的綁定,并集成校內、校外兩大防疫功能模塊,安卓端的功能設計如圖2所示。

圖2 安卓端功能設計
安卓端軟件首先進入注冊與登錄界面,學生輸入個人信息完成注冊。
校內防疫模塊集成了三個功能:健康打卡功能、領取綠碼功能、掃一掃功能;校外防疫模塊集成了四個功能:風險地圖功能、個人軌跡功能、防疫導航功能、危險圍欄功能。
目前校內防疫模塊已經十分成熟,因此下面主要介紹校外防疫模塊:
(1)風險地圖功能。在學生申請外出后,本系統使用爬蟲技術從互聯網上收集各省市的疫情相關數據,并基于多尺度疫情風險指數評估原理和劃分風險區域閾值選取原理,制作全國疫情風險等級地圖。
(2)個人軌跡功能。安卓端軟件向用戶申請定位權限,在用戶同意后實時記錄學生的外出軌跡。如果學生長時間暴露在高風險區域,安卓端軟件會將其外出路徑信息反饋到網頁端管理平臺進行記錄,并在其返校后進行隔離。
(3)防疫導航功能。外出申請批準后,學生可輸入目的地,安卓端軟件將篩選出未經過高風險區域的最優路徑,為外出學生提供導航服務。
(4)危險圍欄功能。在全國疫情風險等級地圖的高風險區域設置危險圍欄。當外出學生偏離最優路徑并處于危險圍欄中,安卓端軟件會提醒學生離開該區域。
3.2.2網頁端功能設計
網頁端主要由學校管理人員使用,集成了日常管理、地圖顯示、數據分析、通知等模塊,是系統的管理平臺。網頁端的功能設計如圖3所示。

圖3 網頁端功能設計
如圖3所示,網頁分為五個模塊:
(1)首頁。集成了二個功能:今日熱點、疫情新聞。
(2)日常管理.集成了三個功能:打卡管理、請假管理、預約管理。
(3)地圖顯示.集成了四個功能:顯示位置、軌跡查詢、地理圍欄、風險等級。
(4)數據分析。集成了兩個功能:出校學生分析、未打卡學生分析。
(5)通知。通過網頁端管理平臺,學校管理人員可以對學生的外出申請進行審批,并通過學號查詢該外出學生的出行軌跡。網頁端管理平臺也能在地圖上可視化疫情風險等級。此外網頁端管理平臺還具有一定的輔助分析功能,生成實時外出學生人數折線圖。
設計完成后的網頁端管理平臺學生外出管理頁面,單擊地圖顯示界面的【軌跡查詢】按鈕,可以激活軌跡查詢功能,輸入要查詢的學生的學號,單擊查詢按鈕,以紅色折線顯示該學生的軌跡情況。
同時單擊地圖顯示界面的【風險等級】按鈕,系統將會把地區風險等級可視化數據加載到地圖上。
設計完成后的安卓端學生使用平臺主界面、風險地圖、防疫導航功能如圖4所示,點擊主頁面的風險等級,跳轉至風險等級頁面,可查看當地風險等級。點擊主頁面的防疫導航按鈕,即可跳轉到防疫導航頁面,選擇搜索框輸入相應的地名。點擊導航按鈕,規劃路線,開始導航。

在系統通過測試后,邀請了58名志愿者(其中57名在校學生,1名老師)下載安裝軟件,在鄭州大學展開了初步模擬應用,在模擬應用期間,系統各項功能均可以有效穩定的運行,志愿者在模擬期間進行了125次出行活動,其中98次市內出行,27次省內出行,均無一感染。
目前我國已進入常態化疫情防控階段,各大高校急需加強校園外的學生防疫管理。本系統能實現對學生校外活動的實時監控,輔助學生出行,為疫情背景下高校管理工作進行了有力的支持與補充,具有極強的實用價值。