4 votos

¿Crear isócronas a partir de calles con valores de distancia?

He realizado líneas de isocronas utilizando GRASS y QGIS, como se muestra. Las líneas muestran varias distancias a las estaciones de bomberos en una red de calles.

isochrones

Ahora me gustaría convertir estas líneas en polígonos que parezcan isolíneas utilizando QGIS. La herramienta de conversión de líneas en polígonos no funciona como se esperaba. ¿Hay alguna manera?

4voto

Marcin Puntos 11
  1. Convertir las líneas en ráster (este paso depende ligeramente de la forma exacta de los datos originales, pero se supone que se comenzará con un ráster que represente las calles y que cada píxel contenga la distancia acumulada al punto más cercano)
  2. Reclasificar el raster de distancia correspondiente a los valores de isolíneas deseados (GRASS r.reclass)
  3. Cree una cuadrícula de puntos regulares que cubra la red de calles, a una distancia de cuadrícula igual al tamaño de la celda del raster (Vector > Herramientas de investigación > Puntos regulares)
  4. Con el complemento de la herramienta de muestreo de puntos, ejecute la herramienta de muestreo de puntos para transferir las distancias a los puntos de la cuadrícula (Complementos > Análisis > Herramienta de muestreo de puntos)
  5. Si es necesario, seleccione y exporte los puntos que caen en la red de calles
  6. Cree polígonos de Voronoi alrededor de los puntos de la calle muestreados (Vector > Herramientas de geometría > Polígonos de Voronoi)
  7. Disolver polígonos de Voronoi en función de la clase de distancia (Vector > Herramientas de geoprocesamiento > Disolver)

El ejemplo siguiente. Estoy bastante seguro de que no he calculado bien las distancias de la red de calles, pero te haces una idea. enter image description here

0 votos

Esta es una buena solución, pero no funcionará con mis datos. Como el shapefile sale de GRASS, sólo tiene un campo, cat, que indica la característica de punto a la que pertenece. La característica de red que introduce en GRASS tiene un campo de distancia y otro de coste, pero nada acumulativo como sugieres. ¿Alguna otra solución? Gracias.

0 votos

Su imagen original parece algo que podría ser rasterizado (tal vez buffer, a continuación, rasterizar) en el raster de carretera clasificado creado en el paso 2 anterior.

0 votos

Sí, eso podría funcionar. Sin embargo, he encontrado otra manera. Por favor, vea la solución a continuación.

2voto

Daniel A. White Puntos 91889

He aquí una solución. Las líneas verdes, amarillas y rojas de la primera imagen de arriba representan los costes de los viajes a las estaciones de bomberos, almacenados en una columna llamada cat. Las verdes tienen cat = 1, las amarillas cat = 2, las rojas cat = 3. Así sabemos por esta capa (salida de v.net.iso) qué segmentos de calle están dentro de qué costes.

Sin embargo, también tenemos que asociar estos segmentos con el parque de bomberos dado para poder agruparlos. Para ello, primero utilizo v.net.alloc, que asigna los segmentos a su estación de bomberos más cercana, como se muestra. enter image description here

Estos segmentos también tienen un campo de gatos, pero es el gato del parque de bomberos.

Ahora tengo que asociar los segmentos de las isolíneas con los segmentos de las asignaciones. Para ello, primero utilizo la herramienta de selección de QGIS para seleccionar los segmentos de isolíneas con cat = 1 (los más cercanos a un parque de bomberos). A continuación, utilizo la herramienta de consulta espacial para seleccionar los segmentos de asignación que son iguales a los segmentos de isolíneas, como se muestra. enter image description here

Ahora tengo segmentos que están dentro del costo Y tienen el gato de su estación de bomberos más cercana, como se muestra. enter image description here

Ahora hago un casco convexo en estos segmentos, agrupando por el gato, como se muestra. enter image description here

(He llamado al campo del gato en la capa de asignación cat_fire para distinguirlo del gato en la capa de isolíneas).

El resultado es un polígono que cubre los segmentos, como se muestra. enter image description here

Un problema que he observado es que el casco convexo no cubre del todo las isolíneas, como se muestra. enter image description here

Creo que esto se debe a la forma en que seleccioné los segmentos de asignación. Podría haber una mejor manera de hacer esto. Sin embargo, tengo la mayor parte de lo que quiero aquí.

0 votos

¿Podría dar algún detalle relacionado con v.net.alloc ¿paso?

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