Python 中的空间分析和地理空间数据科学

Python 中的空间分析和地理空间数据科学


发布日期: 2023-06-01 更新日期: 2023-06-01 编辑:xuzhiping 浏览次数: 737

标签:

摘要: 空间数据是帮助我们直接或间接参考地球表面或特定位置、地理区域的任何形式的数据。GIS 是处理和分析空间数据的最常用方法,这包括空间数据的整个数据管理、操作、定制、可视化和分析堆栈。GIS 是协同工作的程序组合,可帮助用户理解空间数据。 如果要在地理区域内任...

Python 中的空间分析和地理空间数据科学

空间数据是帮助我们直接或间接参考地球表面或特定位置、地理区域的任何形式的数据。GIS 是处理和分析空间数据的最常用方法,这包括空间数据的整个数据管理、操作、定制、可视化和分析堆栈。GIS 是协同工作的程序组合,可帮助用户理解空间数据。

如果要在地理区域内任何有关空间数据的项目中使用 GIS 数据,那么将处理不同类型的数据,例如矢量数据(线 - 街道数据)、多边形(地理区域的边界)和点位置(建筑物、摩天大楼、学校等)。这些数据集在 GIS 中各自作为一个图层存在,这些图层的放置对于理解和分析至关重要。 GIS 领域和研究的应用远远超出数字制图,包括遥感、空间分析和地理可视化等众多类别。在每一个应用程序中,空间数据的使用都变得更加复杂。

本文将介绍如何从空间统计 Python 库执行操作,深入了解空间数据和使用 Python 进行地理空间数据分析。Jupyter Notebook 的相关性也包括在内,它使我们能够使用两种最流行的 GIS 软件,即 ArcGIS(基于云的在线制图和分析解决方案)和 QGIS(量子地理信息系统,一种免费的开源 GIS 软件,具有许多免费的在线资源和地图可供下载)用于使用 Python 进行空间数据分析。

什么是地理空间数据?

地理空间数据是关于描述位于地球表面或地球表面附近的物体、事件和其他特征的信息。地理空间数据结合了位置信息,通常由地球坐标和属性信息组成,属性信息涉及物体的特征、事件或现象,以及时间信息,即生命周期、属性和位置存在的时间。它通常由从多个来源以不同格式获取的空间数据大型数据集组成,包括电话数据、卫星图像、天气数据等。

许多可用的地理空间数据都是开源的(用户可以免费访问),因为它包含可以参考道路、地点、水体和公共设施的数据,这些数据对广泛的用户具有普遍的兴趣,并且很有帮助用于公共和私人组织的多种目的。这种开源数据主要通过开放标准进行访问,这些标准在地理空间社区中得到大力支持。这主要是因为本地和全球的大量机构都参与了地理空间数据的生成,其次是因为应用范围广泛。

地理空间分析主要用于为传统数据添加时间和位置。描绘近期和历史发展的地图、图表、统计数据和制图可以包含在这些可视化中。增加的背景有助于更全面地了解事件,易于识别的视觉模式和图形用于传达大型电子表格中可能遗漏的见解。

在 GIS 中采用 Python

什么让 Python 成为空间数据和 GIS 的首选语言。近年来,Python 已在许多领域得到广泛采用。Python 中丰富而通用的库使其非常适合人们想要选择的任何类型的项目,这主要可以归于两个原因:

  • 它同时支持结构化编程和面向对象,这使其成为一种多范式编程语言
  • 作为一种解释型语言,Python 适合于快速原型设计和开发周期。 由于强调可读性、跨平台支持和较低的启动成本,GIScience(地理信息科学)在 Python 中找到了很大的接受度。Python 通过各种地理空间编程开发模式提供了灵活性。

Python 在 GIS 中的桌面和交互式计算地理空间编程应用

  • ArcGIS(9.0 后版本)已将 Python 作为核心脚本语言,其中 ArcPy 包为地理处理工具、函数、类和模块提供了一个平台。
  • QGIS(开源 GIS 包)通过其 GUI 提供了一个 Python 控制台,提供了一个交互式 shell 来支持 QGIS workshop 的实验,允许用户在现有会话中构建工作流。
  • Python 也被用来开发一个处理框架,它是一个地理处理环境,用于在 QGIS 中运行本地或第三方算法。 Python 也被用于开发独立的地理空间应用程序。这些基于 Python 的软件包在 GUI 中包含高级地理空间功能,示例如下:

    • GeoDaSpace : 空间回归分析包
    • CAST : 时空犯罪分析
    • STARS:区域系统的时空分析

多个空间分析 Python 库,可参考下表来讨论堆栈中每一层的一些流行或常见的软件包。

软件包

基础

1.文字

向地图添加仅描述地图上地理特征的文本极大地改进了地理信息的可视化,定义的主要文本类型是标签、注释和图形测试。

  • 标注:根据要素属性自动放置的一段文字,由文字串组成。标注提供了向地图添加描述性文本的最简单、最快捷的方式。示例:为一个国家/地区的所有主要城市添加动态标签。

  • 注释:这些可用于描述特定功能或将一般信息添加到正在创建的地图中。注释在外观和位置方面提供了更大的灵活性,因为我们将能够选择单个文本片段并对其进行编辑。

  • 图形文本:这对于在页面空间中存在的地图及其周围添加信息很有用。如果希望在地图页面上显示的文本不会随着平移和缩放地图而改变,请使用图形文本。

2.矢量图

