2 votos

¿Por qué GRASS no diluye correctamente una trama terraflow?

Quiero convertir un mapa raster que codifica flujos direccionales (la salida de r.terraflow ) a un mapa vectorial. Estoy utilizando r.thin para procesar la salida. Termina con éxito con 0 píxeles eliminados durante la última iteración. Sin embargo, cuando intento vectorizar el resultado con r.to.vect y feature=line Recibo el siguiente mensaje de error:

Extracting lines...
ERROR: Raster map is not thinned properly.
   Please run r.thin.

He intentado volver a ejecutar r.thin en la salida ya adelgazada, con el mismo resultado. No he encontrado nada en la documentación ni de r.thin o r.to.vect sugerir cuál puede ser el problema o cómo solucionarlo.

2voto

Droidnoid Puntos 141

En caso de que sea relevante:

r.thin cambio de comportamiento de GRASS 6 a GRASS 7. En GRASS 6, las celdas con valores no nulos se consideran para el adelgazamiento, mientras que en GRASS 7, las celdas con valores no nulos se consideran para el adelgazamiento.

Esto significa que puede que tenga que cambiar sus celdas 0 por celdas nulas antes de que r.thin funcione como se espera. Todas las celdas con valores no nulos son consideradas por r.thin en GRASS 7, así que si el raster de entrada contiene celdas con valor 0, el resultado también podría contener celdas con valor 0.

1voto

En r.delgado sólo diluirá las celdas distintas de cero en un mapa rasterizado. Compruebe que se cumple esta condición. Tal vez tenga que r.null en el mapa para establecer de antemano los píxeles sin datos en NULL.

1voto

Mirac7 Puntos 101

Sé que esta pregunta ya es historia pero por si alguien más se pasa por aquí buscando ayuda:

No estoy seguro de por qué para ser honesto, pero correr r.grow y r.reclass y luego r.thin parece funcionar para preparar rásters para r.to.vect conversión.

El código debería ser algo así

# reclassify raster, mapping raster values that you want to turn into lines to 1, others to NULL
r.reclass input=my_raster output=my_reclassed_raster rules=reclass_rules.txt 

# grow this reclassified raster a bit (not too much or it will obscure your data)
r.grow input=my_reclassed_raster output=reclassed_grown radius=2

# reclassify this raster by the same rules as before 
# this changes data type of r.grow output back to CELL
r.reclass input=reclassed_grown output=my_grown_reclassed_raster rules=reclass_rules.txt 

# finally we can now run r.thin
r.thin input=my_grown_reclassed_raster output=thinned type=line

Después de todo eso, r.to.vect debería funcionar correctamente en thinned

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