《Python地理空间分析指南(第2版)》——1.9 地理信息系统基本概念

简介:

本节书摘来自异步社区《Python地理空间分析指南(第2版)》一书中的第1章,第1.9节,作者: 【美】Joel Lawhead(莱哈德) 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.9 地理信息系统基本概念

在进行地理空间分析之初,你非常有必要了解该领域的一些关键概念。这份学习名单并不长,但是几乎所有分析方面的内容都和它们有关。

1.9.1 专题地图
顾名思义,专题地图是表达某些特定主题的地图。用于导航和制定计划的参考地图一般都会直观地反映相关的地理特征。专题地图不仅能够提供位置信息,而且可以根据主题展示某一区域的地理环境信息。通常,专题地图是为了解答目标用户的特定问题而存在的。专题地图的价值在于它没有显示的部分。一张专题地图将采用最少的地理特征来避免分散读者注意力。大部分专题地图包括国界和省界,但是会忽略如街道名、兴趣点和路标等导航信息。

本章前面讲述的John Snow制作的霍乱分布图是专题地图的极佳范例。专题地图一般用来直观表示健康问题(例如疾病)、选举结果以及气象环境如降雨量等。同时很多地理空间分析的结果也是由专题地图构成。美国人口普查局曾对每个州的癌症死亡率作过调查统计,也属于专题地图的范例。

专题地图讲述了一个特别的故事,并且是非常有用的。但是需要注意的是,专题地图和其他地图一样都是对实际生活的建模,它们也是一种信息而已。两个不同的分析人员使用相同的数据源可能因为分析和组织数据的方式不同而产生两种差异巨大的专题地图。也许他们对数据集的关注点不一样。专题地图的技术性导致人们一厢情愿地认为它们都是科学客观的,但是地理空间技术常会被误用。即使采用了科学的数据,如果分析师没有严谨的遵循科学方法的话也是徒劳。在Mark Monmonier撰写的经典图书How to Lie with Maps(芝加哥大学出版社)中,详细讲述了如何使用地图歪曲地展示一些现实中的事物,而且它们都被严重地滥用了。这个事实并不能贬损这些工具的价值。传奇统计学家George Box在1987年写的书中指出,建筑建模只靠经验并且流于表面,“本质上来说,所有的模型都是错误的,但是部分模型非常有价值。”专题地图曾经用来指导开始(结束)战争、追踪定位致命病毒、选举获胜、国际援助、消除贫困、濒危物种保护以及灾难救援等。专题地图也许是有史以来创建的最有用的模型。

1.9.2 空间数据库
以纯粹的方式来看,数据库仅仅是一个有序的信息集合。数据库管理系统(database management system,DBMS)就是能和数据库交互的软件。人们常用辞海作为包罗万象的术语,其实指的是DBMS和底层数据结构。数据库通常包含字母和数字等类型的数据,在某些情况下还包括二进制大对象或blobs,例如它们能够将图片以二进制格式存储。大部分数据库还支持关系型数据库结构,规范化的表之间可以互相引用来创建一对多和多对多的关系。

空间数据库,又叫地理空间数据库,它通过特定软件扩展了普通的关系型数据库管理系统(relational database management system,RDBMS)的功能,这样就可以达到存储和查询二维、三维空间数据的目的。其中某些系统还能够记录数据的时间序列。在空间数据库中,地理特征的属性可以像普通的关系型数据库那样存储和查询。空间扩展功能还支持使用结构化查询语言(Structured Query Language,SQL)像一般的数据库那样查找几何图形。空间查询和属性查询的结果还可以根据地理位置和属性进行组合。

1.9.3 空间索引
空间索引是为了更快地读取地理空间矢量数据的组织过程。它主要用于查询和渲染等操作的数据预过滤。索引通常是大型数据库优化查询效率一种方式。空间数据与此类似。即使一个中等规模地理空间数据库也能存储上百万的点和对象。如果你执行了一次空间查询操作,那么系统必须对数据库中的所有记录都扫描一遍,以便确定这些记录是否应该包含在查询结果中。空间索引可以将数据分组,这样就可以在系统进行实际查询操作之前经过简单的计算校验就能够过滤大量的数据记录,从而提高查询效率。

