Python是目前最热门的开发语言之一, ESRI公司已经将Python作为ArcGIS产品的主要二次开发语言。在ArcGIS开发中使用Python语言,既可以高效地调取ArcGIS地理数据处理的功能,又可以便捷地使用众多Python的开源资源。本书结合大量地理实际应用代码和数据,重点介绍了Python的基础知识、ArcGIS中Python的使用方法、地图文档和图层的访问与管理、空间数据访问与操作、矢量数据和栅格数据分析、地图制图、自定义工具、插件制作等内容。本书可供地理学、生态学等相关专业从事地理数据处理的人员学习使用,从而快速掌握ArcGIS Python编程方法。
芮小平,1975年生,博士(后),河海大学教授,博士生导师,美国威斯康辛大学(麦迪逊)与澳大利亚科廷大学访问学者。主要从事地理信息系统理论与应用方面的研究,研究方向包括空间信息可视化、基于GIS的应急决策方法、路径优化与资源分配问题等。现为《地理与地理信息科学》杂志编委,中国系统仿真协会会员,近几年,先后主持了国家自然科学基金项目面上和青年项目、北京市自然科学基金面上项目、国家科技重大专项油气专项专题和水专项专题、国家科技支撑计划专题、国家深部探测专项专题和北京市重大专项课题等18项国家和省部级纵向项目和7项横向科研项目;参与了国家973项目专题“GIS支持的人类活动条件下区域地下水系统响应”和中国科学院重大战略性先导专项课题“煤田自燃中的碳排放”等8项。2008年获得国家测绘科技进步二等奖(排名第6),2014年获得甘肃省林业科技进步奖一等奖(排名第10),2017年获得江苏省科技进步奖三等奖(排名第7),2018年获北京市水利学会科技进步奖二等奖(排名第1)。已发表论文100余篇(其中被国际论文三大检索机构检收录的论文达45篇),编写专著1部和GIS开发教材2部。获得软件著作权16项和国家发明专利2项(排名第二)。
第1章 Python基础 1
1.1 Python发展历史及特点 1
1.1.1 Python发展历史 1
1.1.2 Python特点 1
1.2 Python语言基础 2
1.2.1 入门概念 2
1.2.2 变量、函数和类的定义使用 3
1.2.3 语句 12
1.2.4 数据文件操作 17
1.2.5 数据库操作 19
1.2.6 中文字符操作 20
第2章 ArcPy编写地理数据处理程序基础 22
2.1 ArcPy概述 22
2.1.1 什么是ArcPy 22
2.1.2 为什么使用ArcPy 22
2.2 ArcGIS Python编程环境简介 23
2.2.1 启动Python shell窗口 23
2.2.2 启动Python 脚本编辑窗口 24
2.3 ArcPy中的函数和类 28
2.3.1 基本概念 28
2.3.2 常用函数 29
2.3.3 常用类 33
2.4 利用ArcPy编写第一个程序 43
2.5 ArcPy的错误和警告处理机制 46
2.5.1 ArcPy的错误处理机制 46
2.5.2 ArcPy的警告处理机制 47
第3章 管理地图文档与图层 49
3.1 使用当前地图文档 49
3.1.1 将当前地图文档另存为其他地图文档 50
3.1.2 使用全文件名引用地图文档 50
3.2 获取地图数据框架 51
3.3 访问地图图层信息 51
3.4 修改地图图层属性 53
3.5 地图文档中的图层操作 54
3.5.1 在地图数据框架中添加图层 54
3.5.2 在地图数据框架中删除图层 57
3.5.3 在地图文档中移动图层 57
第4章 ArcPy查询空间数据 59
4.1 属性字段的访问 59
4.1.1 地理数据表中的字段 59
4.1.2 获得字段名称 59
4.2 空间数据属性的查询 61
4.2.1 Cursor和行对象 61
4.2.2 查询功能的实现 62
4.2.3 空间数据编辑和更新 64
4.2.4 空间数据插入 65
4.2.5 游标和锁定 66
4.3 操作二进制数据 67
4.3.1 向数据库插入图片 68
4.3.2 从数据库读取图片 68
4.4 ArcGIS中通过属性条件和空间位置关系的查询 68
4.4.1 通过属性条件查询 69
4.4.2 通过空间位置关系查询 70
第5章 ArcPy操作空间数据 73
5.1 属性数据操作 73
5.1.1 添加属性字段 73
5.1.2 删除属性字段 74
5.1.3 关系型表属性字段值统计 75
5.1.4 要素类数据统计 76
5.1.5 ArcPy操作Excel文件 77
5.1.6 属性表格数据格式转换 78
5.2 几何数据操作 79
5.2.1 矢量数据基本信息的获取 79
5.2.2 几何对象的属性与方法 80
5.2.3 使用几何令牌 89
5.2.4 创建shape文件 90
5.2.5 矢量数据的即时投影转换 103
5.3 矢量数据专题图与符号设置 104
5.3.1 专题图制作 104
5.3.2 符号设置 108
5.4 栅格数据操作 116
5.4.1 常用基本操作 116
5.4.2 获取栅格数据属性 117
5.4.3 获取单个像元值 118
5.4.4 栅格数据的数组方式操作 119
5.5 栅格数据专题图 123
5.6 地图打印输出 126
5.6.1 简单地图输出 127
5.6.2 考虑制图要素的地图输出 128
5.6.3 基于Data Driven Pages的批量打印 131
第6章 ArcPy空间数据分析 136
6.1 矢量数据空间分析 136
6.1.1 矢量数据批处理 136
6.1.2 矢量数据工作流处理方式 144
6.1.3 矢量数据网络分析 155
6.2 栅格数据空间分析 165
6.2.1 栅格数据的归一化 165
6.2.2 成本距离分析 169
6.2.3 栅格数据的提取 172
6.2.4 地面因子分析 179
6.2.5 空间数据插值 183
6.2.6 栅格数据重分类 189
6.2.7 栅格数据重采样 193
6.2.8 ArcPy水文分析 196
6.3 定义和调用Arctoolbox工具 199
6.3.1 新建工具箱 199
6.3.2 添加脚本工具 200
6.3.3 设置脚本工具属性 200
6.4 基于ModelBuilder建模的ArcPy使用方法 210
第7章 ArcPy定制Add-In插件 222
7.1 Add-In简介 222
7.1.1 Add-In基本类型 223
7.1.2 Add-In的组成 225
7.2 Python Add-In插件的制作方法 225
7.3 安装和共享插件 235
7.3.1 安装插件 235
7.3.2 共享插件 238
7.4 管理Add-In 239
7.5 插件编程方法及实例 241
7.5.1 ArcPy中插件相关的类和模块 241
7.5.2 ArcPy中插件编程方法及实例 249