es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Separando el raster según el atributo de uso del suelo en R.

Soy nuevo en R y estoy tratando de extraer un subconjunto de valores de un archivo de ráster. Estoy utilizando el Ontario Land Cover Compilation (OLCC) v.2.0 y quiero extraer solo los valores de cobertura impermeable dentro de mis regiones de búfer. Según las Especificaciones de datos, existen nombres de clasificación para las clases de uso del suelo y códigos asociados. Solo quiero extraer datos del nombre de la Comunidad/Infraestructura (código 27). He cargado el ráster completo en R. ¿Hay alguna manera de separar el ráster por nombre/código de clase? Si obtengo el subconjunto de ráster separado, sé cómo extraer dentro de mi región de búfer a partir de ahí.

He intentado la función “raster brick” para ver si reconocería automáticamente los nombres de código y los separaría en capas diferentes, pero esto no funcionó. Vi otra publicación donde los atributos del ráster se extraían por clase, pero no estoy seguro de cómo se están separando y definiendo aquí las clases de uso del suelo en R.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en R y análisis de raster, recomendaría usar la función raster::reclassify() para separar tu raster en diferentes capas basadas en los códigos de clasificación de uso de la tierra. Aquí están los pasos que puedes seguir:

    1. Lee el archivo raster OLCC utilizando la función raster::raster().
    olcc_raster <- raster("ruta/al/OLCC.rst")
    
    1. Define los valores de código que deseas extraer como una capa separada. En este caso, solo queremos la clase Comunidad/Infraestructura que tiene un valor de código de 27.
    code_values <- c(27)
    
    1. Crea una tabla de búsqueda utilizando la función raster::ratify() que asigna “Comunidad/Infraestructura” como nombre de clase para los valores de código definidos en el paso 2.
    lookup_table <- data.frame(ID = code_values, NAME = "Comunidad/Infraestructura")
    ratify(olcc_raster, lookup_table)
    
    1. Utiliza la función raster::reclassify() para crear una nueva capa de raster que solo contiene los valores correspondientes a la clase Comunidad/Infraestructura. La función ratify en el paso 3 asigna los nombres de clase a los valores del raster, que pueden ser utilizados en la función reclassify.
    olcc_ci <- reclassify(olcc_raster, lookup_table, NA)
    
    1. Finalmente, puedes extraer los valores dentro de tu región de buffer utilizando la función raster::extract() en la capa de raster olcc_ci.
    buffer_values <- extract(olcc_ci, buffer_region)
    

    Espero que esto te ayude a extraer tu subconjunto de datos deseados del archivo raster OLCC en R. ¡Déjame saber si tienes alguna pregunta adicional!

Comments are closed.