6 votos

marcadores de grado de la carretera para bicicletas / mapa de bicicletas - ¿semiautomatizados?

Así que estoy haciendo un mapa de desplazamiento en bicicleta para nuestra zona, y una de las características a mostrar (común en un montón de mapas de bicicletas) es algún tipo de marcador de grado de la carretera.

Estamos planeando mostrar tres categorías: "un poco empinada, bastante empinada, y locamente empinada" - no estamos planeando usar esos nombres - pero usted entiende la idea. (En realidad, cuatro categorías: todo lo que sea inferior a la primera categoría no recibe un marcador). Los marcadores son una, dos o tres flechas:

enter image description here

El problema es que, como vivimos en las estribaciones de la montaña (no hay mucho terreno llano por aquí), la tarea de colocar bien todas las marcas de nivel es bastante desalentadora y tediosa. Así que sería bueno automatizarlo.

Así que tengo el MDE de la zona de la NED, y obtuve una buena trama de la pendiente de la misma (gracias a la gente que ayudó a resolverlo). Superponiendo esto en el mapa de bicicletas (las carreteras son una capa vectorial, por supuesto), se puede ver una manera de automatizar conceptualmente esta tarea. Básicamente, hacer una capa vectorial que es la booleana Y de la capa de carreteras y la capa de pendiente de ciertos valores (ya sea mediante la categorización de la capa de pendiente, o haciendo capas de pendiente separadas por rango de grado antes de tiempo) debe hacerlo. Yo querría que la salida fuera una capa vectorial. Pero, no tengo muy claro cómo hacer todo eso. ¿Sugerencias sobre el flujo de trabajo?

Me doy cuenta de que este concepto no tiene en cuenta la dirección (qué camino es cuesta arriba) por lo que voy a planear en hacer que a mano (voltear las selecciones de vectores, según sea necesario, o, hacerlo con un atributo que es utilizado por el estilo para decidir qué forma de dibujar las flechas)

ACTUALIZACIÓN: esto se hará en QGIS 2. Una idea: hacer una capa vectorial (de formas) a partir de categorías raster, es decir una forma vectorial de las áreas con pendiente entre 5 y 10 grados (esto cubriría una de las categorías de la inclinación), a continuación, hacer un booleano Y de esa capa con la capa de carreteras, por lo que ahora tiene un montón de líneas disjuntas, que es exactamente lo que se necesita, sólo el estilo de estas líneas con la doble flecha (o como sea apropiado para esa categoría), y cambiar la dirección de cada segmento, según sea necesario (que es fácil de hacer de memoria o de un mapa si es necesario).

2voto

sashkello Puntos 325

He creado un plugin de QGIS llamado tiempos de marcha Y creo que el algoritmo utilizado se acerca bastante a lo que necesitas para calcular la pendiente media de cada línea. En realidad estaba pensando en añadirle el ascenso acumulado, los descensos acumulados y la pendiente media.

El algoritmo de Python es bastante sencillo:

  • Primero iterará sobre cada línea de la capa;
  • En cada línea, un cursor de punto "caminará" en distancias regulares (utilizo el tamaño de celda del DEM), y medirá el valor de elevación local;
  • En la siguiente parada, se mide una nueva elevación y sería posible calcular la pendiente;
  • Al final de la línea, se puede calcular la media de la pendiente y guardarla en un atributo.

Puedes consultar el código en el repositorio git del proyecto. Ver la función time_calc()

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

Esto no responde a su pregunta, pero creo que puede indicarle una solución mejor.

0voto

Kaushik Gopal Puntos 779

Bueno, después de inspeccionar más el DEM y la capa de pendiente derivada, no creo que sean lo suficientemente precisos como para utilizarlos en cualquier tipo de automatización directa.

Básicamente, observando los valores de los píxeles de pendiente a lo largo de unas cuantas carreteras conocidas de pendiente muy uniforme pero empinada, los valores de la capa de pendiente varían bastante a lo largo de dicha carretera, lo suficiente como para abarcar dos o incluso tres de las categorías de pendiente arbitrarias.

Por lo tanto, usted podría llegar a algún tipo de algoritmo de promediación para hacerlo posible, y usted podría conectar que en el flujo descrito a continuación, pero en este punto creo que es más conveniente para superponer un rango de los valores de la pendiente (Propiedades de la capa -> Estilo -> Renderizado de banda -> Mejora del contraste = estirar y recortar a minmax, a continuación, establecer el mínimo y el máximo para el rango de pendientes que desea ver, ejemplo: 2. 25 y 13,5 (correspondientes a una pendiente del 5% al 30%) y utilícelo como guía visual; luego copie los segmentos de la carretera a la capa de la marca de pendiente apropiada, y recorte los extremos de las líneas (con las tijeras) a su gusto; por supuesto, si está estableciendo la pendiente con un atributo, tomaría diferentes pasos allí.

De todos modos, si la DEM fuera perfecta, la automatización probablemente sería algo así: 1) hacer un raster por "rango de pendiente". 1a) en la trama principal de la pendiente, Propiedades -> Estilo -> Renderizado de bandas -> Mejora del contraste = Recorte a MinMax - esto representará sólo un color de gris para todo el rango que usted especifique; para "algo empinado" estoy usando 2,25-4,4999; "bastante empinado" = 4,5-6,749999; "muy empinado" = 6,75-30 ("grado del 15% o más empinado"). 1b) en la lista de capas, haga clic con el botón derecho del ratón en la capa principal de la pendiente, seleccione Guardar como... Modo de salida = Imagen renderizada - No lo he probado, pero esto debería hacer un raster del rango mostrado actualmente, y todos los valores de los píxeles en esa capa generada son los mismos 2) para cada 'rango de pendiente' raster, convertir la capa a vector usando Raster -> Conversión -> Poligonizar 3) Vector -> Geoporocessing Tools -> Clip; capa vectorial de entrada = la capa de carreteras; capa Clip = la capa vectorial de "rango de pendiente" recién poligonizada; el shapefile de salida contendrá líneas disjuntas que son los segmentos de carretera en el rango de pendiente especificado. Estilice estos segmentos sin líneas, sólo con el número apropiado de flechas / marcas de hash / símbolos de engranaje, etc.

Si alguien consigue un buen algoritmo de promediación para llevar a cabo esta automatización utilizando la pendiente normal derivada del MDE de 10 metros, ¡ganaría!

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