在 ArcGIS 9.0 中,首次引入了脚本工具框架,该框架便于新用户创建基于 Python 的工具,但是,对于经验比较丰富的用户来说,这一框架的效率不高。在脚本工具框架中:
- 通过向导定义参数
- 创建处于工具箱中的验证代码
- 以及分别创建和维护源脚本
所有这些部分都是分离的,而且很难进行集中管理。
在 ArcGIS 10.1 中,使用 Python 创建自定义地理处理工具的方式有以下两种:自定义工具箱中的脚本工具和 Python 工具箱中的脚本工具。
在 Python 工具箱中,参数定义、代码验证和源代码都在同一位置进行处理,因而,Python 工具的创建和维护更加容易。此外,Python 工具箱支持脚本工具不支持的功能,例如值表、复合数据类型和自定义许可检查。
对于具有 Python 经验的用户,Python 工具箱使您可以充分利用所掌握的 Python 技能,完全基于 Python 来方便地创建工具。如果您是 Python 新手,则更适合在自定义工具箱中创建工具,在自定义工具箱中,向导会逐步引导您完成脚本工具的必要部分。
如果您已经或计划在脚本工具中使用重要验证代码,您肯定会发现使用 Python 工具箱更为简单。
自定义工具箱 | Python 工具箱 | |
---|---|---|
组织 | 自定义工具箱中的脚本工具被组织成以下三个部分:
| Python 工具箱是一个具有 .pyt 扩展名的 Python 脚本,其包含工具箱及其工具的所有方面:参数、验证和执行。通过以下 Python 类实现:一个类用于工具箱,一个类用于各工具。 |
编辑 | 可在任何编辑器中编辑源代码。 通过脚本工具向导编辑参数。 如果使用了验证代码,可在编辑器中通过向导编辑验证代码。 | 可在任何编辑器中编辑 Python 工具箱文件 (.pyt),而且可在同一位置编辑工具的所有部分(参数定义、验证代码和源代码)。 由于只能在编辑器中编辑 Python 工具箱,它们不支持在工具箱内或工具箱之间进行复制/粘贴。 |
使用其他工具 | 自定义工具箱支持各种工具类型,包括 Python 脚本工具、模型工具和内置工具(使用 ArcObjects 和 .NET 等编译型语言构建)。 | Python 工具箱不直接支持其他工具类型;即,无法将模型工具或内置工具添加到 Python 工具箱中。但是,可在 Python 工具箱代码中调用其他工具箱的工具。 |
附加功能 | n/a | Python 工具箱支持 isLicensed 方法,您可以根据设定的条件来控制工具的打开。 |
附加安全性 | 自定义工具箱中的脚本工具可以将其源代码嵌入工具箱中并使用密码锁定。 | n/a |