国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Python和FME下的疫情數(shù)據(jù)可視化

2021-01-26 08:34譚仁春馬藝文陳俊偉
地理空間信息 2021年1期
關(guān)鍵詞:調(diào)用時(shí)序時(shí)空

譚仁春,江 威*,馬藝文,陳俊偉

(1.武漢市測繪研究院,湖北 武漢 430022;2.武漢市自然資源和規(guī)劃信息中心,湖北 武漢 430014;3.湖北金拓維信息技術(shù)有限公司,湖北 武漢 430223)

時(shí)間和空間是現(xiàn)實(shí)世界最基本最重要的屬性,有研究表明,現(xiàn)實(shí)世界中的數(shù)據(jù)超過80%與地理位置有關(guān)[1]。地理信息系統(tǒng)(GIS)技術(shù)的出現(xiàn)和發(fā)展,為傳染病的研究工作提供了強(qiáng)有力的工具和獨(dú)特的研究方法[2]。3S 技術(shù)的發(fā)展與應(yīng)用,成為從時(shí)間和空間上跟蹤、監(jiān)測傳染病蔓延、傳播的重要手段,尤其是涉及大范圍、多因素的動(dòng)態(tài)研究,多源多時(shí)相多尺度的空間數(shù)據(jù)更能體現(xiàn)出其獨(dú)特優(yōu)勢[3]。3S 技術(shù)和時(shí)空大數(shù)據(jù)等信息化技術(shù)的高速發(fā)展和應(yīng)用,為傳統(tǒng)的各類公共衛(wèi)生信息和數(shù)據(jù)提供了豐富的分析方式和手段,改變了數(shù)據(jù)分析理論滯后和分析技術(shù)缺失的現(xiàn)狀,可以充分挖掘數(shù)據(jù)的隱含知識和潛在應(yīng)用價(jià)值。

傳染病的防治和應(yīng)對是健康城市建設(shè)的重要方面[4]。在人口流動(dòng)不斷加快加大、全球重大傳染病疫情頻發(fā)的時(shí)代,傳染病預(yù)防控制工作已成為我國可持續(xù)發(fā)展工作的重要組成部分[5]。新型冠狀病毒肺炎是近百年來人類遭遇的影響范圍最廣的全球性大流行病,對全世界是一次嚴(yán)重危機(jī)和嚴(yán)峻考驗(yàn),人類生命安全和健康面臨重大威脅[6]。應(yīng)從數(shù)據(jù)分析的角度,對歷史數(shù)據(jù)進(jìn)行深入的結(jié)構(gòu)性分析,從中挖掘出具有社會(huì)意義和理論價(jià)值的知識,作為決策的科學(xué)依據(jù)[7]。結(jié)合GIS 領(lǐng)域的中間件工具FME 和面向?qū)ο蟮淖匀婚_發(fā)語言Python,本文設(shè)計(jì)了一套獲取COVID-19 數(shù)據(jù)并繪制疫情地圖的算法流程,實(shí)現(xiàn)了疫情數(shù)據(jù)獲取、展示、發(fā)布和應(yīng)用的集成管理。

1 技術(shù)路線

FME 是空間數(shù)據(jù)轉(zhuǎn)換處理系統(tǒng),提供了完整的空間ETL 解決方案。ArcPy 是一個(gè)Python 站點(diǎn)包,通過Python 實(shí)現(xiàn)地理數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理和地圖自動(dòng)化。Anaconda 是一個(gè)用于科學(xué)計(jì)算的開源Python 發(fā)行版本,提供跨平臺的包管理和環(huán)境管理功能,可以很方便地解決多版本Python 并存、切換以及各種第三方包安裝問題。在跨平臺整合方面,F(xiàn)ME Workbench 中可實(shí)現(xiàn)fmepython、ArcPy 和Anaconda 的集成,只需在模板調(diào)試時(shí)配置Python 編譯器分別指向Anaconda 和ArcPy 即可。由于fmepython 尚未封裝為獨(dú)立包,脫離FME Workbench 開發(fā)平臺和環(huán)境后,無法調(diào)用fmepython 和FME Workbench 中的轉(zhuǎn)換器。目前通過PyCharm 等IDE 支持ArcPy 和Anaconda 的集成,不能調(diào)用fmepython。

