Estoy tratando de producir una red fluvial shapefile a partir de un raster de acumulación de flujo utilizando el programa r.to.vect
y he superado algunas dificultades relacionadas con la profundidad de bits y la trama adelgazada.
n.b. No tengo el DEM original del que se derivó el raster de acumulación de flujo, por lo que no puedo basarme en el Channel Network and Drainage Basins
función.
Mi objetivo es obtener una red fluvial con el valor 'upcells' del antiguo conjunto de datos de redes fluviales HydroSHEDS pero mi resultado presenta algunos problemas que no he encontrado la forma de resolver de forma automática:
Aquí tenemos una trama booleana adelgazada y el vector lineal resultante.
- El primer problema es la ambigüedad entre celdas adyacentes (círculo rojo) que hace que la
r.to.vect
crear líneas redundantes; - El segundo problema se produce cuando hay un ángulo recto entre celdas, pero sólo en la dirección horizontal/vertical (círculo azul). En este caso, el
r.to.vect
divide las líneas cercanas a estos ángulos rectos, como vemos en la etiqueta 'id' (el elemento 758 se divide del elemento 755, del mismo modo el elemento 759 se divide del elemento 764, pero esto no ocurre para el elemento 764).
La segunda cuestión afecta al siguiente paso de mi flujo de trabajo cuando voy a utilizar v.rast.stats
para asignar a cada característica el valor máximo del ráster del mapa de acumulación de flujo. Este es el resultado:
Los vectores lineales se gradúan ahora en función del valor de acumulación de caudal (etiquetas rojas), pero el v.rast.stats
no se pueden calcular estadísticas para algunos de estos segmentos cortos generados por la segunda emisión (elementos 759 y 794; el elemento 799 no es relevante porque es redundante)
He probado algunas configuraciones opcionales del r.to.vect
pero no parece capaz de gestionar estos dos problemas.
¿Hay alguna forma de superarlas de manera automática/semiautomática?