Como alterar o valor do campo de um Shapefile usando GDAL / OGR?

18

Estou tentando alterar o valor do campo de um shapefile. No entanto, isso não altera o valor. O que há de errado com o meu 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()
ustroetz
fonte

Respostas:

23

O segundo argumento em Abrir especifica se os dados podem ser atualizados (gravados em). Experimentar:

dataSource = driver.Open (fn, 1)

Matthew Snape
fonte
Esta solução funcionou! confirmado a partir da API GDAL-PYTHON . Opção padrão é 0 ou seja FALSE, caso contrário 1 para atualização meter VERDADEIRO é necessária
Erick