ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

比较自定义工具箱和 Python 工具箱

在 ArcGIS 9.0 中,首次引入了脚本工具框架,该框架便于新用户创建基于 Python 的工具,但是,对于经验比较丰富的用户来说,这一框架的效率不高。在脚本工具框架中,可执行以下操作:

  • 通过向导定义参数。
  • 创建处于工具箱中的验证代码。
  • 分别创建和维护源脚本。

所有这些部分都是分离的,而且很难进行集中管理。

自 ArcGIS 10.1 起,使用 Python 创建自定义地理处理工具的方式有以下两种:自定义工具箱中的脚本工具和 Python 工具箱中的脚本工具。

在 Python 工具箱中,参数定义、代码验证和源代码都在同一位置进行处理,因而,Python 工具的创建和维护更加容易。此外,Python 工具箱支持脚本工具不支持的功能,例如值表、复合数据类型和自定义许可检查。

对于具有 Python 经验的用户,Python 工具箱使您可以充分利用所掌握的 Python 技能,完全基于 Python 来方便地创建工具。如果您是 Python 新手,则更适合在自定义工具箱中创建工具,在自定义工具箱中,向导会逐步引导您完成脚本工具的必要部分。

如果您已经或计划在脚本工具中使用重要验证代码,您肯定会发现使用 Python 工具箱更为简单。

自定义工具箱Python 工具箱

组织

自定义工具箱中的脚本工具被组织成以下三个部分:

  1. 通过向导定义的工具和参数定义。
  2. 对参数行为提供额外控制的可选验证代码,其位于工具箱中。
  3. 在单独的文件中为每个工具维护的源代码,通常作为 Python 脚本 (.py)。

Python 工具箱是一个具有 .pyt 扩展名的 Python 脚本,其包含工具箱及其工具的所有方面:参数、验证和执行。通过以下 Python 类实现:一个类用于工具箱,一个类用于各工具。

编辑

可在任何编辑器中编辑源代码。

通过脚本工具向导编辑参数。

如果使用了验证代码,可在编辑器中通过向导编辑验证代码。

可在任何编辑器中编辑 Python 工具箱文件 (.pyt),而且可在同一位置编辑工具的所有部分(参数定义、验证代码和源代码)。

由于只能在编辑器中编辑 Python 工具箱,它们不支持在工具箱内或工具箱之间进行复制或粘贴。

使用其他工具

自定义工具箱支持各种工具类型,包括 Python 脚本工具、模型工具(使用模型构建器构建)和内置工具(使用 ArcObjects 和 .NET 等编译型语言构建)。

Python 工具箱不直接支持其他工具类型;即,无法将模型工具或内置工具添加到 Python 工具箱中。但是,可在 Python 工具箱代码中调用其他工具箱的工具。

附加功能

n/a

Python 工具箱支持 isLicensed 方法,您可以根据设定的条件来控制工具的打开。

附加安全性

自定义工具箱中的脚本工具可以将其源代码嵌入工具箱中并使用密码保护。

Python 工具箱 .pyt 文件可在同一位置进行加密并使用密码保护。

相关主题

  • 访问脚本工具中的参数
  • 设置脚本工具参数
  • 定义 Python 工具箱中的参数
  • 访问 Python 工具箱中的参数

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2018 Esri. | 隐私政策 | 法律声明