• Convertir un shapefile a raster en R

    El objetivo el presente ejercicio es realizar la conversión de un shapefile a archivo raster en R, es un proceso muy común y útil en los SIG, pues permite incorporar un archivo shapefile a un ejercicio de análisis raster, ejemplo algebra de mapas o conteo de área por unidad político-administrativa, entre otros; para el presente caso tenemos el shapefile de departamentos de Colombia y un archivo raster base con resolución espacial aproximada a 1 km2, el archivo resultante tomara la extensión, la alineación y la resolución acorde a este raster base.
    Primero habilitamos las librerías de las cuales haremos uso:
    require(raster)
    require(rgdal)
    Luego abrimos el shapefile en R bajo el comando “shapefile”, y el raster base con el comando “raster”, tal como se muestra a continuación.
    x = shapefile(«E:/Blogger/Post_6/_data/DepartamentosCOL.shp»)
    y = raster(«E:/Blogger/Post_6/_data/ mascara_col.tif»)
    Para poder visualizar ambos archivos hacemos uso del comando “plot”.
    plot(x)
    plot(y)
    Luego escogemos un campo de los que tiene el shapefile para hacer sobre este la conversión, para este caso el campo sobre el cual haremos la conversión sera el código del departamento según el código del DANE.
    head(x) #con este código podemos observar el encabezado con los primeros seis campos de la tabla de atributos.
    x2 <- x[,2] #escogemos la columna Nro. 2, que corresponde al ID del departamento.
    Seguido de ello hacemos la conversión bajo el comando “rasterize”:
    conversion = rasterize(x2, y, FUN= «first»)
    Por último, guardamos este archivo raster en nuestro pc bajo el comando “writeRaster”.

    writeRaster(conversion, «E:/Blogger/Post_6/_data/conversion.tif»)
    plot(conversion)




    De este link se puede descargar el dato que se hace uso en este tutorial.
  • Convertir una tabla a shape en R

    El objetivo el presente ejercicio es realizar la conversión de una tabla, que contiene coordenadas dadas en longitud y latitud, a un archivo shapefile en R, es un proceso muy común y útil en los SIG; para el presente caso tenemos las coordenadas de incendios en el Valle del Cauca para el periodo 2000 – 2015, la idea es convertir esta tabla a shapefile y guardar este archivo en el disco duro de nuestro pc.
    Primero habilitamos las librerías de las cuales haremos uso:
    require(raster)
    require(rgdal)
    Luego abrimos la tabla en R bajo el comando “read.table”, como se muestra a continuación.
    Tabla = read.csv(“E:/Blogger/Post_5/_data/incendios_valle.csv”)
    Seguido de ello convertimos la tabla a formato shapefile, teniendo en cuenta que las columnas 1 y 2 corresponden a la longitud y latitud respectivamente:
    coordinates(tabla) <- ~LONGITUDE+LATITUDE # se escribe de esta manera longitud y latitud pues así se llama el nombre de estas columnas
    Podemos ver el tipo de clase a la que queda convertido el objeto “tabla” bajo el siguiente comando:
    Class(tabla) #como podemos ver ahora es un “SpatialPointsDataFrame”
    plot(tabla) #miramos que en efecto el archivo es una nube de puntos, que representan los incendios en el Valle del Cauca.
    Por último, procedemos a realizar el guardado de este archivo.
    writeOGR(tabla, dsn = «E:/Blogger/Post_5/_data», layer= «incendios_valle», driver = «ESRI Shapefile»)

    De este link se puede descargar el dato que se hace uso en este tutorial.
  • Multiplicar un listado de archivos raster y guardarlos mediante un ciclo

    El objetivo el presente ejercicio es realizar automáticamente la multiplicación de 10 archivos, que se encuentran en el rango de 0 a 1, por 100 para así pasar a tener la probabilidad pero en términos porcentuales, y luego escribir cada uno de los archivos en una carpeta.
    Primero habilitamos las librerías de las cuales haremos uso:
    require(raster)
    require(rgdal)
    Luego, hacemos un listado de los archivos raster (.tif), seguido de aplicar la función raster para que el programa los reconozca como archivos espaciales, proseguido se realiza un stack que es sobreponer todos los raster, posteriormente se multiplica por 100, y luego se desalinean de la unión que se hizo con el stack.
    a = list.files(“C:/Users/Fabio Castro/Google Drive/Blog/Post_4″, full.names = T)
    b = lapply(a, FUN=raster)
    c = stack(b)
    d = c*100
    e = unstack(d)
    names(e[[1]]) #nos permit ever el nombre del archive que se encuentra en la posición 1
    Por ultimo realizamos un ciclo para escribir los archivos dentro de una carpeta con su respectivo nombre.
    for (i in 1:length(e)){
      writeRaster(e[[i]], paste0(«C:/Users/Fabio Castro/Google Drive/Blog/Post_4/raster_100/»,names(e[[i]]),».tif»))
    }

    En este link se encuentran disponibles los datos del ejercicio.

  • Suma de archivos raster en R

    El objetivo de este ejercicio es realizar la suma de 12 archivos raster de manera óptima en R, estos archivos son la precipitación para Colombia en los 12 meses del año, la idea es que el archivo final me represente la precipitación acumulada de este país. 
    Hacemos uso de las librerias «raster» y «rgdal»
    require(raster)
    require(rgdal)
    Hacemos un listado de los archivos raster (estos deben de estar sin más archivos en una sola carpeta).
    listado = list.files(«E:/Blogger/Post_3/_datos/_prec_mensual/», pattern = «asc», full.names = T) #usamos el pattern para que solo escoga los archivos tif y fullnames para que tome toda la dirección de donde se encuentran los archivos.
    Luego le decimos a R que esos archivos son de tipo Raster
    datos = lapply(listado, FUN=raster)
    Hacemos un stack, es decir poner todos los archivos unidos.
    datos_raster_stack = stack(datos)
    Ahora si hacemos la suma entre los archivos.
    suma_raster = sum(datos_raster_stack)
    Y por último, escribimos el archivo resultante donde queramos.

    writeRaster(suma_raster, «E:/Blogger/Post_3/_datos/_prec_acum/sum_prec.tif»)

    plot(suma_raster)





    De este link se pueden descargar los datos del presente ejercicio.