ArcPy入门(5)-数据的更新
半野

更新shapefile使用的是arcpy.da.UpdateCursor函数,UpdateCursor 能够对游标所访问的数据进行读写,其定义如下:

1
`UpdateCursor(in_table, field_names, {where_clause}, {spatial_reference}, {explode_to_points}, {sql_clause})`

参数的意义与arcpy.da.SearchCursor相同。

UpdateCursor具有四个方法:

deleteRow():删除当前要素

next():用于迭代时获取下一行数据

reset():将游标重置到第一行

updateRow(row):更新当前行数据

接下来来看一段代码:

1
`shp_file_path = ur'../data/ReadData/Point.shp' fields_array = ['SHAPE@', 'Id'] # 定义WGS84坐标系 spatial_reference = arcpy.SpatialReference(4326) with arcpy.da.UpdateCursor(shp_file_path, fields_array, spatial_reference=spatial_reference) as cursor: row_index = 0 for row in cursor: if row_index == 0: new_id = random.randint(1, 100) row[1] = new_id else: new_y = random.randint(-90, 90) old_pt = row[0].firstPoint row[0] = arcpy.Point(old_pt.X, new_y) row_index += 1 cursor.updateRow(row)`

这段代码是更新了一个“Point.shp”文件。开始,我们定义了需要搜索的字段为[‘SHAPE@’, ‘Id’],当row_index == 0时,更改了属性中的第2个字段——Id——为一个随机整数;当row_index == 1时,更改了属性中的第1个字段——几何信息,此处为点——的y坐标为一个在[-90,90]之间的随机整数。

由 Hexo 驱动 & 主题 Keep
总字数 105.7k 访客数 访问量