knitr::opts_chunk$set(echo=T, warning=F, comment=NA, message=F, eval=T, fig.width=9, fig.height=10, dpi=82)
Install rISIMIP package
# Install remotes if not previously installed if(!"remotes" %in% installed.packages()[,"Package"]) install.packages("remotes") # Install rISIMIP from Github if not previously installed if(!"rISIMIP" %in% installed.packages()[,"Package"]) remotes::install_github("RS-eco/rISIMIP")
Load rISIMIP package
library(rISIMIP)
Visual comparison of selected year, rcp/ssp and variable combinations of the spatial ensemble mean
# Load packages library(dplyr); library(sf); library(ggplot2); library(patchwork) #map for ISIMIP2b RCP2.6 - 2080 data(outline, package="ggmap2") outline <- sf::st_as_sf(outline) #### rcp26 - ssp126 -2080 #### data("bioclim_gfdl-esm2m_rcp26_2080_landonly") data("bioclim_hadgem2-es_rcp26_2080_landonly") data("bioclim_ipsl-cm5a-lr_rcp26_2080_landonly") data("bioclim_miroc5_rcp26_2080_landonly") bioclim_rcp26_2080_landonly <- bind_rows(`bioclim_gfdl-esm2m_rcp26_2080_landonly`, `bioclim_hadgem2-es_rcp26_2080_landonly`, `bioclim_ipsl-cm5a-lr_rcp26_2080_landonly`, `bioclim_miroc5_rcp26_2080_landonly`) %>% select(x,y,bio1) %>% group_by(x,y) %>% summarise(bio1=mean(bio1, na.rm=T)) col_val1 <- scales::rescale(unique(c(seq(min(bioclim_rcp26_2080_landonly$bio1), 0, length=5), seq(0, max(bioclim_rcp26_2080_landonly$bio1), length=5)))) data("bioclim_gfdl-esm4_ssp126_2080_landonly") data("bioclim_ipsl-cm6a-lr_ssp126_2080_landonly") data("bioclim_mpi-esm1-2-hr_ssp126_2080_landonly") data("bioclim_mri-esm2-0_ssp126_2080_landonly") data("bioclim_ukesm1-0-ll_ssp126_2080_landonly") bioclim_ssp126_2080_landonly <- bind_rows(`bioclim_gfdl-esm4_ssp126_2080_landonly`, `bioclim_ipsl-cm6a-lr_ssp126_2080_landonly`, `bioclim_mpi-esm1-2-hr_ssp126_2080_landonly`, `bioclim_mri-esm2-0_ssp126_2080_landonly`, `bioclim_ukesm1-0-ll_ssp126_2080_landonly`) %>% select(x,y,bio1) %>% group_by(x,y) %>% summarise(bio1=mean(bio1, na.rm=T)) col_val2 <- scales::rescale(unique(c(seq(min(bioclim_ssp126_2080_landonly$bio1), 0, length=5), seq(0, max(bioclim_ssp126_2080_landonly$bio1), length=5)))) p1 <- ggplot() + geom_tile(data=bioclim_rcp26_2080_landonly, aes(x=x, y=y, fill=bio1)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="tmean (°C)", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val1, limits=c(min(bioclim_rcp26_2080_landonly$bio1)-2, max(bioclim_rcp26_2080_landonly$bio1)+2)) + coord_sf(expand=F, xlim=c(min(bioclim_rcp26_2080_landonly$x), max(bioclim_rcp26_2080_landonly$x)), ylim=c(min(bioclim_rcp26_2080_landonly$y), max(bioclim_rcp26_2080_landonly$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) p2 <- ggplot() + geom_tile(data=bioclim_ssp126_2080_landonly, aes(x=x, y=y, fill=bio1)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="tmean (°C)", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val2, limits=c(min(bioclim_ssp126_2080_landonly$bio1)-2, max(bioclim_ssp126_2080_landonly$bio1)+2)) + coord_sf(expand=F, xlim=c(min(bioclim_ssp126_2080_landonly$x), max(bioclim_ssp126_2080_landonly$x)), ylim=c(min(bioclim_ssp126_2080_landonly$y), max(bioclim_ssp126_2080_landonly$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) bioclim_rcp26_ssp126 <- full_join(bioclim_rcp26_2080_landonly, bioclim_ssp126_2080_landonly, by=c("x", "y")) bioclim_rcp26_ssp126$dif <- bioclim_rcp26_ssp126$bio1.x - bioclim_rcp26_ssp126$bio1.y col_val3 <- scales::rescale(unique(c(seq(min(bioclim_rcp26_ssp126$dif), 0, length=5), seq(0, max(bioclim_rcp26_ssp126$dif), length=5)))) p3 <- ggplot() + geom_tile(data=bioclim_rcp26_ssp126, aes(x=x, y=y, fill=dif)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="tmean (°C)", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val3, limits=c(min(bioclim_rcp26_ssp126$dif)-2, max(bioclim_rcp26_ssp126$dif )+2)) + coord_sf(expand=F, xlim=c(min(bioclim_rcp26_ssp126$x), max(bioclim_rcp26_ssp126$x)), ylim=c(min(bioclim_rcp26_ssp126$y), max(bioclim_rcp26_ssp126$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) p1 / p2 / p3
#### rcp6.0 - ssp370 - 2080 #### data("bioclim_gfdl-esm2m_rcp60_2080_landonly") data("bioclim_hadgem2-es_rcp60_2080_landonly") data("bioclim_ipsl-cm5a-lr_rcp60_2080_landonly") data("bioclim_miroc5_rcp60_2080_landonly") bioclim_rcp60_2080_landonly <- bind_rows(`bioclim_gfdl-esm2m_rcp60_2080_landonly`, `bioclim_hadgem2-es_rcp60_2080_landonly`, `bioclim_ipsl-cm5a-lr_rcp60_2080_landonly`, `bioclim_miroc5_rcp60_2080_landonly`) %>% select(x,y,bio12) %>% group_by(x,y) %>% summarise(bio12=mean(bio12, na.rm=T)) col_val1 <- scales::rescale(unique(seq(0, max(bioclim_rcp60_2080_landonly$bio12), length=9))) p1 <- ggplot() + geom_tile(data=bioclim_rcp60_2080_landonly, aes(x=x, y=y, fill=bio12)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="prec (mm)", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val1, limits=c(0, max(bioclim_rcp60_2080_landonly$bio12)+2)) + coord_sf(expand=F, xlim=c(min(bioclim_rcp60_2080_landonly$x), max(bioclim_rcp60_2080_landonly$x)), ylim=c(min(bioclim_rcp60_2080_landonly$y), max(bioclim_rcp60_2080_landonly$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) data("bioclim_gfdl-esm4_ssp370_2080_landonly") data("bioclim_ipsl-cm6a-lr_ssp370_2080_landonly") data("bioclim_mpi-esm1-2-hr_ssp370_2080_landonly") data("bioclim_mri-esm2-0_ssp370_2080_landonly") data("bioclim_ukesm1-0-ll_ssp370_2080_landonly") bioclim_ssp370_2080_landonly <- bind_rows(`bioclim_gfdl-esm4_ssp370_2080_landonly`, `bioclim_ipsl-cm6a-lr_ssp370_2080_landonly`, `bioclim_mpi-esm1-2-hr_ssp370_2080_landonly`, `bioclim_mri-esm2-0_ssp370_2080_landonly`, `bioclim_ukesm1-0-ll_ssp370_2080_landonly`) %>% select(x,y,bio12) %>% group_by(x,y) %>% summarise(bio12=mean(bio12, na.rm=T)) col_val2 <- scales::rescale(unique(seq(0, max(bioclim_ssp370_2080_landonly$bio12), length=9))) p2 <- ggplot() + geom_tile(data=bioclim_ssp370_2080_landonly, aes(x=x, y=y, fill=bio12)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="prec (mm)", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val2, limits=c(0, max(bioclim_ssp370_2080_landonly$bio12)+2)) + coord_sf(expand=F, xlim=c(min(bioclim_ssp370_2080_landonly$x), max(bioclim_ssp370_2080_landonly$x)), ylim=c(min(bioclim_ssp370_2080_landonly$y), max(bioclim_ssp370_2080_landonly$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) bioclim_rcp60_ssp370 <- full_join(bioclim_rcp60_2080_landonly, bioclim_ssp370_2080_landonly, by=c("x", "y")) bioclim_rcp60_ssp370$dif <- bioclim_rcp60_ssp370$bio12.x - bioclim_rcp60_ssp370$bio12.y col_val3 <- scales::rescale(unique(c(seq(min(bioclim_rcp60_ssp370$dif), 0, length=5), seq(0, max(bioclim_rcp60_ssp370$dif), length=5)))) p3 <- ggplot() + geom_tile(data=bioclim_rcp60_ssp370, aes(x=x, y=y, fill=dif)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="prec (mm)", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val3, limits=c(min(bioclim_rcp60_ssp370$dif)-2, max(bioclim_rcp60_ssp370$dif )+2)) + coord_sf(expand=F, xlim=c(min(bioclim_rcp60_ssp370$x), max(bioclim_rcp60_ssp370$x)), ylim=c(min(bioclim_rcp60_ssp370$y), max(bioclim_rcp60_ssp370$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) p1 / p2 / p3
#### rcp6.0 - ssp370 - 2050 #### data("bioclim_gfdl-esm2m_rcp60_2050_landonly") data("bioclim_hadgem2-es_rcp60_2050_landonly") data("bioclim_ipsl-cm5a-lr_rcp60_2050_landonly") data("bioclim_miroc5_rcp60_2050_landonly") bioclim_rcp60_2050_landonly <- bind_rows(`bioclim_gfdl-esm2m_rcp60_2050_landonly`, `bioclim_hadgem2-es_rcp60_2050_landonly`, `bioclim_ipsl-cm5a-lr_rcp60_2050_landonly`, `bioclim_miroc5_rcp60_2050_landonly`) %>% select(x,y,bio12) %>% group_by(x,y) %>% summarise(bio12=mean(bio12, na.rm=T)) col_val1 <- scales::rescale(unique(c(seq(min(bioclim_rcp60_2050_landonly$bio12), 0, length=5), seq(0, max(bioclim_rcp60_2050_landonly$bio12), length=5)))) p1 <- ggplot() + geom_tile(data=bioclim_rcp60_2050_landonly, aes(x=x, y=y, fill=bio12)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="prec (mm)", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val1, limits=c(min(bioclim_rcp60_2050_landonly$bio12)-2, max(bioclim_rcp60_2050_landonly$bio12)+2)) + coord_sf(expand=F, xlim=c(min(bioclim_rcp60_2050_landonly$x), max(bioclim_rcp60_2050_landonly$x)), ylim=c(min(bioclim_rcp60_2050_landonly$y), max(bioclim_rcp60_2050_landonly$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) data("bioclim_gfdl-esm4_ssp370_2050_landonly") data("bioclim_ipsl-cm6a-lr_ssp370_2050_landonly") data("bioclim_mpi-esm1-2-hr_ssp370_2050_landonly") data("bioclim_mri-esm2-0_ssp370_2050_landonly") data("bioclim_ukesm1-0-ll_ssp370_2050_landonly") bioclim_ssp370_2050_landonly <- bind_rows(`bioclim_gfdl-esm4_ssp370_2050_landonly`, `bioclim_ipsl-cm6a-lr_ssp370_2050_landonly`, `bioclim_mpi-esm1-2-hr_ssp370_2050_landonly`, `bioclim_mri-esm2-0_ssp370_2050_landonly`, `bioclim_ukesm1-0-ll_ssp370_2050_landonly`) %>% select(x,y,bio12) %>% group_by(x,y) %>% summarise(bio12=mean(bio12, na.rm=T)) col_val2 <- scales::rescale(unique(c(seq(min(bioclim_ssp370_2050_landonly$bio12), 0, length=5), seq(0, max(bioclim_ssp370_2050_landonly$bio12), length=5)))) p2 <- ggplot() + geom_tile(data=bioclim_ssp370_2050_landonly, aes(x=x, y=y, fill=bio12)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="prec (mm)", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val2, limits=c(min(bioclim_ssp370_2050_landonly$bio12)-2, max(bioclim_ssp370_2050_landonly$bio12)+2)) + coord_sf(expand=F, xlim=c(min(bioclim_ssp370_2050_landonly$x), max(bioclim_ssp370_2050_landonly$x)), ylim=c(min(bioclim_ssp370_2050_landonly$y), max(bioclim_ssp370_2050_landonly$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) bioclim_rcp60_ssp370 <- full_join(bioclim_rcp60_2050_landonly, bioclim_ssp370_2050_landonly, by=c("x", "y")) bioclim_rcp60_ssp370$dif <- bioclim_rcp60_ssp370$bio12.x - bioclim_rcp60_ssp370$bio12.y col_val3 <- scales::rescale(unique(c(seq(min(bioclim_rcp60_ssp370$dif), 0, length=5), seq(0, max(bioclim_rcp60_ssp370$dif), length=5)))) p3 <- ggplot() + geom_tile(data=bioclim_rcp60_ssp370, aes(x=x, y=y, fill=dif)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="prec (mm)", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val3, limits=c(min(bioclim_rcp60_ssp370$dif)-2, max(bioclim_rcp60_ssp370$dif )+2)) + coord_sf(expand=F, xlim=c(min(bioclim_rcp60_ssp370$x), max(bioclim_rcp60_ssp370$x)), ylim=c(min(bioclim_rcp60_ssp370$y), max(bioclim_rcp60_ssp370$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) p1 / p2 / p3
#### rcp8.5 - ssp585 - 2050 #### data("bioclim_gfdl-esm2m_rcp85_2050_landonly") data("bioclim_hadgem2-es_rcp85_2050_landonly") data("bioclim_ipsl-cm5a-lr_rcp85_2050_landonly") data("bioclim_miroc5_rcp85_2050_landonly") bioclim_rcp85_2050_landonly <- bind_rows(`bioclim_gfdl-esm2m_rcp85_2050_landonly`, `bioclim_hadgem2-es_rcp85_2050_landonly`, `bioclim_ipsl-cm5a-lr_rcp85_2050_landonly`, `bioclim_miroc5_rcp85_2050_landonly`) %>% select(x,y,bio15) %>% group_by(x,y) %>% summarise(bio15=mean(bio15, na.rm=T)) col_val1 <- scales::rescale(unique(seq(0, max(bioclim_rcp85_2050_landonly$bio15), length=9))) p1 <- ggplot() + geom_tile(data=bioclim_rcp85_2050_landonly, aes(x=x, y=y, fill=bio15)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="bio15", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val1, limits=c(0, max(bioclim_rcp85_2050_landonly$bio15)+2)) + coord_sf(expand=F, xlim=c(min(bioclim_rcp85_2050_landonly$x), max(bioclim_rcp85_2050_landonly$x)), ylim=c(min(bioclim_rcp85_2050_landonly$y), max(bioclim_rcp85_2050_landonly$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) data("bioclim_gfdl-esm4_ssp585_2050_landonly") data("bioclim_ipsl-cm6a-lr_ssp585_2050_landonly") data("bioclim_mpi-esm1-2-hr_ssp585_2050_landonly") data("bioclim_mri-esm2-0_ssp585_2050_landonly") data("bioclim_ukesm1-0-ll_ssp585_2050_landonly") bioclim_ssp585_2050_landonly <- bind_rows(`bioclim_gfdl-esm4_ssp585_2050_landonly`, `bioclim_ipsl-cm6a-lr_ssp585_2050_landonly`, `bioclim_mpi-esm1-2-hr_ssp585_2050_landonly`, `bioclim_mri-esm2-0_ssp585_2050_landonly`, `bioclim_ukesm1-0-ll_ssp585_2050_landonly`) %>% select(x,y,bio15) %>% group_by(x,y) %>% summarise(bio15=mean(bio15, na.rm=T)) col_val2 <- scales::rescale(unique(seq(0, max(bioclim_ssp585_2050_landonly$bio15), length=9))) p2 <- ggplot() + geom_tile(data=bioclim_ssp585_2050_landonly, aes(x=x, y=y, fill=bio15)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="bio15", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val2, limits=c(0, max(bioclim_ssp585_2050_landonly$bio15)+2)) + coord_sf(expand=F, xlim=c(min(bioclim_ssp585_2050_landonly$x), max(bioclim_ssp585_2050_landonly$x)), ylim=c(min(bioclim_ssp585_2050_landonly$y), max(bioclim_ssp585_2050_landonly$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) bioclim_rcp85_ssp585 <- full_join(bioclim_rcp85_2050_landonly, bioclim_ssp585_2050_landonly, by=c("x", "y")) bioclim_rcp85_ssp585$dif <- bioclim_rcp85_ssp585$bio15.x - bioclim_rcp85_ssp585$bio15.y col_val3 <- scales::rescale(unique(c(seq(min(bioclim_rcp85_ssp585$dif), 0, length=5), seq(0, max(bioclim_rcp85_ssp585$dif), length=5)))) p3 <- ggplot() + geom_tile(data=bioclim_rcp85_ssp585, aes(x=x, y=y, fill=dif)) + geom_sf(data=outline, fill="transparent", colour="black") + scale_fill_gradientn(name="bio15", colours=rev(colorRampPalette( c("#00007F", "blue", "#007FFF", "cyan", "white", "yellow", "#FF7F00", "red", "#7F0000"))(255)), na.value="transparent", values=col_val3, limits=c(min(bioclim_rcp85_ssp585$dif)-2, max(bioclim_rcp85_ssp585$dif )+2)) + coord_sf(expand=F, xlim=c(min(bioclim_rcp85_ssp585$x), max(bioclim_rcp85_ssp585$x)), ylim=c(min(bioclim_rcp85_ssp585$y), max(bioclim_rcp85_ssp585$y)), ndiscr=0) + theme_classic() + theme(axis.title = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text = element_blank(), plot.background = element_rect(fill = "transparent"), legend.background = element_rect(fill = "transparent"), legend.box.background = element_rect(fill = "transparent", colour=NA)) p1 / p2 / p3 rm(list=ls()); invisible(gc())
#data_names <- data(package = "rISIMIP")$results[,3] #bioclim_names <- data_names[grepl(data_names, pattern="bioclim")] # Get RCP data #rcp_names <- bioclim_names[grepl(bioclim_names, pattern="rcp")] #ssp_names <- bioclim_names[grepl(bioclim_names, pattern="ssp")] #data(list=rcp_names, package="rISIMIP") #data(list=ssp_names, package="rISIMIP") #### rcp26 - ssp126 -2080 #### data("bioclim_gfdl-esm2m_rcp26_2080_landonly") data("bioclim_hadgem2-es_rcp26_2080_landonly") data("bioclim_ipsl-cm5a-lr_rcp26_2080_landonly") data("bioclim_miroc5_rcp26_2080_landonly") bioclim_rcp26_2080_landonly <- bind_rows(`bioclim_gfdl-esm2m_rcp26_2080_landonly`, `bioclim_hadgem2-es_rcp26_2080_landonly`, `bioclim_ipsl-cm5a-lr_rcp26_2080_landonly`, `bioclim_miroc5_rcp26_2080_landonly`) %>% group_by(x,y) %>% summarise_all(mean) data("bioclim_gfdl-esm4_ssp126_2080_landonly") data("bioclim_ipsl-cm6a-lr_ssp126_2080_landonly") data("bioclim_mpi-esm1-2-hr_ssp126_2080_landonly") data("bioclim_mri-esm2-0_ssp126_2080_landonly") data("bioclim_ukesm1-0-ll_ssp126_2080_landonly") bioclim_ssp126_2080_landonly <- bind_rows(`bioclim_gfdl-esm4_ssp126_2080_landonly`, `bioclim_ipsl-cm6a-lr_ssp126_2080_landonly`, `bioclim_mpi-esm1-2-hr_ssp126_2080_landonly`, `bioclim_mri-esm2-0_ssp126_2080_landonly`, `bioclim_ukesm1-0-ll_ssp126_2080_landonly`) %>% group_by(x,y) %>% summarise_all(mean) library(tidyr) bioclim_rcp26_ssp126_2080 <- full_join(bioclim_rcp26_2080_landonly, bioclim_ssp126_2080_landonly, by=c("x", "y")) %>% pivot_longer(!c(x,y), names_to="var", values_to="values") %>% separate(var, c("var", "scenario")) bioclim_rcp26_ssp126_2080$scenario <- factor(bioclim_rcp26_ssp126_2080$scenario, labels=c("rcp26", "ssp126")) bioclim_rcp26_ssp126_2080 <- bioclim_rcp26_ssp126_2080 %>% pivot_wider(names_from="scenario", values_from="values") head(bioclim_rcp26_ssp126_2080) ggplot(data=bioclim_rcp26_ssp126_2080, aes(x=rcp26, y=ssp126)) + geom_point() + facet_wrap(.~var, scales="free") + geom_smooth(method="lm") + theme_bw() + labs(x="ISIMIP2b RCP26 2080", y="ISIMIP3b SSP126 2080") + theme(strip.background=element_blank(), strip.text = element_text(size=12, face="bold")) rm(list=ls()); invisible(gc())
#Compare ISIMIP2b & ISIMIP3b global distribution of the different scenarios and time spans to check if they actually mirror an increase in temperature and if it's within the expectations library(ggsci) #### ISIMIP2b data #### data("bioclim_ewembi_1995_landonly") data("bioclim_gfdl-esm2m_rcp26_2050_landonly") `bioclim_gfdl-esm2m_rcp26_2050_landonly`$gcm <- "gfdl-esm2m" data("bioclim_hadgem2-es_rcp26_2050_landonly") `bioclim_hadgem2-es_rcp26_2050_landonly`$gcm <- "hadgem2-es" data("bioclim_ipsl-cm5a-lr_rcp26_2050_landonly") `bioclim_ipsl-cm5a-lr_rcp26_2050_landonly`$gcm <- "ipsl-cm5a-lr" data("bioclim_miroc5_rcp26_2050_landonly") `bioclim_miroc5_rcp26_2050_landonly`$gcm <- "miroc5" data("bioclim_gfdl-esm2m_rcp26_2080_landonly") `bioclim_gfdl-esm2m_rcp26_2080_landonly`$gcm <- "gfdl-esm2m" data("bioclim_hadgem2-es_rcp26_2080_landonly") `bioclim_hadgem2-es_rcp26_2080_landonly`$gcm <- "hadgem2-es" data("bioclim_ipsl-cm5a-lr_rcp26_2080_landonly") `bioclim_ipsl-cm5a-lr_rcp26_2080_landonly`$gcm <- "ipsl-cm5a-lr" data("bioclim_miroc5_rcp26_2080_landonly") `bioclim_miroc5_rcp26_2080_landonly`$gcm <- "miroc5" bioclim_ewembi_1995_landonly$year <- 1995 bioclim_ewembi_1995_landonly$gcm <- "EWEMBI" bioclim_rcp26_2050 <- bind_rows(`bioclim_gfdl-esm2m_rcp26_2050_landonly`, `bioclim_hadgem2-es_rcp26_2050_landonly`, `bioclim_ipsl-cm5a-lr_rcp26_2050_landonly`, `bioclim_miroc5_rcp26_2050_landonly`) bioclim_rcp26_2050$year <- 2050 bioclim_rcp26_2080 <- bind_rows(`bioclim_gfdl-esm2m_rcp26_2080_landonly`, `bioclim_hadgem2-es_rcp26_2080_landonly`, `bioclim_ipsl-cm5a-lr_rcp26_2080_landonly`, `bioclim_miroc5_rcp26_2080_landonly`) bioclim_rcp26_2080$year <- 2080 bioclim_rcp26 <- bind_rows(list(bioclim_ewembi_1995_landonly, bioclim_rcp26_2050, bioclim_rcp26_2080)) %>% tidyr::pivot_longer(names_to="var", values_to="value", -c(x,y,gcm,year)) p1 <- bioclim_rcp26 %>% filter(var %in% c("bio1", "bio12", "bio15")) %>% ggplot() + geom_violin(aes(x=as.factor(year), y=value, fill=gcm)) + facet_wrap(.~var, scales="free_y", strip.position="left", ncol=1) + ggtitle("ISIMIP2b") + labs(x="Year", y="") + scale_fill_manual(name="GCM", values=pal_d3("category20")(11)[1:5]) + theme_bw() + theme(strip.background = element_blank(), strip.placement = "outside", strip.text = element_text(size=12, face="bold"), plot.title = element_text(hjust=0.5)) # ISIMIP3b data data("bioclim_gswp3-w5e5_obsclim_1995_landonly") data("bioclim_gfdl-esm4_ssp126_2050_landonly") `bioclim_gfdl-esm4_ssp126_2050_landonly`$gcm <- "gfdl-esm4" data("bioclim_ipsl-cm6a-lr_ssp126_2050_landonly") `bioclim_ipsl-cm6a-lr_ssp126_2050_landonly`$gcm <- "ipsl-cm6a-lr" data("bioclim_mpi-esm1-2-hr_ssp126_2050_landonly") `bioclim_mpi-esm1-2-hr_ssp126_2050_landonly`$gcm <- "mpi-esm1-2-hr" data("bioclim_mri-esm2-0_ssp126_2050_landonly") `bioclim_mri-esm2-0_ssp126_2050_landonly`$gcm <- "mri-esm2-0" data("bioclim_ukesm1-0-ll_ssp126_2050_landonly") `bioclim_ukesm1-0-ll_ssp126_2050_landonly`$gcm <- "ukesm1-0-ll" data("bioclim_gfdl-esm4_ssp126_2080_landonly") `bioclim_gfdl-esm4_ssp126_2080_landonly`$gcm <- "gfdl-esm4" data("bioclim_ipsl-cm6a-lr_ssp126_2080_landonly") `bioclim_ipsl-cm6a-lr_ssp126_2080_landonly`$gcm <- "ipsl-cm6a-lr" data("bioclim_mpi-esm1-2-hr_ssp126_2080_landonly") `bioclim_mpi-esm1-2-hr_ssp126_2080_landonly`$gcm <- "mpi-esm1-2-hr" data("bioclim_mri-esm2-0_ssp126_2080_landonly") `bioclim_mri-esm2-0_ssp126_2080_landonly`$gcm <- "mri-esm2-0" data("bioclim_ukesm1-0-ll_ssp126_2080_landonly") `bioclim_ukesm1-0-ll_ssp126_2080_landonly`$gcm <- "ukesm1-0-ll" # Merge data `bioclim_gswp3-w5e5_obsclim_1995_landonly`$year <- 1995 `bioclim_gswp3-w5e5_obsclim_1995_landonly`$gcm <- "gswp3-w5e5" bioclim_ssp126_2050 <- bind_rows(`bioclim_gfdl-esm4_ssp126_2050_landonly`, `bioclim_ipsl-cm6a-lr_ssp126_2050_landonly`, `bioclim_mpi-esm1-2-hr_ssp126_2050_landonly`, `bioclim_mri-esm2-0_ssp126_2050_landonly`, `bioclim_ukesm1-0-ll_ssp126_2050_landonly`) bioclim_ssp126_2050$year <- 2050 bioclim_ssp126_2080 <- bind_rows(`bioclim_gfdl-esm4_ssp126_2080_landonly`, `bioclim_ipsl-cm6a-lr_ssp126_2080_landonly`, `bioclim_mpi-esm1-2-hr_ssp126_2080_landonly`, `bioclim_mri-esm2-0_ssp126_2080_landonly`, `bioclim_ukesm1-0-ll_ssp126_2080_landonly`) bioclim_ssp126_2080$year <- 2080 bioclim_ssp126 <- bind_rows(list(`bioclim_gswp3-w5e5_obsclim_1995_landonly`, bioclim_ssp126_2050, bioclim_ssp126_2080)) %>% tidyr::pivot_longer(names_to="var", values_to="value", -c(x,y,gcm,year)) p2 <- bioclim_ssp126 %>% filter(var %in% c("bio1", "bio12", "bio15")) %>% ggplot() + geom_violin(aes(x=as.factor(year), y=value, fill=gcm)) + facet_wrap(.~var, scales="free_y", strip.position="left", ncol=1) + ggtitle("ISIMIP3b") + labs(x="Year", y="") + scale_fill_manual(name="", values=pal_d3("category20")(11)[6:11]) + theme_bw() + theme(strip.background = element_blank(), strip.placement = "outside", strip.text = element_blank(), plot.title = element_text(hjust=0.5)) p1 + p2 + plot_layout(guides="collect")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.