I recently found out that a bunch of new past climate scenarios were made available on WorldClim, at least for past climate. While there may be more efficient ways to do this, here’s the R function I wrote to download several of them automatically based on the URLs (link locations) of the .zip files:
downloadZips <- function(zip.urls, zip.names = NULL, dir.name = NULL, unzip = FALSE) { # zip.names: names to give the downloaded zip files (if different from the original ones) # dir.name: name of the directory folder in which to store the downloaded files # unzip: logical, whether or not to unzip the files after downloading stopifnot(is.null(zip.names) | length(zip.names) == length(zip.urls)) if (!is.null(dir.name)) { dir.create(dir.name) setwd(dir.name) on.exit(setwd("../")) } if (is.null(zip.names)) zip.names <- tools::file_path_sans_ext(basename(zip.urls)) for (z in 1:length(zip.urls)) { message("\nDownloading zip ", z, " of ", length(zip.urls), " (", zip.names[z], ")...\n") zip.file <- paste(zip.names[z], "zip", sep = ".") download.file(zip.urls[z], zip.file) if (unzip) { dir.create(zip.names[z]) message("Unzipping file to folder '", zip.names[z], "'...") unzip(zip.file, exdir = zip.names[z]) } # end if unzip } # end for z message("Finished!") } # end downloadZips function
Usage examples (mind that these large files take quite a while to download):
# LGM: downloadZips(zip.urls = c("http://biogeo.ucdavis.edu/data/climate/cmip5/lgm/cclgmbi_2-5m.zip", "http://biogeo.ucdavis.edu/data/climate/cmip5/lgm/mrlgmbi_2-5m.zip", "http://biogeo.ucdavis.edu/data/climate/cmip5/lgm/melgmbi_2-5m.zip"), zip.names = c("CCSM4", "MIROC_ESM", "MPI_ESM_P"), dir.name = "LGM") # Mid Holocene: downloadZips(zip.urls = c("http://biogeo.ucdavis.edu/data/climate/cmip5/mid/bcmidbi_2-5m.zip", "http://biogeo.ucdavis.edu/data/climate/cmip5/mid/ccmidbi_2-5m.zip", "http://biogeo.ucdavis.edu/data/climate/cmip5/mid/cnmidbi_2-5m.zip", "http://biogeo.ucdavis.edu/data/climate/cmip5/mid/hgmidbi_2-5m.zip", "http://biogeo.ucdavis.edu/data/climate/cmip5/mid/hemidbi_2-5m.zip", "http://biogeo.ucdavis.edu/data/climate/cmip5/mid/ipmidbi_2-5m.zip", "http://biogeo.ucdavis.edu/data/climate/cmip5/mid/mrmidbi_2-5m.zip", "http://biogeo.ucdavis.edu/data/climate/cmip5/mid/memidbi_2-5m.zip", "http://biogeo.ucdavis.edu/data/climate/cmip5/mid/mgmidbi_2-5m.zip"), zip.names = c("BCC_CSM1_1", "CCSM4", "CNRM_CM5", "HadGEM2_CC", "HadGEM2_ES", "IPSL_CM5A_LR", "MIROC_ESM", "MPI_ESM_P", "MRI_CGCM3"), dir.name = "MidHol") # Last Inter-Glacial: downloadZips(zip.urls = "http://biogeo.ucdavis.edu/data/climate/worldclim/1_4/grid/pst/lig/lig_30s_bio.zip", zip.names = "LIG_30s", dir.name = "LIG")