在ArcGIS中建立Python工具(一)

2021-07-04 23:26:13 字數 1518 閱讀 1952

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

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

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

一種是建立指令碼工具箱

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

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

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

python 工具箱是在 arcgis 10.1 之後的版本出現的。如果你熟悉 python,就可以充分利用所掌握的 python 技能來建立 python 工具箱。

下面是一些更加具體的對比列表:

自定義工具箱

python 工具箱

組織自定義工具箱中的指令碼工具被組織成以下三個部分:

通過嚮導定義的工具和引數定義。

對引數行為提供額外控制的可選驗證**,其位於工具箱中。

在單獨的檔案中為每個工具維護的源**,通常作為 python 指令碼 (.py)。

python 工具箱是乙個具有 .pyt 副檔名的 python 指令碼,其包含工具箱及其工具的所有方面:引數、驗證和執行。通過以下 python 類實現:乙個類用於工具箱,乙個類用於各工具。

編輯可在任何編輯器中編輯源**。

通過指令碼工具嚮導編輯引數。

如果使用了驗證**,可在編輯器中通過嚮導編輯驗證**。

可在任何編輯器中編輯 python 工具箱檔案 (.pyt),而且可在同一位置編輯工具的所有部分(引數定義、驗證**和源**)。

由於只能在編輯器中編輯 python 工具箱,它們不支援在工具箱內或工具箱之間進行複製/貼上。

使用其他工具

自定義工具箱支援各種工具型別,包括 python 指令碼工具、模型工具和內建工具(使用 arcobjects 和 .net 等編譯型語言構建)。

python 工具箱不直接支援其他工具型別;即,無法將模型工具或內建工具新增到 python 工具箱中。但是,可在 python 工具箱**中呼叫其他工具箱的工具。

附加功能

n/apython 工具箱支援 islicensed 方法,您可以根據設定的條件來控制工具的開啟。

附加安全性

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

n/a

protocol buffer在python中使用

2.然後將potoc 3.0.0 win32.zip下 檔案 protoc.exe,放到protobuf python 3.0.0 protobuf 3.0.0 src中,在cmd 下在資料夾protobuf python 3.0.0 protobuf 3.0.0 python下依次執行 pytho...

arcgis在webpack中的使用

因為dojo本身帶有模組載入的功能,會與webpack本身有衝突,所以需要借助esriloder。npm i esri loaderesri loader暴露了loadcss和loadmodules兩個方法,分別用來載入css和js檔案。引入import from esri loader 自動載入c...

ArcGIS 建立幾何網路

前幾天碰到管網網路分析的功能,需要實現網路資料集geometric network的建立,但在網路上搜尋後發現都不具體,不合適,自己拿乙份資料試了多次後才找到方法。1.首先,肯定是要在mdb中建立乙個資料集dataset,然後右鍵建立geometric network 2.設定要素之間可一容許的距離...