今天给大家分享的是关于地理空间的数据分析

数据璐

大数据分析岗位推荐师

我们做数据分析之前首先要了解业务

地理空间数据可以用来描述地球表面的任何物体或特征,举几个常见的例子来帮助大家理解

比如:一个品牌的下一家店应该开在哪里?

天气如何影响区域销售?

开车的最佳路线是什么?

哪个地区将受到飓风的严重打击?

冰盖融化与碳排放的关系如何?

哪些地区将面临最高的火灾风险?

本次案例中我们用到的是geopandas和shapely,它们是用Python进行地理空间分析的两个最有用的库

Shapely - 一个允许操作和分析平面几何对象的库。

Geopandas - 一个允许你处理代表表格数据的shapefiles的库(如pandas),其中每一行都与一个几何体相关。它提供了对许多空间函数的访问,用于应用几何图形、绘制地图和地理编码。Geopandas内部使用shapely来定义几何图形。

基本的shapely对象是点、线和多边形,但你也可以在同一个对象中定义多个对象,然后你就获得了多点、多线和多角形。这些对于由各种几何形状定义的对象很有用,比如有岛屿的国家。

出于其直接且直观的特性,我们可以用shapely库做很多很多的事情,所以一定要仔细查看文档

另一个用于处理地理空间数据的工具是geopandas

我们知道pandas 的 DataFrames 表示表格数据集,同样地,geopandas 的 DataFrames 表示的是有两个扩展功能的表格数据集。

1、geometry列定义了一个与其他列相关的点、线或多边形。这一列是一个shapely对象的集合。你能对shapley的形状对象做什么,你也能对geometry对象做什么。

2、CRS列是geometry列的坐标参考系统,它告诉我们一个点、线或多边形在地球表面的位置。Geopandas将一个几何体映射到地球表面(例如,WGS84)。

数据框架还包括一个CRS,将geometry列中定义的多边形映射到地球表面。

在我们今天的案例中,CRS是EPSG:4326。该CRS使用纬度和经度作为坐标。

在做可视化的过程中,我们可以在world_gdf上调用.plot(),就像调用pandas的dataframe一样。

当然这个图看起来比较粗糙哈,我们改进一下

我们改为墨卡托投影,因为它更方便。使用参数to_crs('epsg:4326')可以做到这一点

然后将色条转换为对数刻度,这可以用matplotlib.colors.LogNorm(vmin=world.pop_density.min(), vmax=world.pop_density.max())来实现

我们可以像在matplotlib上直接传递不同的参数给绘图函数。

这个图比上面那个图看起来就好多了吧~

到目前为止,我们已经简单了解了shapely和geopandas的基本知识啦,接下来就来看看今天的案例

案例研究的主题是80年代欧洲霍乱爆发的来源

我们将使用现代的Python工具重做约翰-斯诺的分析,确定80年代伦敦霍乱爆发的来源。

我们首先来看看数据文件中都包含了什么

矢量数据:

Cholera_Deaths : 某一空间坐标上的死亡人数

Pumps:水泵的位置

我们可以忽略矢量数据的其他文件,只处理'.shp'文件。.shp被称为shapefiles,是矢量对象的标准格式。

光栅数据:

OSMap_Grayscale : 光栅--来自OpenStreet Maps (OSM)的该地区的地理参照灰度地图

OSMap : 光栅--来自OpenStreet Maps (OSM)的该地区的地理参考图

SnowMap : 光栅 -- 数字化和地理参照的约翰-斯诺的原始地图

我们可以忽略栅格数据的其他文件,只处理'.tif'文件。'.tif'是存储光栅和图像数据的最常见的格式。

在导入了geopandas和matplotlib之后,我们再导入用于绘制地图的contextily就好

输出结果看起来和pandas数据框架完全一样,与geopandas的数据框架唯一不同的是几何列,那这个是我们矢量数据集的本质。

在本次案例中,它包括了约翰-斯诺记录的死亡点的坐标。

然后我们来看看CRS的数据是什么样子的:

有一个区别是正确定义的形状文件包括阐明其坐标参考系统的元数据

在这种情况下,它是EPSG:27700。

然后来看一下水泵的数据:

同样,pump_df保存了Broad Street附近的水泵的位置。

我们需要注意的是!!!在处理地理空间数据时,应该确保我们的所有来源都有相同的CRS。这一点需要强调强调再强调。

这可能是处理地理空间数据时所有错误的最常见来源

然后接下来,我们可以在伦敦布罗德街的地图上绘制死亡和泵的数据

首先通过绘制死亡人数来建立该图

有了ax的参考,我们就可以在它们的位置上绘制水泵,用红色的X标记它们, 我们还可以把图放大。

有了ax的参考,我们就可以在它们的位置上绘制水泵,用红色的X标记它们, 我们还可以把图放大。

随后,我们现在想在数据下面显示一张伦敦布罗德街的地图。这时我们可以使用contextily来读取CRS的数据。

我们在约翰-斯诺的原始地图上来看看同样的数据,可以通过改变source参数为SnowMap.tif

结论:

约翰-斯诺了解到的是,大多数霍乱患者都集中在布罗德街和列克星敦街交叉口的一个特定水泵周围(地图中间附近的红色X),他将霍乱的爆发归因于该水泵的感染性供水。

