6 votos

calcular la pendiente de las líneas entre los nodos?

Necesito calcular la pendiente media de las carreteras entre los nodos con QGIS. Tengo un DEM y un vector ( PostGIS ) con las carreteras, los nodos se muestran adicionalmente en forma de punto y también contienen un campo de elevación derivado del DEM:

enter image description here

Estoy buscando la pendiente media entre los nodos que están conectados con una línea.

Como hay muchas carreteras que calcular (véase la imagen que figura a continuación), necesito un flujo de trabajo que procese todos los cálculos de una sola vez. La salida como raster (con valores de pendiente en las carreteras y NoData para otros) o los archivos de forma que contengan la pendiente son útiles para mi propósito.

¿Cómo puedo hacer esto?

enter image description here

Tengo en mente una solución ArcGIS (Analista 3D / forma interpolada), pero preferiría una solución QGIS / de código abierto!

Intenté el Plugin de la herramienta de perfiles que sólo procesa una línea a la vez. Además, estaba pensando en usar un mapa de la pendiente y fallé por la dirección de la pendiente (calles de la línea de contorno).

Buscaba otros enfoques, pero no funcionaba o no los entendía, por ejemplo:

2voto

natan Puntos 116

Dado el MDE (raster) y la línea (SHP), calcule la pendiente de cada segmento de la línea

1) Explotar Línea--->Segmento 2) Calculadora de campos definir dos campos float Punto_final_Z raster_value('Lago_100m',1,make_point(x(punto_fin( $geometry)),y(end_point($ geometría))))

Punto_inicial_Z raster_value('Lago_100m',1,make_point(x(punto_inicial( $geometry)),y(start_point($ geometría))))

entonces pendiente= punto_final-Z_punto_inicial/longitud($geometría)*100

0 votos

La última expresión es incorrecta. La expresión correcta debería ser pendiente = (punto_final-Z_punto_inicial)/longitud($geometría)*100

1voto

sashkello Puntos 325

Puedes hacerlo con un python script. Básicamente, para cada línea, iterar los nodos. para cada par de nodos, muestra la elevación de la trama, y luego calcular la pendiente.

Mi plugin "Walking time", utiliza un enfoque muy similar. quizás puedas leer su código y adaptarlo:

https://github.com/SrNetoChan/WalkingTime/blob/master/walkingtime.py#L160

0 votos

¡sí, he probado su plugin muy bueno! Pero por desgracia no uso QGIS suficiente para entender python.

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