^ 关注我,带你一起学GIS ^
前言
❝
地理处理工具是 GIS 中许多工作流的关键组成部分。 这些工具允许您在格式之间转换数据、组织数据以准备分析,从而执行各种类型的空间分析。 目前在 ArcGIS Pro 中大约有 2000 个地理处理工具。
这些工具通常从 ArcGIS Pro 中的工具对话框运行。 工具对话框提供了一个基于表单的图形界面,可用于选择适当的参数来运行该工具。 地理处理工具在 Python 中也可用作 ArcPy 的函数。 这允许自动执行 GIS 工作流,包括序列中涉及许多工具的工作流。
在 Python 中运行地理处理工具需要很好地理解工具的语法,包括必需参数和可选参数。 在本教程中,您将练习在 Python 窗口中运行地理处理工具。 本教程将演示如何使用正确的语法编写 Python 代码来运行地理处理工具。
本教程来源于ESRI官方示例如何使用 Python 运行地理处理工具。
文中以ArcGIS Pro3.5为例,默认你已经具备了Python的基础知识。
1. 开发环境
本文使用如下开发环境,以供参考。
时间:2026年
系统:Windows 11
ArcGIS Pro:3.5
Python:3.11.11
2. 数据准备
俗话说巧妇难为无米之炊,数据就是软件开发的基石,没有数据,再美好的设想都是空中楼阁。因此,第一步需要下载GIS数据。
别急,GIS之路公众号都给你准备好了
在公众号后台回复关键字:vector,获取数据下载链接。
而本文示例数据来源于ESRI官方教程,在此感谢ESRI相关工作人员的辛勤付出与免费共享。
数据下载地址:https://arcgis.com/sharing/rest/content/items/efb53cb7d7dc4ed8af06821369cf196c/data
下载数据解压完成,将工程添加到地图,可在ArcGIS Pro目录窗口查看图层数据,存储在Toronto.gdb数据库中。
将etobicoke、fire_stations和greenspace要素类添加到当前地图中 。
对于ArcGIS Pro底图失效的同学,可查看以下文章进行解决。
3. 在 notebook 中运行工具
在ArcGIS Pro 中的 Python 入门[1]中讲解了如何在Python窗口中运行脚本,由于笔者安装的ArcGIS Pro在Python窗口中不具备代码提示和工具说明功能,所以本节依然采用笔记本运行脚本,有关ArcGIS Pro中笔记本的详细信息可参考之前文章:
打开工程文件夹,将ambulances要素类添加到当前地图。在
ambulances要素类上右键,点击属性表,显示结果如下。
在本教程中将使用添加XY坐标工具,打开笔记本添加以下代码并运行。
import arcpy
arcpy.management.AddXY("ambulances")
打开要素类属性表,显示结果如下,新增了X、Y两个字段。
还可以使用另外一种方式运行地理处理工具。如下将工具写在前面,使用"."连接,将模块写在后面,使用"_"连接。
import arcpy
arcpy.AddXY_management("ambulances")
以下两种方式的使用效果是一致的。
arcpy.<toolboxalias>.<toolname>
arcpy.<toolname>_<toolboxalias>
由于在 ArcGIS Pro 中使用笔记本运行脚本,因此无需先导入 ArcPy 即可运行地理处理工具。 但是,最佳做法是始终在代码顶部使用 import arcpy,以确保相同的代码在 ArcGIS Pro 外部可以正常运行。
4. 查看工具参数
“添加 XY 坐标”工具仅使用单个参数,这导致代码非常短。 大多数地理处理工具有多个参数,包括必需参数和可选参数。 可以将“缓冲区”工具视为具有更多工具参数的工具示例。打开缓冲工具帮助页面。
地址:https://pro.arcgis.com/zh-cn/pro-app/latest/tool-reference/analysis/buffer.htm
向下滚动到参数部分,默认显示对话框选项。此表提供了工具参数的详细说明,包括它们的数据类型。 熟悉工具参数可以轻松在 Python 代码中使用该工具。
单击Python选项卡。
这显示了 Python 中“缓冲区”工具的语法。 “缓冲区”工具位于“分析工具”工具箱中,因此代码以 arcpy.analysis 开头,括号中是“缓冲区”工具的参数。
这些与工具对话框中的参数相同,顺序相同。 每个参数都有一个名称(例如 in_features),参数之间使用逗号分隔,后跟一个空格。 参数命名遵循 Python 中变量名称的约定:仅小写字母,单词之间使用下划线分隔以确保易读性。
地理处理工具具有必需参数和可选参数。 必需参数位于可选参数之前。 在语法中,您可以通过使用大括号 { } 来标识可选参数。 通过阅读语法,您可以确定“缓冲区”工具具有三个必需参数,后跟五个可选参数。
新建单元格输入以下代码,其中fire_stations为输入要素类,fire_buffer_1000为输出要素类,1000 METERS为缓冲距离。
arcpy.analysis.Buffer("fire_stations","fire_buffer_1000","1000 METERS")
还可以使用另外一种方式运行缓冲工具,写入以下代码并运行,其结果与上一种方式并无区别。
arcpy.Buffer_analysis("fire_stations","fire_buffer_1000","1000 METERS")
这两种运行方式是等效的。
arcpy.analysis.Buffer("fire_stations","fire_buffer_1000","1000 METERS")
arcpy.Buffer_analysis("fire_stations","fire_buffer_1000","1000 METERS")
5. 参考资料
使用 Python 运行地理处理工具: https://learn.arcgis.com/zh-cn/projects/run-geoprocessing-tools-with-python
[3] ArcGIS Pro 中的 Notebooks 入门
❝
GIS之路-开发示例数据下载,请在公众号后台回复:vector
全国信息化工程师-GIS 应用水平考试资料,请在公众号后台回复:GIS考试
❝
GIS之路 公众号已经接入了智能 助手,可以在对话框进行提问,也可以直接搜索历史文章进行查看。
都看到这了,不要忘记点赞、收藏 + 关注 哦 !
本号不定时更新有关 ***GIS开发 *** 相关内容,欢迎关注