通过本次案例,我们可以了解到,数据分析需要结合实际业务场景,关于地理空间数据我们需要了解其基本概念,矢量和栅格的区别、地理编码和地理参考的区别都需要有所了解,才能够处理好地理空间矢量及进行分析。

注册的案例中我们找到了受感染的水泵,它是80年代伦敦霍乱爆发的根源。但是在我们实际工作中,可不能就停留在这个阶段哈,老板找我们来是解决问题的哦,所以要给出针对性的对策和解决方案哈!

今天给大家分享的是关于地理空间的数据分析相关推荐

  1. 地理空间技术改变世界的未来

    摘要: 地理空间技术是一项重大的科学发现,它将人类的可能性推向了一个全新的水平.那么什么是地理空间技术呢?事实上,它与普通的空间数据不同,地理空间技术的创新使我们能够确定物体或人在地球上的确切位置.人 ...

  2. ArcGIS的地理空间大数据的数据分析图

    众所周知,现在已经进入了大数据时代,对于GISer们而言,接触的最多的,应该就是地理空间大数据! 地理空间大数据分析,除了考虑数据值,还会考虑数据的空间位置关系及相关的影响,你手中的ArcGIS,在这 ...

  3. python地理数据处理 下载_python-doc/将Python用于地理空间数据处理.md at master · zhuxinyizhizun/python-doc · GitHub...

    毫无疑问,Python是当今最流行,最通用的编程语言之一.这有很多种强有力的原因,但在我看来,最重要的是:开源定义,语法简单,包括电池的理念(batteries included philosophy ...

  4. asp 取数据 计算_地学数据 | 地理空间数据获取方式汇总

    1.测绘地理信息局会 (http://www.webmap.cn/main.do?method=index) 该网站提供:30米全球地表覆盖数据,GlobeLand30能够提供包括:地理位置.分布范围 ...

  5. 云原生数据库_数据标签竞赛云原生地理空间冲刺

    云原生数据库 STAC specification is getting closer to the ver 1.0 milestone, and as such the first virtual ...

  6. 地图和地理空间革命:地理学大规模开放在线课堂(MOOC)

    作者:Anthony C. Robinson, Joseph Kerski, Erin C. Long, Heng Luo, DavidDiBiase,Angela Lee 地理和John A.达顿电 ...

  7. ArcGIS Engine环境下VS窗体与Unity虚拟现实地理空间的嵌套和交互

    本文目录 一.前言 1.结果图片 2.相关系统与平台介绍 3.实践思路与基本流程 4.涉及环境与软件 二.前期操作介绍 1.Unity和Winform窗体的连接交互 1.1.Unity和Winform ...

  8. 地理空间数据共享资源大汇总

    1.全国12.5米分辨率ALOS高程数据 全国12.5米分辨率DEM数据,该数据由锐多宝的地理空间提供并进行分省裁剪与镶嵌,由测绘营地进行影像坐标系转换. ALOS-12.5m高程数据参数: 覆盖范围 ...

  9. 2022年10个最佳地理空间数据分析 GIS 软件

    数据可视化并不是简单的把数据变成图表, 而是以数据为视角看待世界.换言之,数据可视化的客体是数据,但我们往往想要的其实是数据视觉,以数据为工具,以可视化为手段,目的是描述真实,探索世界.GIS 就是这 ...

最新文章

  1. codefores 786B. Legacy(最短路,线段树优化拆点,好题)
  2. 编程爱好者学vb还是python-Python语言为什么被称为高级程序设计语言?
  3. ANSI C中的sizeof详解
  4. Leetcode 82. 删除排序链表中的重复元素 II (每日一题 20210908)
  5. ABP框架搭建项目系列教程基础版
  6. java属于什么行业,吐血整理
  7. js如何读取客户端Excel文件
  8. dubbox 的各种管理和监管
  9. 用网页做触摸屏展示的设计要点
  10. docker swarm 部署 sentry9.1.2
  11. 2017-2021书单5周年 |读书总结、读书方法论、知识体系搭建、效率工具推荐系列文章(1)δ星 丨读书笔记与书单 notes...
  12. ionic 实现广告图片无限滚动标签介绍
  13. 2018互联网寒冬之裁员浪潮--感同深受(winter is here)
  14. java word 分页显示_jsp转word + 分页
  15. 腾讯服务器状态异常是怎么回事啊,腾讯云服务器网络异常怎么办
  16. 计算机中英文术语对照表
  17. 软件 黑苹果盒盖不休眠_怎么解决苹果电脑合盖自动休眠问题?
  18. python脚本自动化赚钱系统_python实现自动化上线脚本的示例
  19. 使用alpine镜像封装nginx 及php镜像
  20. 抛硬币仿真实验java_探索HyperLogLog算法(含Java实现)

热门文章

  1. Delphi Http Https 最好的解决方法(二)
  2. 「网络流 24 题」圆桌聚餐
  3. java日历源码_JAVA----日历源代码
  4. 软件设计师——软件过程基础知识
  5. dapper 使用sqlbulkcopy,50秒插入百万数据
  6. 山东教师教育网研修平台-报名
  7. Java后端开发必备软件下载地址汇总
  8. java潜艇大战游戏源码项目
  9. 哈尔滨:绿化环境 植树造林热情高
  10. python 软件工程,软件工程实践之 django/python | 码农网