1 votos

Reclasificar ráster en función del ancho de las celdas vecinas con el mismo valor

Tengo un ráster binario que indica la presencia y ausencia de caminos.

Lo que quiero es clasificar los caminos en al menos dos categorías (ancho = 16 píxeles (el camino horizontal en el ejemplo) y ancho = 12 píxeles (los caminos verticales en el ejemplo)). Como puedes ver en la foto de ejemplo, los datos no son perfectos, pero visualmente es posible distinguir las diferentes entidades, por lo que creo que debe haber una solución algorítmica a este problema.

He probado varias cosas, pero ninguna ha tenido éxito. Un flujo de trabajo fue el siguiente para extraer el más ancho:

  1. Reducir por n celdas
  2. raster a polígono
  3. polígono a línea central
  4. eliminar líneas pequeñas
  5. buffer (para asegurar la conectividad)
  6. diluir los límites
  7. polígono a línea central

Sin embargo, tengo dificultades para encontrar una manera de clasificar los caminos ligeramente más delgados (los caminos muy delgados que quiero eliminar por completo, ya que no son de interés).

Espero encontrar una manera más simple que requiera menos pasos y, por lo tanto, menos iteraciones para encontrar la mejor solución. Idealmente, existe una herramienta o un cálculo que considere el ancho de los píxeles del mismo valor y los agrupe en clases/polígonos/líneas individuales.

ejemplo de caminos

1voto

John Kramlich Puntos 286

Aquí tienes una solución, comienzas con un raster donde los píxeles de la carretera son 1 y el fondo es 0 como se muestra a continuación:

Input

Utilizando el modelo a continuación:

Modelo

Puedes generar la siguiente salida:

Resultados

Toma nota de los pequeños fragmentos rojos en la carretera amarilla gruesa, estos son el resultado del algoritmo de asignación asignando a un píxel más cercano mientras las carreteras se unen en cruces, ¡lo que tienden a hacer en la vida real!

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