knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" ) library(epwshiftr) # copy files in advance f <- c("tas_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20490101-20491231.nc", "tas_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20500101-20501231.nc", "tas_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20510101-20511231.nc", "hurs_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20490101-20491231.nc", "hurs_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20500101-20501231.nc", "hurs_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20510101-20511231.nc", "tas_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20790101-20791231.nc", "tas_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20800101-20801231.nc", "tas_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20810101-20811231.nc", "hurs_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20790101-20791231.nc", "hurs_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20800101-20801231.nc", "hurs_day_AWI-CM-1-1-MR_ssp585_r1i1p1f1_gn_20810101-20811231.nc" ) file.copy(file.path("/mnt/d/ScenarioMIP", f), tempdir())
Create future EnergyPlus Weather files using CMIP6 data
To cite epwshiftr in publications use:
Jia, Hongyuan, Chong, Adrian, Ning, Baisong, 2023. Epwshiftr: incorporating open data of climate change prediction into building performance simulation for future adaptation and mitigation, in: Proceedings of Building Simulation 2023: 18th Conference of IBPSA, Building Simulation. Presented at the Building Simulation 2023, IBPSA, Shanghai, China, pp. 3201–3207. https://doi.org/10.26868/25222708.2023.1612
A BibTeX entry for LaTeX users is:
@inproceedings{jia2023epwshiftr, title = {Epwshiftr: Incorporating Open Data of Climate Change Prediction into Building Performance Simulation for Future Adaptation and Mitigation}, shorttitle = {Epwshiftr}, booktitle = {Proceedings of {{Building Simulation}} 2023: 18th {{Conference}} of {{IBPSA}}}, author = {Jia, Hongyuan and Chong, Adrian and Ning, Baisong}, year = {2023}, series = {Building {{Simulation}}}, volume = {18}, pages = {3201--3207}, publisher = {{IBPSA}}, address = {{Shanghai, China}}, doi = {10.26868/25222708.2023.1612} }
You can install the latest stable release of epwshiftr from CRAN.
install.packages("epwshiftr")
Alternatively, you can install the development version from GitHub.
install.packages("epwshiftr", repos = c( ideaslab = "https://ideas-lab-nus.r-universe.dev", cran = "https://cran.r-project.org" ) )
# set directory to store files options(epwshiftr.dir = tempdir()) options(epwshiftr.verbose = TRUE) # get CMIP6 data nodes (nodes <- get_data_node()) # create a CMIP6 output file index idx <- init_cmip6_index( # only consider ScenarioMIP activity activity = "ScenarioMIP", # specify dry-bulb temperature and relative humidity variable = c("tas", "hurs"), # specify report frequent frequency = "day", # specify experiment name experiment = c("ssp585"), # specify GCM name source = "AWI-CM-1-1-MR", # specify variant, variant = "r1i1p1f1", # specify years of interest years = c(2050, 2080), # save to data dictionary save = TRUE ) # the index has been automatically saved into directory specified using # `epwshiftr.dir` option and can be reloaded idx <- load_cmip6_index() str(head(idx))
You have to download CMIP6 output file by yourself using your preferable
methods or tools. The download url can be found in the file_url
column in
the index.
After you have downloaded CMIP6 output files of interest, you can use
suumary_database()
to get a summary on files downloaded against the CMIP6
output file index.
This step is necessary as it map the loaded files against index so that epwshiftr knows which case is complete and can be used for the next step.
# Summary downloaded file by GCM and variable, use the latest downloaded file if # multiple matches are detected and save matched information into the index file sm <- summary_database(tempdir(), by = c("source", "variable"), mult = "latest", update = TRUE) knitr::kable(sm)
epw <- file.path(eplusr::eplus_config(8.8)$dir, "WeatherData/USA_CA_San.Francisco.Intl.AP.724940_TMY3.epw") # match any coordinates with absolute distance less than 1 degree coord <- match_coord(epw, threshold = list(lon = 1, lat = 1), max_num = 1) class(coord) names(coord) coord$meta coord$coord[, .(file_path, coord)] str(coord$coord$coord[[1]])
extract_data()
data <- extract_data(coord, years = c(2050, 2080)) class(data) names(data) knitr::kable(head(data$data))
morphed <- morphing_epw(data) class(morphed) names(morphed) knitr::kable(head(morphed$tdb)) knitr::kable(head(morphed$rh))
morphing_epw()
, we can now create future
EPW files using future_epw()
# create future EPWs grouped by GCM, experiment ID, interval (year) epws <- future_epw(morphed, by = c("source", "experiment", "interval"), dir = tempdir(), separate = TRUE, overwrite = TRUE ) epws sapply(epws, function (epw) epw$path())
Hongyuan Jia and Adrian Chong
epwshiftr is released under the terms of MIT License.
Copyright © 2019-2024 Hongyuan Jia and Adrian Chong
To enable modeling groups and others who support CMIP6 to demonstrate its impact (and secure ongoing funding), you are required to cite and acknowledge those who have made CMIP6 possible. You also must abide by any licensing restrictions, which are recorded in each file as a global attribute (named “license”).
Please carefully read and adhere to the CMIP6 Terms of Use.
CMIP6 model data is licensed under a Creative Commons Attribution-ShareAlike
4.0 International License.
Consult Terms of Use for terms of use
governing CMIP6 output, including citation requirements and proper
acknowledgment. Further information about each GCM output data, including some
limitations, can be found via the further_info_url
(recorded as a global
attribute in the NetCDF file) and at EC-Earth. The
data producers and data providers make no warranty, either express or implied,
including, but not limited to, warranties of merchantability and fitness for a
particular purpose. All liabilities arising from the supply of the information
(including any liability arising in negligence) are excluded to the fullest
extent permitted by law.
If you encounter a clear bug or have questions about the usage, please file an issue with a minimal reproducible example on GitHub If you have a solution for an existing bug or an implementation for a missing feature, please send a pull request and let us review.
Please note that the 'epwshiftr' project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.