結(jié)合現(xiàn)有的平臺軟件和專業(yè)化工具,本文設(shè)計(jì)了時(shí)空疫情大數(shù)據(jù)可視化技術(shù)路線,最終形成發(fā)布為Web 應(yīng)用的疫情時(shí)序變化地圖。技術(shù)路線包括數(shù)據(jù)抓取、數(shù)據(jù)清洗、數(shù)據(jù)可視化和疫情地圖發(fā)布4 個(gè)關(guān)鍵步驟,如圖1 所示。

圖1 技術(shù)路線圖

2 疫情數(shù)據(jù)抓取與清洗

2.1 數(shù)據(jù)抓取

基于Python 和FME,本文設(shè)計(jì)了疫情聚合數(shù)據(jù)抓取的兩條技術(shù)路線:①在FME Workbench 中調(diào)用Anaconda 抓取數(shù)據(jù),再結(jié)合fmepython 和其他轉(zhuǎn)換器進(jìn)行數(shù)據(jù)預(yù)處理和輸出;②在PyCharm 中調(diào)用Anaconda抓取數(shù)據(jù),保存為xls 格式或其他格式到本地。

兩條技術(shù)路線均可從丁香園、騰訊網(wǎng)和其他發(fā)布網(wǎng)頁上爬取疫情數(shù)據(jù)。數(shù)據(jù)源不同解析時(shí)采用的方法略有不同,但核心步驟基本為:①網(wǎng)頁端獲取數(shù)據(jù);②JSON數(shù)據(jù)標(biāo)準(zhǔn)化;③解析JSON 數(shù)據(jù);④以xls 或其他格式輸出到本地。技術(shù)路線1 在網(wǎng)頁端獲取數(shù)據(jù)時(shí)采用HTTPCaller 和HTTPExtractor 轉(zhuǎn)換器,類似于PyCharm中調(diào)用Requests 包獲取網(wǎng)頁信息。JSONFragmenter 轉(zhuǎn)換器解析JSON 數(shù)據(jù)的思路與PyCharm 中調(diào)用JSON包一致。在數(shù)據(jù)輸出方面,F(xiàn)ME 直接寫出為xls 模塊,PyCharm 中則調(diào)用Pandas 進(jìn)行表格數(shù)據(jù)輸出。

2.2 數(shù)據(jù)清洗

數(shù)據(jù)是大數(shù)據(jù)技術(shù)的核心,進(jìn)行大數(shù)據(jù)挖掘分析與應(yīng)用時(shí)大量的工作是解決數(shù)據(jù)存在的數(shù)據(jù)質(zhì)量問題[8]。數(shù)據(jù)清洗是數(shù)據(jù)質(zhì)量研究的起點(diǎn),是提高數(shù)據(jù)質(zhì)量的重要手段之一。數(shù)據(jù)清洗的目的是對海量冗余度較高的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化檢查,同時(shí)挖掘出后續(xù)數(shù)據(jù)分析和可視化等所必需的關(guān)鍵數(shù)據(jù)信息。疫情數(shù)據(jù)清洗包括時(shí)空數(shù)據(jù)一體化清洗和時(shí)空數(shù)據(jù)分省扇出。抓取到的疫情數(shù)據(jù)中存在時(shí)間和空間上的大量冗余,空間信息以省份名稱和城市名稱體現(xiàn),時(shí)間信息記錄在時(shí)間戳中。本文利用FME Workbench 中DateTime 相關(guān)轉(zhuǎn)換器和函數(shù)進(jìn)行數(shù)據(jù)清洗,主要流程為:①以省份和城市為組,按爬取時(shí)間排序;②利用DateTimeParse 函數(shù)輸出FME 格式的時(shí)間字符串;③利用DateTimeDiff 函數(shù)計(jì)算相鄰記錄的時(shí)間差;④過濾提取時(shí)間差值為1 或?yàn)榭盏挠涗洝?/p>

