1. 程式人生 > >在ArcGIS中建立Python工具(一)

在ArcGIS中建立Python工具(一)

ArcGIS Desktop 自帶有大量的工具,可以執行各種各樣的地理處理任務。通過 python 我們可以靈活地呼叫這些工具,把工具組織成自己的工作流,甚至建立一些新的工具。今天就說說在 ArcGIS 中建立 Python工具這個話題。


在 ArcGIS 中我們可以通過兩種方式來建立python工具:

一種是在標準工具箱下建立 指令碼工具:

這裡寫圖片描述

一種是建立 指令碼工具箱

這裡寫圖片描述


到這裡,可能你會有和我一樣的疑問,二者有什麼 區別

第一種指令碼工具需要我們首先在 ArcGIS 環境中建立一個工具箱,然後新增 Python指令碼檔案(*.py),並通過嚮導來精確配置引數。這種工具很適合指令碼工具的初學者,通過前面說的三步就可以搭建出一個自定義工具。但是這種模式也有一些缺點,工具箱和源指令碼是分離的,我們很難集中的去管理和維護它們。

相比於前者的難以集中管理的缺點,第二種的Python工具箱就體現出了它的優勢。在 Python 工具箱中,引數定義、程式碼驗證和原始碼都在同一位置進行處理,因此Python 工具的建立和維護更加容易。此外,Python 工具箱支援指令碼工具不支援的功能,例如值表、複合資料型別和自定義許可檢查。

Python 工具箱是在 ArcGIS 10.1 之後的版本出現的。如果你熟悉 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 方法,您可以根據設定的條件來控制工具的開啟。

附加安全性

自定義工具箱中的指令碼工具可以將其原始碼嵌入工具箱中並使用密碼鎖定。

n/a