概述
原文链接
3.1 介绍
第三章节描述了将 Python 脚本转换为脚本工具的过程。脚本工具可以将脚本集成到工作流中并扩展 ArcGIS Pro 的功能。脚本工具可以使用它们的工具对话框作为独立工具运行,但它们也可以在模型中使用或由其他脚本调用。脚本工具有一个工具对话框,其中包含传递给脚本的参数。开发脚本工具相对容易,大大提升了使用脚本的体验。工具对话框减少了用户错误,因为可以使用下拉列表、复选框、组合框和其他机制指定参数。 使用工具对话框提供了对用户输入的大量控制,大大减少了编写大量错误检查代码的需要。
创建脚本工具还可以更轻松地与他人共享脚本。
3.2 脚本工具与 Python 工具箱
在了解如何创建脚本工具之前,重要的是要区分可以使用 Python 开发以在 ArcGIS Pro 中使用的两种类型的工具。这一章的重点是如何创建脚本工具,有时也称为“Python 脚本工具”。这些工具的代码被编写为 Python 脚本,并且在工具运行时调用此脚本。 脚本工具的工具对话框是在 ArcGIS Pro 中创建的。使用 ArcGIS Pro 应用程序的内置选项手动创建工具属性和参数。这个方法提供了一种直观且易于学习的方法来创建和测试脚本工具。
尽管大多数脚本工具使用 Python,但也可以使用其他接受参数的脚本语言。例如,您可以使用 .com、.bat、.exe 或 .r 文件代替 .py 文件。脚本工具调用单个脚本文件,尽管在运行该工具时可以从主脚本调用其他脚本。
第二种方法是使用 Python 工具箱创建工具。在这种方法中,整个工具对话框都是用 Python 编写的,脚本保存为 .pyt 文件,在 ArcGIS Pro 中被识别为 Python 工具箱。
创建 Python 工具箱不使用 ArcGIS Pro 中的任何界面选项,并且工具箱完全在 Python 编辑器中创建。 Python 工具箱只能用 Python 编写,一个 Python 工具箱可以包含多个工具,所有工具都用同一个脚本文件 编写。第 4 章详细介绍了如何创建 Python 工具箱。
在 第一次 学习如何使用 Python 为 ArcGIS Pro 创建工具时,建议您从脚本工具开始,因为该过程更直观。一旦您获得了一些创建脚本工具的经验,您也可以开始使用 Python 工具箱。 使用这两种方法可以完成相同的任务,选择主要取决于偏好和经验。
在第 4 章的结尾重新审视了脚本工具和 Python 工具箱的一些优缺点。
3.3 为什么要创建自己的工具?
许多 ArcGIS Pro 工作流由一系列操作组成,其中一个工具的输出成为另一个工具的输入。模型构建器和脚本可用于按顺序自动运行这些工具。使用 ModelBuilder 创建和保存的任何模型都是工具,因为它位于工具箱 (.tbx 文件) 或地理数据库中。因此,模型通常在 ArcGIS Pro 中运行。但是,可以通过两种方式运行 Python 脚本 (.py 文件):
选项 1:作为独立脚本。脚本从操作系统或 Python 编辑器中运行。要使用 ArcPy 的脚本,必须安装 ArcGIS Pro 并获得许可,但无需打开 ArcGIS Pro 即可运行脚本。例如,您可以直接从操作系统安排脚本在规定的时间运行。
选项 2:作为 ArcGIS Pro 中的工具。 脚本变成了可在 ArcGIS Pro 中运行的工具。这样的工具与任何其他工具一样:它位于工具箱中,可以从工具对话框中运行,并且可以从其他脚本、模型和工具中调用。
使用工具而不是独立脚本有几个优点。这些好处适用于脚本工具和 Python 工具箱。
一个工具包括一个工具对话框,它使用户可以更容易地使用内置的验证和错误检查来输入参数。
工具成为地理处理不可或缺的一部分。因此,可以从 ArcGIS Pro 中访问该工具。也可以在模型构建器和 Python 窗口中使用该工具,并从另一个脚本中调用它。
工具与调用它的应用程序完全集成。因此,任何环境设置都会从 ArcGIS Pro 传递到该工具。
工具的使用使得编写工具消息成为可能。
可以为工具提供文档,可以像系统工具的文档一样访问这些文档。
共享工具可以更轻松地与他人共享脚本的功能。
精心设计的工具意味着用户不需要 Python 知识即可使用该工具。
尽管有很多好处,但开发一个强大的工具需要付出努力。如果脚本的主要目的是自动化仅由脚本作者执行的任务,那么开发脚本工具的额外努力可能没有必要。另一方面,将与其他人共享的脚本通常受益于作为工具提供。
最后
以上就是有魅力奇迹为你收集整理的第三章 ArcGIS Pro创建 python 脚本工具(一)的全部内容,希望文章能够帮你解决第三章 ArcGIS Pro创建 python 脚本工具(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复