Comment changer la valeur de champ d'un Shapefile en utilisant GDAL / OGR?

18

J'essaie de modifier la valeur de champ d'un fichier de formes. Cependant, cela ne change pas la valeur. Qu'est ce qui ne va pas avec mon code?

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()
ustroetz
la source

Réponses:

23

Le deuxième argument dans Open spécifie si les données peuvent être mises à jour (écrites dans). Essayer:

dataSource = driver.Open (fn, 1)

Matthew Snape
la source
Cette solution a fonctionné! confirmé par l' API GDAL-PYTHON . L'option par défaut est 0, c'est-à-dire FAUX, sinon 1 pour une mise à jour VRAIE dans le cas est requis
Erick