Python与GIS之arcpy基础代码详解(二)
目录
处理空间数据
1.使用游标访问数据
游标:用于访问表格中的每一行记录或者向表中插入新的记录(遍历属性表中的没一行数据)
游标有三种形式:搜索、插入和更新
- 搜索游标可用于检索行
- 插入游标可用于向表或者要素类中插入行
- 更新游标可用于根据位置更新和删除行
游标函数位于arcpy.da模块(数据访问模块中),语法如下:
- 搜索游标:arcpy.da.SearchCursor( in_table , field_name , { where_clause},{ spatial_reference },{ explore_to_point } )
# coding=utf-8
import sys
import arcpy
reload(sys)
sys.setdefaultencoding('utf8')
arcpy.env.workspace = r"E:\gis class\data0408"
fc = "现状道路.shp"
with arcpy.da.SearchCursor(fc, ["Layer"]) as cursor: # 返回记录字段值的列表
for row in cursor: # 用来遍历所有搜索得到的记录并输出指定的字段
print "Layer:{0} ".format(row[0])
返回结果:
Layer:0乡道
Layer:0村道
Layer:0省道
Layer:0县道
- 插入游标:arcpy.da.InsertCursor( in_table , field_name )
import sys
import arcpy
reload(sys)
sys.setdefaultencoding('utf8')
arcpy.env.workspace = r"E:\gis class\data0408"
fc = "现状道路.shp"
cursor = arcpy.da.InsertCursor(fc, ["Layer"]) # 使用InsertCursor函数创建一个游标对象
cursor.insertRow(["高速公路"]) # 在属性表新的一行中插入数据
返回结果:属性表中多了一行记录
- 更新和删除游标 : arcpy.da.UpdateCursor ( in_table , field_name , { where_clause},{ spatial_reference },{ explore_to_point } )
删除字段
# coding=utf-8
import sys
import arcpy
reload(sys)
sys.setdefaultencoding('utf8')
arcpy.env.workspace = r"E:\gis class\data0408"
fc = "现状道路.shp"
cursor = arcpy.da.UpdateCursor(fc, ["Layer"]) # 使用UpdateCursor函数创建一个游标对象
for row in cursor:
if row[0] == "小路":
cursor.deleteRow()
del row
del cursor
转载自:https://blog.csdn.net/weixin_42164004/article/details/86739204