get_cache <- function(path = Sys.getenv("EPWSHIFTR_CHECK_CACHE", NA), reset = FALSE) {
if (is.na(path)) path <- tools::R_user_dir("epwshiftr", "cache")
cache <- normalizePath(path, mustWork = FALSE)
if (identical(Sys.getenv("NOT_CRAN"), "true") && !dir.exists(cache)) {
dir.create(cache, recursive = TRUE)
}
# download weather
file <- "SGP_Singapore.486980_IWEC.epw"
epw <- file.path(cache, file)
if (!file.exists(epw)) {
eplusr::download_weather("SGP_Singapore.486980_IWEC", dir = cache, type = "epw", ask = FALSE, max_match = 1L)
}
# download NetCDF
withr::with_options(
list(epwshiftr.dir = cache),
{
if (!reset && file.exists(file.path(cache, "cmip6_index.csv"))) {
idx <- load_cmip6_index()
} else {
idx <- init_cmip6_index(
variable = "tas", source = "EC-Earth3", years = 2060L,
experiment = "ssp585", limit = 1L, save = TRUE
)
}
# download output files
for (f in idx$file_url) {
dest <- file.path(cache, basename(f))
if (!file.exists(dest)) {
old <- getOption("timeout")
options(timeout = 60L * 100L)
on.exit(options(timeout = old), add = TRUE)
flag <- download.file(f, dest, mode = "wb")
}
}
}
)
cache
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.