Nach einiger Bearbeitung schreibe ich ein Shapefile. Im letzten Schritt muss ich jedoch einige Attribute aus dem Shapefile auswählen.
Ich benutze den Befehl in einer Shell mit dem Ziel, ihn in einem Python-Skript zu verwenden, wenn es funktioniert.
ogr2ogr -f "ESRI Shapefile" -select * where ID="1" outfile.shp infile.shp
Ich erhalte die Fehlermeldung:
FAILURE:
Unable to open datasource `Downloads' with the following drivers.
Was könnte ich falsch machen?
Antworten:
Sie haben vorher ein Minuszeichen verpasst
where
und dasselect
ist nicht notwendig, also sollte es sein:oder wenn Sie Ihre Eingabedaten komplexer abfragen müssen:
Wenn
ID
es sich um ein Feld vom Typ Integer handelt, ersetzen Sie esID='1'
durchID=1
.Anmerkungen:
-f "ESRI Shapefile"
ist nicht erforderlich, da dies"ESRI Shapefile"
dasogr2ogr
Standardausgabeformat ist.-select
die-where
Klausel zu überspringen und direkt zu verwenden , wenn Sie alle Felder auswählen möchten.quelle
os.system('''ogr2ogr ... ''')
.import os
ogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shp
anstelle von nur ID = 1 eine Möglichkeit, stattdessen einen Vektor oder eine Reihe von Zahlen anzugeben, zogr2ogr -sql "SELECT * FROM infile WHERE ID IN ['1','5','29']" outfile.shp infile.shp
.