0%

基于ArcGIS的新冠病毒分析与数据可视化

一、 前言

(一) 背景与意义

2019新型冠状病毒(2019-nCoV),于2019年武汉病毒性肺炎病例而被发现,是以前从未在人体中发现的冠状病毒新毒株,给我们国家带来了巨大的伤痛,困扰了每一个家庭,给原本该喜气洋洋的春节蒙上了一层阴影。

(二) 前期数据收集

基于ArcGIS等,我们可以分析不同时期病毒的感染情况,并针对一段时间进行数据可视化,以便于横向对比,便于专业人员直观地获取信息并分析。
收集数据的途径如下:
(1) 矢量图:省级行政区.shp、省会城市.shp 、武汉市区划、县道等shp矢量文件;
(2) 武汉社区风险度.xlsx ; (3) 百度实时疫情大数据; (4) 武汉市矢量地图(shp) ;(5) 百度地图坐标拾取

二、 基于ArcGIS的新冠病毒分级统计图分析

(一)ArcGIS的操作简要流程

  1. 在ArcGIS建立新的地图模板;
  2. 导入省级行政区.shp、省会城市.shp;
    在这里插入图片描述
  3. 根据省级行政区矢量图属性表找到省字段,对应的字段名为NAME,故收集好不同省的确诊人数、治愈人数以及死亡人数,将省对应的列头改为NAME,其余可不改,保存为以逗号隔开的csv文件;
    在这里插入图片描述
  4. 导入csv文件,并链接到省级行政区,待字段匹配后即可进行后续操作;
    在这里插入图片描述
    在这里插入图片描述
  5. 右键在“符号系统-分级色彩”设定不同的级别与对应的颜色,制作分级统计图。
    在这里插入图片描述

    (二)最终效果

    加上图例等,最终结果如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ==图1 全国新型冠状病毒肺炎情况(2-19-组图)==

三、 基于ArcGIS的武汉社区风险度图

(一)获取坐标

从百度地图拾取出以下街道办事处的坐标(推荐:python读取字段自动执行):
在这里插入图片描述
在这里插入图片描述
==表1 武汉部分社区感染风险度与坐标(XY-BL)==

(二)ArcGIS简要操作步骤

在ArcGIS中,此步与第一部分全国疫情图操作类似,但不需要将矢量文件与.csv文件链接;
直接选中.csv文件显示XY坐标,并对属性进行标注,设定颜色级别等操作。
在这里插入图片描述

(三)成果

在这里插入图片描述
==图2 武汉市社区感染风险度(部分)==
从风险度分析来看,越接近武汉市中心,对应的图块面积越大,表示感染风险度越高。

四、 新冠病毒时间序列图

对腾讯实时疫情大数据进行爬取(采用Python爬虫),得到从1月14日至2月19日的数据。
代码如下(代码参照:https://blog.csdn.net/qq_41906429/article/details/104109765,略作小改):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import requests,re
import json
import csv

url = 'https://view.inews.qq.com/g2/getOnsInfo?name=wuwei_ww_cn_day_counts'
html = requests.get(url).text
unicodestr=json.loads(html) #将string转化为dict
new_list = unicodestr.get("data") #获取data中的内容,取出的内容为str

a = json.loads(new_list) #对new_list再次进行load,使其变为dict才可使用


header = ['日期', '全国确诊人数', '全国疑似病例', '全国死亡人数', '全国治愈人数']
with open('./爬取结果.csv', encoding='utf-8-sig', mode='w') as f:
#编码utf-8后加-sig可解决csv中文写入乱码问题
f_csv = csv.writer(f)
f_csv.writerow(header)
f.close()

def save_data(data):
with open('./爬取结果.csv', encoding='UTF-8', mode='a+',newline="") as f: # 防止自动换行
f_csv = csv.writer(f)
print(data)
f_csv.writerow(data)
f.close()

b = len(a)
i = 0
while i<b:
data = ("\t"+a[i]['date']) #\t解决写入csv小数(日期)自动省略前后的0问题
confirm = (a[i]['confirm'])
suspect = (a[i]['suspect'])
dead = (a[i]['dead'])
heal = (a[i]['heal'])
i+=1
tap = (data, confirm, suspect, dead, heal)
save_data(tap)
print("完成爬取----")

在这里插入图片描述
在这里插入图片描述
对应的数据进行可视化得到变化趋势图如下:

在这里插入图片描述
在这里插入图片描述
==图3 NCP变化趋势图==
从时间纵向分析,1月26日至2月17日疫情未有缓势,在2月12日突然增长。从中不难看出,在1月23日左右,由于春运所具有人员高流动性的特点,导致了之后病毒的快速传播。好消息是全国累积治愈人数呈现指数增长,疫情传播速度趋于稳定,死亡人数相对累积速度较为平缓。这不是一个冷冰冰的数字,每一个都代表一个生命,而这些离不开一线医务工作者的努力与付出,期待春天的到来,中国依旧春暖花开!

四.更多资源

关注:

-------------结束啦 我可是有底线的~ -------------

欢迎关注我的其它发布渠道