使用 Python 运行地理处理工具

17 阅读6分钟

^ 关注我,带你一起学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_stationsgreenspace要素类添加到当前地图中

对于ArcGIS Pro底图失效的同学,可查看以下文章进行解决。

ArcGIS Pro 添加底图的方式

3. 在 notebook 中运行工具

ArcGIS Pro 中的 Python 入门[1]中讲解了如何在Python窗口中运行脚本,由于笔者安装的ArcGIS Pro在Python窗口中不具备代码提示和工具说明功能,所以本节依然采用笔记本运行脚本,有关ArcGIS Pro中笔记本的详细信息可参考之前文章:

ArcGIS Pro 中的 notebook 初识[2]

ArcGIS Pro 中的 Notebooks 入门[3]

打开工程文件夹,将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

[1] ArcGIS Pro 中的 Python 入门

[2] ArcGIS Pro 中的 notebook 初识

[3] ArcGIS Pro 中的 Notebooks 入门

GIS之路-开发示例数据下载,请在公众号后台回复:vector

全国信息化工程师-GIS 应用水平考试资料,请在公众号后台回复:GIS考试

GIS之路 公众号已经接入了智能 助手,可以在对话框进行提问,也可以直接搜索历史文章进行查看。

都看到这了,不要忘记点赞、收藏 + 关注

本号不定时更新有关 ***GIS开发 *** 相关内容,欢迎关注 



    

GeoTools 开发合集(全)

OpenLayers 开发合集(全)

GDAL 开发合集(全)

GIS 影像数据源介绍

GeoJSON 数据源介绍

GIS 名词解释

ArcPy,一个基于 Python 的 GIS 开发库简介

GIS 开发库 Turf 介绍

GIS 开发库 GeoTools 介绍

GIS 开发库 GDAL 介绍

地图网站大全

从微信指数看当前GIS框架的趋势

Landsat 卫星数据介绍

OGC:开放地理空间联盟简介

中国地图 GeoJSON 数据集网站介绍

高校停招GIS专业背后,隐藏着怎样的逻辑?