1.9.4 元数据
元数据是关于数据的数据。因此,地理空间元数据是和地理空间数据集有关的数据,它提供了可以追溯地理空间数据集源头和历史的能力,以及相关的技术概要信息。同时元数据为信息的长期保存提供了支持。地理空间元数据表现形式多样。其中最有影响力的是国际标准ISO 19115-1,其中包括几百个预定义的字段用于描述一个独立的地理空间数据集。此外,ISO 19115-2还为地理空间影像数据和网格数据提供了支持。某些示例字段包括空间表达、时间范围和族系信息。元数据主要的用途是数据集编目。现代元数据可以和地理搜索引擎集成从而被其他系统自动调用。如果你对数据集有疑问,它还可以显示和数据集相关的信息点。元数据是地理空间分析的重要支撑工具,同时还为你的工作增加了可访问性和可信度。开放地理空间信息联盟(Open Geospatial Consortium,OGC)创建了网络目录服务(Catalog Service for the Web,CSW)标准来管理元数据。

1.9.5 地图投影
地图投影的知识可以专门编写一本书来进行介绍,并且它可能对于初选者来说是个挑战。如果你将某个三维对象拍扁放在一个平面上,就像你的屏幕或者一张纸,那么三维对象就被扭曲了。许多小学的地理课堂上常常会让学生剥开一个橘子,然后将橘子皮平铺在课桌上来演示这一概念。当你将圆形的地球投影到电脑屏幕上时,和上述的情况是类似的。

在地理空间分析中,你可以控制这种失真并保留一些常见的属性,如面积、比例、轴线,距离和形状等。地图投影没有一个放之四海而皆准的方法。投影方法的选取常常是转换精度误差较小方案间的折中。投影通常是由包含超过40个参数的XML或文本文件构成,一般我们叫它WKT(Well-Known Text ,WKT),其内容是投影算法定义。

国际油气生产者协会(International Association of Oil & Gas Producers,IOGP)维护着一套非常有名的投影标准。该组织的前身是欧洲石油测绘组织(European Petroleum Survey Group,EPSG)。不过标准中的条目仍然使用了EPSG为其组织代码。EPSG维护这一标准是为了给石油和天然气工业提供便利。该行业在资源勘探方面的地理空间分析研究硕果累累。最新的统计结果表明,该标准中包含超过5000个实体。

就在10年前,地图投影还是地理空间分析领域的重点研究的问题。数据存储昂贵,高速互联网踪迹难觅,云计算根本就没有。地理空间数据通常只在研究不同领域的小团体之间交换。

当时的技术壁垒也意味着地理空间技术是高度区域化的。分析人员会选择和他们感兴趣的区域最匹配的投影方式。使用不同投影方式的数据无法显示在同一张地图上,因为它们使用的地球模型不同。分析师在收到第三方提供的数据,将其和现有数据整合时,不得不先将其进行重投影处理,这个过程是冗长耗时的。大部分地理空间数据格式不支持存储投影信息。

这些信息通常会存储在一个XML或者文本格式的辅助文件里。由于分析师之间并不经常交换数据,所以很多人不会过多关注定义投影信息。每个分析师的噩梦是遇到一份非常有价值的数据时却丢失了投影信息,这说明上述的数据是无用的。该文件中的坐标系统只是一堆数字,不能提供任何与投影相关的线索。大约有5000多种投影方法,猜都猜不出。

