¿Seleccionando entidades por atributos usando ogr2ogr?

16

Estoy escribiendo un shapefile después de algún procesamiento; sin embargo, en el paso final necesito hacer una selección por atributos del shapefile.

Estoy usando el comando en un shell con el objetivo de usarlo en un script de Python cuando funcione.

ogr2ogr -f "ESRI Shapefile" -select * where ID="1" outfile.shp infile.shp

Me aparece el mensaje de error:

FAILURE: 
Unable to open datasource 'Downloads' with the following drivers.

¿Qué podría estar haciendo mal?

    
pregunta user2757128 14.11.2013 - 10:50

1 respuesta

29

Se pasa un signo menos antes de where y no es necesario el select , por lo que debería ser:

ogr2ogr -where ID="1" outfile.shp infile.shp

o si tiene que hacer una consulta más compleja en sus datos de entrada:

ogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shp

Si ID es un campo de tipo Integer, sustituya ID='1' con ID=1 .

Notas:

  1. -f "ESRI Shapefile" no es necesario porque "ESRI Shapefile" es el formato de salida predeterminado ogr2ogr ;
  2. es conveniente omitir -select y usar directamente la cláusula -where cuando desee seleccionar todos los campos.
respondido por el Antonio Falciano 14.11.2013 - 11:00

Lea otras preguntas en las etiquetas