CHIRPS (Climate Hazards Group InfraRed Precipitation with Station data) , es una base de datos de precipitación disponible al público desde 2014 creada por el Servicio Geológico de los Estados Unidos (USGS por sus siglas en inglés) y la Universidad de California - Santa Bárbara (UCSB) ; Usa como fuentes de datos: Climatologías de precipitación mensual (CHPclim), observaciones satelitales de sensores Infrarojo Geoestacionarios, datos de precipitaciones estimadas por la NOAA (CFSv2) y datos observados en superficie proporcionados por servicios meteorológicos (Funk et al., 2014).
Esta base de datos , tiene disponible información de la precipitación desde el año 1981 hasta la fecha con una resolución espacial de de 0.05º (Aproximadamente 5Km) para los lugares comprendidos entre los 50º de latitud norte y 50º de latitud sur en todas las longitudes.La precipitación viene dada en mm totales por intervalo de tiempo , debido a que estos datos están disponibles de forma diaria, pentadiaria (Cada 5 Días),mensual y anual.
Se descargaron los datos de precipitación correspondendientes a los ultimos 5 días del mes de abril del presente año , disponibles en formato tif . Luego , fueron cargados en el espacio de trabajo en RStudio Cloud , posteriormente se leen los datos y se observa el contenido del objeto “Precip”.
(Precip <- raster("./Chirps/chirps-v2.0.2020.04.6.tif"))
class : RasterLayer
dimensions : 2000, 7200, 14400000 (nrow, ncol, ncell)
resolution : 0.05, 0.05 (x, y)
extent : -180, 180, -50, 50 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
source : /cloud/project/Chirps/chirps-v2.0.2020.04.6.tif
names : chirps.v2.0.2020.04.6
En la salida del código , se ve que CRS hace referencia al sistema de coordenadas .Además el conjunto de datos , tiene una extensión cuasi global , por tanto , se lee el archivo shapefile que corresponde a la zona de estudio.En la salida del código se puede comprobar que tanto el objeto “Precip” como el objeto “Vichada” tienen el mismo sistema de referencia de coordenadas
(Vichada <- shapefile("./ADMINISTRATIVO/MGN_MPIO_POLITICO.shp"))
class : SpatialPolygonsDataFrame
features : 4
extent : -71.07793, -67.4098, 2.737109, 6.324317 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
variables : 9
names : DPTO_CCDGO, MPIO_CCDGO, MPIO_CNMBR, MPIO_CRSLC, MPIO_NAREA, MPIO_NANO, DPTO_CNMBR, Shape_Leng, Shape_Area
min values : 99, 99001, CUMARIBO, Decreto 1594 de Ago 5 de 1974, 3898.56891769, 2017, VICHADA, 3.29670807195, 0.316732435778
max values : 99, 99773, SANTA ROSALÍA, Ordenanza 66 de Noviembre 22 de 1996, 65599.7022767, 2017, VICHADA, 18.794382661, 5.3085802966
Ahora,con la función “crop” de la libreria raster, se recortan los datos de precicipitación de tal manera que tenga la misma extensión que la zona de interés
corte.precipitacion <- raster::crop(Precip, extent(Vichada))
Se crea un raster con los valores del objeto anterior y en la salida del código , se puede ver que el Valor mínimo de precipitación en mm para todo el Departamento es de 0.541795 , mientras que es valor máximo es de 85.82147
(precip.mask <- mask(x = corte.precipitacion, mask = Vichada))
class : RasterLayer
dimensions : 71, 74, 5254 (nrow, ncol, ncell)
resolution : 0.05, 0.05 (x, y)
extent : -71.1, -67.4, 2.749999, 6.299999 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
source : memory
names : chirps.v2.0.2020.04.6
values : 0.541795, 85.82147 (min, max)
Luego, se plotea el el ráster para la precipitación en Vichada , junto al Shapefile de este departamento
plot(precip.mask, main= "Precipitaciones CHIRPS del 26 al 30 de Abril en 2020 [mm]")
plot(Vichada, add=TRUE)
También , se puede tener una mejor visualización con ayuda de la función “AddRasterImage” y las opciones de la libreria leaflet
library(leaflet)
# Crear Paleta de color y asignarlos en función de los valores que tome la variable
pal <- colorNumeric(c("#B2182B", "#FFE4A9", "#afc9a9", "#86bbdb", "#2e0091"), values(precip.mask),
na.color = "transparent")
leaflet() %>% addTiles() %>%addRasterImage(precip.mask, colors = pal, opacity = 0.8) %>%addLegend(pal = pal, values = values(precip.mask), title = "Datos CHIRPS de precipitación del 26 al 30 de abril 2020 para Vichada [mm]" )
Para convertir de Ráster a puntos se hace uso de la función rasterToPoints() , disponible en la libreria raster
(precip.points <- rasterToPoints(precip.mask, spatial = TRUE))
class : SpatialPointsDataFrame
features : 3248
extent : -71.075, -67.475, 2.774999, 6.274999 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
variables : 1
names : chirps.v2.0.2020.04.6
min values : 0.541795015335083
max values : 85.8214721679688
Como ya se conoce que la única variable que se encuentra en el objeto hace referencia a la precipitación , entonces se cambia su nombre de “chirps.v2.0.2020.04.6” a “lluvia”
names(precip.points) <- "lluvia"
precip.points
class : SpatialPointsDataFrame
features : 3248
extent : -71.075, -67.475, 2.774999, 6.274999 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
variables : 1
names : lluvia
min values : 0.541795015335083
max values : 85.8214721679688
Se indaga la estructura de este objeto
str(precip.points)
Formal class 'SpatialPointsDataFrame' [package "sp"] with 5 slots
..@ data :'data.frame': 3248 obs. of 1 variable:
.. ..$ lluvia: num [1:3248] 0.816 0.826 0.807 0.824 0.776 ...
..@ coords.nrs : num(0)
..@ coords : num [1:3248, 1:2] -67.9 -67.8 -67.8 -67.7 -67.7 ...
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : NULL
.. .. ..$ : chr [1:2] "x" "y"
..@ bbox : num [1:2, 1:2] -71.07 2.77 -67.47 6.27
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : chr [1:2] "x" "y"
.. .. ..$ : chr [1:2] "min" "max"
..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slot
.. .. ..@ projargs: chr "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
se plotean los puntos obtenidos sobre el objeto ráster, pues cada uno de estos puntos se encuentra ubicado en el centro de cada una de las celdas que compone el ráster “precip.mask”
plot(precip.mask, main= "Precipitaciones CHIRPS del 1 al 06.04.2020 [mm]")
plot(Vichada, add=TRUE)
points(precip.points$x, precip.points$y, col = "Blue", cex = .1)
Por último, se usa la libreria Rgdal para escribir el objeto espacial en un archivo geojson
geojsonio::geojson_write(precip.points, file = "./chirps/ppoints.geojson")
Success! File is at ./chirps/ppoints.geojson
<geojson-file>
Path: ./chirps/ppoints.geojson
From class: SpatialPointsDataFrame