项目一 开发环境与ArcPy 简介…………………………………………………… 001
任务1.1 ArcPy 的发展历程 ………………………………………… 002
1.1.1 ArcPy 的起源与引入 …………………………………………… 002
1.1.2 ArcPy 的发展演变 ……………………………………………… 002
1.1.3 ArcPy 在ArcGIS 平台中的作用 ………………………………… 003
1.1.4 关键版本的功能变化 …………………………………………… 003
1.1.5 练习题 …………………………………………………………… 004
任务1.2 ArcPy 简介 ……………………………………………………… 005
1.2.1 ArcPy 的核心模块 ……………………………………………… 005
1.2.2 常用术语 ………………………………………………………… 008
1.2.3 练习题 …………………………………………………………… 010
任务1.3 Python 开发工具与ArcGIS Pro 集成 …………………………… 011
1.3.1 使用Python IDLE Shell 编写简单脚本 ………………………… 011
1.3.2 在PyCharm 中配置ArcPy 环境 ………………………………… 012
1.3.3 在VSCode 中集成ArcPy 并进行调试 ………………………… 014
1.3.4 练习题 …………………………………………………………… 015
任务1.4 ArcGIS Pro 中的Python ………………………………………… 016
1.4.1 使用ArcGIS Pro 的Python 窗口 ………………………………… 016
1.4.2 ArcGIS Pro 中的Notebook 集成与使用 ………………………… 018
1.4.3 Conda 环境管理 ………………………………………………… 019
1.4.4 练习题 …………………………………………………………… 022
项目总结 ……………………………………………………………………… 023
项目二 工作空间操作……………………………………………………………… 024
任务2.1 工作空间概念 …………………………………………………… 024
2.1.1 工作空间的定义 ………………………………………………… 024
2.1.2 工作空间的类型 ………………………………………………… 025
2.1.3 各类工作空间的对比 …………………………………………… 026
2.1.4 练习题 …………………………………………………………… 027
任务2.2 工作空间的创建与管理 ………………………………………… 028
2.2.1 设置工作空间路径 ……………………………………………… 028
2.2.2 创建文件夹工作空间 …………………………………………… 028
2.2.3 创建文件地理数据库 …………………………………………… 029
2.2.4 创建企业地理数据库 …………………………………………… 031
2.2.5 创建移动地理数据库 …………………………………………… 032
2.2.6 练习题 …………………………………………………………… 033
项目总结 ……………………………………………………………………… 034
项目三 列出数据…………………………………………………………………… 035
任务3.1 ListDatasets ……………………………………………………… 036
任务3.2 ListFeatureClasses ………………………………………………… 038
任务3.3 ListFields ………………………………………………………… 042
任务3.4 ListFiles …………………………………………………………… 046
任务3.5 ListIndexes ………………………………………………………… 048
任务3.6 ListRasters ………………………………………………………… 052
任务3.7 ListTables ………………………………………………………… 054
任务3.8 ListWorkspaces …………………………………………………… 056
任务3.9 综合应用 ………………………………………………………… 058
任务3.10 练习题 …………………………………………………………… 061
项目总结 ……………………………………………………………………… 062
项目四 矢量数据操作与编辑……………………………………………………… 063
任务4.1 矢量数据模型 …………………………………………………… 063
4.1.1 矢量数据基础知识 ……………………………………………… 063
4.1.2 常见矢量数据存储方式比较 …………………………………… 064
4.1.3 练习题 …………………………………………………………… 066
任务4.2 游标 ……………………………………………………………… 067
4.2.1 SearchCursor ……………………………………………………… 067
4.2.2 UpdateCursor ……………………………………………………… 070
4.2.3 InsertCursor ……………………………………………………… 072
4.2.4 练习题 …………………………………………………………… 075
任务4.3 几何 ……………………………………………………………… 076
4.3.1 基础知识 ………………………………………………………… 076
4.3.2 读取几何对象 …………………………………………………… 077
4.3.3 写入几何对象 …………………………………………………… 079
4.3.4 练习题 …………………………………………………………… 081
任务4.4 编辑操作 ………………………………………………………… 082
4.4.1 基础知识 ………………………………………………………… 082
4.4.2 示例 ……………………………………………………………… 084
4.4.3 练习题 …………………………………………………………… 089
任务4.5 定义坐标系 ……………………………………………………… 090
4.5.1 基础知识 ………………………………………………………… 090
4.5.2 示例 ……………………………………………………………… 091
4.5.3 练习题 …………………………………………………………… 092
项目总结 ……………………………………………………………………… 093
项目五 使用Python 访问地理处理工具………………………………………… 094
任务5.1 工具概述 ………………………………………………………… 094
5.1.1 地理处理工具简介 ……………………………………………… 094
5.1.2 工具的参数结构 ………………………………………………… 095
5.1.3 Python 与ArcGIS 工具的关系 …………………………………… 096
5.1.4 练习题 …………………………………………………………… 097
任务5.2 工具参数与高级使用 …………………………………………… 098
5.2.1 参数类型与分类 ………………………………………………… 098
5.2.2 输入参数与输出参数 …………………………………………… 098
5.2.3 必选参数与可选参数的区别 …………………………………… 099
5.2.4 高级参数设置技巧 ……………………………………………… 099
5.2.5 练习题 …………………………………………………………… 101
任务5.3 工具输出与消息获取 …………………………………………… 102
5.3.1 消息类型和严重性 ……………………………………………… 102
5.3.2 获取处理结果与消息 …………………………………………… 103
5.3.3 练习题 …………………………………………………………… 105
任务5.4 高级应用:多个工具链式调用 ………………………………… 106
5.4.1 工具链式调用的概念 …………………………………………… 106
5.4.2 传递工具的输出作为下一个工具的输入 ……………………… 106
5.4.3 提高工具执行效率 ……………………………………………… 108
5.4.4 处理多阶段地理处理任务 ……………………………………… 109
5.4.5 练习题 …………………………………………………………… 110
任务5.5 性能优化 ………………………………………………………… 111
5.5.1 批量执行工具的技巧 …………………………………………… 111
5.5.2 练习题 …………………………………………………………… 112
项目总结 ……………………………………………………………………… 113
项目六 栅格数据处理……………………………………………………………… 114
任务6.1 栅格数据模型 …………………………………………………… 114
6.1.1 栅格数据基础知识 ……………………………………………… 114
6.1.2 练习题 …………………………………………………………… 118
任务6.2 读取栅格数据属性 ……………………………………………… 119
6.2.1 获取照片的EXIF 元数据 ………………………………………… 119
6.2.2 获取栅格数据属性 ……………………………………………… 122
6.2.3 练习题 …………………………………………………………… 123
任务6.3 栅格数据分析 …………………………………………………… 124
6.3.1 外观 ……………………………………………………………… 124
6.3.2 数据管理 ………………………………………………………… 129
6.3.3 重分类 …………………………………………………………… 134
6.3.4 数学分析 ………………………………………………………… 136
6.3.5 统计分析 ………………………………………………………… 137
6.3.6 表面分析 ………………………………………………………… 139
6.3.7 练习题 …………………………………………………………… 143
项目总结 ……………………………………………………………………… 144
项目七 地图文档与图层操作……………………………………………………… 145
任务7.1 ArcGIS Pro 项目结构 …………………………………………… 145
7.1.1 ArcGIS Pro 工程文件概述 ……………………………………… 145
7.1.2 创建工程 ………………………………………………………… 146
7.1.3 练习题 …………………………………………………………… 149
任务7.2 创建与管理地图文档 …………………………………………… 150
7.2.1 创建新地图文档 ………………………………………………… 150
7.2.2 打开现有项目 …………………………………………………… 150
7.2.3 保存当前项目 …………………………………………………… 152
7.2.4 保存项目副本 …………………………………………………… 152
7.2.5 练习题 …………………………………………………………… 154
任务7.3 工程管理 ………………………………………………………… 155
7.3.1 创建新地图、场景和布局 ……………………………………… 155
7.3.2 修改地图、场景和布局属性 …………………………………… 157
7.3.3 练习题 …………………………………………………………… 160
任务7.4 图层管理 ………………………………………………………… 161
7.4.1 图层基础知识 …………………………………………………… 161
7.4.2 图层操作与数据管理 …………………………………………… 163
7.4.3 图层的访问与遍历 ……………………………………………… 164
7.4.4 练习题 …………………………………………………………… 169
任务7.5 图层属性与符号系统管理 ……………………………………… 170
7.5.1 图层属性修改 …………………………………………………… 170
7.5.2 符号系统控制 …………………………………………………… 172
7.5.3 练习题 …………………………………………………………… 173
任务7.6 标注与注记管理 ………………………………………………… 174
7.6.1 标注属性控制 …………………………………………………… 174
7.6.2 注记操作 ………………………………………………………… 176
7.6.3 练习题 …………………………………………………………… 177
任务7.7 修改图层数据源 ………………………………………………… 178
7.7.1 更新和修复数据源 ……………………………………………… 178
7.7.2 练习题 …………………………………………………………… 181
任务7.8 Element …………………………………………………………… 182
7.8.1 Element 操作 ……………………………………………………… 182
7.8.2 练习题 …………………………………………………………… 187
任务7.9 导出地图布局 …………………………………………………… 188
7.9.1 导出地图 ………………………………………………………… 188
7.9.2 练习题 …………………………………………………………… 189
任务7.10 高级制图与布局集成 …………………………………………… 190
7.10.1 导出地图册 ……………………………………………………… 190
7.10.2 练习题 …………………………………………………………… 191
项目总结 ……………………………………………………………………… 192
项目八 使用Python 创建脚本工具……………………………………………… 193
任务8.1 什么是脚本工具 ………………………………………………… 194
8.1.1 脚本工具参数 …………………………………………………… 194
8.1.2 脚本工具中的消息 ……………………………………………… 195
8.1.3 脚本工具中的进度条 …………………………………………… 197
8.1.4 练习题 …………………………………………………………… 198
任务8.2 创建脚本工具 …………………………………………………… 199
8.2.1 添加脚本工具 …………………………………………………… 199
8.2.2 脚本工具参数设置 ……………………………………………… 200
8.2.3 输入脚本代码 …………………………………………………… 201
8.2.4 验证参数和脚本工具行为 ……………………………………… 202
8.2.5 练习题 …………………………………………………………… 203
任务8.3 案例实操 ………………………………………………………… 203
8.3.1 创建脚本工具 …………………………………………………… 203
8.3.2 练习题 …………………………………………………………… 209
项目总结 ……………………………………………………………………… 209
项目九 Python 工具箱的使用… ………………………………………………… 210
任务9.1 创建Python 工具箱 ……………………………………………… 210
9.1.1 Python 工具箱概述 ……………………………………………… 210
9.1.2 创建工具箱的基本结构 ………………………………………… 211
9.1.3 Python 工具箱模板 ……………………………………………… 211
9.1.4 练习题 …………………………………………………………… 214
任务9.2 定义工具 ………………………………………………………… 214
9.2.1 工具类的定义 …………………………………………………… 215
9.2.2 设置工具的输入和输出参数 …………………………………… 215
9.2.3 编写工具的核心功能 …………………………………………… 216
9.2.4 定义工具的帮助文档 …………………………………………… 216
9.2.5 练习题 …………………………………………………………… 217
任务9.3 使用Python 工具箱 ……………………………………………… 218
9.3.1 将Python 工具箱加载到ArcGIS Pro 中 ………………………… 218
9.3.2 通过Python 脚本调用工具 ……………………………………… 219
9.3.3 用户交互:如何设置工具参数 ………………………………… 219
9.3.4 练习题 …………………………………………………………… 221
任务9.4 组织与管理工具箱 ……………………………………………… 222
9.4.1 工具箱结构优化 ………………………………………………… 222
9.4.2 多工具箱管理 …………………………………………………… 223
9.4.3 发布和共享工具箱 ……………………………………………… 224
9.4.4 练习题 …………………………………………………………… 224
任务9.5 Python 工具箱中的错误处理与调试 …………………………… 225
9.5.1 错误处理基础知识 ……………………………………………… 225
9.5.2 调试技巧 ………………………………………………………… 226
9.5.3 记录日志与错误报告 …………………………………………… 228
9.5.4 练习题 …………………………………………………………… 228
任务9.6 案例实操 ………………………………………………………… 229
9.6.1 创建Python 工具箱 ……………………………………………… 229
9.6.2 练习题 …………………………………………………………… 236
项目总结 ……………………………………………………………………… 237
项目十 使用GDAL 处理空间数据………………………………………………… 238
任务10.1 矢量数据处理 …………………………………………………… 238
10.1.1 读取和写入Shapefile …………………………………………… 238
10.1.2 矢量数据格式转换 ……………………………………………… 240
10.1.3 空间查询与筛选 ………………………………………………… 242
10.1.4 练习题 …………………………………………………………… 244
任务10.2 栅格数据处理 …………………………………………………… 244
10.2.1 栅格数据读取与写入 …………………………………………… 244
10.2.2 栅格格式转换 …………………………………………………… 246
10.2.3 栅格数据与矢量数据转换 ……………………………………… 248
10.2.4 练习题 …………………………………………………………… 250
任务10.3 空间分析功能 …………………………………………………… 251
10.3.1 栅格运算与合成 ………………………………………………… 251
10.3.2 栅格重采样与重投影 …………………………………………… 253
10.3.3 提取栅格统计数据 ……………………………………………… 255
10.3.4 练习题 …………………………………………………………… 257
项目总结 ……………………………………………………………………… 257
项目十一 综合案例………………………………………………………………… 258
任务11.1 根据数据库标准制作标准数据库 ……………………………… 259
11.1.1 制作标准数据库任务的实现 …………………………………… 259
11.1.2 练习题 …………………………………………………………… 264
任务11.2 根据接图表分割数据库 ………………………………………… 265
11.2.1 根据接图表分割数据库任务的实现 …………………………… 265
11.2.2 练习题 …………………………………………………………… 269
任务11.3 合并数据库 ……………………………………………………… 269
11.3.1 合并数据库任务的实现 ………………………………………… 269
11.3.2 练习题 …………………………………………………………… 275
任务11.4 根据接图表分割栅格数据 ……………………………………… 275
11.4.1 分割栅格数据任务的实现 ……………………………………… 275
11.4.2 练习题 …………………………………………………………… 278
参考文献……………………………………………………………………………… 280