Come modificare il valore del campo di uno Shapefile utilizzando GDAL / OGR?


18

Sto cercando di cambiare il valore del campo di uno shapefile. Tuttavia non cambia il valore. Cosa c'è che non va nel mio codice?

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()

Risposte:


23

Il secondo argomento in Apri specifica se i dati possono essere aggiornati (scritti in). Provare:

dataSource = driver.Open (fn, 1)


Questa soluzione ha funzionato! confermato dall'API GDAL-PYTHON . L'opzione predefinita è 0 vale a dire FALSO, altrimenti è richiesto 1 per VERO aggiornamento in caso
Erick
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.