ArcGIS Desktop 自带有大量的工具,可以执行各种各样的地理处理任务。通过 python 我们可以灵活地调用这些工具,把工具组织成自己的工作流,甚至创建一些新的工具。今天就说说在 ArcGIS 中创建 Python工具这个话题。
在 ArcGIS 中我们可以通过两种方式来创建python工具:
一种是在标准工具箱下创建 脚本工具:
一种是创建 脚本工具箱:
到这里,可能你会有和我一样的疑问,二者有什么 区别?
第一种脚本工具需要我们首先在 ArcGIS 环境中创建一个工具箱,然后添加 Python脚本文件(*.py),并通过向导来精确配置参数。这种工具很适合脚本工具的初学者,通过前面说的三步就可以搭建出一个自定义工具。但是这种模式也有一些缺点,工具箱和源脚本是分离的,我们很难集中的去管理和维护它们。
相比于前者的难以集中管理的缺点,第二种的Python工具箱就体现出了它的优势。在 Python 工具箱中,参数定义、代码验证和源代码都在同一位置进行处理,因此Python 工具的创建和维护更加容易。此外,Python 工具箱支持脚本工具不支持的功能,例如值表、复合数据类型和自定义许可检查。
Python 工具箱是在 ArcGIS 10.1 之后的版本出现的。如果你熟悉 Python,就可以充分利用所掌握的 Python 技能来创建 Python 工具箱。
下面是一些更加具体的对比列表:
自定义工具箱 | Python 工具箱 | |
组织 | 自定义工具箱中的脚本工具被组织成以下三个部分:
| Python 工具箱是一个具有 .pyt |
编辑 | 可在任何编辑器中编辑源代码。 通过脚本工具向导编辑参数。 如果使用了验证代码,可在编辑器中通过向导编辑验证代码。 | 可在任何编辑器中编辑 Python 工具箱文件 (.pyt),而且可在同一位置编辑工具的所有部分(参数定义、验证代码和源代码)。 由于只能在编辑器中编辑 Python 工具箱,它们不支持在工具箱内或工具箱之间进行复制/粘贴。 |
使用其他工具 | 自定义工具箱支持各种工具类型,包括 Python 脚本工具、模型工具和内置工具(使用 ArcObjects 和 .NET 等编译型语言构建)。 | Python 工具箱不直接支持其他工具类型;即,无法将模型工具或内置工具添加到 Python 工具箱中。但是,可在 Python 工具箱代码中调用其他工具箱的工具。 |
附加功能 | n/a | Python 工具箱支持 isLicensed |
附加安全性 | 自定义工具箱中的脚本工具可以将其源代码嵌入工具箱中并使用密码锁定。 | n/a |