GIS中制作确诊病例动态分布图(附练习数据)
一、元数据介绍
BorderA_L:我国政区陆界矢量线文件
Island_R:南海诸岛矢量面文件
Provinve_R:我国各省份矢量面文件
病例数据
文末有数据下载链接
二、操作步骤
(一)疫情统计数据的检索
在浏览器中搜索腾讯疫情,打开网址,寻找我们需要的数据;我们要做的是我国国内各省份的累计新冠确诊病例动态分布图,所以我们要找到我国各省份以往的的累计确诊新冠病例的统计数据。
向下寻找,在“中国疫情(包括港澳台)”区块,随意选择一个省份,以上海为例,点击详情进入该省份实时疫情的界面,记住“累计确诊”上面的数字“17044”。
右键点击空白处选择“检查”,选择“网络”,并刷新该网页,点击“搜索”,在搜索框中输入“17044”并查询,发现有两个地方出现了这串数字。
依次点击,选择“标头”,复制里面的网址并在新的标签页打开,发现下图中左侧的数据有日期、更有序,其中“confirm”为累计确诊病例,“dead”为累计死亡病例,“heal”为累计治愈病例,“confirm_add”和“newConfirm”均为新增确诊病例,“newHeal”为新增治愈病例,“newDead”为新增死亡病例,“wzz”为累计无症状新冠疫情感染者,“wzz_add”为新增无症状新冠疫情感染者。
想动手操作一下的同学呢可以试一下上面的方法,不想麻烦的同学呢,复制下面的链接就可以打开上图左侧的那个网页。
https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?province=上海&
另外我们将网址中的上海换做其他省级行政单位,比如北京,就可以看到北京的新冠疫情历史统计数据,不过呢我国有的省份名字比较长,我们在换其他省级行政单位的名字时要参考腾讯疫情主页各省级行政单位的简称,如“广西壮族自治区”简称“广西”。
(二)疫情统计数据的整理
学过编程的同学可以通过python编程语言去整理,而没学过编程的同学可以利用World文档和Excel表格进行整理。
Ctrl+A全选复制粘贴到World文档中,缩小字号后我们发现每一行所包含的东西都是固定的,这样我们就可以利用文字转表格的方法去提取,不过在此之前我们还需要一些简单的处理。
1. 去掉首行多余东西,通过观察每个{ }之间都是一组数据,但我们复制过来的就有一些串行了。
2. 我们在每一组的后面添加一个段落标记。
3. 我们主要需要的还是confirm后面的那个数字以及所对应的日期。我们可以利用World文档的替换功能将文档中所有的【"】号和删除,所有的【:】号替换成【,】号。
4. Ctrl+A全选利用文字转表格工具以逗号为分隔符绘制成表格。
5. 复制表格粘贴到Excel表中,只保留confirm后面的那一列数字,其余全部删除,其他省份进行同样的操作,并绘制到同一个表格当中。
6. 不过我们在把疫情统计数据导入到ArcMAP里之前还需要进行最后一个操作,就是把表格复制转置粘贴,将横向排列的省份变为竖向排列,需要注意的是,日期的格式要设置为文本型,这样方便我们在导入数据以后属性表字段名称为日期。
(三)将统计数据连接到矢量图层
在这一步可能会遇到一个问题就是没有注册类的问题。
我们有两个解决办法,第一个方法就是将Excel文件另存为后缀名为.xls的文件。
第二个方法就是利用ArcMAP软件中的Excel To Table工具,将Excel表格转成ArcMAP软件中的表。
在进行连接时选择基于NAME连接。
连接完成后疫情统计数据只是暂时的出现在图层的属性表中,并不真正属于该图层,要使疫情统计数据真正属于该图层,就需要我们将该图层的数据导出为另一个图层。
右键图层选择Data,接着选择Export Data,然后选择好保存地址即可完成。
(四)绘制动态图
加载上个步骤导出的图层,并打开属性表查看。
接下来我们要将日期由横向变为纵向,这里需要数据管理工具集里的转置工具。
工具位置:ArcToolbox -> Data management tools -> Fields -> Transpose Fields。
Input Table框中输入需要转置的图层。
Fields To Transpose框中将所有的日期都勾选上。
Output Table框中填入保存的位置并命名。
Transposed Field框中填入的是日期所组成的字段的名称。
Value FieldCases框中填入的是转置前日期对应的值在转置后所组成的字段的名称。
Attribute Fields (optional)勾选Shape和Name既可。
需要注意的是Cases字段的类型为String,在后面分级渲染时无法被电脑识别。
我们需要添加新的字段并更改字段类型为Long Integer,利用字段计算器将Cases字段里的数值导入到新的字段当中去。
另外Date字段的类型也为String,在后期设置时间滑块式同样无法被电脑,所以需要我们新建一个字段,并更改字段类型为Date,输入如下公式完成字段内容的更新。
cdate(Left([Date],4)&" - "&Mid([Date],5,2 )&" - "&Right([Date],2))
右键含有疫情数据的图层,选择Properties,在Symbology选项卡中进行分级渲染。在Symbology选项卡中Show:列表选择Quantities下的Graduated colors;在Value右侧的下拉菜单中选择CASES_1;在Color Ramp右侧的下拉菜单中选择喜欢的渐变颜色;点击Classes设置分级的数量;点击Classify,在Classification对话框右侧Break values中设置各个级别的中断值。
在Time选项卡中添加时间属性,首先勾选Enable time on this layer,其次在Time Zone右侧下拉菜单中选择北京。
在Labels选项卡中勾选Label features in this layer,点击应用,如果出现重复标注的情况,只需要点击Labels选项卡中的Placement Properties...,在弹出的Placement Properties对话框中的下方选择Remove duplicate labels即可。
点击Time Slider添加时间滑块,点击Options,在Time Slider Options对话框中,点击Time Display选项卡,在Time zone右侧的下拉菜单中选择北京时区。
点击Playback选项卡,在Display data for each timestamp下方可以更改滑块指针速度。
完成设置后点击Export to Video即可导出为视频。
数据下载
发送数字1771获取下载链接文件名:GIS动态分布图
学GIS的你,是时候自己做张中国地图了(附行政区划数据下载)