温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
作者: 彭显耿 (中山大学)
邮箱: 670276213@qq.com
目录
人类通过五种感官来感知世界。一般的,在日常生活中,我们对每一种官能的依赖程度大约是:味觉 1%、触觉 1.5%、嗅觉 3.5%、听觉 11%、视觉 83% (Gould and Roffey-Barentsen, 2018)。由此看来,人类大脑记忆图形、图像的能力远远大于文字。
由于不同色彩和几何构成的图所包含的信息要比文字多得多,而且更容易吸引我们的注意。那么自然的,好的文章需要好的图示。鉴于此,本文兴趣点便聚焦到数据可视化问题。
目前,数据可视化的实现有诸多软件和开源编程语言的支持,前者如 Tableau、GraphPad Prism、和 Origin,后者如 R、Python、Stata 和 Matlab。当然,还可以用 Excel 来画画,详见「excel居然可以画画?!见过没?」。
涉及到与地理科学相关的研究领域的可视化,即制图,如土地规划、环境治理、社会学分析和市场营销等,GIS (Geographic Information System/地理信息系统 ) 可以说是必要且充分条件。在实践术语中,GIS 是一套计算机工具,它允许人们操作与地球特定位置紧密关联的数据 (Price, 2010)。
本文旨在通过一个简单的制图实操案例,让大家感受下 GIS 的魅力!
从蔓延 (Sprawling) 到收缩 (Shrinking),是城市生命体成长的一般理论形态,是城市化发展的两个可能性阶段,也是观察和预测城市经济、环境质量、以及土地利用等状况变化的重要变量。测量和判断一座城市,乃至一个区域是蔓延还是收缩的基本指标是人口密度 (人/km2)。
美国国家航空航天局 (NASA) 依据在相对空间分布方面的国家人口普查和人口登记的数据,估算并提供了 2000 至 2020 年间,每隔五年的人口密度。这也是我们本次制图的数据。
人口密度数据来源于 NASA 的「社会经济数据和应用中心 (Socioeconomic Data and Applications Center, SEDAC)」,其界面如下:
接下来,我们要搜索并下载的数据是「UN WPP-Adjusted Population Density, v4.11」。
首先,点击界面的 DATA,选择 DATA Sets,在 ALL Fields 搜索框中输入 Population Density,如下图所示:
点击 search 后进入下一个界面,即返回符合条件的数据存档,找「UN WPP-Adjusted Population Density, v4.11」,如下图所示:
点击后进入专属页面,按照下图所示顺序,在可选下拉菜单中进行选择:
点击 Create Download 后就可以依次下载数据压缩包,如下图所示:
将压缩文件放置到自己设置的工作路径下,解压,即完成了第一步数据下载,期间要求注册的,只需按要求注册即可。
第一步:进入界面,连接数据路径:
上述操作过程,如下图所示:
第二步:导入数据、着色制图—符号系统
连接文件夹后,点击打开文件夹可以看到从 NASA 下载的数据,只需将数据拖动到中央的显示界面即可显示图像数据,如下图所示:
地图数据包括两种类型:离散型数据 (Discrete) 和连续型数据 (Continuous)。在 GIS 程序中开发的数据格式基本遵循两种基本方式:用于存储离散型数据的矢量模型,或用于存储连续型数据的栅格模型。
矢量数据采用一系列 x-y 位置来存储信息,基本的矢量对象即点、线、多边形;栅格数据则是将空间数据表示为一系列成为像元 (Cell) 或像素 (Pixel) 的小方格,优势在于简单,适合存储连续信息和快速变化的非连续信息。不同的分辨率会影响数据表达信息的精确度。
这份 NASA 的数据属于栅格数据。
拖动导入数据后,可以通过图层 “属性” 中的 “符号系统” 来选择、调整,并以自己喜欢的方式表达世界人口密度信息。
以 2000 年的数据为例:
具体操作如下图所示:
下图展示的是 2000 年世界人口密度的制图案例:
第三步:计算人口密度变化制图—栅格计算器
将 2000 年至 2020 年全球人口密度的增减变化除以 2000 年人口密度的基数,就可以得到 20 年间人口密度增长率,继而制图。
需要注意的是,这里用到 “栅格计算器” 工具及其一个重要的条件分析函数 SetNull
,具体根据下图所示找到 “栅格计算器” 并双击打开。
SetNull
函数可以将特定的值赋为空值,否则制作出来的图会由于原先区域是无人区或人口密度特别小而导致密度变化特别大。
SetNull
的语法是:
SetNull (in_conditional_raster, in_false_raster_or_constant, {where_clause})
in_conditional_raster
表示输入栅格以表示所需条件的真或假;in_false_raster_or_constant
表示如果前置条件为假,则后置的值将用作输出栅格值的输入;where_clause
表示一种逻辑表达式,它决定输入栅格哪个为真,哪个为假;应用案例:
SetNull(“X” == x, “X”)
:设置 X 图层中值为 x 的为 nodata,其余值为原始数据;SetNull(“X” == x, y)
:设置 X 图层中值为 x 的为 nodata,其余值为 y。本例中,需要进行以下设置:
先分别 SetNull 2000 和 2020 年的数据,将人口密度小于 11 (人/km2) 的栅格值设置为 nodata:
SetNull("gpw_v4_population_density_adjusted_to_2015_unwpp_country_totals_rev11_2000_30_sec.tif"<11,"gpw_v4_population_density_adjusted_to_2015_unwpp_country_totals_rev11_2000_30_sec.tif")
SetNull("gpw_v4_population_density_adjusted_to_2015_unwpp_country_totals_rev11_2020_30_sec.tif"<11,"gpw_v4_population_density_adjusted_to_2015_unwpp_country_totals_rev11_2020_30_sec.tif")
注意在 “输出栅格” 选项中选择一开始新建的 “文件地理数据库”,注意命名时不可以有特殊符号,还不可以以数字开头;
再计算人口密度的变化:
(“null2020” - “null2000”) / “null2000”:在 SetNull 并保存结果的时候,
最后参考前文符号系统进行着色,即可得到下图:
第四步:地图制作——指南针、比例尺、图例
在 “视图” 和 “插入” 中分别选择 “布局示图” 和诸地图要素,如下图所示:
这部分的自由度很高,最后加入 “world” 世界地图的图层作为底图,即可得到下图:
一个直观的判断是收缩的东欧、扩张的非洲和印度、以及不平衡的中国,这可以为我们的研究提供一个世界的图景和比较的视角。
曾经听一位地理科学学院的老师说:
一个 GIS 就可以是一个学科,你读个七八年都不一定能真正掌握这个工具、理解它背后的原理。
但从这个简单的制图案例,大家已经可以感受到 GIS 的魅力,即使还只是依样画葫芦。不敢说这是件艺术品,但视觉效果并不比其他软件制作的逊色。
条条大路通罗马,技多不压身, GIS 可以是众多可视化方案之一。
期待后续更多的实操分享!
连享会-直播课 上线了!
http://lianxh.duanshu.com
免费公开课:
直击面板数据模型 - 连玉君,时长:1小时40分钟 Stata 33 讲 - 连玉君, 每讲 15 分钟. 部分直播课 课程资料下载 (PPT,dofiles等)
支持回看,所有课程可以随时购买观看。
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 ⭐ | DSGE, 因果推断, 空间计量等 | |
⭕ Stata数据清洗 | 游万海 | 直播, 2 小时,已上线 |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会学习群-常见问题解答汇总:
✨ https://gitee.com/arlionn/WD
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh