├── cmip6_downscaling ├── analysis │ ├── __init__.py │ └── qaqc.py ├── data │ └── __init__.py ├── disagg │ └── __init__.py ├── methods │ ├── __init__.py │ ├── bcsd │ │ ├── __init__.py │ │ └── utils.py │ ├── gard │ │ └── __init__.py │ ├── maca │ │ └── __init__.py │ ├── common │ │ └── __init__.py │ └── deepsd │ │ ├── __init__.py │ │ └── deepsd_config.ini ├── _version.py ├── __init__.py ├── constants.py └── utils.py ├── .prettierrc.toml ├── docs ├── _static │ ├── monogram-dark-cropped.png │ └── monogram-light-cropped.png ├── environment.yml ├── quick-start.md └── api.rst ├── ci └── environment.yaml ├── configs ├── make_configs │ ├── bcsd_ERA5_MIROC6_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_AWI-CM-1-1-M_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_AWI-CM-1-1-M_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_AWI-CM-1-1-M_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_MIROC6_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_MIROC6_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_AWI-CM-1-1-M_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_AWI-CM-1-1-M_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_AWI-CM-1-1-M_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_AWI-CM-1-1-M_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_AWI-CM-1-1-M_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_AWI-CM-1-1-M_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_AWI-CM-1-1-M_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_BCC-CSM2-MR_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_BCC-CSM2-MR_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_AWI-CM-1-1-M_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ └── bcsd_ERA5_AWI-CM-1-1-M_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json └── generate_valid_configs │ ├── maca │ ├── maca_ERA5_CanESM5_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_CanESM5_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_CanESM5_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MIROC6_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MIROC6_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MIROC6_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MIROC6_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MIROC6_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MIROC6_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MIROC6_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MIROC6_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MIROC6_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_NorESM2-LM_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_CanESM5_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_CanESM5_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_CanESM5_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_CanESM5_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_CanESM5_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_CanESM5_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_NorESM2-LM_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_NorESM2-LM_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_1950_2099.json │ └── maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_1950_2099.json │ ├── bcsd │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_MIROC6_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_CanESM5_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ └── bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── deepsd │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── deepsd_ERA5_CanESM5_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ └── deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard │ ├── gard_ERA5_MIROC6_r1i1p1f1_ssp245_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MIROC6_r1i1p1f1_ssp370_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MIROC6_r1i1p1f1_ssp585_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_ssp245_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_ssp245_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_ssp245_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_ssp370_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_ssp370_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_ssp370_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_ssp585_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_ssp585_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_ssp585_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MIROC6_r1i1p1f1_ssp245_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MIROC6_r1i1p1f1_ssp245_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MIROC6_r1i1p1f1_ssp370_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MIROC6_r1i1p1f1_ssp370_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MIROC6_r1i1p1f1_ssp585_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MIROC6_r1i1p1f1_ssp585_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_historical_pr_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_MIROC6_r1i1p1f1_historical_pr_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_MIROC6_r1i1p1f1_historical_tasmax_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_MIROC6_r1i1p1f1_historical_tasmin_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_historical_tasmax_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_CanESM5_r1i1p1f1_historical_tasmin_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_historical_pr_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_pr_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_tasmax_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_tasmin_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmax_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmin_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_pr_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_tasmax_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ └── gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_tasmin_tasmin_-90_90_-180_180_1981_2010_1950_2014.json │ └── gard_multivariate │ ├── gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_pr_ua_va_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_multivariate_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_pr_ua_va_pr_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_pr_ua_va_psl_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_tasmax_ua_va_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_multivariate_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmax_ua_va_tasmax_-90_90_-180_180_1981_2010_2015_2099.json │ ├── gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_pr_ua_va_psl_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_multivariate_ERA5_MRI-ESM2-0_r1i1p1f1_historical_pr_ua_va_pr_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_multivariate_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmax_ua_va_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ ├── gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_tasmax_ua_va_psl_tasmax_-90_90_-180_180_1981_2010_1950_2014.json │ └── gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_pr_ua_va_psl_tasmax_-90_90_-180_180_1981_2010_1950_2014.json ├── tests ├── test_runtimes.py ├── test_data.py ├── test_config.py ├── analysis │ └── test_metrics.py └── conftest.py ├── .readthedocs.yaml ├── flows ├── methods │ └── gard │ │ └── multivariate_test.json ├── cloud_flow_test.py ├── run_subsets_cloud.py ├── downscaled_pyramid_weights.py └── catalogs │ └── era5-full-space.py ├── LICENSE ├── .pre-commit-config.yaml └── .github └── workflows └── main.yaml /cmip6_downscaling/analysis/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cmip6_downscaling/data/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cmip6_downscaling/disagg/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cmip6_downscaling/methods/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cmip6_downscaling/methods/bcsd/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cmip6_downscaling/methods/gard/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cmip6_downscaling/methods/maca/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cmip6_downscaling/methods/common/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cmip6_downscaling/methods/deepsd/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.prettierrc.toml: -------------------------------------------------------------------------------- 1 | tabWidth = 2 2 | semi = false 3 | singleQuote = true 4 | -------------------------------------------------------------------------------- /docs/_static/monogram-dark-cropped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carbonplan/cmip6-downscaling/HEAD/docs/_static/monogram-dark-cropped.png -------------------------------------------------------------------------------- /docs/_static/monogram-light-cropped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carbonplan/cmip6-downscaling/HEAD/docs/_static/monogram-light-cropped.png -------------------------------------------------------------------------------- /docs/environment.yml: -------------------------------------------------------------------------------- 1 | name: cmip6-downscaling-docs 2 | channels: 3 | - conda-forge 4 | - nodefaults 5 | dependencies: 6 | - python=3.9 7 | - pre-commit 8 | - pip 9 | - sphinx>=5.0 10 | - sphinx-book-theme >= 0.3.0 11 | - numpydoc 12 | - myst-nb 13 | -------------------------------------------------------------------------------- /ci/environment.yaml: -------------------------------------------------------------------------------- 1 | name: cmip6-downscaling 2 | channels: 3 | - conda-forge 4 | - nodefaults 5 | dependencies: 6 | - pytest 7 | - pytest-cov 8 | - pip 9 | - pip: 10 | # relative to this file. Needs to be editable to be accepted. 11 | - -e ../ 12 | -------------------------------------------------------------------------------- /cmip6_downscaling/_version.py: -------------------------------------------------------------------------------- 1 | from importlib.metadata import PackageNotFoundError as _PackageNotFoundError 2 | from importlib.metadata import version as _version 3 | 4 | try: 5 | __version__ = _version('cmip6_downscaling') 6 | except _PackageNotFoundError: 7 | # package is not installed 8 | __version__ = "unknown" 9 | -------------------------------------------------------------------------------- /cmip6_downscaling/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | from __future__ import annotations 3 | 4 | from dask.utils import SerializableLock 5 | from donfig import Config 6 | 7 | from ._version import __version__ 8 | from .config import _defaults 9 | 10 | config = Config("cmip6_downscaling", defaults=[_defaults]) 11 | config.config_lock = SerializableLock() 12 | config.expand_environment_variables() 13 | CLIMATE_NORMAL_PERIOD = (1970, 2000) 14 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["1950", "2014"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["1950", "2014"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_MIROC6_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["1950", "2014"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /cmip6_downscaling/constants.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | KELVIN = 273.15 4 | MONTHS_PER_YEAR = 12 5 | SEC_PER_DAY = 86400 6 | MIN_PER_DAY = 1440 7 | MGM2D_PER_WM2 = SEC_PER_DAY / 1e6 # 1 W m-2 = 0.0864 MJ m-2 day-1 8 | MM_PER_IN = 25.4 9 | MB_PER_KPA = 10 10 | PERCENT = 100 11 | RELATIVE_VARS = ['pr'] 12 | ABSOLUTE_VARS = ['tasmax', 'tasmin'] 13 | APHYSICAL_TEMP_HIGH = 353 # Kelvin 14 | APHYSICAL_TEMP_LOW = 0 15 | APHYSICAL_PRECIP_HIGH = 3000 16 | APHYSICAL_PRECIP_LOW = 0 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["1950", "2014"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "variable": "pr", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["1950", "2014"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["2015", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["1950", "2014"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_BCC-CSM2-MR_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["1950", "2014"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "variable": "tasmax", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["1950", "2014"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /configs/make_configs/bcsd_ERA5_AWI-CM-1-1-M_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "AWI-CM-1-1-M", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "variable": "tasmin", 10 | "train_period": ["1981", "2010"], 11 | "predict_period": ["1950", "2014"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180" 16 | } 17 | -------------------------------------------------------------------------------- /tests/test_runtimes.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | 3 | from cmip6_downscaling.runtimes import ( 4 | BaseRuntime, 5 | CIRuntime, 6 | LocalRuntime, 7 | PangeoRuntime, 8 | get_runtime, 9 | ) 10 | 11 | 12 | @pytest.mark.parametrize('runtime', [LocalRuntime, CIRuntime, PangeoRuntime]) 13 | def test_runtimes(runtime): 14 | _runtime = runtime() 15 | assert isinstance(_runtime, BaseRuntime) 16 | 17 | 18 | def test_get_runtime(): 19 | runtime = get_runtime() 20 | assert isinstance(runtime, BaseRuntime) 21 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_CanESM5_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_CanESM5_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_CanESM5_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MIROC6_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MIROC6_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MIROC6_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MIROC6_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MIROC6_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MIROC6_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MIROC6_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MIROC6_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MIROC6_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_NorESM2-LM_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "NorESM2-LM", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_CanESM5_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_CanESM5_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_CanESM5_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_CanESM5_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_CanESM5_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_CanESM5_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "pr", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_NorESM2-LM_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "NorESM2-LM", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_NorESM2-LM_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "NorESM2-LM", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmax", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/maca/maca_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_1950_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "maca", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "variable": "tasmin", 10 | "train_dates": ["1981", "2010"], 11 | "predict_dates": ["1950", "2099"], 12 | "latmin": "-90", 13 | "latmax": "90", 14 | "lonmin": "-180", 15 | "lonmax": "180", 16 | "year_rolling_window": 31, 17 | "day_rolling_window": 21 18 | } 19 | -------------------------------------------------------------------------------- /tests/test_data.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pytest 3 | from xarray_schema import DataArraySchema, DatasetSchema 4 | 5 | from cmip6_downscaling.data.observations import open_era5 6 | 7 | params = ['ua', 'va', 'tasmin', 'tasmax', 'pr'] 8 | 9 | 10 | @pytest.mark.parametrize('params', params) 11 | def test_open_era5(params): 12 | ds = open_era5(params, slice('2020', '2020')) 13 | print(ds) 14 | print(params) 15 | schema = DatasetSchema( 16 | {params: DataArraySchema(dtype=np.floating, dims=['time', 'lat', 'lon'])}, 17 | ) 18 | schema.validate(ds) 19 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MIROC6_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": false }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": false }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": false }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_CanESM5_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": false }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": false }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": false }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "False" }, 17 | "model_type": "", 18 | "model_params": { "thresh": 0 }, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/bcsd/bcsd_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "bcsd", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "", 16 | "bias_correction_kwargs": { "detrend": "True" }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": false }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_CanESM5_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["2015", "2099"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/deepsd/deepsd_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "deepsd", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { "detrend": true }, 17 | "model_type": "", 18 | "model_params": {}, 19 | "train_dates": ["1981", "2010"], 20 | "predict_dates": ["1950", "2014"] 21 | } 22 | -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | # Read the Docs configuration file 2 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 3 | 4 | # Required 5 | version: 2 6 | 7 | # Set the version of Python and other tools you might need 8 | build: 9 | os: ubuntu-20.04 10 | tools: 11 | python: 'mambaforge-4.10' 12 | 13 | # Build documentation in the doc/ directory with Sphinx 14 | sphinx: 15 | configuration: docs/conf.py 16 | 17 | # If using Sphinx, optionally build your docs in additional formats such as PDF 18 | # formats: 19 | # - pdf 20 | 21 | # Optionally declare the Python requirements required to build your docs 22 | conda: 23 | environment: docs/environment.yml 24 | python: 25 | install: 26 | - method: pip 27 | path: . 28 | -------------------------------------------------------------------------------- /tests/test_config.py: -------------------------------------------------------------------------------- 1 | import pickle 2 | 3 | from cmip6_downscaling import config 4 | 5 | 6 | def test_config_serialization(): 7 | config1 = config.config 8 | bts = pickle.dumps(config1) 9 | config2 = pickle.loads(bts) 10 | assert config.config == config2 11 | 12 | 13 | def test_config(): 14 | # check that required config keys are always there 15 | assert config.get('storage.intermediate.uri') 16 | assert config.get('storage.results.uri') 17 | assert config.get('storage.temporary.uri') 18 | assert config.get('runtime.cloud.storage_options') 19 | assert config.get('runtime.local.storage_options') 20 | assert config.get('runtime.test.storage_options') 21 | assert config.get('runtime.pangeo.storage_options') 22 | -------------------------------------------------------------------------------- /cmip6_downscaling/methods/deepsd/deepsd_config.ini: -------------------------------------------------------------------------------- 1 | [Paths] 2 | elevation: data/wcs_4km_prism.nc 3 | scratch: scratch/ 4 | prism: data/prism 5 | 6 | [DataOptions] 7 | variable: ppt 8 | min_year: 2014 9 | max_year: 2015 10 | max_train_year: 2014 11 | 12 | [SRCNN] 13 | scratch: scratch/ 14 | layer_sizes: 64,32,1 15 | kernel_sizes: 9,3,5 16 | learning_rate: 0.001 17 | training_iters: 1000 18 | batch_size: 100 19 | training_input_size: 38 20 | training_input_depth: 1 21 | aux_depth: 1 22 | save_step: 1000 23 | test_step: 50 24 | dropout_prob: 0.0 25 | 26 | [Model-1] 27 | data_dir: scratch/ppt_008_016/ 28 | model_name: ppt-008-016 29 | 30 | [Model-2] 31 | data_dir: scratch/ppt_004_008/ 32 | model_name: ppt-004-008 33 | 34 | [DeepSD] 35 | model_name: ppt-004-016 36 | low_resolution: 16 37 | high_resolution: 4 38 | upscale_factor: 2 39 | -------------------------------------------------------------------------------- /flows/methods/gard/multivariate_test.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["ua", "va", "tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": 0 }, 18 | "tasmin": { "detrend": 1 }, 19 | "tasmax": { "detrend": 1 }, 20 | "psl": { "detrend": 0 }, 21 | "ua": { "detrend": 0 }, 22 | "va": { "detrend": 0 } 23 | }, 24 | "model_type": "AnalogRegression", 25 | "model_params": { "n_analogs": 50 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /tests/analysis/test_metrics.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | from cmip6_downscaling.analysis.metrics import spell_length_stat 4 | 5 | 6 | def test_spell_length_stat(): 7 | series = np.array([True, True, True, True, False, False, True, False, True]) 8 | assert spell_length_stat(series) == 2.0 9 | series = np.array([False, True, True, True, True, False, False, True, False, True]) 10 | assert spell_length_stat(series) == 2.0 11 | series = np.array([True, True, True, True, False, False, True, False, True, False]) 12 | assert spell_length_stat(series) == 2.0 13 | series = np.array([True, True, True, True, False, False, True, False, True]) 14 | assert spell_length_stat(series) == 2.0 15 | series = np.array([False, True, True, True, True, False, False, True, False, True, False]) 16 | assert spell_length_stat(series) == 2.0 17 | -------------------------------------------------------------------------------- /docs/quick-start.md: -------------------------------------------------------------------------------- 1 | # Quick start 2 | 3 | ## Dependencies 4 | 5 | - Python 3.8 or later 6 | - numpy 7 | - scipy 8 | - pandas 9 | 10 | ## Install 11 | 12 | The `cmip6-downscaling` package can be installed using `pip` package installer from [PyPI](https://pypi.org/project/cmip6-downscaling/): 13 | 14 | ``` 15 | python -m pip install cmip6-downscaling 16 | ``` 17 | 18 | or from source: 19 | 20 | ``` 21 | python -m pip install git+https://github.com/carbonplan/cmip6-dowscaling 22 | ``` 23 | 24 | ## Usage 25 | 26 | The `cmip6-downscaling` package provides a number of downscaling implementations. See the [API docs](/api) for a complete listing of functions and utilities or the [Running Flows Guide](/running-flows) for detailed example on how to use the `cmip6-downscaling` package for specific tasks. 27 | 28 | ```python 29 | import cmip6_downscaling 30 | ``` 31 | -------------------------------------------------------------------------------- /cmip6_downscaling/methods/bcsd/utils.py: -------------------------------------------------------------------------------- 1 | import xarray as xr 2 | 3 | xr.set_options(keep_attrs=True) 4 | 5 | 6 | def reconstruct_finescale(ds: xr.Dataset, spatial_anomaly: xr.Dataset = None): 7 | """Add the spatial anomalies back into the interpolated fine scale dataset. 8 | 9 | Parameters 10 | ---------- 11 | ds : xr.Dataset 12 | Dataset or data array you're wanting to chunk. With dimensions ('month', 'lat', 'lon') 13 | spatial_anomaly : xr.Dataset, optional 14 | The dataset of monthly spatial anomalies resulting from taking the difference between 15 | the fine scale obs and the interpolated obs. With dimensions ('month', 'lat', 'lon') 16 | 17 | Returns 18 | ------- 19 | reconstructed : xr.Dataset 20 | Finescale dataset with spatial heterogeneity added back in 21 | """ 22 | return ds.groupby('time.month') + spatial_anomaly 23 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_ssp245_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_ssp370_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_ssp585_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_ssp245_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_ssp245_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_ssp245_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_ssp370_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_ssp370_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_ssp370_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_ssp585_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_ssp585_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_ssp585_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_ssp245_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_ssp245_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_ssp370_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_ssp370_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_ssp585_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_ssp585_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_historical_pr_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_historical_pr_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_historical_tasmax_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MIROC6_r1i1p1f1_historical_tasmin_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp245_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp370_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp245_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp370_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_ssp585_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_historical_tasmax_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_CanESM5_r1i1p1f1_historical_tasmin_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "CanESM5", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_pr_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_historical_pr_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_pr_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_tasmax_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_BCC-CSM2-MR_r1i1p1f1_historical_tasmin_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "BCC-CSM2-MR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp245_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp245", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp370_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp370", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmax_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_ssp585_tasmin_tasmin_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmax_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmin_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_pr_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_tasmax_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard/gard_ERA5_MPI-ESM1-2-HR_r1i1p1f1_historical_tasmin_tasmin_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard", 3 | "obs": "ERA5", 4 | "model": "MPI-ESM1-2-HR", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["tasmin"], 10 | "variable": "tasmin", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard_multivariate/gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_pr_ua_va_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard_multivariate", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["ua", "va", "pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard_multivariate/gard_multivariate_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_pr_ua_va_pr_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard_multivariate", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["ua", "va", "pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard_multivariate/gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_pr_ua_va_psl_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard_multivariate", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["ua", "va", "psl"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard_multivariate/gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_tasmax_ua_va_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard_multivariate", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["ua", "va", "tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard_multivariate/gard_multivariate_ERA5_MRI-ESM2-0_r1i1p1f1_ssp585_tasmax_ua_va_tasmax_-90_90_-180_180_1981_2010_2015_2099.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard_multivariate", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "ssp585", 9 | "features": ["ua", "va", "tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["2015", "2099"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard_multivariate/gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_pr_ua_va_psl_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard_multivariate", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["ua", "va", "psl", "pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard_multivariate/gard_multivariate_ERA5_MRI-ESM2-0_r1i1p1f1_historical_pr_ua_va_pr_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard_multivariate", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["ua", "va", "pr"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard_multivariate/gard_multivariate_ERA5_MRI-ESM2-0_r1i1p1f1_historical_tasmax_ua_va_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard_multivariate", 3 | "obs": "ERA5", 4 | "model": "MRI-ESM2-0", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["ua", "va", "tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard_multivariate/gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_tasmax_ua_va_psl_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard_multivariate", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["ua", "va", "psl", "tasmax"], 10 | "variable": "tasmax", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": {}, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /configs/generate_valid_configs/gard_multivariate/gard_multivariate_ERA5_MIROC6_r1i1p1f1_historical_pr_ua_va_psl_tasmax_-90_90_-180_180_1981_2010_1950_2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "method": "gard_multivariate", 3 | "obs": "ERA5", 4 | "model": "MIROC6", 5 | "member": "r1i1p1f1", 6 | "grid_label": "gn", 7 | "table_id": "day", 8 | "scenario": "historical", 9 | "features": ["ua", "va", "psl", "tasmax"], 10 | "variable": "pr", 11 | "latmin": "-90", 12 | "latmax": "90", 13 | "lonmin": "-180", 14 | "lonmax": "180", 15 | "bias_correction_method": "quantile_mapper", 16 | "bias_correction_kwargs": { 17 | "pr": { "detrend": false }, 18 | "tasmin": { "detrend": true }, 19 | "tasmax": { "detrend": true }, 20 | "psl": { "detrend": false }, 21 | "ua": { "detrend": false }, 22 | "va": { "detrend": false } 23 | }, 24 | "model_type": "PureRegression", 25 | "model_params": { "thresh": 0 }, 26 | "train_dates": ["1981", "2010"], 27 | "predict_dates": ["1950", "2014"] 28 | } 29 | -------------------------------------------------------------------------------- /cmip6_downscaling/utils.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from hashlib import blake2b 4 | 5 | import dask 6 | import datatree 7 | import xarray as xr 8 | import zarr 9 | 10 | 11 | def str_to_hash(s: str) -> str: 12 | return blake2b(s.encode(), digest_size=8).hexdigest() 13 | 14 | 15 | def write(ds: xr.Dataset | datatree.DataTree, target, use_cache: bool = True) -> str: 16 | from .methods.common.utils import zmetadata_exists 17 | 18 | if use_cache and zmetadata_exists(target): 19 | print(f'found existing target: {target}') 20 | return target 21 | 22 | else: 23 | print(f'writing target: {target}') 24 | out = dask.optimize(ds)[0] 25 | if isinstance(ds, xr.Dataset): 26 | t = out.to_zarr(target, mode='w', compute=False, consolidated=False) 27 | t.compute(retries=5) 28 | zarr.consolidate_metadata(target) 29 | else: 30 | # datatree doesn't support compute=False yet 31 | ds.to_zarr(target, mode='w') 32 | 33 | return target 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Joe Hamman 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | ci: 2 | autoupdate_schedule: quarterly 3 | autofix_prs: false 4 | 5 | repos: 6 | - repo: https://github.com/pre-commit/pre-commit-hooks 7 | rev: v4.4.0 8 | hooks: 9 | - id: trailing-whitespace 10 | - id: end-of-file-fixer 11 | - id: check-docstring-first 12 | - id: check-json 13 | - id: check-yaml 14 | - id: debug-statements 15 | - id: mixed-line-ending 16 | 17 | - repo: https://github.com/asottile/pyupgrade 18 | rev: v3.14.0 19 | hooks: 20 | - id: pyupgrade 21 | args: 22 | - '--py38-plus' 23 | 24 | - repo: https://github.com/psf/black 25 | rev: 23.9.1 26 | hooks: 27 | - id: black 28 | - id: black-jupyter 29 | 30 | - repo: https://github.com/keewis/blackdoc 31 | rev: v0.3.8 32 | hooks: 33 | - id: blackdoc 34 | 35 | - repo: https://github.com/astral-sh/ruff-pre-commit 36 | rev: 'v0.0.276' 37 | hooks: 38 | - id: ruff 39 | args: ['--fix'] 40 | 41 | - repo: https://github.com/pre-commit/mirrors-prettier 42 | rev: v3.0.0-alpha.9-for-vscode 43 | hooks: 44 | - id: prettier 45 | -------------------------------------------------------------------------------- /flows/cloud_flow_test.py: -------------------------------------------------------------------------------- 1 | import time 2 | import uuid 3 | 4 | import ESMF 5 | import numpy as np 6 | from dask.distributed import get_worker 7 | from prefect import Flow, task 8 | 9 | from cmip6_downscaling import runtimes 10 | 11 | 12 | @task(log_stdout=True, tags=['dask-resource:TASKSLOTS=1']) 13 | def my_task(num: int) -> None: 14 | time.sleep(1) 15 | print(num, get_worker().id, uuid.uuid4().hex) 16 | 17 | 18 | @task(log_stdout=True, tags=['dask-resource:TASKSLOTS=1']) 19 | def make_grid(shape): 20 | print(shape, get_worker().id, uuid.uuid4().hex) 21 | time.sleep(1) 22 | _ = ESMF.Grid( 23 | np.array(shape), 24 | staggerloc=ESMF.StaggerLoc.CENTER, 25 | coord_sys=ESMF.CoordSys.SPH_DEG, 26 | num_peri_dims=None, # with out this, ESMF seems to seg fault (clue?) 27 | ) 28 | return shape 29 | 30 | 31 | runtime = runtimes.get_runtime() 32 | 33 | with Flow( 34 | name="test_task_multi", 35 | storage=runtime.storage, 36 | run_config=runtime.run_config, 37 | executor=runtime.executor, 38 | ) as flow: 39 | nums = range(4) 40 | my_task.map(nums) 41 | 42 | tasks = [make_grid((59, 87)), make_grid((60, 88)), make_grid((61, 89)), make_grid((62, 90))] 43 | -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pytest 3 | import xarray as xr 4 | 5 | from cmip6_downscaling import config 6 | 7 | 8 | @pytest.fixture(scope="session", autouse=True) 9 | def set_test_config(): 10 | config.set( 11 | { 12 | 'storage.intermediate.uri': '/tmp/intermediate', 13 | 'storage.results.uri': '/tmp/results', 14 | 'storage.temporary.uri': '/tmp/temporary', 15 | } 16 | ) 17 | 18 | 19 | def example_3d_dataarray_us_domain(val=0): 20 | return xr.DataArray( 21 | val, 22 | dims=['lat', 'lon', 'time'], 23 | coords={'lat': np.arange(19, 56, 1), 'lon': np.arange(-133, -61, 2), 'time': np.arange(5)}, 24 | ) 25 | 26 | 27 | @pytest.fixture(scope="session", autouse=True) 28 | def example_3d_data_us_domain(): 29 | ds = xr.Dataset() 30 | for v in ['var1', 'var2']: 31 | ds[v] = example_3d_dataarray_us_domain() 32 | return ds 33 | 34 | 35 | @pytest.fixture 36 | def da_noleap(val=1.0): 37 | time = xr.cftime_range(start='2020-01-01', end='2020-12-31', freq='1D', calendar='noleap') 38 | return xr.DataArray( 39 | val, 40 | dims=['lat', 'lon', 'time'], 41 | coords={'lat': np.arange(19, 56, 1), 'lon': np.arange(-133, -61, 2), 'time': time}, 42 | ) 43 | -------------------------------------------------------------------------------- /.github/workflows/main.yaml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | push: 4 | branches: ['main'] 5 | pull_request: 6 | branches: ['main'] 7 | workflow_dispatch: 8 | schedule: 9 | - cron: '0 0 * * 0' # Weekly “At 00:00” 10 | 11 | # concurrency: 12 | # group: ${{ github.workflow }}-${{ github.ref }} 13 | # cancel-in-progress: true 14 | 15 | # Note: This CI used to run off of the image: 16 | # carbonplan/cmip6-downscaling-single-user:2022.06.19 17 | 18 | jobs: 19 | test: 20 | name: ${{ matrix.python-version }}-build 21 | runs-on: ubuntu-latest 22 | strategy: 23 | fail-fast: false 24 | matrix: 25 | python-version: ['3.9', '3.10', '3.11'] 26 | timeout-minutes: 20 27 | defaults: 28 | run: 29 | shell: bash -l {0} 30 | steps: 31 | - name: Checkout 32 | uses: actions/checkout@v4 33 | 34 | - name: Install Conda environment from environment.yml 35 | uses: mamba-org/setup-micromamba@v1 36 | with: 37 | # environment-file is not assumed anymore 38 | environment-file: ci/environment.yaml 39 | create-args: >- 40 | python=${{ matrix.python-version }} 41 | # now called cache-environment 42 | cache-environment: true 43 | post-cleanup: 'none' 44 | cache-downloads: false 45 | 46 | - name: Install package 47 | run: | 48 | python -m pip install -e .[dev] 49 | - name: Conda list information 50 | run: | 51 | conda env list 52 | conda list 53 | - name: Run tests 54 | run: | 55 | python -m pytest tests 56 | -------------------------------------------------------------------------------- /flows/run_subsets_cloud.py: -------------------------------------------------------------------------------- 1 | import glob 2 | import os 3 | 4 | # --- Settings --- 5 | # downscaling_methods = ['bcsd', 'gard', 'maca'] 6 | downscaling_methods = ['bcsd'] 7 | 8 | _prefect_register_str = ( 9 | """prefect register --project "envs" -p ../methods/{downscaling_method}/flow.py""" 10 | ) 11 | _prefect_run_str = """prefect run -i "{flow_run_id}" --param-file {param_file}""" 12 | 13 | # --- Funcs --- 14 | 15 | 16 | def retrieve_test_parms(): 17 | """retrieve list of all .json param files in method subdir""" 18 | return glob.glob('../configs/*.json') 19 | 20 | 21 | def register_flow(): 22 | """Register flow with prefect cloud and return flow_run_id for running flows""" 23 | print('registering flow on prefect cloud') 24 | return os.popen(_prefect_register_str).read().split("ID: ")[1].split("\n")[0] 25 | 26 | 27 | def run_flows(downscaling_methods, json_list): 28 | """Iterate through possible tests and run in prefect cloud (parallel-ish)""" 29 | for method in downscaling_methods: 30 | flow_id = ( 31 | os.popen(_prefect_register_str.format(downscaling_method=method)) 32 | .read() 33 | .split("ID: ")[1] 34 | .split("\n")[0] 35 | ) 36 | print(f'running available flow parameters for {flow_id}') 37 | for test_fil in json_list: 38 | print(test_fil) 39 | sys_output = os.popen( 40 | _prefect_run_str.format(flow_run_id=flow_id, param_file=test_fil) 41 | ).read() 42 | print(sys_output) 43 | 44 | 45 | def main(): 46 | json_list = retrieve_test_parms() 47 | run_flows(downscaling_methods, json_list) 48 | 49 | 50 | main() 51 | -------------------------------------------------------------------------------- /cmip6_downscaling/analysis/qaqc.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import xarray as xr 4 | 5 | from ..constants import ( 6 | APHYSICAL_PRECIP_HIGH, 7 | APHYSICAL_PRECIP_LOW, 8 | APHYSICAL_TEMP_HIGH, 9 | APHYSICAL_TEMP_LOW, 10 | ) 11 | 12 | 13 | def check_is_bad_data(ds: xr.Dataset, type: str) -> xr.Dataset: 14 | """Basic qaqc checks 15 | 16 | Parameters 17 | ---------- 18 | ds : xr.Dataset 19 | Any dataset 20 | type : str 21 | kind of qaqc you're doing 22 | 23 | Returns 24 | ------- 25 | xr.Dataset 26 | boolean mask of whether it is bad data 27 | """ 28 | if type == 'nulls': 29 | ds = ds.isnull() 30 | elif type == 'aphysical_high_temp': 31 | ds = ds > APHYSICAL_TEMP_HIGH 32 | elif type == 'aphysical_low_temp': 33 | ds = ds < APHYSICAL_TEMP_LOW 34 | elif type == 'aphysical_low_precip': 35 | ds = ds < APHYSICAL_PRECIP_LOW 36 | elif type == 'aphysical_high_precip': 37 | ds = ds > APHYSICAL_PRECIP_HIGH 38 | else: 39 | raise TypeError('metric unavailable') 40 | return ds 41 | 42 | 43 | def make_qaqc_ds( 44 | ds: xr.Dataset, checks: list = ['nulls', 'aphysical_high_temp', 'aphysical_low_temp'] 45 | ) -> xr.Dataset: 46 | """Compile qaqc checks into one dataset 47 | 48 | Parameters 49 | ---------- 50 | ds : xr.Dataset 51 | any dataset 52 | checks : list, optional 53 | which bad data checks you want to do, by default ['nulls', 'aphysical_high_temp', 'aphysical_low_temp'] 54 | 55 | Returns 56 | ------- 57 | xr.Dataset 58 | dataset with all dimensions of ds but expanded along dimension of `qaqc_check` 59 | """ 60 | qaqc_ds = xr.Dataset() 61 | ds_list = [] 62 | 63 | for check in checks: 64 | ds_list.append(check_is_bad_data(ds, check)) 65 | qaqc_ds = xr.concat(ds_list, dim='qaqc_check') 66 | qaqc_ds = qaqc_ds.assign_coords({'qaqc_check': checks}) 67 | return qaqc_ds 68 | -------------------------------------------------------------------------------- /docs/api.rst: -------------------------------------------------------------------------------- 1 | .. _api: 2 | 3 | API 4 | === 5 | 6 | .. automodule:: cmip6_downscaling 7 | 8 | .. currentmodule:: cmip6_downscaling 9 | 10 | Data 11 | ---- 12 | 13 | .. autosummary:: 14 | :toctree: generated/ 15 | 16 | data.cmip.postprocess 17 | data.cmip.load_cmip 18 | data.cmip.get_gcm 19 | 20 | data.observations.open_era5 21 | 22 | data.utils.to_standard_calendar 23 | data.utils.lon_to_180 24 | 25 | Downscaling Methods 26 | ------------------- 27 | 28 | .. currentmodule:: cmip6_downscaling.methods 29 | 30 | 31 | BCSD 32 | ---- 33 | 34 | .. autosummary:: 35 | :toctree: generated/ 36 | 37 | bcsd.tasks.spatial_anomalies 38 | bcsd.tasks.fit_and_predict 39 | bcsd.tasks.postprocess_bcsd 40 | bcsd.utils.reconstruct_finescale 41 | 42 | GARD 43 | ---- 44 | 45 | .. autosummary:: 46 | :toctree: generated/ 47 | 48 | gard.tasks.coarsen_and_interpolate 49 | gard.tasks.fit_and_predict 50 | gard.tasks.read_scrf 51 | gard.utils.get_gard_model 52 | gard.utils.add_random_effects 53 | 54 | DEEPSD 55 | ------ 56 | 57 | .. autosummary:: 58 | :toctree: generated/ 59 | 60 | deepsd.tasks.shift 61 | deepsd.tasks.normalize_gcm 62 | deepsd.tasks.inference 63 | deepsd.tasks.rescale 64 | deepsd.tasks.bias_correction 65 | deepsd.utils.bilinear_interpolate 66 | deepsd.utils.conservative_interpolate 67 | deepsd.utils.normalize 68 | 69 | MACA 70 | ---- 71 | 72 | .. autosummary:: 73 | :toctree: generated/ 74 | 75 | maca.tasks.bias_correction 76 | maca.tasks.epoch_trend 77 | maca.tasks.construct_analogs 78 | maca.tasks.split_by_region 79 | maca.tasks.combine_regions 80 | maca.tasks.replace_epoch_trend 81 | 82 | Common Tasks 83 | ------------ 84 | 85 | .. autosummary:: 86 | :toctree: generated/ 87 | 88 | common.tasks.make_run_parameters 89 | common.tasks.get_obs 90 | common.tasks.get_experiment 91 | common.tasks.rechunk 92 | common.tasks.time_summary 93 | common.tasks.get_weights 94 | common.tasks.get_pyramid_weights 95 | common.tasks.regrid 96 | common.tasks.pyramid 97 | common.tasks.run_analyses 98 | common.tasks.finalize 99 | -------------------------------------------------------------------------------- /flows/downscaled_pyramid_weights.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import dask 4 | from prefect import Flow, task 5 | from prefect.engine.signals import SKIP 6 | from prefect.tasks.control_flow.filter import FilterTask 7 | from upath import UPath 8 | 9 | from cmip6_downscaling import config 10 | from cmip6_downscaling.data.observations import open_era5 11 | from cmip6_downscaling.runtimes import PangeoRuntime 12 | 13 | folder = 'xesmf_weights/downscaled_pyramid' 14 | 15 | scratch_dir = UPath(config.get('storage.static.uri')) / folder 16 | 17 | runtime = PangeoRuntime() 18 | 19 | filter_results = FilterTask( 20 | filter_func=lambda x: not isinstance(x, (BaseException, SKIP, type(None))) 21 | ) 22 | 23 | 24 | @task(log_stdout=True) 25 | def generate_weights(store: dict, levels: int, method: str = 'bilinear') -> dict: 26 | from ndpyramid.regrid import generate_weights_pyramid 27 | 28 | target = scratch_dir / f'{method}_{levels}.zarr' 29 | print(f'weights pyramid path: {target}') 30 | print(f'store: {store}') 31 | 32 | try: 33 | with dask.config.set({'scheduler': 'sync'}): 34 | ds_in = open_era5(store['variable_id'], time_period=slice('2000', '2001')) 35 | weights_pyramid = generate_weights_pyramid(ds_in, levels, method=method) 36 | print(weights_pyramid) 37 | weights_pyramid.to_zarr(target, mode='w') 38 | 39 | return { 40 | 'regrid_method': method, 41 | 'levels': levels, 42 | 'path': str(target), 43 | } 44 | 45 | except Exception as e: 46 | print(e) 47 | 48 | 49 | @task(log_stdout=True) 50 | def catalog(vals): 51 | import pandas as pd 52 | 53 | target = scratch_dir / 'weights.csv' 54 | df = pd.DataFrame([vals]) 55 | df.to_csv(target, mode='w', index=False) 56 | print(target) 57 | 58 | 59 | with Flow( 60 | name='regrid-pyramid-weights', 61 | storage=runtime.storage, 62 | run_config=runtime.run_config, 63 | executor=runtime.executor, 64 | ) as flow: 65 | attrs = generate_weights({'variable_id': 'tasmax'}, levels=4, method='bilinear') 66 | _ = catalog(attrs) 67 | -------------------------------------------------------------------------------- /flows/catalogs/era5-full-space.py: -------------------------------------------------------------------------------- 1 | from prefect import Flow, Parameter, task 2 | 3 | from cmip6_downscaling import config 4 | from cmip6_downscaling.runtimes import CloudRuntime 5 | 6 | config.set( 7 | { 8 | 'runtime.cloud.extra_pip_packages': 'git+https://github.com/carbonplan/cmip6-downscaling.git@main git+https://github.com/ncar-xdev/ecgtools.git git+https://github.com/intake/intake-esm.git tabulate' 9 | } 10 | ) 11 | 12 | runtime = CloudRuntime() 13 | 14 | 15 | def parse_era5(path): 16 | from upath import UPath 17 | 18 | _upath = UPath(path) 19 | parts = _upath.parts 20 | 21 | return { 22 | 'year': parts[-2], 23 | 'product_type': parts[-3], 24 | 'timescale': 'daily', 25 | 'zstore': path, 26 | 'cf_variable_name': _upath.stem, 27 | } 28 | 29 | 30 | @task(log_stdout=True) 31 | def build_catalog(*, name: str, bucket: str) -> None: 32 | import ecgtools 33 | 34 | print(ecgtools.__version__) 35 | 36 | storage_options = {'account_name': 'cmip6downscaling'} 37 | builder = ecgtools.Builder( 38 | paths=[bucket], 39 | depth=2, 40 | storage_options=storage_options, 41 | joblib_parallel_kwargs={'n_jobs': -1, 'verbose': 2}, 42 | exclude_patterns=["*.json"], 43 | ) 44 | 45 | builder.build(parsing_func=parse_era5) 46 | print(builder.df.head()) 47 | 48 | builder.save( 49 | name=name, 50 | path_column_name='zstore', 51 | variable_column_name='cf_variable_name', 52 | data_format='zarr', 53 | aggregations=[ 54 | { 55 | 'type': 'join_existing', 56 | 'attribute_name': 'year', 57 | "options": {"dim": "time", "coords": "minimal"}, 58 | } 59 | ], 60 | groupby_attrs=['product_type', 'timescale', 'cf_variable_name'], 61 | directory=bucket, 62 | ) 63 | 64 | 65 | with Flow('ERA5-full-space', storage=runtime.storage, run_config=runtime.run_config) as flow: 66 | name = Parameter('name', default='ERA5-full-space') 67 | bucket = Parameter('path', default='az://training/ERA5_daily_full_space') 68 | build_catalog(name=name, bucket=bucket) 69 | --------------------------------------------------------------------------------