Wie ändere ich den Feldwert eines Shapefiles mit GDAL / OGR?


18

Ich versuche, den Feldwert eines Shapefiles zu ändern. Der Wert ändert sich jedoch nicht. Was ist los mit meinem 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()

Antworten:


23

Das zweite Argument in Open gibt an, ob die Daten aktualisiert (geschrieben) werden können. Versuchen:

dataSource = driver.Open (fn, 1)


Diese Lösung hat funktioniert! bestätigt durch GDAL-PYTHON API . Die Standardoption ist 0, dh FALSE, ansonsten 1 für TRUE, falls eine Aktualisierung erforderlich ist
Erick
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.