時(shí)空數(shù)據(jù)一體化清洗后的數(shù)據(jù)為全國范圍的疫情數(shù)據(jù),結(jié)合省份名稱扇出數(shù)據(jù),最終形成各省份疫情專題數(shù)據(jù)。數(shù)據(jù)以FME 格式的日期字符串命名,便于后續(xù)進(jìn)行時(shí)空可視化展示。

3 疫情數(shù)據(jù)可視化

3.1 FME 疫情可視化

FME Workbench 2019 中集成了Data Inspector,從而具備了數(shù)據(jù)可視化的能力。FME Workbench 中包含HTML ReportGenerator 和ChartGenerator 兩個(gè)轉(zhuǎn)換器,可用于數(shù)據(jù)成果的可視化展示。HTML ReportGenerator轉(zhuǎn)換器支持生成HTML 前端頁面,頁面中可嵌入折線圖Line、餅狀圖Pie、柱狀圖Bar 和地圖Map,也可結(jié)合具體需要進(jìn)行多種表現(xiàn)形式的展示,如圖2、3 所示。ChartGenerator 轉(zhuǎn)換器直接生成一個(gè)統(tǒng)計(jì)圖的柵格數(shù)據(jù),另存為jpg 或pdf 格式。

圖2 廣東省現(xiàn)存確診餅狀圖(2020 年4 月12 日)

圖3 廣東省治愈以及死亡柱狀圖(2020 年4 月12 日)

3.2 Pyecharts 疫情可視化

Echarts 是一個(gè)百度開源的數(shù)據(jù)可視化圖表庫,憑借其良好的交互性、精巧的圖表設(shè)計(jì),得到了眾多開發(fā)者的認(rèn)可。Python 是一種富有表達(dá)力的語言,適用于數(shù)據(jù)處理。將數(shù)據(jù)分析與數(shù)據(jù)可視化相結(jié)合,用戶可通過設(shè)置全局配置項(xiàng)和系統(tǒng)配置項(xiàng)等輕松便捷地實(shí)現(xiàn)Pyecharts 的初始化和集成展示。

本文利用2020 年3 月1 日-2020 年4 月18 日的疫情數(shù)據(jù)制作了湖北省COVID-19 疫情時(shí)序化地圖,動(dòng)態(tài)展示了湖北省各城市COVID-19 累計(jì)確診和現(xiàn)存確診情況,如圖4、5 所示。疫情時(shí)序化地圖(累計(jì)確診)由中間的地圖組件Map、底部的時(shí)間軸組件Timeline 和左下角旋轉(zhuǎn)后的柱狀圖Bar 組成。

3.3 Streamlit 輕量級Web 應(yīng)用

Streamlit 是第一個(gè)專門針對機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)團(tuán)隊(duì)的應(yīng)用開發(fā)框架,是開發(fā)自定義機(jī)器學(xué)習(xí)工具最快的方法。利用Streamlit 可搭建一個(gè)輕量級的Web 應(yīng)用,快速高效地集成展示COVID-19 疫情時(shí)序化地圖(圖6)。

圖4 湖北省COVID-19 疫情時(shí)序化地圖(累計(jì)確診)

圖5 湖北省COVID-19 疫情時(shí)序化地圖(現(xiàn)存確診)

圖6 輕量級疫情可視化Web 應(yīng)用

4 結(jié) 語

COVID-19 疫情深刻影響著人類的發(fā)展進(jìn)程,在數(shù)據(jù)抗疫和科技抗疫技術(shù)理念的驅(qū)動(dòng)下,本文利用Python和FME 極大地提升了數(shù)據(jù)爬取、可視化、數(shù)據(jù)挖掘和分析的效率,并將疫情數(shù)據(jù)與手機(jī)信令等活動(dòng)軌跡大數(shù)據(jù)進(jìn)行融合,可模擬和預(yù)測疫情發(fā)展趨勢。

猜你喜歡
調(diào)用時(shí)序時(shí)空
跨越時(shí)空的相遇
基于Sentinel-2時(shí)序NDVI的麥冬識別研究
鏡中的時(shí)空穿梭
核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
玩一次時(shí)空大“穿越”
基于FPGA 的時(shí)序信號光纖傳輸系統(tǒng)
一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
時(shí)空之門