Wie benenne ich Feldnamen in einem Shapefile über die Kommandozeile um?

20

Ich muss die Feldnamen (Attribute) in einem Shapefile umbenennen. Gibt es eine einfache Möglichkeit, dies von der Befehlszeile aus zu tun?

rudivonstaden
quelle

Antworten:

31

Sie können das Dienstprogramm ogr2ogr verwenden, das mit den Befehlszeilentools von gdal geliefert wird . Verwenden Sie die -sqlOption wie folgt:

ogr2ogr outputfile.shp inputfile.shp -sql "SELECT oldfield1 AS newfield1, oldfield2 AS newfield2 from inputfile"

Als zusätzlichen Bonus können Sie die Daten gleichzeitig in ein anderes Format konvertieren oder Ihre Daten durch Angabe einer where-Klausel filtern. Beachten Sie, dass Sie bei Verwendung dieser Methode alle Ausgabefelder angeben müssen (alle Felder, die nicht in der SELECT-Anweisung enthalten sind, werden aus der Ausgabedatei entfernt).

rudivonstaden
quelle
2
Sie können die Feldnamen auch mitogrinfo -so inputfile.shp inputfile
Mike T
Eine Randnotiz: Diese Methode funktioniert nur beim Transformieren von Shapefiles. Wenn Sie beispielsweise das GeoJSON-Datenformat verwenden, müssen Sie es zuerst in ein Shapefile konvertieren und dann eine weitere Transformation mithilfe des -sqlFlags durchführen.
Clhenrick
Sie sollten auch die SQLITE-Option -dialect hinzufügen, da sonst ogr2ogr den Fehler 6 ausgibt: output_file.shp muss mindestens ein Feld für Attribut 1 enthalten
Dmitriy Litvinov