插個廣告,制作ArcGIS的Tool工具學習下面的教程就對了:
零基礎學習Python制作ArcGIS自定義工具觀看鏈接
《零基礎學習Python制作ArcGIS自定義工具》課程簡介
以下是正文:
先看如何增加一個字段
函數:arcpy.AddField_management
語法:AddFields_management (in_table, field_description)
參數 |
說明 |
數據類型 |
in_table |
要添加指定字段的輸入表。該字段將被添加到現有輸入表,並且不會創建新的輸出表。 可將字段添加到 ArcSDE 的要素類、文件或個人地理數據庫的要素類、coverage、shapefile、柵格目錄、獨立表、帶屬性表的柵格和/或圖層。 |
Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
field_name |
要添加到輸入表的字段的名稱。 |
String |
field_type |
在創建新字段時所使用的字段類型。
|
String |
field_precision (可選) |
描述可存儲在字段中的位數。所有位都將被計算在內,而無論其處於小數點的哪一側。 如果輸入表是個人或文件地理數據庫,則將忽略字段精度值。 |
Long |
field_scale (可選) |
設置可存儲在字段中的小數位數。此參數僅可用於浮點型和雙精度數據字段類型。 如果輸入表是個人或文件地理數據庫,則將忽略字段小數位數值。 |
Long |
field_length (可選) |
要添加的字段的長度。它為字段的每條記錄設置最大允許字符數。此選項僅適用於文本或 blob 類型的字段。 |
Long |
field_alias (可選) |
指定給字段名稱的備用名稱。此名稱用於為含義隱晦的的字段名稱指定更具描述性的名稱。字段別名參數僅適用於地理數據庫和 coverage。 |
String |
field_is_nullable (可選) |
不存在關聯屬性信息的地理要素。它們與零或空字段不同,僅支持地理數據庫中的字段。
|
Boolean |
field_is_required (可選) |
指定要創建的字段是否是表的必填字段;僅支持地理數據庫中的字段。
|
Boolean |
field_domain (可選) |
用於約束地理數據庫中的表、要素類或子類型的任何特定屬性的允許值。必須指定現有屬性域的名稱才能將其應用於字段。 |
String |
例:
要對“省級行政區域”增加一個名為“Area”,類型是“Text”,長度是100的字段。
arcpy.AddField_management("省級行政區域",'Area',"TEXT",field_length=100)
①第1參“輸入表”與第2參“字段名”是必選參數;
②其他參數為字段描述,可選,最好使用具名參數,如field_length=100。
批量添加字段的處理思路及代碼
例:給“省級行政區域”添加“A、B、C、D”4個字段。
①用Excel制作出字段及其描述表;
②復制除標題行以為的內容,粘貼到txt文檔,替換空格為“,”(英文符號,);
③arcpy批量添加字段,導入“Fields Description.txt”描述,每一行line是1個字段信息,將每行信息用“,”拆分裝入列表lineList;新建字段各屬性描述使用“具名參數=列表lineList各索引值指示數據的方式傳入;
import arcpy #get txt file f=open("C:/Users/yang/Desktop/Fields Description.txt",'r') #read line line=f.readline() while line: lineList=line.split(',') #add field arcpy.AddField_management("省級行政區域",field_name=lineList[0],field_type=lineList[1],field_length=lineList[2],field_precision=lineList[3],field_scale=lineList[4].replace("\n","")) #next line #code source: https://www.cnblogs.com/yzhyingcool/ QQ:975601416 line=f.readline() #close the txt file f.close()
④使用該腳本時只需要改動“Fields Description.txt”描述文件的路徑與待處理的要素名(或路徑)即可。
Ps 示例中長度、精度均為隨意寫的,並不准確。