载入 GIS 软件程序的最常见数据类型是矢量数据。它将地理数据表示为点、线或多边形。 矢量数据分为三种类型,分别是:

  • 点数据:它最常用于表示离散数据点和不相邻的特征。由于点没有维度,因此该数据集不能用于估计长度或面积。此外,点特征用于表示抽象点。例如,点位置可用于城市名称和位置。
  • 线数据:线状特征由线(或弧)数据表示。街道、小路和河流是典型的例子。由于线要素只有一维,因此长度是它们唯一可用之处。线要素由起点和终点组成。
  • 多边形:城市边界(在大比例尺地图上)、湖泊或森林等区域由多边形表示。由于面要素是二维的,因此可用于计算地理要素的面积和周长。

3.光栅

最基本形式的栅格由排列成行和列(或网格)的像元(或像素)矩阵组成,每个像元都包含一个表示某种类型信息的值。光栅包括数字航空照片、卫星图像、数字照片,甚至扫描地图。 栅格格式的数据代表现实世界的现象:

  • 专题数据,通常称为离散数据,表示土壤或土地利用信息等元素。
  • 连续数据描述了温度或高度等现象,或卫星图像和航拍照片等光谱数据。
  • 建筑物的地图、图纸和照片是图片的示例。

4.坐标参考系统(CRS)

如果没有地理空间应用程序可以用来正确显示和操作数据的坐标参考系统 (CRS) 信息,则数据结构不能被视为地理空间。CRS 信息使用数学模型将数据链接到地球表面。CRS 定义 GIS 中的二维投影地图如何与地球上的真实地点相关联。

CRS 的组成部分:

  • 基准面: 地球形状的表示。它指定起点(即 (0, 0) 在哪里?)并具有角度单位(即度),因此角度指的是地球上的重要位置。
  • 投影:在数学上将圆形地球上的角度测量值转换为平面。通常,连接到给定投影的单位是线性的。
  • 附加参数: 附加参数的作用是建立完整的坐标参考系;通常需要额外的因素。地图中心的定义是一个典型的额外参数。

5.地图投影

在制图学中,用于在二维平面上描绘球体或另一个球体的三维表面的众多技术之一是地图投影(制图)。通常,但并非总是,这个过程是一个数学过程(一些方法是基于图形的)。

6.地理参考

地理配准是使用地图坐标定义栅格数据的位置并分配地图框的坐标系,可以使用地理配准与其他地理数据一起查看、查询和分析栅格数据。

地理配准过程通常涉及四个步骤:

  • 添加要与投影数据对齐的栅格数据。
  • 地理配准选项卡可用于创建控制点,以便将栅格数据连接到地图上的已知位置。
  • 检查控制点和错误。
  • 最后,当对齐看起来令人满意时保存地理配准结果。

7.地理编码

查找地名、街道地址和代码的地理坐标是一个称为地理编码(例如邮政编码)的过程。预处理和标准化要进行地理编码的数据格式,通常是地理编码之前的数据清理过程中的步骤。生成的位置输出为具有可用于制图或空间分析的属性地理要素。地理编码有很多用途,从简单的数据分析到客户和业务管理再到分销策略。使用地理编码地址,能够可视化地址的位置和数据中的点模式。

GIS 中如何使用 Jupyter Notebook

Jupyter notebook 是一个强大的 Python 工具,允许用户创建和共享包含代码、可视化、解释性文本和方程式的文档。Jupyter Notebook 日益流行的几个主要原因可能如下:

  • Notebook:notebook 非常适用于 Jupyter Notebook,因为该工具允许编写称为“单元格”的可执行代码片段,注释或记录每个过程,并在分析的任何步骤中可视化数据。
  • Jupyter笔记本的原型:这些 notebooks 在没有为自己定义最终流程的情况下非常有用。它使我们能够灵活地编写代码并将其测试到独立的单元中。能够快速测试代码片段,而不必担心任何顺序的工作流。
  • 可视化 Pandas DataFrame:使用 Jupyter notebook 时,可以在笔记本的任何位置查看这些表格。这非常有帮助,因为可以在逻辑的每个阶段执行时查看数据的当前状态(以及代码对其进行的所有操作的影响)。

如今,Jupyter notebooks 已成为 GIS 分析师的首选工具,他们选择使用 Python 进行空间分析以完成空间数据操作、空间分析、可视化等多种任务。考虑 GIS 的所有挑战用于进行地理空间分析的软件,其中包括:

  • 大空间数据的数据分析与管理。
  • 一种尺寸并不适合单个应用程序中的所有类型的工具和分析。
  • 数据格式支持问题,其中并非每个应用程序都允许输入每种格式的数据。

GIS 社区很快意识到它的潜力,并采用 Python 作为 GIS 分析的工具;然而,Jupyter notebook 提供了缺失的部分,成为一个易于使用的工具,取代了代码编辑器作为工作环境。许多地理空间 Python 包已经可用,包括从地理空间数据管理到 Jupyter Notebook 内制图功能的所有内容。

要开始在桌面 GIS 中使用 Jupyter Notebook 应用程序,ArcGIS Pro 中的 ArcGIS Notebook 带有默认安装,QGIS 用户需要安装 IPython QGIS Console 插件。这允许访问 QGIS 内部的 IPython 控制台。IPython 控制台允许用户在 IPython 解释器中执行命令并与数据交互,从而实现空间数据科学 Python 分析,也可以使用 R 教学大纲在数据科学中学习。

相关推荐

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org