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 腳本,其包含工具箱及其工具的所有方面:參數、驗證和執行。通過以下 Python 類實現:一個類用於工具箱,一個類用於各工具。 |
編輯 | 可在任何編輯器中編輯源代碼。 通過腳本工具嚮導編輯參數。 如果使用了驗證代碼,可在編輯器中通過嚮導編輯驗證代碼。 | 可在任何編輯器中編輯 Python 工具箱文件 (.pyt),而且可在同一位置編輯工具的所有部分(參數定義、驗證代碼和源代碼)。 由於只能在編輯器中編輯 Python 工具箱,它們不支持在工具箱內或工具箱之間進行復制/粘貼。 |
使用其他工具 | 自定義工具箱支持各種工具類型,包括 Python 腳本工具、模型工具和內置工具(使用 ArcObjects 和 .NET 等編譯型語言構建)。 | Python 工具箱不直接支持其他工具類型;即,無法將模型工具或內置工具添加到 Python 工具箱中。但是,可在 Python 工具箱代碼中調用其他工具箱的工具。 |
附加功能 | n/a | Python 工具箱支持 isLicensed 方法,您可以根據設定的條件來控制工具的打開。 |
附加安全性 | 自定義工具箱中的腳本工具可以將其源代碼嵌入工具箱中並使用密碼鎖定。 | n/a |