数据访问模块 (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子句
对于初学者来说,最好的学习资料就是小案例+官方文档。我将结合自己的一些经验,来写一些数据处理方面的小案例。通过这些小的案例,让各位读者了解一些地理数据处理的小技巧,如果想要了解的更深入,可以自己研究官方文档。
最近投在公众号上的时间有点多了,接下来将停更一波(除了学习打卡,不会再有其他内容)。待以后碰上合适的题材,我再接着分享!
本文分享自微信公众号 - 数据处理与分析(Qing_master)
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2019-08-05
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句