数据访问模块 (arcpy.da) 是一个用于处理数据的 Python 模块,是新增的一个模块,与原先的游标什么的相比,这个据说更高效。
本篇主要介绍:InsertCursor/UpdateCursor/SearchCursor!
可以在要素类或者表上添加新行/要素。
首先,新建了一个图层如下图所示:
import arcpy
import random
#初始化几个变量,分别是图层、字段、字段值
data = ur'D:\geoData\空库.gdb\data\test'
fileds = ['id','accode','SHAPE@XY']
accode = '330101'
#初始化一个游标,插入数据
with arcpy.da.InsertCursor(data,fileds) as cursor:
for i in range(1,11):
#插入id与code,并且采用随机数为要素添加随机xy
cursor.insertRow((i,accode,arcpy.Point(120+random.random(),30+random.random())))
按照需要将数据中的值拿出来
用上面的数据
#检索所有数据
with arcpy.da.SearchCursor(data,fileds) as cursor:
for row in cursor:
print(u'id:%s;accode:%s;xy:%s'%(row[0],row[1],row[2]))
上面的例子是一次检索出所有的数据,但有时候,往往只需要少量数据,这时就可以使用where子句
#使用whereclause参数,限制一下
with arcpy.da.SearchCursor(data,fileds,where_clause='id <= 5') as cursor:
for row in cursor:
print(u'id:%s;accode:%s;xy:%s'%(row[0],row[1],row[2]))
更新数据
还是上面的数据
with arcpy.da.UpdateCursor(data, fileds) as cursor:
for row in cursor:
if row[0]%2 == 0:
row[1] = '330100'
else:
row[1] = 'others'
cursor.updateRow(row)更新操作同样支持where子句
对于初学者来说,最好的学习资料就是小案例+官方文档。我将结合自己的一些经验,来写一些数据处理方面的小案例。通过这些小的案例,让各位读者了解一些地理数据处理的小技巧,如果想要了解的更深入,可以自己研究官方文档。
最近投在公众号上的时间有点多了,接下来将停更一波(除了学习打卡,不会再有其他内容)。待以后碰上合适的题材,我再接着分享!