《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" >
相关文章
|
8天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
1天前
|
JSON 关系型数据库 数据库
《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)
《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)
27 0
|
2天前
|
机器学习/深度学习 Python 数据处理
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
22 0
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
|
2天前
|
存储 机器学习/深度学习 数据可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
42 6
|
2天前
|
机器学习/深度学习 数据采集 供应链
从数据到决策:scikit-learn在业务分析中的应用
【4月更文挑战第17天】本文探讨了scikit-learn在业务分析中的应用,包括数据预处理、分类、回归和聚类模型的构建,以及模型评估与优化。通过使用scikit-learn,企业能有效处理数据、预测趋势、客户细分并制定决策,从而提升经营效率和市场策略。随着机器学习的发展,scikit-learn在业务分析领域的潜力将持续释放,创造更多价值。
|
2天前
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
11 0
|
3天前
|
机器学习/深度学习 数据采集 数据可视化
Python数据处理与分析
【4月更文挑战第13天】Python在数据处理与分析中扮演重要角色,常用库包括Pandas(数据处理)、NumPy(数值计算)、Matplotlib和Seaborn(数据可视化)、SciPy(科学计算)、StatsModels(统计建模)及Scikit-learn(机器学习)。数据处理流程涉及数据加载、清洗、探索、特征工程、模型选择、评估与优化,以及结果展示。选择哪个库取决于具体需求和数据类型。
13 1
|
3天前
|
BI 开发者 数据格式
Python代码填充数据到word模板中
【4月更文挑战第16天】
|
3天前
|
数据可视化 算法 API
Python数据可视化-seaborn Iris鸢尾花数据
Python数据可视化-seaborn Iris鸢尾花数据
11 0
|
3天前
|
索引 Python
python 格式化、set类型和class类基础知识练习(上)
python 格式化、set类型和class类基础知识练习
23 0