Estoy escribiendo un archivo de forma después de algún procesamiento; sin embargo, en el paso final necesito hacer una selección por atributos del archivo de forma.
Estoy usando el comando en un shell con el objetivo de usarlo en un script de Python cuando funciona.
ogr2ogr -f "ESRI Shapefile" -select * where ID="1" outfile.shp infile.shp
Recibo el mensaje de error:
FAILURE:
Unable to open datasource `Downloads' with the following drivers.
¿Qué podría estar haciendo mal?
Respuestas:
Omite un signo menos antes
where
yselect
no es necesario, por lo que debería ser:o si tiene que hacer una consulta más compleja en sus datos de entrada:
Si
ID
es un campo de tipo entero, sustitúyaloID='1'
porID=1
.Notas:
-f "ESRI Shapefile"
no es necesario porque"ESRI Shapefile"
es elogr2ogr
formato de salida predeterminado;-select
y utilizar directamente la-where
cláusula cuando desee seleccionar todos los campos.fuente
os.system('''ogr2ogr ... ''')
. asegúrese de estarimport os
en la parte superior de su script de pythonogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shp
lugar de solo ID = 1, ¿hay alguna manera de proporcionar un vector o un conjunto de números, por ejemploogr2ogr -sql "SELECT * FROM infile WHERE ID IN ['1','5','29']" outfile.shp infile.shp
?