¿Cómo medir la distancia entre puntos según la elevación?

10

Necesito poder medir distancias entre puntos, sin embargo, la distancia debe calcularse en relación con la elevación. Los puntos son hogares de narradores del siglo XIX y los lugares que se mencionan en sus historias. Por lo tanto, la distancia debe ser "distancia a pie". Un camino a lo largo de un valle probablemente será más corto que un camino sobre una montaña a pesar de que la distancia recta real es más corta. Adjunto hay una captura de pantalla que ilustra mi pensamiento. En la imagen, las rutas A y C, por lo tanto, se calcularían más cortas que la ruta B.Puntos y elevación

Los puntos son de un archivo CSV pero también tengo una capa ráster con los datos de elevación.

traustid
fuente
1
Creo que sería mejor calcular el tiempo de caminata . La velocidad de caminar depende de la pendiente, y hacia arriba lleva más tiempo que hacia abajo.
AndreJ
1
¿Distancia "3D" en comparación con la distancia del mapa plano? La diferencia es probablemente más pequeña de lo que piensas. Peter Guth, el hombre detrás de MICRODEM dijo: "La distancia o área aumentará con la secante del ángulo de la pendiente, y hasta que llegue a pendientes muy grandes, la secante es esencialmente 1".
nhopton

Respuestas:

6

Alcanzar este objetivo es una tarea básica en SIG, sin embargo, el método en QGIS podría no ser trivial. Su mejor oportunidad es usar la r.walkfunción de GRASS , que crea una superficie de costo anisotrópico (dem + pendiente + otros factores).

Primero, debe crear una superficie de fricción como entrada para r.walk. En su caso, puede ser un ráster de un solo valor (1.0) que coincida con la extensión de su DEM. Puede crearlo r.mapcalculatorcon la fórmula: A*0+1donde A es su DEM.

A continuación, debe seleccionar un conjunto de puntos de partida de su CSV. Estos son los puntos, a partir de los cuales se calculará la superficie del costo acumulado. Debe crear una superficie de costo individual desde cada punto de partida. Puede ser inteligente definir los puntos finales asociados con cada punto de partida en este paso (en capas individuales fuera de curso). Después, puede ejecutar r.walkcon las entradas creadas. Los puntos de partida pueden estar en una sola capa, puede recorrerlos con la flecha verde en el cuadro de diálogo.

Ahora, en un caso ideal, tiene las superficies de costo y los puntos finales para cada superficie de costo. En teoría, podría encontrar las rutas de menor costo r.drain, pero para mí, terminó en un error (Python no pudo importar la biblioteca QgisRaster). Si ejecuta el mismo problema, puede utilizar el algoritmo "Rutas de menor costo" de SAGA. Creará un punto y una capa de línea para cada punto final con la superficie de costo (use el botón de iteración nuevamente). Una vez que tenga todas las líneas, puede fusionarlas en un solo archivo de forma con la herramienta "Combinar capas de formas" de SAGA.

Este método puede ser muy lento con el incremento de puntos, por lo que si tiene muchos de ellos, puede intentar automatizar el método con python. Todavía será mucho tiempo para calcular (especialmente las superficies de costo), pero no tiene que crear toneladas de capas de punto final manualmente.

Gabor Farkas
fuente
Gracias por esto, probablemente tendré que empezar a aprender a usar GRASS. También creo que podría tener problemas, en la ilustración que publiqué asumiría que muchas de las montañas son intransitables, por lo que tendría que agregar algo como "si la montaña es más alta que x, dale la vuelta" ... Pero gracias por el respuesta, esto probablemente me ayudará a comenzar.
traustid
Esa es una condición fácil en r.walk. Puede usar el mapa de fricción para configurar las celdas intransitables. Reclasifique su DEM con r.reclassreglas como 1 thru 2000 = 1 2000 thru * = 9999en un archivo de reglas (si su umbral es de 2000 m). De esta manera, el algoritmo no pasará celdas con altos valores de fricción, será menos costoso darle la vuelta.
Gabor Farkas
¡Muchas gracias por esto! Realmente no tengo mucho conocimiento de GRASS, pero este es un excelente punto de partida.
traustid
De nada. Para ser honesto, todavía estoy sorprendido por tu tarea. Este es uno de los mejores ejemplos, cómo se puede aplicar el SIG en la más amplia escala de disciplinas.
Gabor Farkas