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

Respostas:


23

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

dataSource = driver.Open (fn, 1)


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.