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

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)


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.