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
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值