
地理空间数据帮助我们了解地球上的各种事物和现象的位置。比如,我们想知道哪里最适合开设新的店铺,天气如何影响某个区域的销售,哪里是最理想的旅行路线,或是哪里受到了严重的自然灾害影响等。这些问题都能通过空间数据技能来得到答案。今天我们来探索这个有趣的技术,从一个案例研究开始:霍乱是如何在一个城市中爆发的。
我们首先需要学习关于地理空间数据的一些基本概念。矢量数据描述的是事物的形状和位置,例如道路网络、建筑物或地理位置等。栅格数据则是像卫星图像一样的像素网格,每个像素都有相应的值或颜色。接下来是坐标参考系统(CRS),它帮助我们确定地球置的精确位置。我们还会介绍一些工具,如地理配准和地理编码等。这些都是为了更好地理解后续案例分析的内容。
在我们的案例中,要探究的是约翰·雪所开展的关于1854年伦敦宽街霍乱爆发的分析。那时的约翰雪使用了当时的地图数据来确定爆发的源头。现在的我们可以使用先进的工具来重现这次分析。
首先我们从网上下载了相关的数据并将其解压。数据包括了死亡点、水泵的位置、数字化地图等信息。我们使用Python中的地理pandas库来读取这些数据。这个库允许我们像处理普通表格一样处理地理数据,同时还能处理地理空间相关的操作。
接下来我们查看数据的坐标参考系统(CRS),确保我们能够正确地在地图上展示这些数据。然后我们使用Python的绘图库matplotlib和contextily来绘制地图。我们可以看到死亡点和泵的位置分布。
我们来绘制死亡数据的图表。以’Count’列为依据,使用alpha参数使数据点的透明度为0.5,边缘颜色为黑色,并带有图例。我们将参考这个图表来进一步绘制其他内容。
通过以下代码,我们在原始图表上进一步绘制了泵的位置,并用红色的X标记它们。我们将图表放大至15×15的尺寸以便更好地展示数据。
对于伦敦宽街的地图,我们可以利用上下文来读取坐标参考系统(CRS)的数据。在绘制死亡数据和泵的位置后,我们通过add_basemap函数将地图添加到图表上。需要注意的是,如果没有指定crs参数,地图将失去意义。
接下来,我们想要查看在John Snow的原始地图上的相同数据。要做到这一点,我们只需将源参数更改为SnowMap.tif即可。同样地,我们在图表上添加了地图,并使用了Snow手绘的原始地图。
通过观察图表,约翰·雪兰发现大多数霍乱死亡病例都集中在Broad Street和Leton Street交叉口的一个特定水泵周围(地图中间附近的红色X)。他将这次爆发归因于该水泵的受污染水源。有趣的是,自1854年以来,这个地区几乎没有发生变化。