现在,现代软件强大功能和互联网的出现让数据转换更便捷了。几乎所有的数据格式都添加了使用元数据定义投影信息的支持,并且可以将这些信息放在文件头部。技术的不断进步使全球底图可以支持多种常用的投影方式,例如谷歌地图使用的谷歌墨卡托投影。这种投影方式也叫Web墨卡托投影,EPSG代码是3857(以前的EPSG代码是900913)。地理空间信息门户项目如OpenStreetMap.org和NationalAtlas.gov已经为世界上大部分通用的投影方法提供了统一的数据集。现代的地理空间分析软件还能够实时对数据重投影,省去了分析师预处理数据的麻烦。地图投影和大地基准密切相关。大地基准是地球表面的一种模型,是用来匹配地球中路径特征的坐标系统。最常用的大地基准是WGS84,GPS设备中使用的就是它。

1.9.6 渲染
地理空间分析中激动人心的部分是可视化。因为地理空间分析过程是通过计算机完成的,所以了解地理空间数据如何展示到计算机屏幕上的过程是大有裨益的。

地理空间数据包括点、线以及由若干点组成的多边形。它们都是由(x,y)或者(x,y,z)等元组构成的。其中x代表地图上水平方向的点,y代表竖直方向的点,z代表地形高程。在计算机制图中,计算机屏幕是由X轴和Y轴表示的。Z轴并没有用到,因为大部分图形软件API都把计算机屏幕当作二维平面。但是,随着桌面电脑的不断发展,三维地图也开始流行起来了。

另外一个重要因素是屏幕坐标系统和世界坐标系统的差异。存储地理数据的坐标系统是覆盖整个地球的网格,并且是三维和圆形的。屏幕坐标系统,也叫像素坐标系统。反映的是网格像素组成的二维计算机屏幕。世界坐标系统中的X和Y映射到像素坐标系统中的算法非常简单,而且只进行了简单的比例缩放。然而,如果存在Z坐标,那么就需要执行更复杂的操作才能完成三维空间的坐标系统到二维平面的坐标系统的映射。这些转换的计算成本高昂,并且如果没有正确处理还会变得非常低效。

对于遥感数据来说,它的难题是文件大小。即使一个中等规模卫星影像经过压缩后没有几百也有几十兆大小。图片压缩包括无损压缩和有损压缩两种方法可供选择。无损压缩通过技术手段能够减小文件体积而不丢弃任何数据。有损压缩算法通过减少文件的数据量减小文件体积,同时避免图片内容发生显著变化。渲染一张图片到屏幕上计算量是很大的。大部分遥感文件格式都支持存储多个低质量图像,即所谓的概要或者影像金字塔,其目的就是为了在不同比例尺下更快的渲染图片。当图像被缩小到一定比例以至于你无法看到图片细节时,系统会无缝切换到一张预处理过并且低质量的图片。

遥感的基本概念
大部分GIS概念的描述也适用于栅格数据。但是,栅格数据也有一些特有的属性。在前面的章节中,关于遥感的历史,我们把注意力集中在了从太空平台上获取地球影像。不过值得一提的是,栅格数据的来源非常丰富,包括地面雷达、激光测距仪以及其他专门用于检测气体、辐射和其他地理环境中的能量物质的仪器。对于本书来说,我们将会把重点放在捕获大量地球数据的遥感平台上。这些数据源包括地球影像系统,特定类型的高程数据,以及某些适用的天气预报系统。

1.9.7 影像数据
栅格数据捕获的内容就像广场上的地砖。这意味着数据存储在计算机上的方式是以若干行和列的数组构成的。如果数据是多光谱的,数据集通常会包含多个相同大小的数组,它们通过地理空间的格式被引用到一块,表达地球上某个单独区域。这些不同的数组被称为带。任意数字的数组都可以作为影像显示到计算机上。事实上,所有的计算机数据本质上都是数字。这一点对于地理空间分析影像数据尤为重要,因为经常会用到数学公式来处理它们。

