《Python地理数据处理》——1.2 空间数据的类型

简介:

本节书摘来自异步社区《Python地理数据处理》一书中的第1章,第1.2节,作者: 【美】Chris Garrard(加勒德) 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 空间数据的类型

下面学习如何使用矢量和栅格这两类主要的空间数据。矢量数据由点、线、面构成,栅格数据像照片中的像素一样,是一个由二维或三维阵列组成的数据值。一个包含国家边界的数据集就是一个矢量数据。在这个例子中,每一个国家用一个多边形表示。使用线表示道路或者河流,使用点表示气象站的例子是其他类型的矢量数据表现形式。早期原始的地图,如那些画在洞穴墙壁上的,只表示了要素自身。晚些时候的地图中开始包含一些城市或者港口等感兴趣的要素,并进行标注,如图1.1所示的非洲西北部的航海地图。


<a href=https://yqfile.alicdn.com/a750eabd105a4f2e4ceae8f9aaf677b0fff10108.png" >

使用数字数据,可以将多个属性值附加到每个要素上,无论你是否有计划将这些信息展示在地图上,这都是一大优势。对于每一条道路,你可以存储它的名字、限速、车道数或者任何你能想到的信息。

为什么能够将属性进行存储如此有用呢?在众多的原因中,最明显的一个就是可以根据它的属性进行要素标注。地图中显示国家边界的同时可以显示国家名称。所有的数据还可以帮你制作更有意思的地图,甚至可以讲述一个故事。地图中每个要素存储的人口数量,可以用来对各个国家进行专题符号化,所以你可以一眼看出哪些国家的人口最多。

使用矢量数据进行空间叠加分析也很简单。例如,想知道维多利亚湖在乌干达、肯尼亚以及坦桑尼亚的百分比,可以根据地图一直瞎猜,但也可以使用GIS软件来获得更精确的数值。读完本书,你将学会做类似的简单分析。

要素中附带的属性值还可以用于空间操作。假设你有一个包含水井位置信息的数据集,每一个水井具有井深和流量属性。你还有一个同一区域,包含地质地貌或土壤类型的数据集,你可以分析这些数据,看看水井流量或者所需的井深是否受到地形或者土壤类型的影响。

和早期的制图师不同,你还可以利用栅格数据。栅格数据是数据集的统称,是一个由二维或三维阵列组成的数据值,正如一张照片是一个由像素值构成的二维数组。事实上,图1.2所示的航空相片就是一种普遍使用的栅格数据类型。卫星相片看起来与之相近,只是它们通常分辨率较低。卫星相片最酷的是,大多数卫星相片是由不可见光进行采集的,所以它可以提供一张普通照片不能提供的信息。


8610ff8eb81c1032e7a4f6fd89ce505e13846304

栅格数据集非常适合表示连续的数据,不仅是照片。图1.3所示的降水数据就是一个很好的例子。降水通常不会突然停止在一个边界,所以很难围绕它画一个多边形。相反,统计一个网格单元内的降雨量就很简单,而且可以较简单地记录不同区域的变化。同样的思路也适用于温度数据和其他变量。另一个例子是数字高程模型(Digital Elevation Model,DEM),每一个像素都包含一个高程值。


7e6d4f8228deccd39caff4aef626ed5ba23358f8

对于一些不同类型的分析,栅格数据比矢量数据更合适。卫星影像和航空照片常常被用于植被制图的相关任务中。因为水往低处流,所以可以使用高程模型来确定集水区的区域边界。即使对栅格数据只做简单的数学运算,也能进行有用的分析操作。例如,一个波长值与另一个波长值的简单比例可以帮助识别植被的健康情况或者测量土壤中的水分。

相邻像素值构成的区块也可以用来计算有用的信息。例如,可以使用DEM高程数据计算坡度,然后可以用于径流分析、植被制图或者规划一个滑雪胜地。但要计算坡度,你需要获得周边像元的高程值。在图1.4中,你可以使用展示的9个像素值来计算中心像素的坡度。对于其他像素,你也需要它周围的9个像素值来计算自身的坡度。这些像素的集合被称为窗口,你可以通过在栅格数据上移动视窗来确保每一个像素都在其自身视窗的中心,进而执行许多其他种类的分析。


