前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ArcPY系列之一(游标)

ArcPY系列之一(游标)

作者头像
数据处理与分析
发布2019-08-08 17:23:47
1.2K0
发布2019-08-08 17:23:47
举报

数据访问模块 (arcpy.da) 是一个用于处理数据的 Python 模块,是新增的一个模块,与原先的游标什么的相比,这个据说更高效。

本篇主要介绍:InsertCursor/UpdateCursor/SearchCursor!

InsertCursor

可以在要素类或者表上添加新行/要素。

例子

数据准备

首先,新建了一个图层如下图所示:

插入数据

代码语言:javascript
复制
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())))

结果数据

SearchCursor

按照需要将数据中的值拿出来

例子

数据

用上面的数据

检索数据

代码语言:javascript
复制
#检索所有数据
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子句

代码语言:javascript
复制
#使用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]))

UpdateCursor

更新数据

例子

数据

还是上面的数据

更新数据

代码语言:javascript
复制
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子句

结果数据

总结

对于初学者来说,最好的学习资料就是小案例+官方文档。我将结合自己的一些经验,来写一些数据处理方面的小案例。通过这些小的案例,让各位读者了解一些地理数据处理的小技巧,如果想要了解的更深入,可以自己研究官方文档。

others

最近投在公众号上的时间有点多了,接下来将停更一波(除了学习打卡,不会再有其他内容)。待以后碰上合适的题材,我再接着分享!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • InsertCursor
    • 例子
      • 数据准备
      • 插入数据
      • 结果数据
  • SearchCursor
    • 例子
      • 数据
      • 检索数据
  • UpdateCursor
    • 例子
      • 数据
      • 更新数据
      • 结果数据
  • 总结
  • others
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档