¿Cómo cambiar el valor de campo de un Shapefile usando GDAL / OGR?


18

Estoy tratando de cambiar el valor de campo de un archivo de forma. Sin embargo, no cambia el valor. ¿Qué tiene de malo mi código?

import ogr

driver = ogr.GetDriverByName('ESRI Shapefile')
fn = 'dist.shp'
dataSource = driver.Open(fn, 0)

layer = dataSource.GetLayer()
feature = layer.GetNextFeature()

dist = 233

while feature:
    feature.SetField("dist", dist)
    layer.SetFeature(feature)
    feature = layer.GetNextFeature()

dataSource.Destroy()

Respuestas:


23

El segundo argumento en Open especifica si los datos se pueden actualizar (escribir en). Tratar:

dataSource = driver.Open (fn, 1)


Esta solución funcionó! confirmado por GDAL-PYTHON API . La opción predeterminada es 0, es decir, FALSO, de lo contrario se requiere 1 para una actualización VERDADERA en caso de error
Erick
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.