产品特色
编辑推荐
用非常流行的Python语言做地理空间分析;
学习高效、易学的地理空间分析指南;
书中含有典型且非常实用的开发案例,帮助读者快速掌握相关技能;
图文结合,将学习效率大大提高。
内容简介
Python作为一种高级程序设计语言,凭借其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言之一。
本书以地理空间分析为背景,介绍了Python在地理信息处理方面的应用技巧。全书共分为10章,分别介绍了Python与地理空间分析、地理空间数据、地理空间技术、Python的地理空间分析工具、Python与地理信息系统、Python与遥感、Python与高程数据、Python与地理空间高级建模、实时数据、综合应用等内容。
本书内容结构清晰,示例完整,适合希望了解测绘数字化和分析的读者,也适合想使用Python进行空间地理分析、建模和GIS分析的开发人员及研究人员参考阅读。
作者简介
Joel Lawhead 目前是NVision公司的CIO,该公司是业内屡获殊荣的地理信息集成和传感工程服务提供商。他还获得了管理专业人员资格认证(Project Management Professional,PMP),地理信息专业资格认证(certified GIS Professional ,GISP)。
Joel于1997年开始使用Python,从2000年开始使用它进行地理空间软件的开发,也是Learning Geospatial Analysis with Python(第1版)和QGIS Python Programming Cookbook的作者,并且这两本书都是Packt出版的。他撰写的Python Cookbook系列图书由O'Reilly Media出版,其不同版本更是各具特色。除此之外,他还是广受赞誉的开源软件PyShp(Python Shapefile Library)的主要开发人员。他的技术博客是http://geospatialpython.com/,Twitter昵称是@SpatialPython,通过上述方式,用户可以和他讨论地理空间分析中与Python编程相关的话题。
2011年,Joel通过逆向工程处理了Shapefile文件的空间索引格式,帮助地理空间Python工程师Marc Pfister实现了上述索引算法,这一做法有利于世界各地的开发者开发出更易于集成、更健壮的地理空间应用。
Joel作为架构师、项目经理和地理空间应用合作开发者,多次为美国政府机构提供服务,其中包括NASA、FEMA、NOAA、美国海军,以及其他商业和非营利性机构。2002年,由于其领导开发的实时应急响应协作工具(the Real-Time Emergency Action Coordination Tool,REACT)表现杰出,他获得了Esri公司颁发的国际GIS特别成就奖。该软件的主要用途是使用地理空间分析技术进行应急管理。
目录
第1章 Python与地理空间分析 1
1.1 地理空间分析与我们的生活 1
1.2 地理空间分析的历史 3
1.3 地理信息系统 6
1.4 遥感 7
1.5 高程数据 12
1.6 计算机辅助制图 13
1.7 地理空间分析和计算机编程 14
1.8 地理空间分析的重要性 15
1.9 地理信息系统基本概念 16
1.9.1 专题地图 16
1.9.2 空间数据库 17
1.9.3 空间索引 17
1.9.4 元数据 17
1.9.5 地图投影 18
1.9.6 渲染 19
1.9.7 影像数据 20
1.9.8 遥感和颜色 20
1.10 GIS中矢量数据的基本概念 21
1.10.1 数据结构 21
1.10.2 缓冲区 22
1.10.3 融合 22
1.10.4 简化 23
1.10.5 叠置 24
1.10.6 合并 24
1.10.7 点包容性 25
1.10.8 联合 25
1.10.9 连接 26
1.10.10 地理空间中的多边形
规则 26
1.11 栅格数据的基本概念 27
1.11.1 波段运算 27
1.11.2 变化监测 27
1.11.3 柱状图 28
1.11.4 特征提取 28
1.11.5 监督分类 29
1.11.6 非监督分类 29
1.12 牛刀小试 29
1.12.1 Python简介 30
1.12.2 构建SimpleGIS 31
1.13 小结 38
第2章 地理空间数据 39
2.1 数据格式概览 39
2.2 数据结构 41
2.3 空间索引 42
2.3.1 索引算法 43
2.3.2 网格 44
2.4 概要化 45
2.5 元数据 46
2.6 文件结构 46
2.7 矢量数据 48
2.7.1 Shapefile文件 48
2.7.2 CAD文件 51
2.7.3 标签和标记格式 51
2.7.4 GeoJSON 53
2.8 影像数据 54
2.8.1 TIFF文件 55
2.8.2 JPEG、GIF、BMP和
PNG文件 56
2.8.3 压缩格式 56
2.8.4 ASCII网格 56
2.8.5 全球文件 57
2.9 点云数据 59
2.10 Web服务 61
2.11 小结 62
第3章 地理空间技术概览 63
3.1 数据访问 65
3.1.1 GDAL 65
3.1.2 OGR 67
3.2 计算几何 68
3.2.1 PROJ.4投影库 68
3.2.2 CGAL 69
3.2.3 JTS 71
3.2.4 GEOS 72
3.2.5 PostGIS 73
3.2.6 其他支持空间分析的
数据库 76
3.2.7 SpatiaLite 80
3.2.8 路径分析 80
3.3 桌面工具(包括可视化) 82
3.3.1 Quantum GIS 82
3.3.2 OpenEV 83
3.3.3 GRASS GIS 84
3.3.4 uDig 85
3.3.5 gvSIG 86
3.3.6 OpenJUMP 87
3.3.7 谷歌地球 87
3.3.8 NASA World Wind 89
3.3.9 ArcGIS 91
3.4 元数据管理 92
3.4.1 GeoNetwork 92
3.4.2 CatMDEdit 92
3.5 小结 93
第4章 Python的地理空间分析工具 95
4.1 安装Python的第三方模块 96
4.2 Python的网络库 100
4.2.1 Python的urllib模块 101
4.2.2 FTP 103
4.2.3 ZIP和TAR文件 104
4.3 Python的标记、标签解析器 107
4.3.1 minidom模块 107
4.3.2 元素树 109
4.3.3 WKT文本 115
4.4 Python的JSON库 117
4.4.1 json模块 118
4.4.2 geojson模块 119
4.5 OGR 119
4.6 PyShp 120
4.7 dbfpy3 121
4.8 Shapely 122
4.9 Fiona 123
4.10 GDAL 125
4.11 NumPy 125
4.12 PIL 127
4.13 PNGCanvas 129
4.14 GeoPandas 130
4.15 PyMySQL 132
4.16 PyFPDF 133
4.17 Spectral Python 134
4.18 小结 134
第5章 Python与地理信息系统 135
5.1 距离测量 135
5.1.1 勾股定理 138
5.1.2 半正矢公式 140
5.1.3 Vincenty公式 141
5.2 方位计算 144
5.3 坐标转换 144
5.4 重投影 146
5.5 Shapefile文件编辑 148
5.5.1 Shapefile文件访问 150
5.5.2 Shapefile文件属性读取 151
5.5.3 Shapefile文件几何
图形读取 154
5.5.4 Shapefile文件修改 155
5.5.5 Shapefile文件合并 157
5.5.6 Shapefile文件分割 160
5.6 查询优化 161
5.6.1 点包容性公式 161
5.6.2 边框查询 163
5.7 空间信息可视化 166
5.7.1 点密度计算 166
5.7.2 等值区域图 169
5.8 使用电子表格 171
5.9 使用GPS数据 173
5.10 地理化编码 174
5.11 小结 176
第6章 Python与遥感 177
6.1 图像波段变换 178
6.2 创建直方图 180
6.3 图像剪裁 187
6.4 图像分类 191
6.5 图像特征提取 195
6.6 变化监测 200
6.7 小结 205
第7章 Python与高程数据 206
7.1 ASCII网格文件 206
7.1.1 读取grids 207
7.1.2 写入grids 208
7.2 创建地形阴影 210
7.3 创建等高线 215
7.4 使用LIDAR 219
7.4.1 使用LIDAR创建网格 220
7.4.2 使用PIL让LIDAR支
持可视化 226
7.4.3 创建不规则三角
网络(TIN) 230
7.5 小结 234
第8章 Python与地理空间高级建模 235
8.1 归一化植被指数(NDVI)应用 235
8.1.1 建立框架 237
8.1.2 载入数据 239
8.1.3 栅格化Shapefile文件 239
8.1.4 波段剪裁 241
8.1.5 使用NDVI公式 241
8.1.6 NDVI分类 243
8.2 创建洪水淹没模型 246
8.2.1 洪水填充功能 248
8.2.2 创建洪水 250
8.3 创建彩色晕渲地形 253
8.4 最佳路径分析 255
8.4.1 建立测试网格 256
8.4.2 A*算法简介 257
8.4.3 生成测试路径 258
8.4.4 查看测试结果 259
8.4.5 实际应用 260
8.5 街道路网规划 267
8.6 照片地理定位 271
8.7 小结 273
第9章 实时数据 274
9.1 实时路况监测 275
9.1.1 NextBus代理列表 276
9.1.2 NextBus路径列表 277
9.1.3 NextBus设备地址 277
9.1.4 NextBus地址映射 279
9.2 气象跟踪 283
9.3 区域报告 291
9.4 小结 292
第10章 综合应用 294
10.1 GPS报告示例 294
10.2 使用GPX-Reporter.py 295
10.3 程序概要 296
10.4 初始化 297
10.5 功能函数调用 298
10.6 解析GPX 302
10.7 获取边框 303
10.8 下载地图和高程影像 304
10.9 创建地形 306
10.10 创建地图 307
10.11 高程测量 310
10.12 距离测量 311
10.13 获取气象数据 313
10.14 小结 317
洞察地理,解锁数据潜力:一本关于空间分析的深入探索 地理空间信息,作为连接我们与世界万物的重要纽带,正以前所未有的速度重塑着科学研究、商业决策乃至日常生活。从精准描绘城市发展蓝图,到预测自然灾害的传播路径;从优化物流配送网络,到理解生态系统的演变规律,地理空间分析的力量无处不在,其重要性日益凸显。本书旨在为读者开启一扇通往精彩纷呈的地理空间分析世界的大门,并提供一套系统、实用的方法论,帮助您掌握驾驭和理解空间数据的核心技能。 我们所处的时代,数据爆炸式增长,而其中蕴含的地理空间信息更是如同浩瀚的星辰,等待着被探索和解读。无论是政府部门对土地利用的规划,企业对市场潜力的挖掘,还是科研人员对环境变化的追踪,都离不开对空间数据的深入分析。然而,面对海量、异构的地理空间数据,如何有效地提取有价值的信息,做出科学的决策,已成为一项挑战。本书将聚焦于这一关键领域,提供一套经过实践检验的、以数据为驱动的地理空间分析框架。 本书并非简单罗列技术工具,而是致力于构建一种“理解”空间数据的能力。我们将从地理空间信息的基本概念出发,逐步深入到复杂的数据处理、分析模型和可视化技术。您将学习如何准确地理解地理对象(点、线、面)的内在属性和空间关系,如何捕捉数据的空间自相关性,以及如何通过各种分析方法揭示隐藏在地理现象背后的规律。我们将强调理论与实践的结合,力求让您在掌握抽象概念的同时,也能熟练运用前沿的分析技术解决实际问题。 本书的编写遵循循序渐进的原则,确保不同背景的读者都能从中受益。对于初次接触地理空间分析的读者,我们将从最基础的 GIS 概念、坐标系统、数据格式入手,引导您建立起坚实的理论基础。我们将详细解释各种地理数据类型的特点,以及它们在分析中的作用。同时,您将学习如何进行常见的数据预处理操作,例如坐标转换、数据投影、空间连接等,这些都是后续高级分析的基石。 随着您对基础概念的掌握,本书将引导您进入更具挑战性的分析领域。您将学习如何运用空间查询和空间选择工具,从海量数据中精准提取您感兴趣的区域或要素。我们将深入探讨空间插值技术,用于估计未知区域的属性值,例如根据已知监测点的温度数据预测整个区域的温度分布。您还将接触到缓冲区分析,用于识别特定区域周边的影响范围,这在环境保护、城市规划等领域具有广泛的应用。 本书将重点介绍地理空间分析中至关重要的“空间统计”部分。空间统计不仅仅是传统的统计学在空间维度上的简单应用,它更加关注数据的空间分布特征,如聚集性、离散性和空间自相关。您将学习如何运用 Moran's I、Geary's C 等指标来量化空间自相关程度,理解热点分析(Getis-Ord Gi)和冷点分析(Local Moran's I)的原理和应用,从而识别出空间数据中具有统计学意义的聚类区域,这对于发现潜在的经济活动中心、疾病传播区域、犯罪高发区等至关重要。 除了描述性分析,本书还将引导您探索预测性和解释性模型在地理空间分析中的应用。您将学习如何构建和评估空间回归模型,例如普通最小二乘回归(OLS)、地理加权回归(GWR)等,以理解影响空间现象的驱动因素,并对未来的空间格局进行预测。GWR 模型尤其强调了空间异质性,即影响因素在空间上的变化,这将帮助您更精细地理解不同区域的差异性及其成因。 本书还将涵盖网络分析(Network Analysis)这一重要的地理空间分析分支。网络分析是解决与路径、服务范围、最优站点选择等问题相关的核心技术。您将学习如何构建和分析网络数据集,例如道路网络,并运用最短路径算法、服务区域分析等技术,解决实际的交通规划、物流配送、应急响应等问题。想象一下,如何为救护车规划最快的到达路线,或者确定某个消防站能够覆盖的最大服务范围,这些都是网络分析的典型应用场景。 可视化是地理空间分析不可或缺的一环。本书将强调如何通过有效的可视化手段,将复杂的空间数据和分析结果清晰地呈现给目标受众。您将学习如何创建高质量的地图,包括符号系统、分级统计地图、密度图、流向图等,以及如何运用交互式可视化技术,让数据“说话”,从而更好地传达信息和支持决策。我们将探讨不同可视化类型的使用场景和最佳实践,帮助您制作出既美观又富有洞察力的地图。 本书的独特之处在于其强调一种“问题导向”的学习方法。我们不会孤立地讲解某个技术,而是将其置于一个具体的应用场景中,展示如何运用该技术来解决实际问题。通过一系列精心设计的案例研究,您将看到地理空间分析如何在不同的领域发挥作用,例如: 城市规划与管理: 如何利用空间数据分析城市扩张模式,评估公共设施的服务水平,识别交通拥堵区域,并为可持续发展提供科学依据。 环境保护与资源管理: 如何监测和分析土地利用变化,评估环境污染的扩散,预测自然灾害的风险,以及优化自然资源的利用。 商业与市场分析: 如何识别潜在的市场区域,优化零售店选址,分析客户的空间分布,并制定更有效的市场营销策略。 社会科学研究: 如何分析人口的空间分布和迁移模式,研究社会不平等的空间表现,以及理解犯罪、健康等社会现象的空间驱动因素。 公共卫生: 如何追踪疾病的传播,识别高风险区域,并制定有针对性的公共卫生干预措施。 本书将鼓励您主动思考,并动手实践。我们理解,理论知识只有通过实践才能真正内化。因此,本书将提供丰富的实践指导,并引导您使用常用的地理空间分析工具和库。您将接触到各种处理和分析地理空间数据的强大工具,学习如何利用它们来解决现实世界的问题。 本书不仅关注“如何做”,更关注“为什么这么做”。我们致力于帮助您理解各种分析方法背后的逻辑和原理,从而使您能够根据具体的问题选择最合适的分析工具和技术,而不是生搬硬套。您将培养一种批判性思维,能够评估分析结果的可靠性,并理解不同方法的局限性。 总而言之,本书是一次关于地理空间信息分析的深入旅程。它将为您提供坚实的理论基础、实用的分析技能以及解决现实世界问题的能力。无论您是一名学生、研究人员、数据科学家,还是对地理空间信息充满兴趣的任何人士,本书都将是您探索和理解我们所居住的世界的宝贵伙伴。让我们一起,通过数据的力量,洞察地理的奥秘,解锁无限的可能性。