对于遥感影像来说,每个像素都表示空间(地球上一个预定尺寸的位置)和反射系数,即光从地球反射到外太空该位置的比率。因此,每个像素都有一个地面尺寸和亮度。因为每个像素都是一个数字,我们可以使用数学方程比较图像中不同频带的数据,并高亮显示特定类别的对象。如果波长值超过了可见光谱,我们可以高亮显示对肉眼不可见的特征。例如植物中的叶绿素可以使用特定的归一化植被指数(Normalized Difference Vegetation Index,NDVI)公式进行明显对比。

在处理遥感影像过程中,我们可以将这些数据转化成直观的信息。使用NDVI公式,我们就能解决图像中什么样的植物相对更健康这一问题。你还可以创建新的电子信息,将其导入计算机程序输出其他类型的信息。

1.9.8 遥感和颜色
计算机屏幕显示图片是通过对红(R)、绿(G)、蓝(B)3个颜色通道的变化组合来匹配人类视力所能感知的颜色。卫星和其他遥感影像设备还能够捕捉不可见光谱。在计算机上,波长不可见的光谱以可见光谱的形式显示,所以我们能够看到它们,我们称之伪彩色影像。在遥感领域如红外光,对水分的显示非常明显。这种现象的用途广泛,如发生洪涝灾害时,监测灾区水域分布、堤坝隐蔽泄漏、房屋统计等。

相关文章
|
20天前
|
存储 人工智能 搜索推荐
【python】python用户管理系统[简易版](源码+报告)【独一无二】
【python】python用户管理系统[简易版](源码+报告)【独一无二】
|
25天前
|
Python
Python实现简易天气查询系统
Python实现简易天气查询系统
26 4
|
1月前
|
测试技术 Python
Python中的装饰器:概念、用法及实例
【2月更文挑战第25天】 装饰器在Python中是一种强大的工具,它允许我们在不修改原始函数代码的情况下,增加函数的功能。本文将深入探讨装饰器的概念,解析其工作原理,并通过实例来展示如何在Python中使用装饰器。
|
1月前
|
存储 缓存 Python
Python中的装饰器:概念、用法和实例
【2月更文挑战第25天】 在Python编程中,装饰器是一种强大的工具,它允许我们在不修改原始函数代码的情况下,增加或修改函数的行为。本文将深入探讨装饰器的概念、用法以及通过实例来使其更易于理解。我们将看到,装饰器不仅仅是语法糖,而是一种可以极大提高代码复用性和可读性的有效工具。
|
1月前
|
Python
请简述Python中的继承、封装和多态的概念。
【2月更文挑战第24天】【2月更文挑战第82篇】请简述Python中的继承、封装和多态的概念。
|
6天前
|
数据采集 NoSQL 搜索推荐
五一假期畅游指南:Python技术构建的热门景点分析系统解读
五一假期畅游指南:Python技术构建的热门景点分析系统解读
|
15天前
|
人工智能 机器人 测试技术
【Python】Python仓储管理系统(源码)【独一无二】
【Python】Python仓储管理系统(源码)【独一无二】
|
20天前
|
人工智能 机器人 测试技术
【Python】Python房屋销售系统(源码)【独一无二】(课程设计)
【Python】Python房屋销售系统(源码)【独一无二】(课程设计)
|
23天前
|
机器学习/深度学习 数据采集 算法
基于Apriori关联规则的电影推荐系统(附python代码)
这是一个基于Apriori算法的电影推荐系统概览。系统通过挖掘用户评分数据来发现关联规则,例如用户观看某部电影后可能感兴趣的其他电影。算法核心是逐层生成频繁项集并设定最小支持度阈值,之后计算规则的置信度。案例中展示了数据预处理、频繁项集生成以及规则提取的过程,具体包括用户评分电影的统计分析,如1-5部电影的评分组合。最后,通过Python代码展示了Apriori算法的实现,生成推荐规则,并给出了一个简单的推荐示例。整个过程旨在提高推荐的精准度,基于用户已评分的电影推测他们可能尚未评分但可能喜欢的电影。
基于Apriori关联规则的电影推荐系统(附python代码)
|
25天前
|
Python
Python实现简易文件管理系统
Python实现简易文件管理系统
27 5