编辑推荐
作者在遥感和GIS领域积累了丰富的研发和教学经验,本书的内容和代码示例将非常适合读者学习。通过详细的理论讲解,再结合丰富的代码示例,读者将能够细致地掌握使用Python进行地理任务的处理,同时参考代码示例的注释,了解每一段代码的真实含义。
内容简介
Python作为一种高级程序设计语言,凭借其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。作为ArcGIS的脚本语言,使用Python将大大提升地理数据处理的效率。n
本书共13章,分别介绍了空间数据、Python基础、OGR库、矢量数据、过滤和选择数据、几何对象的操作细节、空间关系、空间参考系统、GDAL库、栅格数据、监督和非监督技术,以及Python的相关模块和库的使用。通过阅读本书,读者将详细了解Python语言在地理数据处理领域的具体应用。n
本书讲解细致、示例丰富,适合任何想学习使用地理空间数据的读者阅读。地理空间分析领域的新读者也将从本书受益。
作者简介
Chris Garrard 是犹他州立大学的一名开发人员,她还教授一门使用Pytho语言进行GIS编程的研究生课程。作者将其丰富的实践和教学经验融汇贯通于本书,为读者呈现了一本经典的实战类地理开发类的Python实战指南。
目录
- 第1章 引言 1
- 1.1 为什么使用Python和开源工具 2
- 1.2 空间数据的类型 3
- 1.3 地理数据处理 6
- 1.4 探究数据 8
- 1.5 小结 12
- 第2章 Python基础 13
- 2.1 编写和执行代码 14
- 2.2 一个脚本的基本结构 15
- 2.3 变量 16
- 2.4 数据类型 17
- 2.4.1 布尔型 18
- 2.4.2 数值型 18
- 2.4.3 字符串 19
- 2.4.4 列表和元组 21
- 2.4.5 集合 23
- 2.4.6 字典 24
- 2.5 控制流 24
- 2.5.1 if语句 25
- 2.5.2 while语句 26
- 2.5.3 for语句 26
- 2.5.4 break、continue和else 27
- 2.6 函数 29
- 2.7 类 30
- 2.8 小结 31
- 第3章 读写矢量数据 32
- 3.1 矢量数据介绍 32
- 3.2 OGR介绍 38
- 3.3 读取矢量数据 41
- 3.3.1 访问特定要素 44
- 3.3.2 查看数据 46
- 3.4 获取数据的元数据 48
- 3.5 矢量数据写入 51
- 3.5.1 创建新的数据源 55
- 3.5.2 新建属性字段 57
- 3.6 更新现有数据 58
- 3.6.1 改变图层定义 59
- 3.6.2 要素添加、更新和删除 60
- 3.7 小结 61
- 第4章 处理不同的矢量文件 63
- 4.1 矢量文件格式 63
- 4.1.1 基于文件的格式如shapefiles和GeoJSON 64
- 4.1.2 多用户数据库格式如PostGIS 66
- 4.2 处理更多的数据格式 67
- 4.2.1 SpatiaLite 67
- 4.2.2 PostGIS 69
- 4.2.3 文件夹作为数据源(shapefiles和CSV) 69
- 4.2.4 Esri文件地理数据库 70
- 4.2.5 网络要素服务 71
- 4.3 测试格式能力 79
- 4.4 小结 81
- 第5章 使用OGR过滤数据 83
- 5.1 属性过滤条件 84
- 5.2 空间过滤条件 87
- 5.3 使用SQL创建临时图层 91
- 5.4 充分利用过滤条件 95
- 5.5 小结 96
- 第6章 利用OGR处理几何要素 97
- 6.1 几何对象介绍 98
- 6.2 处理点集 99
- 6.2.1 创建和编辑单点 99
- 6.2.2 创建和编辑多点:多点作为一个几何类型 101
- 6.3 处理线要素 103
- 6.3.1 创建和编辑单条线 105
- 6.3.2 创建和编辑多线:多线作为一个几何类型 109
- 6.4 处理多边形 112
- 6.4.1 创建和编辑单多边形 113
- 6.4.2 创建和编辑multipolygons:复合多边形成为一个几何类型 115
- 6.4.3 编辑和创建带洞的多边形:甜甜圈 117
- 6.5 小结 120
- 第7章 使用GR进行矢量分析 121
- 7.1 叠加分析工具:什么在什么上面 122
- 7.2 邻近分析工具:要素之间有多远 128
- 7.3 实例:风力发电场选址 132
- 7.4 实例:动物跟踪数据 136
- 7.5 小结 144
- 第8章 使用空间参照系统参考系统 145
- 8.1 空间参考介绍 145
- 8.2 使用OSR空间参考 150
- 8.2.1 空间参考对象 150
- 8.2.2 创建控件参考对象 153
- 8.2.3 为数据分配SRS 155
- 8.2.4 几何对象重投影 155
- 8.2.5 重投影整个图层 159
- 8.3 使用pyproj空间参考 159
- 8.3.1 在不同空间参考系统中转换坐标 160
- 8.3.2 计算大圆距离 162
- 8.4 小结 163
- 第9章 读写栅格数据 164
- 9.1 栅格数据介绍 165
- 9.2 GDAL介绍 170
- 9.3 读取部分数据集 176
- 9.3.1 使用现实世界的坐标 181
- 9.3.2 数据重采样 185
- 9.4 字节序列 188
- 9.5 子数据集 191
- 9.6 网络地图服务 192
- 9.7 小结 195
- 第10章 处理栅格数据 196
- 10.1 地面控制点 197
- 10.2 将像素坐标转换为另一图像 200
- 10.3 颜色表 203
- 10.4 直方图 205
- 10.5 属性表 208
- 10.6 虚拟栅格格式 210
- 10.6.1 影像裁剪 212
- 10.6.2 创建问题格式 214
- 10.6.3 影像重投影 215
- 10.7 回调函数 216
- 10.8 异常和错误处理程序 219
- 10.9 小结 222
- 第11章 使用NumPy和SciPy做地图运算 223
- 11.1 NumPy介绍 224
- 11.2 地图代数 227
- 11.2.1 局部分析 228
- 11.2.2 焦点分析 232
- 11.2.3 区域分析 243
- 11.2.4 全局分析 247
- 11.3 数据重采样 252
- 11.4 小结 259
- 第12章 地图分类 260
- 12.1 非监督分类 261
- 12.2 监督分类 263
- 12.3 小结 269
- 第13章 数据可视化 270
- 13.1 Matplotlib 270
- 13.1.1 绘制矢量数据 271
- 13.1.2 绘制栅格数据 282
- 13.1.3 绘制三维数据 287
- 13.2 Mapnik 289
- 13.2.1 绘制矢量数据 290
- 13.2.2 使用XML存储信息 295
- 13.2.3 绘制栅格数据 297
- 13.3 小结 300
- 附录A 安装 301
- 附录B 参考文献 308