¿Cómo trazar automáticamente contornos intermedios con QGIS, GRASS GIS o SAGA GIS?

10

Estoy mapeando una cadena montañosa empinada. Mi intervalo de contorno principal es de 50 my mi intervalo de contorno intermedio es de 10 m. En áreas empinadas, el intervalo de 10 m es demasiado pequeño, así que necesito dejar el intervalo de 10 m y usar 20 mo 25 m en su lugar.

¿Hay alguna manera de hacerlo automatizado en QGIS , SAGA GIS o GRASS GIS ?

MAPA
fuente

Respuestas:

7

Puede intentar superponer sus líneas de contorno con la cuadrícula de pendiente y solo mostrar ciertas líneas de contorno dependiendo del valor promedio de la pendiente debajo de esa línea de contorno.

johanvdw
fuente
¡Solución interesante! ¿Haría una unión espacial para vincular el valor promedio de la pendiente a las líneas de contorno?
Simbamangu
@Simba Use estadísticas zonales. Podría funcionar aún mejor para eliminar líneas de contorno cuya pendiente máxima zonal es demasiado empinada.
whuber
2

Que yo sepa, no hay una solución automática en QGIS para este problema. Sin embargo, debería ser posible utilizar el renderizador basado en reglas para especificar qué contornos se deben trazar y cuáles se deben omitir.

bajo oscuro
fuente
2

Si entiendo el problema correctamente, estás trabajando con un Shapefile que ya tiene todos los contornos generados. Debería tener una tabla de atributos con los valores de contorno como uno de los campos, por ejemplo, 'contorno':

ID      contour
 1         1000
 2         1010
 3         1020
 4         1030

En QGIS puedes hacer un par de cosas. Una sería crear una copia del Shapefile y luego eliminar los contornos que no desea:

  1. Inicie una sesión de edición, abra la tabla de atributos y abra la calculadora de campo.
  2. Seleccione 'crear un nuevo campo' y conviértalo en un campo de número entero; llámalo 'mantener'.
  3. Ingrese en el campo 'expresión' una expresión que le dará el número 1 si se cumplen las condiciones correctas; desea mantener todos los contornos que son múltiplos de 20. Por lo tanto: contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'(este tipo de función 'coincidente' no es bonita , pero QGIS carece de la función matemática de módulo que lo haría más agradable, creo).
  4. Haga clic en 'Aceptar' y tendrá una nueva columna con 1 donde los contornos son múltiplos de 20 y ceros donde no.
  5. Busque (seleccione) todas las filas donde keep = 0 y elimínelas. Su nuevo Shapefile ahora ha excluido cualquier otro contorno.

La opción dos sería simplemente no mostrar los contornos que no desea mostrar. Esto es un poco más elegante.

  1. Abra el cuadro de diálogo Propiedades y seleccione la pestaña Estilo.
  2. Seleccione 'Basado en reglas' en la esquina superior izquierda.
  3. Agregue una regla (presione el botón 'Agregar') para contornos que coincidan con las condiciones que desee.
    • En el cuadro de diálogo Propiedades de regla, ingrese una etiqueta, como '20';
    • En el cuadro Filtro, ingrese una expresión para que coincida, como la de arriba: contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'
    • Seleccione el estilo de símbolo que desea usar, luego haga clic en Aceptar y aplique el estilo.

En este punto, los únicos contornos que se mostrarán serán los que coincidan con la expresión.

Lo mejor de la segunda opción es que puede crear reglas para diferentes escalas : puede tener una regla cuando se aleja de cierta escala que muestra, tal vez, solo los contornos de 100 metros ('% 00' solo en el expresión), y luego otra regla que muestra los contornos de 20 metros cuando se acerca más, etc.

Si está buscando un método para crear un nuevo contorno de 25 m entre los contornos de 100 m, entonces probablemente sea mejor crear un nuevo archivo de contorno a partir de un modelo de elevación digital. No estoy seguro de si hay algún método que pueda interpolar de manera confiable y correcta un nuevo contorno de 25 m entre otros contornos.

Simbamangu
fuente
0

Así es como hago esto cuando tengo un archivo de forma de contorno (o una base de datos de Spatialite) que contiene contornos a intervalos verticales de 10 metros y deseo trazar solo los contornos que ocurren a (digamos) intervalos de 50 metros.

Cargue el archivo de forma y consulte con este fragmento de SQL: '(ELEV% 50) = 0'. Donde 'ELEV' es el atributo que contiene los datos de elevación.

nhopton
fuente