26 votos

Cómo obtener una lista de los valores distintos de un shapefile de campo utilizando QGIS?

Tengo un shapefile cuyas características me puede filtrar mediante la especificación de una cláusula where en la consulta de diálogo. F. x. Tengo un campo llamado 'city_name' y declarando " city_name = "Londres"' en la cláusula where sólo Londres se muestra. Lo que me gustaría hacer ahora es recuperar todos los valores en 'city_name" de la tabla de atributos.

Algo así como que:

select distinct city_name from [attribute table]

He encontrado varias herramientas de QGIS al parecer, tratar con SQL y también tenía una mirada rápida a los diferentes Plugins. Pero me falla en la conexión a una base de datos o el nombre de la tabla ... ¿qué base de datos o tabla que en ese caso?

En el final quiero exportar la lista de resultados y utilizarlo para su posterior procesamiento.

(Estoy usando QuantumGIS 1.8)

40voto

sashkello Puntos 325

Respuesta de actualización (versión de QGIS >= 2.14)

Desde QGIS 2.14 puede utilizar la ejecución de sentencias SQL en cualquier capa vectorial cargada utilizando Capas virtuales .

  1. Teniendo la capa cargada en QGIS, vaya a Capa > Añadir capa > Añadir/editar capa virtual ;

  2. En el diálogo Crear capa virtual, introduzca su sentencia SQL en el campo Consulta. Algo así como

    SELECT DISTINCT nombre_ciudad FROM nombre_capa

  3. Para el conjunto de geometría No Geometry

  4. Haga clic en Aceptar y se cargará una tabla en QGIS con los valores únicos deseados.

Nota: esta tabla se actualizará si se añaden nuevos valores a la columna city_name.

Respuesta heredada (versión de QGIS < 2.14)

Tienes algunas opciones para hacer lo que pides.

  1. Importe su shapefile en una base de datos Spatialite o Postgis, y luego podrá consultar su tabla utilizando sentencias SQL completas;
  2. Utilice la herramienta Disolver (Vector > Herramientas de geoprocesamiento > Disolver), para disolver sus shapefiles utilizando el campo "nombre_de_ciudad". Aunque es un método extraño, el archivo dbf del shapefile resultante le proporcionará la lista que necesita;
  3. Echa un vistazo a plugin de estadísticas de grupo (1.6) Puede utilizar "nombre_de_ciudad" como campo de clasificación y pulsar calcular. Se calcularán algunas estadísticas sobre cada ciudad, a continuación, puede copiar el resultado y extraer la lista de ciudades.

Acabo de darme cuenta de que, en el Vector > Herramientas de análisis Hay un Lista de valores únicos herramienta que es precisamente lo que uno necesita para esta tarea. Así de fácil... sin soluciones y sin necesidad de plugins.

12voto

rob grune Puntos 69

QGIS dispone ahora de una herramienta que permite listar los valores únicos de uno o varios campos de una capa. "Este algoritmo genera un informe con información sobre los valores únicos encontrados en un determinado atributo (o atributos) de una capa vectorial".

Se encuentra en el menú principal Vector> Herramientas de análisis> Lista de valores únicos. Genera una tabla con valores únicos.

1 votos

¿Por qué no está más votado? Esta es sin duda la forma más fácil.

7voto

mapBaker Puntos 5348

Utilice el gestor de bases de datos de QGIS y acceda a su archivo shape mediante "capas virtuales".

A continuación, puede utilizar la ventana SQL y escribir su consulta:

enter image description here

1 votos

Esta es ahora (QGIS 2.14+) la respuesta correcta.

0voto

Nick Gerakines Puntos 1145

Intenta incluir algo como:

where city_name is NOT NULL or not equal to NULL

0 votos

1 votos

esto hará que QGIS muestre todas las características con un city_name. pero quiero exportar los valores de city_name.

-1voto

lewis Puntos 1178

Utilice el constructor de consultas en QGIS, vaya al campo del nombre de la ciudad en los campos del constructor de consultas. Ir a los valores, añadir todo. Elimine los nulos.

Construye un script similar a nombre de ciudad = "londres" y nombre de ciudad = "parís" hasta que tengas la lista completa de nombres y ejecuta el script. Ahora todos los nombres de las ciudades están seleccionados. Puede exportar lo seleccionado como un archivo shape e importarlo a una base de datos postgresql.

Para usar un backend de postgresql para QGIS instale una pila de postgresql con geoserver, postgresql, y una base de datos habilitada para postgis en postgresql. Tendrás que conectar QGIS al servidor. Juega un poco y lo descubrirás.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X