Datos

Mirando otros ejemplos de mapas para la consigna de hoy me encontré uno que muestra la temperatura media anual para periodo 1970-2000:

Los datos son de Worldclim historical climate data y se me ocurrió hacer algo parecido pero con escenarios futuros. La cuestión es que los datos están en formato geotif y es la primera vez que me enfrento a este tipo de formato.

Por suerte raster los lee sin problemas y media hora después me doy cuenta que los archivos tienen band que en este caso corresponden a los meses del año. Me quedo con el mes 7 pués odio el verano y quiero ver que tan mal se ve el verano para Asia a finales de siglo.

file1 <- "datos/wc2.1_10m_tmax_ACCESS-CM2_ssp585_2021-2040.tif"

if (!file.exists(file1)) {
  
  download.file("https://geodata.ucdavis.edu/cmip6/10m/ACCESS-CM2/ssp585/wc2.1_10m_tmax_ACCESS-CM2_ssp585_2021-2040.tif",
                destfile = file1)
  
}

file2 <- "datos/wc2.1_10m_tmax_ACCESS-CM2_ssp585_2081-2100.tif"

if (!file.exists(file2)) {
  
  download.file("https://geodata.ucdavis.edu/cmip6/10m/ACCESS-CM2/ssp585/wc2.1_10m_tmax_ACCESS-CM2_ssp585_2081-2100.tif",
                destfile = file2)
  
}

tmp1 <- raster(file1, band = 7)
tmp2 <- raster(file2, band = 7)

data <- data.table(rasterToPoints(tmp1))[data.table(rasterToPoints(tmp2)), on = c("x", "y")] %>% 
  .[, diff := i.tmax01 - tmax01]

mapa_asia <- rnaturalearth::ne_countries(continent = "Asia", returnclass = "sf",
                                         scale = 10)

Si bien restar la estimación actual (2021-2040) con la estimación futura (2080-2100) no es del todo válido (debería haber buscado observaciones para determinar el periodo actual), nos da una idea de la que se nos viene si los gobiernos no hacen nada para reducir las emisiones de gases de efecto invernadero.

El escenario que elegí SSP5 8.5º es el más pesimista y espero que no lleguemos a eso.

data %>%
  .[x %between% c(25, 145) & y %between% c(-10, 56)] %>%
  ggplot(aes(x, y)) +
  geom_contour_fill(aes(z = diff, fill = after_stat(level)), 
                    breaks = c(seq(0, 9, 1), Inf)) +
  geom_sf(data = mapa_asia, inherit.aes = FALSE, fill = NA, color = "white") +
  scale_fill_viridis_d(option = "B", guide = guide_colorsteps(barwidth = 0.5,
                                                 barheight = 15)) +
  coord_sf(expand = FALSE) +
  labs(x = NULL, y = NULL, fill = NULL,
       title = "Aumento de la temperatura media para el verano en Asia",
       subtitle = "Diferencia 2080-2010 y 2021-2040 para el escenario SSP5-8.5º",
       caption = "Fuente: worldclim.org (CMIP6)") +
  theme_minimal(base_size = 10,
                base_family = "Roboto Condensed Light") +
  theme(plot.title.position = "plot",
        plot.title = element_text(face = "bold"))

# ggsave("day6.png", device = png, type = "cairo", bg = "white", width = 20, height = 13, units = "cm", dpi = 150)