第1章 面向ArcGIS的Python语言基础 1
1.1 使用IDLE进行Python脚本开发 2
1.1.1 Python Shell窗口 2
1.1.2 Python脚本窗口 3
1.1.3 编辑已有的Python脚本 3
1.1.4 在IDLE中运行脚本 5
1.2 ArcGIS Python窗口的使用 5
1.2.1 ArcGIS Python窗口 5
1.2.2 ArcGIS Python窗口的显示 6
1.3 Python语言基础 8
1.3.1 代码注释 8
1.3.2 模块导入 9
1.3.3 变量 10
1.3.4 内置数据类型 13
1.3.5 类和对象 19
1.3.6 语句 20
1.3.7 文件I/O(输入/输出) 25
1.4 总结 26
第2章 管理地图文档和图层 27
2.1 引言 27
2.2 引用当前的地图文档 28
2.2.1 准备工作 28
2.2.2 操作方法 28
2.2.3 工作原理 29
2.3 引用磁盘上的地图文档 30
2.3.1 准备工作 30
2.3.2 操作方法 30
2.3.3 工作原理 31
2.4 获取地图文档中的图层列表 31
2.4.1 准备工作 31
2.4.2 操作方法 31
2.4.3 工作原理 32
2.4.4 拓展 32
2.5 限制图层列表 33
2.5.1 准备工作 33
2.5.2 操作方法 33
2.5.3 工作原理 34
2.6 缩放至所选要素 35
2.6.1 准备工作 35
2.6.2 操作方法 35
2.6.3 工作原理 37
2.7 改变地图范围 37
2.7.1 准备工作 37
2.7.2 操作方法 38
2.7.3 工作原理 39
2.8 添加图层到地图文档 39
2.8.1 准备工作 40
2.8.2 操作方法 40
2.8.3 工作原理 42
2.8.4 拓展 42
2.9 插入图层到地图文档 42
2.9.1 准备工作 42
2.9.2 操作方法 43
2.9.3 工作原理 44
2.9.4 拓展 45
2.10 更新图层的符号系统 45
2.10.1 准备工作 45
2.10.2 操作方法 46
2.10.3 工作原理 47
2.10.4 拓展 48
2.11 更新图层属性 48
2.11.1 准备工作 48
2.11.2 操作方法 48
2.12 操作数据框中启用时间的图层 53
2.12.1 准备工作 53
2.12.2 操作方法 54
2.12.3 工作原理 58
第3章 查找和修复丢失的数据链接 59
3.1 引言 59
3.2 查找地图文档和图层文件中丢失的数据源 59
3.2.1 准备工作 60
3.2.2 操作步骤 60
3.2.3 工作原理 62
3.2.4 拓展 62
3.3 使用MapDocument.findAndReplace WorkspacePaths()方法修复丢失的数据源 62
3.3.1 准备工作 62
3.3.2 操作步骤 63
3.3.3 工作原理 64
3.3.4 拓展 64
3.4 使用MapDocument.replaceWorkspaces()方法修复丢失的数据源 65
3.4.1 准备工作 65
3.4.2 操作步骤 65
3.4.3 工作原理 67
3.5 使用replaceDataSource() 方法修复单个图层和表对象 68
3.5.1 准备工作 69
3.5.2 操作步骤 69
3.5.3 工作原理 72
3.5.4 拓展 72
3.6 查找文件夹中所有地图文档内丢失的数据源 72
3.6.1 准备工作 72
3.6.2 操作步骤 73
3.6.3 工作原理 74
第4章 自动化地图制图和打印 76
4.1 引言 76
4.2 创建布局元素的Python列表 77
4.2.1 准备工作 77
4.2.2 操作方法 78
4.2.3 工作原理 79
4.3 为布局元素指定唯一的名称 79
4.3.1 准备工作 79
4.3.2 操作方法 79
4.3.3 工作原理 82
4.3.4 拓展 82
4.4 使用ListLayoutElements() 函数限制返回的布局元素 83
4.4.1 准备工作 83
4.4.2 操作方法 83
4.4.3 工作原理 84
4.5 更新布局元素的属性 84
4.5.1 准备工作 84
4.5.2 操作方法 85
4.5.3 工作原理 87
4.6 获取可用的打印机的列表 87
4.6.1 准备工作 87
4.6.2 操作方法 87
4.6.3 工作原理 88
4.7 使用PrintMap() 函数打印地图 88
4.7.1 准备工作 89
4.7.2 操作方法 89
4.7.3 工作原理 90
4.8 导出地图为PDF文件 90
4.8.1 准备工作 90
4.8.2 操作方法 90
4.8.3 工作原理 92
4.9 导出地图为图像文件 92
4.9.1 准备工作 92
4.9.2 操作方法 92
4.9.3 工作原理 93
4.10 导出报表 93
4.10.1 准备工作 94
4.10.2 操作方法 94
4.10.3 工作原理 97
4.11 使用数据驱动页面和ArcPy制图模块构建地图册 98
4.11.1 准备工作 98
4.11.2 操作方法 98
4.11.3 工作原理 102
4.12 将地图文档发布为ArcGISServer服务 102
4.12.1 准备工作 103
4.12.2 操作方法 104
4.12.3 工作原理 109
第5章 使用脚本执行地理处理工具 110
5.1 引言 110
5.2 查找地理处理工具 110
5.2.1 准备工作 111
5.2.2 操作方法 111
5.2.3 工作原理 113
5.3 查看工具箱别名 114
5.3.1 准备工作 114
5.3.2 操作方法 115
5.3.3 工作原理 116
5.4 使用脚本执行地理处理工具 116
5.4.1 准备工作 117
5.4.2 操作方法 117
5.4.3 工作原理 118
5.4.4 拓展 119
5.5 将一个工具的输出作为另一个工具的输入 119
5.5.1 准备工作 119
5.5.2 操作方法 120
5.5.3 工作原理 122
第6章 创建自定义地理处理工具 123
6.1 引言 123
6.2 创建自定义地理处理工具 123
6.2.1 准备工作 123
6.2.2 操作方法 124
6.2.3 工作原理 138
6.2.4 拓展 139
6.3 创建Python工具箱 139
6.3.1 准备工作 139
6.3.2 操作方法 139
6.3.3 工作原理 148
第7章 查询和选择数据 149
7.1 引言 149
7.2 构造正确的属性查询语句 149
7.2.1 准备工作 150
7.2.2 操作方法 150
7.2.3 工作原理 153
7.3 创建要素图层和表视图 154
7.3.1 准备工作 154
7.3.2 操作方法 155
7.3.3 工作原理 157
7.3.4 拓展 157
7.4 使用Select Layer by Attribute工具选择要素和行 158
7.4.1 准备工作 158
7.4.2 操作方法 159
7.4.3 工作原理 161
7.5 使用Select Layer by Location工具选择要素 161
7.5.1 准备工作 161
7.5.2 操作方法 162
7.5.3 工作原理 165
7.6 结合空间查询和属性查询选择要素 165
7.6.1 准备工作 165
7.6.2 操作方法 166
7.6.3 工作原理 167
第8章 在要素类和表中使用ArcPy数据访问模块 168
8.1 引言 168
8.2 使用SearchCursor检索要素类中的要素 171
8.2.1 准备工作 171
8.2.2 操作方法 171
8.2.3 工作原理 173
8.3 使用where子句筛选记录 173
8.3.1 准备工作 173
8.3.2 操作方法 173
8.3.3 工作原理 174
8.4 使用几何令牌改进游标性能 174
8.4.1 准备工作 174
8.4.2 操作方法 175
8.4.3 工作原理 178
8.5 使用InsertCursor插入行 178
8.5.1 准备工作 178
8.5.2 操作方法 179
8.5.3 工作原理 183
8.6 使用UpdateCursor更新行 183
8.6.1 准备工作 183
8.6.2 操作方法 184
8.6.3 工作原理 187
8.7 使用UpdateCursor删除行 187
8.7.1 准备工作 187
8.7.2 操作方法 187
8.7.3 工作原理 189
8.8 在编辑会话中插入和更新行 189
8.8.1 准备工作 189
8.8.2 操作方法 190
8.8.3 工作原理 192
8.9 读取要素类中的几何信息 193
8.9.1 准备工作 193
8.9.2 操作方法 193
8.9.3 工作原理 195
8.10 使用Walk() 遍历目录 195
8.10.1 准备工作 195
8.10.2 操作方法 195
8.10.3 工作原理 197
第9章 获取GIS数据的列表和描述 198
9.1 引言 198
9.2 使用ArcPy列表函数 199
9.2.1 准备工作 199
9.2.2 操作方法 199
9.2.3 工作原理 201
9.2.4 拓展 201
9.3 获取要素类或表中的字段
列表 202
9.3.1 准备工作 202
9.3.2 操作方法 202
9.3.3 工作原理 204
9.4 使用Describe() 函数返回要素类的描述性信息 204
9.4.1 准备工作 204
9.4.2 操作方法 205
9.4.3 工作原理 207
9.5 使用Describe() 函数返回栅格图像的描述性信息 208
9.5.1 准备工作 208
9.5.2 操作方法 208
9.5.3 工作原理 210
第10章 使用Add-in定制ArcGIS界面 211
10.1 引言 211
10.2 下载并安装Python Add-in
Wizard 212
10.2.1 准备工作 212
10.2.2 操作方法 212
10.2.3 工作原理 214
10.3 创建按钮加载项和使用Python加载项模块 214
10.3.1 准备工作 214
10.3.2 操作方法 215
10.3.3 工作原理 222
10.4 安装和测试加载项 222
10.4.1 准备工作 223
10.4.2 操作方法 223
10.4.3 工作原理 227
10.5 创建工具加载项 228
10.5.1 准备工作 228
10.5.2 操作方法 229
10.5.3 工作原理 232
10.5.4 拓展 233
第11章 异常识别和错误处理 234
11.1 引言 234
11.2 默认的Python错误消息 235
11.2.1 准备工作 235
11.2.2 操作方法 235
11.2.3 工作原理 236
11.3 添加Python异常处理结构(try/except/else) 236
11.3.1 准备工作 236
11.3.2 操作方法 237
11.3.3 工作原理 238
11.3.4 拓展 238
11.4 使用GetMessages() 函数获取工具消息 238
11.4.1 准备工作 238
11.4.2 操作方法 239
11.4.3 工作原理 239
11.5 根据严重性级别筛选工具消息 239
11.5.1 准备工作 240
11.5.2 操作方法 240
11.5.3 工作原理 241
11.6 测试和响应特定的错误消息 241
11.6.1 准备工作 241
11.6.2 操作方法 242
11.6.3 工作原理 243
第12章 使用Python实现ArcGIS的高级功能 244
12.1 引言 244
12.2 ArcGIS REST API入门 245
12.2.1 准备工作 245
12.2.2 操作方法 245
12.2.3 工作原理 250
12.3 使用Python构建HTTP请求并解析响应 250
12.3.1 准备工作 251
12.3.2 操作方法 251
12.3.3 工作原理 254
12.4 使用ArcGIS REST API和Python获取图层信息 254
12.4.1 准备工作 254
12.4.2 操作方法 254
12.4.3 工作原理 256
12.5 使用ArcGIS REST API和Python导出地图 257
12.5.1 准备工作 257
12.5.2 操作方法 257
12.5.3 工作原理 259
12.6 使用ArcGIS REST API和Python查询地图服务 260
12.6.1 准备工作 260
12.6.2 操作方法 260
12.6.3 工作原理 264
12.7 使用Esri World GeocodingService进行地理编码 264
12.7.1 准备工作 264
12.7.2 操作方法 264
12.7.3 工作原理 266
12.8 使用FieldMap和FieldMappings 266
12.8.1 准备工作 266
12.8.2 操作方法 267
12.8.3 工作原理 273
12.9 使用ValueTable将多值输入到工具中 273
12.9.1 准备工作 274
12.9.2 操作方法 274
12.9.3 工作原理 275
第13章 在ArcGIS Pro中使用Python 276
13.1 引言 276
13.2 在ArcGIS Pro中使用新的Python窗口 277
13.3 桌面ArcGIS与ArcGIS Pro中Python的编码差异 280
13.4 为独立的ArcGIS Pro脚本安装Python 280
13.5 将桌面ArcGIS中的Python代码转换到ArcGIS Pro中 281
附录A 自动化Python脚本 282
A.1 引言 282
A.2 在命令行中运行Python脚本 283
A.2.1 准备工作 283
A.2.2 操作方法 283
A.2.3 工作原理 288
A.3 使用sys.argv[] 捕获命令行的输入 288
A.3.1 准备工作 288
A.3.2 操作方法 289
A.3.3 工作原理 290
A.4 添加Python脚本到批处理文件 290
A.4.1 准备工作 290
A.4.2 操作方法 291
A.4.3 工作原理 291
A.4.4 拓展 291
A.5 在规定的时间运行批处理文件 291
A.5.1 准备工作 292
A.5.2 操作方法 292
A.5.3 工作原理 296
附录B GIS程序员不可不知的5个Python功能 297
B.1 引言 297
B.2 读取带分隔符的文本文件 297
B.2.1 准备工作 298
B.2.2 操作方法 298
B.2.3 工作原理 300
B.2.4 拓展 301
B.3 发送电子邮件 301
B.3.1 准备工作 301
B.3.2 操作方法 302
B.3.3 工作原理 305
B.4 检索FTP服务中的文件 305
B.4.1 准备工作 306
B.4.2 操作方法 306
B.4.3 工作原理 309
B.4.4 拓展 309
B.5 创建ZIP文件 309
B.5.1 准备工作 310
B.5.2 操作方法 310
B.5.3 工作原理 312
B.5.4 拓展 313
B.6 读取XML文件 313
B.6.1 准备工作 313
B.6.2 操作方法 314
B.6.3 工作原理 315
B.6.4 拓展 316