青島做網(wǎng)站大公司有哪些重慶seo排
ArcGis Pro Python工具箱教程 03 工具箱中工具自定義
用于定義工作工具類的方法
工具方法 | 必選或可選 | 描述 |
---|---|---|
__ init __ | 必需項 | right-aligned 初始化工具類。 |
getParameterInfo | 可選 | 定義工具的參數(shù)。 |
isLicensed | 可選 | 返回工具是否獲得執(zhí)行許可。 |
updateParameters | 可選 | 在用戶每次在工具對話框中更改參數(shù)時調用。 從 updateParameters 返回后,地理處理將調用它的內部驗證例程。 |
updateMessages | 可選 | 在從內部驗證例程返回后調用。 可以檢查根據(jù)內部驗證創(chuàng)建的消息,并根據(jù)需要對其進行更改 |
execute | 必需項 | 工具的源代碼。 |
postExecute | 可選 | 當 execute 方法完成,然后處理輸出并將其添加到顯示后調用。 |
可在工具的 init 方法中設置以下屬性:
屬性 | 描述 |
---|---|
category | 工具所在的工具集的名稱。 可通過工具集組織工具箱內的工具。 |
description | 工具的描述。 |
label | 標注是工具的顯示名稱,如地理處理窗格中所示。 |
class DaoMingyuan_GIS: # 工具名稱由類本身的名稱確定def __init__(self):# 定義工具 self.label = "公眾號:明遠GIS DaoMingyuan_GIS"# 工具的顯示名稱self.description = "關注作者公眾號,了解更多資訊"# 工具的描述self.category = "00-工具簡介"# 工具集的名稱
getParameterInfo 定義工具的參數(shù)
??幾乎所有工具都具有參數(shù),可在工具對話框或腳本中設置參數(shù)值。 運行工具時,會將參數(shù)值發(fā)送到該工具的源代碼。 該工具將讀取這些值并相應地對其進行處理。
??在 Python 工具箱 (.pyt) 中,通過創(chuàng)建 Parameter 對象并設置其屬性在工具類的 getParameterInfo 方法中定義工具參數(shù)。
屬性 | 描述 |
---|---|
displayName | 地理處理窗格中顯示的參數(shù)名稱。 |
name | 在 Python 的工具語法中顯示的參數(shù)名稱。 |
datatype | 每個 Python 工具箱的工具參數(shù)都有關聯(lián)的數(shù)據(jù)類型。 打開地理處理窗格后,將使用該數(shù)據(jù)類型來檢查參數(shù)值。 數(shù)據(jù)類型也可用于瀏覽數(shù)據(jù) - 僅與參數(shù)數(shù)據(jù)類型匹配的數(shù)據(jù)才會顯示在瀏覽對話框中。 要獲取參數(shù)數(shù)據(jù)類型的列表,請參閱 Python 工具箱中的參數(shù)數(shù)據(jù)類型。 |
parameterType | 以下為 parameterType 的選項: ??Required - 在提供值之前,該工具無法運行。 ??Optional - 無需為參數(shù)提供值。 ??Derived - 該參數(shù)僅適用于輸出參數(shù)(請參閱以下 direction 屬性)。 派生的輸出參數(shù)不會顯示在工具對話框中。 |
direction | 此屬性定義參數(shù)是工具的輸入還是工具的輸出。 選項為輸入和輸出。 如果 parameterType 設置為 Derived,請將 direction 設置為 Output。 |
def getParameterInfo(self):# 定義工具參數(shù)param0 = arcpy.Parameter(# 第一個工具category = "單一工具",# 工具類別 用于分類腳本里面的用途displayName="添加要素圖層",# 地理處理窗格中顯示的參數(shù)名稱name="in_GPFeatureLayer",# 在 Python 的工具語法中顯示的參數(shù)名稱datatype="GPFeatureLayer",# 對要素類的引用,包括符號系統(tǒng)和渲染屬性 每個 Python 工具箱的工具參數(shù)都有關聯(lián)的數(shù)據(jù)類型 打開地理處理窗格后 將使用該數(shù)據(jù)類型來檢查參數(shù)值 請參閱 Python 工具箱中的參數(shù)數(shù)據(jù)類型parameterType="Required",# Required - 在提供值之前,該工具無法運行 Optional - 無需為參數(shù)提供值 Derived - 該參數(shù)僅適用于輸出參數(shù)(請參閱以下 direction 屬性)派生的輸出參數(shù)不會顯示在工具對話框中direction="Input")#此屬性定義參數(shù)是工具的輸入還是工具的輸出 選項為輸入和輸出 如果 parameterType 設置為 Derived,請將 direction 設置為 Outputparam1 = arcpy.Parameter(category = "單一工具",# 工具類別 用于分類腳本里面的用途displayName="添加字段",name="in_Field",datatype="Field",#表中的列 用于存儲單個屬性的值parameterType="Required",direction="Input")param2 = arcpy.Parameter(category = "單一工具",# 工具類別 用于分類腳本里面的用途displayName="復合數(shù)據(jù)類型,輸入柵格數(shù)據(jù)集或柵格目錄",name="Input Raster Dataset",datatype=["DERasterDataset", "DERasterCatalog"],# 根據(jù)一個或多個柵格構建的單個數(shù)據(jù)集 以表形式定義的柵格數(shù)據(jù)集的集合 每個表記錄定義目錄中的一個單獨柵格數(shù)據(jù)集parameterType="Required",direction="Input")param3 = arcpy.Parameter(category = "單一工具",# 工具類別 用于分類腳本里面的用途displayName="輸入多個圖層",name="in_features",datatype="GPFeatureLayer",parameterType="Required",direction="Input",multiValue=True)# 如果希望參數(shù)處理一組值,而非僅處理單個值,請將 multiValue 屬性設置為 Trueparam4 = arcpy.Parameter(displayName="定義輸入要素數(shù)據(jù)類型",name="in_feature_set",datatype="GPFeatureRecordSetLayer",parameterType="Required",direction="Input")param4.value = os.path.join(os.path.dirname(__file__),'Fire_Station.lyrx')# 使用__file__屬性查找.lyr文件(假設.pyt和.lyr存在于同一文件夾中)params = [param0,param1,param2,param3,param4]# 需將工具添加到列表當中,并返回,否則不顯示添加的工具return params
?? 上述代演示了如何添加工具參數(shù),在python 工具箱里,我們主要通過getParameterInfo來定義工具箱的參數(shù),用來進行參數(shù)傳遞,讓工具進行運行。
?? 在 Python 工具箱中,datatype類型比較多和復雜,后續(xù)會單獨講解。