编辑推荐

作者在遥感和GIS领域积累了丰富的研发和教学经验,《Python地理数据处理》的内容和代码示例将非常适合读者学习。通过详细的理论讲解,再结合丰富的代码示例,读者将能够细致地掌握使用Python进行地理任务的处理,同时参考代码示例的注释,了解每一段代码的真实含义。

内容简介

Python作为一种高级程序设计语言,凭借其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。作为ArcGIS的脚本语言,使用Python将大大提升地理数据处理的效率。
Python地理数据处理》共13章,分别介绍了空间数据、Python基础、OGR库、矢量数据、过滤和选择数据、几何对象的操作细节、空间关系、空间参考系统、GDAL库、栅格数据、监督和非监督技术,以及Python的相关模块和库的使用。通过阅读《Python地理数据处理》,读者将详细了解Python语言在地理数据处理领域的具体应用。
Python地理数据处理》讲解细致、示例丰富,适合任何想学习使用地理空间数据的读者阅读。地理空间分析领域的新读者也将从《Python地理数据处理》受益。

作者简介

ChrisGarrard是犹他州立大学的一名开发人员,她还教授一门使用Python语言进行GIS编程的研究生课程。作者将其丰富的实践和教学经验融汇贯通于《Python地理数据处理》,为读者呈现了一本经典的实战类地理开发类的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

精彩书摘

  《Python地理数据处理》:
  有两个主要版本的Python2.x和Python3.x,它们之间有一些显著差异,所以不可完全互换。然而,很多代码都可在这两个版本上运行,所以我在写《Python地理数据处理》实例代码时就做了特殊处理,以便它们能在其中任一个版本中使用。2.x分支的最新版本是2.7,这个分支中没有更多的主要版本。3.x分支正在积极开发,如果没有特定的版本要求,建议选择稳定的2.7版本,因为如Python网站所说,它是“语言的现在和未来”。但如果需要使用未更新到Python3.x版本的第三方模块,则可能会强制使用较旧版本的Python。
  例如,我同时使用Python2.7和3.3,但在工作中通常是2.7,因为ArcGIS软件在大学里广泛使用,它需要Python2.7。因为我的同事和学生几乎总是安装ArcGIS,即使他们没有意识到,但他们也已经有了Python2.7。帮助他们安装开源工具,以使用他们已经有的Python版本,这是有意义的。这样,如果我想在同一个脚本中利用GDAL和ArcGIS,就可以使用并教给他们这样做。
  ……

其他推荐