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.