Análisis de distancia espacial en QGIS

8

Soy bastante nuevo en QGIS e intento descubrir cómo analizar el siguiente problema.

Tengo tres capas:

  1. capa de puntos de asentamientos con 253 entradas
  2. instalaciones de tratamiento de residuos punto de capa con 24 entradas
  3. capa de polilínea de carreteras

Mi problema es encontrar la distancia entre cada asentamiento desde la capa (1) a cada instalación de tratamiento en la capa (2), sin embargo, debe estar sujeta a carreteras (capa 3), es decir, en lugar de obtener la matriz de distancia aérea que estoy buscando La matriz que describe la distancia de conducción real.

Le pido amablemente su sugerencia sobre cómo realizar este análisis con QGIS 1.7 (tenga en cuenta que no sé cómo usar las capas de PostGIS, si corresponde)

  • ¿Qué complemento puedo o debo usar?
  • ¿Deberían las polilíneas estar conectadas a los puntos en ambas capas?
dof1985
fuente
3
Creo que necesita la extensión PostGIS y pgRouting para ello.
simplexio
Gracias @simplexio por tu respuesta. Alguien mas tiene alguna idea? Al mismo tiempo, intentaré sumergirme en postGIS.
dof1985

Respuestas:

7

Una breve descripción del proceso de trabajo (GRASS-GIS) como @gmacfalane preguntó.

  1. He realizado el análisis como se describe en GRASS-GIS 7.0 svn. Usando Linux-Mint 14 como sistema operativo. Eso es porque tuve dificultades para ejecutar las funciones solicitadas en el sistema operativo Windows.

  2. Importé archivos .shp que fueron creados en Q-GIS a GRASS. Para mí fue más fácil crear datos sobre Q-GIS, pero grass tiene todas las funcionalidades necesarias para este propósito.

  3. He usado v.build y v.clean para crear topología para mi red (archivo road shp)

  4. He unido todos los nodos (asentamientos y sitios de tratamiento de residuos) a un archivo shp. Se agregó una columna que distingue cada tipo de nodo de los demás, y alimentó datos con la calculadora. por ejemplo, new_col = 10000 + id para todos los asentamientos, 20000 + id para todos los sitios de reciclaje, etc. Luego asigné esa columna para que sea la nueva id (columna de categoría) - v.reclass se puede usar aquí.

  5. Use v.net (operación = conectar) para conectar todos los nodos a su red. He usado el umbral de aprox. 4.500 metros.

  6. Use v.net.allpairs para calcular la distancia entre cada dos pares de puntos en su red.

  7. Exporté los datos a un archivo csv usando v.db.select y los cargué en Excel. Los datos se forman en una celda para cada línea, separados con |. Si no me equivoco, filtré todos los puntos de origen (columna from_cat) para que sean los asentamientos, por lo que tengo un from_cat de entre 10000 y 19999.

  8. Luego recibí una tabla que contiene lo siguiente: from_cat, to_cat, distance / cost

  9. He separado el conjunto de datos por fuente (to_cat) y he creado una matriz para cada tipo de tratamiento. Luego formé un análisis adicional para transformarlo en una matriz de costos y encontrar la ruta más barata desde cada asentamiento a cada tipo de sitio de tratamiento.

Puede encontrar explicaciones sobre las funciones (cursiva) en grass-manual . También se recomienda buscar e inscribirse en la lista de correo de hierba. Fue muy útil

Espero poder dar una dirección general.

dof1985
fuente
2

Ha pasado un tiempo y, aunque hay respuestas al respecto en algún lugar de mi historial de preguntas y respuestas, he decidido utilizar mi pregunta para compartir algunos de mis hallazgos con respecto al análisis de red QGIS.

Como @simplexio sugirió amablemente, postGIS con PgRouting es una opción, aunque demasiado complicada para mí . Descubrí que con QGIS 1.8 el complemento GRASS 6.4.2 es suficiente para ayudar con el análisis de red. Es fácil de operar (ya que el complemento usa la GUI de QGIS y algunos comandos), el manual es fácil de navegar e importar archivos QGIS u otros es bastante fácil.

Espero terminar mi trabajo pronto (superar algunas dificultades técnicas relacionadas con la PC) y cargar mi proceso de trabajo, ya que como principiante fue lo más difícil para mí encontrar un documento o manual suficiente para guiarme en el proceso.

dof1985
fuente
¿Puedes describir cómo te funciona este método? Estoy interesado en un problema similar ...
gregmacfarlane
1
@gmacfarlane - Agregué una respuesta para describir el proceso de trabajo que hice
dof1985