ArcGIS 基於Python的指令碼程式設計 3

2021-08-26 08:21:55 字數 2726 閱讀 9542

這篇文章講述基於python的處理空間資料的一些方法,後續會再補充。

2. 處理表和欄位名

3. 處理文字檔案

arcpy中游標在arcpy.da模中,共有3種游標。

## 使用語法

cursor = arcpy.da.searchcursor(輸入表,欄位名稱列表[, 查詢條件,空間參考])

## 一些地理處理

***x

## 記得要刪除游標的引用

del cursor

## 使用語法

cursor = arcpy.da.updatecursor(輸入表,欄位名稱列表[, 查詢條件,空間參考]) //建立游標物件

## 使用for遍歷要素

for row in cursor:

cursor.updaterow(更新的內容列表)

cursor.deleterow() //注意:deleterow()方法沒有引數

## 記得要刪除row引用和游標引用

del row

del cursor

## 使用語法:

cursor = arcpy.da.insertcursor(輸入表,欄位名稱列表) //建立游標物件

for row in cursor:

cursor.insertrow(插入的內容列表)

## 記得要刪除引用

del row

del cursor

搜尋insertcursor和更新updatecursor游標支援with語句。具體語法如下:

## searchcursor的with語句使用方法:

with arcpy.da.searchcurosr(輸入要素/輸入表,欄位名稱列表) as cursor:

執行語句***

## updatecursor的with語句使用方法:

with arcpy.da.updatecurosr(輸入要素/輸入表,欄位名稱列表) as cursor:

執行語句***

注意:使用with語句使用游標,末尾不需要del cursor語句,因為with語句能夠自動保證資料庫鎖的關閉和釋放

在上述語法中的詢條件是用sql語言寫的。對於不同類別的要素採用的語法格式不一樣:

'"欄位名" = ***'
'[欄位名] = ***'
為了保證要素欄位的sql語句使用符號準確性,採用arcpy.addfielddelimiters(要素名, 要素欄位名稱列表)函式。

## 舉個例子

fieldname = "city"

delimfield = arcpy.addfielddelimiters(fc, fieldname)

cursor = arcpy.da

.searchcursor(fc, ["name"], delimfield + " = 'nanjing'")

主要涉及到的語法如下:

## 確定表名在指定的工作空間中是否有效,表名稱中無效的字元將用 _ 代替。

arcpy.validatetablename(表名稱,)

## 確定欄位在指定的工作空間中是否有效,欄位名稱中無效的字元將用 _ 代替。

arcpy.validatefieldname(欄位名稱, )

## 在指定的工作空間內通過在輸入的名稱後面追加數字以建立乙個具有唯一性的名稱。

arcpy.createuniquename(名稱, )

## 返回乙個字串,字串包括資料庫名稱、所有者名稱以及表名。

arcpy.parsetablename(要素, )

## 返回乙個字串,字串包括資料庫名稱、所有者名稱、表名以及欄位名。

arcpy.parsefieldname(字段, )

f =open(檔案路徑,開啟方式)

## 不輸入索引值則預設輸入檔案中的所有內容,以單一的字串返回;

## 帶索引值則輸入索引值前的所有內容,下次再使用f.read(索引值)時將認為前一次讀取的位置索引為0。

f.read()

## 再次讀取,從文字第乙個字元開始讀:

seek(0) //重新設定讀取檔案的位置為0

f.read(5)

## 則輸出結果為:"geogr"

f.readline()

f.readlines()

f.write(待寫入的內容)

f.writelines(待寫入的內容)

## 還可以使用fileinput模組

import fileinput

fp = fileinput.input(檔案路徑) //建立乙個fileinput物件

forline

in fp://使用for遍歷物件中的每行內容

***x

ArcGIS 基於Python的指令碼程式設計 7

這篇文章主要介紹arcgis中建立自己的python類和函式。我們在指令碼中使用import語句匯入模組時,python首先會查詢與當前指令碼相同路徑下是否有這個模組的py檔案,如果沒有,那麼就去系統路徑中查詢相應的指令碼。其中,這些系統路徑儲存在環境變數pythonpath中,我們可以通過sys模...

基於ArcGIS的Java應用開發

綜覽 what is the web adf 什麼是web adf ide integration 整合開發環境整合 adf web controls adf web 控制 common api 普通api overview of tasks and the task framework 綜覽tas...

基於ArcGIS的點抽稀方法總結

一 牽引線抽稀法 利用arcgis的高階智慧型標註引擎maplex的牽引線進行標註。將符號作為註記顯示,把符號和註記綁在一起,通過閾值自動進行標註間避讓,計算出地圖上所有標註的最佳位置放置,達到抽稀的目的。能顯示出註記的,那麼該點的符號也跟隨顯示出,如不能顯示出註記的,則該點的符號也不顯示。有效避免...