這篇文章將主要講述在進行腳本編程時用到的一部分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
它們都由一個通配符參數(
*
)可以用來過濾列出的結果;使用*
或者""
則表示列出全部。
它們都是返回當前工作空間
中的篩選結果。
–原創文章,轉載必須註明出處–