<a href=https://yqfile.alicdn.com/34250257d0eac4c6e885646caee95cc42546f456.png" >

矢量数据和栅格数据也可以一起使用,想象在一个混合的网络地图应用中,使用影像栅格数据作为底图,在其上面绘制道路矢量数据。图1.5展示了一个用大峡谷的DEM高程数据作为底图,并在其上绘制显示矢量线数据集的简单实例。


<a href=https://yqfile.alicdn.com/95d873a6ce748866a2987bde1c97d43b8f54acb7.png" >
相关文章
|
6天前
|
数据采集 存储 架构师
上进计划 | Python爬虫经典实战项目——电商数据爬取!
在如今这个网购风云从不间歇的时代,购物狂欢持续不断,一年一度的“6.18年中大促”、“11.11购物节”等等成为了网购电商平台的盛宴。在买买买的同时,“如何省钱?”成为了大家最关心的问题。 比价、返利、优惠券都是消费者在网购时的刚需,但在这些“优惠”背后已产生灰色地带。
|
7天前
|
数据采集 数据挖掘 API
主流电商平台数据采集API接口|【Python爬虫+数据分析】采集电商平台数据信息采集
随着电商平台的兴起,越来越多的人开始在网上购物。而对于电商平台来说,商品信息、价格、评论等数据是非常重要的。因此,抓取电商平台的商品信息、价格、评论等数据成为了一项非常有价值的工作。本文将介绍如何使用Python编写爬虫程序,抓取电商平台的商品信息、价格、评论等数据。 当然,如果是电商企业,跨境电商企业,ERP系统搭建,我们经常需要采集的平台多,数据量大,要求数据稳定供应,有并发需求,那就需要通过接入电商API数据采集接口,封装好的数据采集接口更方便稳定高效数据采集。
|
20天前
|
机器学习/深度学习 数据采集 算法
数据转换与归一化:Python 的数据处理技巧
在数据分析和机器学习的过程中,数据转换和归一化是非常重要的步骤。它们可以帮助我们将数据调整为适合分析和建模的形式,提高算法的准确性和泛化能力。在 Python 中,有许多内置的库和工具可以帮助我们进行数据转换和归一化。本文将介绍一些常用的数据转换和归一化技术,并提供 Python 代码示例。
|
18天前
|
数据采集 Python
在Python中进行数据清洗和预处理缺失值处理缺失数据剔除
在Python中进行数据清洗和预处理缺失值处理缺失数据剔除
27 4
|
2天前
|
数据采集 数据挖掘 数据处理
Python中的数据处理利器 - Pandas库详解
Pandas是Python中一款强大的数据处理工具,提供了丰富的数据结构和函数,能够高效地进行数据清洗、转换和分析。本文将深入探讨Pandas库的核心功能和应用,帮助读者更好地理解和利用这一工具。
|
4天前
|
数据挖掘 数据处理 Python
使用Python自动化处理Excel数据
【2月更文挑战第4天】在现代社会,数据处理已经成为了一项重要的任务。而Excel作为一款广泛应用于数据处理的软件,已经成为了许多人的首选。不过,对于大规模的数据处理任务,手动进行Excel操作可能是低效的。本文将介绍如何使用Python编程语言来自动化处理Excel数据。
21 9
|
4天前
|
数据可视化 数据挖掘 Python
Python中的数据可视化工具Matplotlib详解
本文将深入探讨Python中广泛应用的数据可视化工具Matplotlib,介绍其基本概念、常用功能和实际应用,帮助读者更好地利用Matplotlib进行数据可视化,提升技术水平。
|
6天前
|
数据采集 前端开发 JavaScript
Python爬虫之Ajax数据爬取基本原理#6
Ajax数据爬取原理【2月更文挑战第19天】
15 1
Python爬虫之Ajax数据爬取基本原理#6
|
6天前
|
监控 安全 Java
利用Python多线程实现实时数据处理系统
利用Python多线程实现实时数据处理系统
|
6天前
|
分布式计算 并行计算 大数据
Python多进程在数据处理和大数据分析中的应用
Python多进程在数据处理和大数据分析中的应用