ArcGIS—基於Python的腳本編程(2)

這篇文章將主要講述在進行腳本編程時用到的一部分ArcGIS模塊和工具

目錄

1. arcpy和arcgisscripting站點包

這兩個都是ArcGIS中使用到的模塊。

9.3以前,使用的是arcgisscripting模塊;9.3以後使用arcpy站點包。
○ 使用arcgisscripting模塊進行地理處理時,必須先創建一個地理處理對象,然後使用這個地理處理對象來進行地理處理:

 import arcgisscripting 
 ## 創建9.3版本的地理處理對象 
 gp = arcgisscripting.create(9.3) 
 ## 創建9.3版本之前的地理處理對象 
 gp = arcgisscripting.create()

○ 對於後來的arcpy站點包,則不需要先創建地理處理對象,可以直接使用其中的類和方法。
○ arcpy中包含多個模塊,其中arcpy.mapping(自動化製圖模塊)和arcpy.sa(地圖代數模塊)是兩個專業的模塊。

arcpy.<class>.<property>

2. ArcGIS中地理處理工具

2.1使用地理處理工具語法:

—語法1:

  arcpy.<工具名稱_所在工具箱別名>(參數)
  ## 例如:
  arcpy.Clip_analysis(參數1, 參數2, 參數3)

—語法2:

  arcpy.<工具箱別名>.<工具名>(參數)
  ## 例如:
  arcpy.analysis.Clip(參數1, 參數2, 參數3)

2.2 地理處理工具參數順序

  • 輸入數據集:一般爲in_XXX
  • 輸出數據集:一般爲out_XXX
  • 必選參數;
  • 可選參數:若想要跳過可選參數:
    • 參數設置爲""或者#
    • 使用關鍵字參數指定其他需要輸入的參數從而跳過可選參數。

3. ArcGIS中地理處理工具箱

  • arcpy中可以使用arcgis提供的所有系統工具,那麼如何使用我們自定義的工具呢?首先需要導入我們自定義工具所在的工具箱,然後再使用我們的自定義工具。
  • 我們通過以下語法格式來導入自定義工具箱:
import arcpy
arcpy.ImportToolbox(自定義工具箱路徑, [自定義工具箱別名])
  • 當我們導入自定義工具箱後,使用以下語法來使用我們的自定義工具:
arcpy.<自定義工具名>_<自定義工具所在工具箱別名>(參數)
  • 舉個例子:
import arcpy
arcpy.ImportToolbox(r"C:\Data\sampletools.tbx", mytools)
## 假設此工具箱中有一個名稱爲Tools1的工具
arcpy.Tools1_mytools(參數)    
## 或者:
arcpy.mytools.Tools1(參數)

4. arcpy中的函數與類

4.1 arcpy中函數調用方法

arcpy.<函數名>(參數)
  • 舉個栗子:
arcpy.Exists(數據集路徑)   #檢查數據集是否存在

4.2 arcpy中類的使用方法

  • 先實例化:
實例化對象 = arcpy.<類名>(參數)
  • 然後使用:
實例化對象.屬性/方法
  • 舉個栗子
sp = arcpy.SpatialReference(r"C:\projectFile.prj")
sp.name

5. arcpy中的工具消息

5.1 工具消息分類

  • 信息消息:用0表示嚴重性
  • 警告消息:用1表示嚴重性,帶有6爲ID碼
  • 錯誤消息:用2表示嚴重性,帶有6爲ID碼

5.2 獲取消息語法

語法1:

## 獲取索引值出的消息信息,缺省則獲取所有信息
arcpy.GetMessage([索引值])

## 獲取執行工具是產生的消息數目
arcpy.GetMessageCount()

## 獲取最嚴重消息的代碼
arcpy.GetMaxSeverity()

語法2:

## 我們可以通過使用工具後創建的結果對象來獲取消息
result = arcpy.某工具(參數)
result.getMessage()
result.messageCount()

需要注意的是,我們使用arcpy.GetMessage()時是在調用一個函數,而使用result.getMessage()我們只是在查詢result這個對象的一個屬性


6. arcpy中的許可

arcpy中正確使用模塊許可的順序:

## 檢查許可是否存在
arcpy.CheckExtension(模塊名)
## 獲取許可
arcpy.CheckOutExtension(模塊名)
## 使用完後將許可返回許可管理器
arcpy.CheckInExtension(模塊名)

7. arcpy中的列表函數

arcpy中的列表函數包括:
○ ListFields(數據集,[通配符], [字段類型]) #返回的是字段對象列表,每一個字段對象屬性包括字段名、別名、類型和長度。

○ ListIndexs

○ ListDatasets

○ ListFeatureClasses

○ ListFiles

ListRasters([通配符], [柵格數據類型])
#其中柵格數據類型(不區分大小寫),可以爲”tif”、”jpg”等,若爲GRID格式則直接使用GRID作爲參數。

○ ListTables

○ ListWorkspaces

○ ListVersions

它們都由一個通配符參數(*)可以用來過濾列出的結果;使用*或者 "" 則表示列出全部
它們都是返回當前工作空間中的篩選結果。


–原創文章,轉載必須註明出處–

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章