Análisis de Vecino Más Cercano¶
Advertencia
Este tutorial está ahora obsoleto. Un versión nueva y actualizada está disponible en Análisis del Vecino Más Cercano (QGIS3)
El SIG es muy útil para analizar la relación espacial entre entidades. Un tipo de análisis es descubrir qué objetos espaciales están más cerca de un objeto espacial dado. QGIS tiene una herramienta llamada Matriz de Distancia que ayuda en ese análisis. En este tutorial, usaremos 2 conjuntos de datos y descubriremos qué puntos de una capa están más cerca a qué puntos de la segunda capa.
Vista general de la tarea¶
Dadas las ubicaciones de todos los sismos significativos, descubrir el centro poblado más cercano para cada ubicación donde ocurrió el sismo.
Otras habilidades que aprenderá¶
Cómo hacer uniones de tabla en QGIS. (Ver Realización de uniones de tabla para instrucciones detalladas.)
Usar Constructor de Consulta para mostrar un subconjunto de entidades de una capa.
Usar el complemento MMQGIS para crear líneas de eje para visualizar los vecinos más cercanos.
Obtener los datos¶
Usaremos la Base de Datos de Sismos Significativos del National Geophysical Data Center de NOAA como nuestra capa que representa todos los sismos principales. Descargue los datos delimitados por tabulación de sismo.
Natural Earth tiene un agradable conjunto de datos de Centros Poblados. Descargue el conjunto de datos simple (menos columnas).
Para su comodidad, puede descargar directamente una copia de ambos conjuntos de datos desde los enlaces abajo:
ne_10m_populated_places_simple.zip
Fuentes de Datos: [NCEI] [NATURALEARTH]
Procedimiento¶
Abra
y navegue hacia el archivosignif.txt
.
Debido a que este es un archivo delimitado por tabulación, escoja Tab como el Formato de archivo. El campo X y campo Y se llenarían automáticamente. Clic en Aceptar.
Nota
Puede que vea algunos mensajes de error cuando QGIS intenta importar el archivo. Estos son errores válidos y algunas filas del archivo no serán importadas. Puedes ignorar los errores para los fines de este tutorial.
Como el conjunto de datos de sismo tiene coordenadas Latitud/Longitud, será importado con el SRC predeterminado
EPSG: 4326
. Verificar que este es el caso en la esquina inferior derecha. Abramos también la capa de Centros Poblados. Vaya a .
Navegue al archivo descargado
ne_10m_populated_places_simple.zip
y clic en Abrir.
Acérquese por ahí y explore a ambos conjuntos de datos. Capa punto púrpura representa la ubicación de un sismo significativo y cada punto azul representa la ubicación de un centro poblado. Necesitamos una manera de descubrir el punto más cercano de los centros poblados para cada uno de los puntos en la capa de sismo.
Vaya a
.
Aquí seleccione la capa de sismo
signif
como la capa punto Entrada y los centros pobladosne_10m_populated_places_simple
como la capa Destino. También necesita seleccionar un campo único desde cada una de estas capas que es como sus resultados serán mostrados. En este análisis, estamos buscando conseguir sólo1
punto más cercano, así que revise Usar sólo los (k) puntos más cercanos del destino, e ingrese 1. Dele nombre a su archivo de salidamatrix.csv
, y clic en Aceptar. Una vez finalice el procesamiento, clic en Cerrar.
Nota
Una cosa útil para notar es que incluso puede realizar el análisis con sólo 1 capa. Seleccione la misma capa tanto como la Entrada y Destino. El resultado sería el vecino más cercano de la misma capa en vez de una capa diferente como lo hicimos aquí.
Una vez que termina el procesamiento, clic en el botón Cerrar en el diálogo Matriz de Distancia. Ahora puede ver el archivo
matrix.csv
en el Bloc de Notas o cualquier editor de texto. QGIS puede importar archivos CSV también, así que lo agregaremos a QGIS y lo veremos allí. Vaya a .
Navegue al nuevo archivo creado
matrix.csv
. Debido a que este archivo es sólo columnas de texto, seleccione Ninguna geometría (tabla solo de atributos) como la Definición de geometría. Clic en Aceptar.
Verá el archivo CSV cargado como una tabla. Clic-derecho en la capa tabla y seleccione Abrir tabla de atributos.
Ahora será capaz de ver el contenido de nuestros resultados. El campo InputID contiene el nombre de campo de la capa Sismos. El campo TargetID contiene el nombre del objeto espacial de la capa Centros Poblados que era más cerca al punto sismo. El campo Distance es la distancia entre los 2 puntos.
Nota
Recuerde que el cálculo distance se hará usando el Sistema de Referencia de Coordenadas de la capa. Aquí la distancia será en unidades grados decimales debido a que las coordenadas de nuestra capa fuente están en grados. Si quiere distancia en metros, reproyecte las capas antes de ejecutar la herramienta.
Esto es muy cercano al resultado que estamos buscando. Para algunos usuarios, esta tabla sería suficiente. Sin embargo, podemos también integrar estos resultado en nuestra capa original de Sismos usando una Unión de Tabla. Clic-derecho en la capa Sismos, y seleccione Propiedades.
Vaya a la pestaña Uniones y clic en el botón +.
Queremos unir los datos del resultado de nuestro análisis con esta capa. Necesitamos seleccionar un campo para cada una de las capas que tienen los mismos valores. Seleccion
matrix
como la Capa de Unión eInputID
como el Campo de Unión. El Campo Destino seríaI_D
. Deje las otras opciones en sus valores predeterminados y clic en Aceptar.
Verá que la unión aparece en la pestaña Uniones. Clic en Aceptar.
Ahora abra la tabla de atributos de la capa
signif
haciendo clic-derecho y seleccione Abrir tabla de atributos.
Verá que para cada objeto espacial Sismo, ahora tenemos un atributo que es el vecino más cercano (centro poblado más cercano) y la distancia al vecino más cercano.
Ahora exploraremos una manera para visualizar estos resultados. Primero, necesitamos hacer permanente la unión de tabla guardándola como una nueva capa. Clic-derecho en la capa
signif
y seleccione Guardar como….
Clic el botón Navegar junto a la etiqueta Guardar como y nombre la capa de salida como
earthquake_with_places.shp
. Asegúrese que la casilla Añadir archivo guardado al mapa esté marcada y clic en Aceptar.
Una vez que esté cargada la nueva capa, puede deshabilitar la visibilidad de la capa
signif
. Como nuestro conjunto de datos es bastante grande, podemos ejecutar nuestro análisis de visualización en un subconjunto de los datos. QGIS tiene una estupenda funcionalidad donde puedes cargar un subconjunto de objetos de una capa sin tener que exportarlos a una nueva capa. Clic-derecho a la capaearthquake_with_places
y seleccione Propiedades.
En la pestaña General, delice hacia abajo a la sección Subconjunto de entidad. Clic en Constructor de Consulta.
Para este tutorial, visualizaremos los sismos y los centros poblados más cercanos para México. Ingrese la siguiente expresión en el diálogo Constructor de Consulta.
"COUNTRY" = 'MEXICO'
Verá que sólo los puntos que caen dentro de México serán visibles en la pantalla. Hagamos lo mismo para la capa de centros poblados. Clic-derecho en la capa
ne_10m_populated_places_simple
y seleccione Propiedades.
Abra el diálogo Constructor de Consulta de la pestaña General. Ingrese la siguiente expresión.
"adm0name" = 'Mexico'
Ahora estamos listos para crear nuestra visualización. Usaremos un complemento llamado
MMQGIS
. Encuentre e instale el complemento. Vea Uso de Complementos para más detalles de cómo trabajar con complementos. Una vez haya instala el complemento, vaya a .
Seleccione
ne_10m_populated_places_simple
como la Capa punto Eje yname
como el Atributo ID Eje. De forma similar, seleccioneearthquake_with_places
como la Capa punto Radio ymatrix_Tar
como el Atributo ID Radio Eje. El algoritmo líneas de radio pasará por cada punto de sismo y creará una línea que los unirá con el centro poblado que coincide con el atributo que especificamos. Clic en Explorar y nombre para el Archivo shape de salidaearthquake_hub_lines.shp
. Clic en Aceptar para iniciar el procesamiento.
El procesamiento puede tomar algunos minutos. Verá el progreso en la esquina inferior izquierda de la ventana QGIS.
Una vez finalice el procesamiento, verá la capa
earthquake_hub_lines
cargada en QGIS. Puede ver que cada punto de sismo ahora tiene una línea que lo conecta al centro poblado más cercano.
If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)