1 votos

¿Cómo puedo extraer una red de ríos suave con QGIS & GRASS?

Estoy trabajando con Qgis 2.6.1 y GRASS.

He utilizado el módulo r.watershed para crear un mapa de acumulación de flujo. Con r.mapcalc he extraído la red de ríos, luego estoy utilizando r.thin para adelgazar a un ancho de un solo píxel las líneas en el mapa ráster binario.

Luego estoy utilizando r.to.vect.line para convertir el ráster en líneas vectoriales. Todo parece estar bien, sin embargo, la red no tiene esquinas suaves ... por favor, mira la imagen, mis ríos son azules.

¿Puedo cambiar algo en este procedimiento para disminuir este efecto?

enter image description here

0 votos

Lo más probable es que la configuración de tu región tenga una resolución demasiado gruesa. ¿Qué te da g.region -p? ¿Cuál es la resolución de los datos originales de elevación?

0 votos

Datos de altitud como 30 m. Lo siento, soy nuevo en Qgis, ¿cómo uso g.region -p?

0 votos

Proyección: 3 Zona: 0 datum: wgs84 elipsoide: wgs84 norte:3:46:41.52S sur:18:29:02.4S oeste: 9:45:52.56E este: 25:55:01.2E nsres: 0:00:54.578277 ewres: 0:00:54.548443 filas: 970 cols: 1066 celdas: 1034020

2voto

Trevor Johns Puntos 126

Al parecer, según la documentación: http://grass.osgeo.org/grass70/manuals/addons/r.to.vect.lines.html, hay un parámetro skip. El valor predeterminado es 10, así que tal vez si lo reduces obtendrás más puntos.

Parece que también hay una función de suavizado en grass: http://grass.osgeo.org/grass64/manuals/v.generalize.html

con tutorial:

http://grasswiki.osgeo.org/wiki/V.generalize_tutorial

¡Por favor, publica una imagen de los vectores resultantes si esto funciona! Me encantaría verlo.

0 votos

Soy nuevo en GRASS y QGIS. ¿Puedes decirme cómo puedo cambiar el parámetro skip? ¿Dónde hago esto, en la consola de GRASS? ¿en la consola de Python...?

0 votos

¿Estás ejecutando Windows o Linux? ¿Corriste r.to.vect desde QGIS o desde GRASS?

0 votos

Estoy ejecutando Windows pasto

1voto

GriffinHeart Puntos 187

Desde tu comentario anterior sobre la configuración de la región, mencionaste que el MDT original tiene una resolución de 30 metros. En un sistema de coordenadas Long/Lat WGS84, con grados como unidades, eso debería ser aproximadamente 1 segundo de arco. Pero en tu segundo comentario puedes ver que la resolución ("Región computacional" en términos de GRASS) es de aproximadamente 54 segundos. Tu región cubre alrededor de 15 grados N-S y E-O, aproximadamente 1600 km. Pero está dividido en solo 960X1066 filas y columnas. Entonces, cada píxel cubre aproximadamente 1600 x 1600 metros, en lugar de 30 metros como en el MDT original. Por eso tu red de corrientes parece "zigzagueante".

En resumen, necesitas configurar la región en GRASS con algo como:

g.region -p res=0.000283  

(La configuración res= es el equivalente decimal de 1 segundo de arco)

o alternativamente, simplemente establece la región computacional para que coincida con el ráster del MDT original:

g.region -p rast= 

Debo añadir que para tu región de 1600 km x 1600 km, una resolución de 30 metros por píxel te dará un gran número de píxeles. Serán alrededor de 51,000 filas x 51,000 columnas (en lugar de las 960x1066 mencionadas anteriormente) lo que significa un total de 2,840,000,000 celdas: probablemente demasiadas para procesar en una computadora regular. Por lo tanto, probablemente querrás elegir una resolución de 100 metros o 250 metros en lugar de los 30 metros del MDT original.

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