Model Comparison Toolbox
This presentation:
https://www.pik-potsdam.de/~menz/model_comparison_toolbox/introduction
model-comparison-toolbox @ pik-gitlab:
https://gitlab.pik-potsdam.de/menz/model-comparison-toolbox
[menz@login01: ~]> python -m venv ~/python_envs/mctenv
[menz@login01: ~]> source ~/python_envs/mctenv/bin/activate
[menz@login01: ~]> pip install cartopy numpy xarray matplotlib netcdf4 pyinterp shapely scipy pyproj cftime dask distributed
OR conda
[menz@login01: ~]> conda create -n mctenv
[menz@login01: ~]> conda activate mctenv
[menz@login01: ~]> conda install cartopy numpy xarray matplotlib netcdf4 pyinterp shapely scipy pyproj cftime dask distributed
[menz@login01: ~]> conda activate mctenv
[menz@login01: ~]> git clone https://gitlab.pik-potsdam.de/menz/model-comparison-toolbox
[menz@login01: ~]> cd model-comparison-toolbox
[menz@login01: ~]> pip install .
[menz@login01: ~]> module use /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/envs/lmod
[menz@login01: ~]> module load mct
/p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox
/p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/src
/p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/envs/python/mctenv
/p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/netcdf_data
/p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data
/p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/domain_data
[menz@login01: ~]> module use /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/envs/lmod
[menz@login01: ~]> module load mct
[menz@login01: ~]> mct ...
settings.py
dataset_list.py
[menz@login01: ~]> mct --help
usage: mct [-h] [-p PLOT_TYPE] [-v VARIABLE] [-ts TIME_SET] [-rtf REF_TIMEFRAME] [-etf EVA_TIMEFRAME] [-d DATASET_LIST] [-o FNAME_OUT] [-dom DOMAIN_NAME] [-lcheck] [-zlevel Z_LEVEL]
[-g GRID_NAME] [-ls] [-dpl DIST_PLOT_LAYOUT] [-xlim XLIM] [-figsize FIGSIZE] [-smp] [-lt LEGEND_TYPE] [-ylim YLIM] [-nolaxis] [-noraxis] [-freq FREQUENCY] [-stat STAT_TYPE]
[-time-boot-stat TIME_DIM_BOOT_STAT] [-model-boot-stat MODEL_DIM_BOOT_STAT] [-ref-years REF_YEARS] [-me MAP_EXTENT] [-xlabel XLABEL] [-ylabel YLABEL]
optional arguments:
-p PLOT_TYPE, --ptype PLOT_TYPE, --plottype PLOT_TYPE
Type of plot to create (default: map)
-v VARIABLE, --variable VARIABLE
Climate variable to plot (default: tas)
-ts TIME_SET, --timeset TIME_SET
Season to plot [DJF, MAM, AMJJAS, etc.] (default: annual)
-rtf REF_TIMEFRAME, --reftimeframe REF_TIMEFRAME, --RefTimeFrame REF_TIMEFRAME
Reference timeframe [YYYY-MM-DD,YYYY-MM-DD] (default: 1971-01-01,2000-12-31)
-etf EVA_TIMEFRAME, --evafimeframe EVA_TIMEFRAME, --EvaTimeFrame EVA_TIMEFRAME
Evaluation timeframe [YYYY-MM-DD,YYYY-MM-DD] (default: 2071-01-01,2100-12-31)
-d DATASET_LIST, --data DATASET_LIST, --dataset DATASET_LIST
Comma seperated list of datasets [use ISIMIPFastTrack_rcp26, ISIMIPFastTrack_rcp85, ISIMIP2b_rcp26, ISIMIP2b_rcp85, ISIMIP3b_ssp126, ISIMIP3b_ssp370,
ISIMIP3b_ssp585, CMIP6-ISIMIP3b_ssp126, CMIP6-ISIMIP3b_ssp370, CMIP6-ISIMIP3b_ssp585, CMIP3_sresb1, CMIP3_sresa1b, CMIP3_sresa2, CMIP5_rcp26, CMIP5_rcp45,
CMIP5_rcp85, CMIP6_ssp119, CMIP6_ssp126, CMIP6_ssp370, CMIP6_ssp585, CMIP6_ssp585_ECMWF, CMIP6_ssp585_Canada, CMIP6_ssp585_GFS, CMIP6_ssp585_UK, CMIP6_ssp585_INM,
CMIP6_ssp585_IPSL, CMIP6_ssp585_MIROC, CMIP6_ssp585_UCLA, CMIP6_ssp585_GFDL, CMIP6_ssp585_UA, Germany_esd_cmip5_rcp26, Germany_esd_cmip5_rcp85,
Germany_esd_driver_cmip5_rcp26, Germany_esd_driver_cmip5_rcp85, Germany_STARS-PIK3_rcp26, Germany_STARS-PIK3_rcp85, Germany_episodes_cmip5_rcp26,
Germany_episodes_cmip5_rcp85, Germany_episodes_cmip6_ssp126, Germany_episodes_cmip6_ssp585, CORDEX-EUR11_rcm_cmip5_rcp26, CORDEX-EUR11_rcm_cmip5_rcp45, CORDEX-
EUR11_rcm_cmip5_rcp85, CORDEX-EUR11_rcm_driver_cmip5_rcp26, CORDEX-EUR11_rcm_driver_cmip5_rcp45, CORDEX-EUR11_rcm_driver_cmip5_rcp85, CORDEX-
EUR11_rcm_cmip5_isimip3ba_v1_rcp26, CORDEX-EUR11_rcm_cmip5_isimip3ba_v1_rcp45, CORDEX-EUR11_rcm_cmip5_isimip3ba_v1_rcp85, CORDEX-MNA22_rcp45, CORDEX-MNA22_rcp85,
CORDEX-MNA22_isimip3ba_rcp45, CORDEX-MNA22_isimip3ba_rcp85, CORDEX-MNA22_isimip3ba_rcp45_near_east, CORDEX-MNA22_isimip3ba_rcp85_near_east, CORDEX-MNA44_rcp26,
CORDEX-MNA44_rcp45, CORDEX-MNA44_rcp85, CORDEX-MNA44_isimip3ba_rcp26, CORDEX-MNA44_isimip3ba_rcp45, CORDEX-MNA44_isimip3ba_rcp85, CORDEX-
MNA44_isimip3ba_rcp26_near_east, CORDEX-MNA44_isimip3ba_rcp45_near_east, CORDEX-MNA44_isimip3ba_rcp85_near_east, DWD-Referenzensemble_rcm_cmip5_rcp26, DWD-
Referenzensemble_rcm_cmip5_rcp45, DWD-Referenzensemble_rcm_cmip5_rcp85, MDK_rcp26_raw, MDK_rcp45_raw, MDK_rcp85_raw, MDK_rcp26_isimip3ba, MDK_rcp45_isimip3ba,
MDK_rcp85_isimip3ba, GDDP-CMIP6_ssp126, GDDP-CMIP6_ssp245, GDDP-CMIP6_ssp370, GDDP-CMIP6_ssp585, decadal_forecast_ClimatePredictionsDE_dhc2021,
decadal_forecast_ClimatePredictionsDE_dfc2022, E-OBS_pre1950, E-OBS_v19.0eHOM, E-OBS_v19.0e, E-OBS_v20.0e, E-OBS_v21.0e, E-OBS_v22.0e, E-OBS_v23.1e, E-OBS_v24.0e,
E-OBS_v25.0e, E-OBS_v27.0e, E-OBS_v28.0e, E-OBS_v29.0e, CRU-TS_v4.04, CRU-TS_v4.05, CRU-TS_v4.06, CRU-TS_v4.07, Berkeley-Earth, MSWEP_v1.4, GSWP3_v1.09, W5E5_v1.0,
W5E5_v2.0, WFDE5_v2.0, WFD-EI, WFD-ERA40, PGF, CHIRPS-v2.0, GPCC_daily_1.0deg, GPCC_monthly_0.25deg, GPCP_v2.3, CPC_v1.0, TRMM-3B42, ERA5, ERA5-Land, NCEP-NCAR_R1,
NCEP-DOE_R2, NOAA-CIRES-DOE_20th_century_V3, Germany_JKI-DWD-PIK, HYRAS_v4.0, HYRAS_v5.0] (default: CMIP5_rcp26,CMIP5_rcp85,CMIP6_ssp126,CMIP6_ssp585)
-o FNAME_OUT, --out FNAME_OUT, --fnameout FNAME_OUT
Filename of the plot (default: ./pictures/plot.png)
-dom DOMAIN_NAME, --domain DOMAIN_NAME, --domainname DOMAIN_NAME, --DomainName DOMAIN_NAME
Domain to analyse (a country/state or one of settings.predefined_domains). For map plot this will be only used to highlight the domain. (default: global)
-lcheck Switch to deactivate consistency checks of .pickle files, to speedup calculations (default: False)
-zlevel Z_LEVEL Select a specific z_level for z coordinate (i.e. scale for spi/spei or return_period for gevintensity) (default: None)
-g GRID_NAME, --grid GRID_NAME, --Grid GRID_NAME
Grid to plot the data on [use one of [reg-01, reg-05, reg-10, reg-20, reg-005, cordex-eur11, cordex-was22, cordex-was44, cordex-mna22, cordex-mna44]] (default:
reg-05)
-ls, --lsignificance Switch to activate identification of significance levels (default: False)
-dpl DIST_PLOT_LAYOUT, --distplotlayout DIST_PLOT_LAYOUT, --DistPlotLayout DIST_PLOT_LAYOUT, --distributionplotlayout DIST_PLOT_LAYOUT, --DistributionPlotLayout DIST_PLOT_LAYOUT
How to visualize the marginal distributions [use box, violin or none] (default: box)
-xlim XLIM Limits of x-axis (default: None)
-figsize FIGSIZE, --figsize FIGSIZE
Size of the final figure (in inches). (default: None)
-smp, --singlemodelplot, --SingleModelPlot
Add time series of single models to the plot (default: False)
-lt LEGEND_TYPE, --legend-type LEGEND_TYPE, --legendtype LEGEND_TYPE
Specification of the legend (no (default), within or separate) (default: no)
-ylim YLIM Limits of y-axis (default: None)
-nolaxis Switch to deactive left y-axis (default: False)
-noraxis Switch to deactive right y-axis (default: False)
-freq FREQUENCY, --frequency FREQUENCY
Frequency of data to read. (default: None)
-stat STAT_TYPE, --stattype STAT_TYPE, --StatType STAT_TYPE
Statistic to calculate across time_set (default: None)
-time-boot-stat TIME_DIM_BOOT_STAT, --time-dim-boot-stat TIME_DIM_BOOT_STAT, --time-dim-bootstrap-statistic TIME_DIM_BOOT_STAT
Statistic to calculate along time dimension during bootstrapping (default: None)
-model-boot-stat MODEL_DIM_BOOT_STAT, --model-dim-boot-stat MODEL_DIM_BOOT_STAT, --model-dim-bootstrap-statistic MODEL_DIM_BOOT_STAT
Statistic to calculate along model dimension during bootstrapping (default: None)
-ref-years REF_YEARS, --ref-years REF_YEARS
Comma seperated list of reference years to plot. (default: None)
-me MAP_EXTENT, --map-extent MAP_EXTENT
Boundaries of map to plot or restirct spatial analysis (default: global)
-xlabel XLABEL Label of x-axis (default: None)
-ylabel YLABEL Label of y-axis (default: None)
[menz@login01: ~]> mct -p map -v tas -rtf '2071-01-01,2100-12-31' -etf None -d CMIP6_ssp585 -g reg-20 -me Europe
%Status: datasets considered are CMIP6_ssp585
%Status: plot type: map
%Status: plot subtype: absolut
%Status: variable: ['tas']
%Status: time_set: annual
%Status: domain: global
%Status: map extent: Europe
%Status: grid: reg-20
%Status: fname_out: ./pictures/plot.png
%Status: reference timeframe: 2071-01-01 to 2100-12-31
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP6_ssp585_map_Amon-in_annual-mean-out_20710101-21001231.pickle.
%Status: found unequal grids, interpolating to common grid to calculate ensemble statistics
%Status: interpolating: - - TaiESM1-r1i1p1f1
%Status: interpolating: - - AWI-CM-1-1-MR-r1i1p1f1
%Status: interpolating: - - BCC-CSM2-MR-r1i1p1f1
%Status: interpolating: - - CAMS-CSM1-0-r1i1p1f1
%Status: interpolating: - - FGOALS-f3-L-r1i1p1f1
%Status: interpolating: - - FGOALS-g3-r1i1p1f1
%Status: interpolating: - - CanESM5-CanOE-r1i1p2f1
%Status: interpolating: - - CanESM5-r1i1p1f1
%Status: interpolating: - - CanESM5-r1i1p2f1
%Status: interpolating: - - CanESM5-r2i1p1f1
%Status: interpolating: - - IITM-ESM-r1i1p1f1
%Status: interpolating: - - CMCC-CM2-SR5-r1i1p1f1
%Status: interpolating: - - CMCC-ESM2-r1i1p1f1
%Status: interpolating: - - CNRM-CM6-1-r1i1p1f2
%Status: interpolating: - - CNRM-ESM2-1-r1i1p1f2
%Status: interpolating: - - ACCESS-ESM1-5-r1i1p1f1
%Status: interpolating: - - ACCESS-CM2-r1i1p1f1
%Status: interpolating: - - E3SM-1-1-r1i1p1f1
%Status: interpolating: - - EC-Earth3-CC-r1i1p1f1
%Status: interpolating: - - EC-Earth3-r1i1p1f1
%Status: interpolating: - - EC-Earth3-r4i1p1f1
%Status: interpolating: - - EC-Earth3-Veg-r1i1p1f1
%Status: interpolating: - - EC-Earth3-Veg-LR-r1i1p1f1
%Status: interpolating: - - FIO-ESM-2-0-r1i1p1f1
%Status: interpolating: - - INM-CM4-8-r1i1p1f1
%Status: interpolating: - - INM-CM5-0-r1i1p1f1
%Status: interpolating: - - IPSL-CM6A-LR-r1i1p1f1
%Status: interpolating: - - MIROC6-r1i1p1f1
%Status: interpolating: - - MIROC-ES2L-r1i1p1f2
%Status: interpolating: - - HadGEM3-GC31-LL-r1i1p1f3
%Status: interpolating: - - UKESM1-0-LL-r1i1p1f2
%Status: interpolating: - - MPI-ESM1-2-HR-r1i1p1f1
%Status: interpolating: - - MPI-ESM1-2-HR-r2i1p1f1
%Status: interpolating: - - MPI-ESM1-2-LR-r1i1p1f1
%Status: interpolating: - - MRI-ESM2-0-r1i1p1f1
%Status: interpolating: - - GISS-E2-1-G-r1i1p3f1
%Status: interpolating: - - CESM2-r1i1p1f1
%Status: interpolating: - - CESM2-WACCM-r1i1p1f1
%Status: interpolating: - - NorESM2-LM-r1i1p1f1
%Status: interpolating: - - NorESM2-MM-r1i1p1f1
%Status: interpolating: - - KACE-1-0-G-r1i1p1f1
%Status: interpolating: - - GFDL-CM4-r1i1p1f1
%Status: interpolating: - - GFDL-ESM4-r1i1p1f1
%Status: interpolating: - - NESM3-r1i1p1f1
%Status: interpolating: - - MCM-UA-1-0-r1i1p1f2
%Status: plotting CMIP6_ssp585
%Status: plotting map
%Status: plot range: (-5.919135, 29.385233)
[menz@login01: ~]> mct -p time_series -v tas -rtf '1971-01-01,2000-12-31' -etf '2071-01-01,2100-12-31' -d CMIP6_ssp585 --domain Europe
%Status: datasets considered are CMIP6_ssp585
%Status: plot type: time series
%Status: plot subtype: change
%Status: variable: tas
%Status: time_set: annual
%Status: domain: Europe
%Status: fname_out: ./pictures/plot.png
%Status: Full time frame considered (RefDateStart to EvaDateEnd): 1971-01-01 to 2100-12-31
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP6_ssp585_Europe-mean_Amon-in_annual-mean-out_19710101-21001231.pickle.
%Status: calculating ensemble statistics.
%Status: ploting line
%Status: statistics of dataset: CMIP6_ssp585
nobs: 41000.0000
mean: 7.5149
median: 7.3245
min: 3.3569
max: 13.4823
std: 1.8765
q-01: 3.8042
q-05: 4.9168
q-10: 5.3358
q-25: 6.0859
q-50: 7.3245
q-75: 8.5602
q-90: 9.9821
q-95: 10.7485
q-99: 12.7593
[menz@login03: ~/Downloads]> mct -p spatial_pdf -v tas -rtf '1981-01-01,2010-12-31' -etf None -d CORDEX-EUR11_rcm_cmip5_rcp85,E-OBS_v29.0e --domain Germany
%Status: datasets considered are CORDEX-EUR11_rcm_cmip5_rcp85, E-OBS_v29.0e
%Status: plot type: spatial_pdf
%Status: plot subtype: absolut
%Status: variable: tas
%Status: time_set: annual
%Status: domain: Germany
%Status: fname_out: ./pictures/plot.png
%Status: reference timeframe: 1981-01-01 to 2010-12-31
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CORDEX-EUR11_rcm_cmip5_rcp85_map_day-in_annual-mean-out_19810101-20101231.pickle.
%Status: found unequal grids, interpolating to common grid to calculate ensemble statistics
%Status: interpolating: CLMcom-CCLM4-8-17-v1 - CCCma-CanESM2-r1i1p1
%Status: interpolating: CLMcom-CCLM4-8-17-v1 - CNRM-CERFACS-CNRM-CM5-r1i1p1
%Status: interpolating: CLMcom-CCLM4-8-17-v1 - ICHEC-EC-EARTH-r12i1p1
%Status: interpolating: CLMcom-CCLM4-8-17-v1 - MIROC-MIROC5-r1i1p1
%Status: interpolating: CLMcom-CCLM4-8-17-v1 - MOHC-HadGEM2-ES-r1i1p1
%Status: interpolating: CLMcom-CCLM4-8-17-v1 - MPI-M-MPI-ESM-LR-r1i1p1
%Status: interpolating: DMI-HIRHAM5-v1 - CNRM-CERFACS-CNRM-CM5-r1i1p1
%Status: interpolating: DMI-HIRHAM5-v2 - CNRM-CERFACS-CNRM-CM5-r1i1p1
%Status: interpolating: DMI-HIRHAM5-v1 - ICHEC-EC-EARTH-r12i1p1
%Status: interpolating: DMI-HIRHAM5-v1 - ICHEC-EC-EARTH-r1i1p1
%Status: interpolating: DMI-HIRHAM5-v1 - ICHEC-EC-EARTH-r3i1p1
%Status: interpolating: DMI-HIRHAM5-v1 - MOHC-HadGEM2-ES-r1i1p1
%Status: interpolating: DMI-HIRHAM5-v2 - NCC-NorESM1-M-r1i1p1
%Status: interpolating: GERICS-REMO2015-v1 - CCCma-CanESM2-r1i1p1
%Status: interpolating: GERICS-REMO2015-v1 - CNRM-CERFACS-CNRM-CM5-r1i1p1
%Status: interpolating: GERICS-REMO2015-v1 - ICHEC-EC-EARTH-r12i1p1
%Status: interpolating: GERICS-REMO2015-v1 - MIROC-MIROC5-r1i1p1
%Status: interpolating: GERICS-REMO2015-v1 - MOHC-HadGEM2-ES-r1i1p1
%Status: interpolating: GERICS-REMO2015-v1 - NCC-NorESM1-M-r1i1p1
%Status: interpolating: IPSL-INERIS-WRF331F-v1 - IPSL-IPSL-CM5A-MR-r1i1p1
%Status: interpolating: KNMI-RACMO22E-v2 - CNRM-CERFACS-CNRM-CM5-r1i1p1
%Status: interpolating: KNMI-RACMO22E-v1 - ICHEC-EC-EARTH-r12i1p1
%Status: interpolating: KNMI-RACMO22E-v1 - ICHEC-EC-EARTH-r1i1p1
%Status: interpolating: KNMI-RACMO22E-v1 - ICHEC-EC-EARTH-r3i1p1
%Status: interpolating: KNMI-RACMO22E-v2 - MOHC-HadGEM2-ES-r1i1p1
%Status: interpolating: MPI-CSC-REMO2009-v1 - MPI-M-MPI-ESM-LR-r1i1p1
%Status: interpolating: MPI-CSC-REMO2009-v1 - MPI-M-MPI-ESM-LR-r2i1p1
%Status: interpolating: SMHI-RCA4-v1 - CNRM-CERFACS-CNRM-CM5-r1i1p1
%Status: interpolating: SMHI-RCA4-v1 - ICHEC-EC-EARTH-r12i1p1
%Status: interpolating: SMHI-RCA4-v1 - ICHEC-EC-EARTH-r3i1p1
%Status: interpolating: SMHI-RCA4-v1 - IPSL-IPSL-CM5A-MR-r1i1p1
%Status: interpolating: SMHI-RCA4-v1 - MOHC-HadGEM2-ES-r1i1p1
%Status: interpolating: SMHI-RCA4-v1a - MPI-M-MPI-ESM-LR-r1i1p1
%Status: interpolating: SMHI-RCA4-v1 - NCC-NorESM1-M-r1i1p1
%Status: interpolating: UHOH-WRF361H-v1 - ICHEC-EC-EARTH-r1i1p1
%Status: interpolating: UHOH-WRF361H-v1 - MOHC-HadGEM2-ES-r1i1p1
%Status: interpolating: UHOH-WRF361H-v1 - MPI-M-MPI-ESM-LR-r1i1p1
%Status: number of grid-points covering the domain: 224
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_E-OBS_v29.0e_map_day-in_annual-mean-out_19810101-20101231.pickle.
%Status: interpolating: evaluation-v29.0e - E-OBS-r1i1p1
%Status: number of grid-points covering the domain: 224
%Status: ploting pdf
%Status: statistics of dataset: CORDEX-EUR11_rcm_cmip5_rcp85
nobs: 224.0000
mean: 8.1604
median: 8.4550
min: -0.0998
max: 10.0244
std: 1.3362
q-01: 1.8178
q-05: 6.4034
q-10: 6.8781
q-25: 7.8475
q-50: 8.4550
q-75: 8.8727
q-90: 9.2402
q-95: 9.4329
q-99: 9.8568
%Status: statistics of dataset: E-OBS_v29.0e
nobs: 209.0000
mean: 8.8221
median: 9.0006
min: 3.0843
max: 10.9565
std: 1.0864
q-01: 5.5352
q-05: 6.9321
q-10: 7.6156
q-25: 8.4087
q-50: 9.0006
q-75: 9.4647
q-90: 10.0842
q-95: 10.3588
q-99: 10.8007
[menz@login03: ~/Downloads]> mct -p seasonal_cycle -v tas -rtf '1971-01-01,2000-12-31' -etf '2071-01-01,2100-12-31' -d CMIP6_ssp585 --domain Berlin
%Warning: only daily and monthly time_set supported.
%Status: datasets considered are CMIP6_ssp585
%Status: plot type: seasonal
%Status: plot subtype: change
%Status: variable: tas
%Status: domain: Berlin
%Status: fname_out: ./pictures/plot.png
%Status: reference timeframe: 1971-01-01 to 2000-12-31
%Status: evaluation timeframe: 2071-01-01 to 2100-12-31
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP6_ssp585_Berlin-mean_Amon-in_monthly-mean-out_19710101-20001231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP6_ssp585_Berlin-mean_Amon-in_monthly-mean-out_20710101-21001231.pickle.
%Status: calculating ensemble statistics.
%Status: ploting seasonal cycle
[menz@login01: ~/Downloads]> mct -p diurnal_cycle -v tas -rtf '1981-01-01,2010-12-31' -etf None -d NOAA-CIRES-DOE_20th_century_V3 --domain Peru -ylim='15,25'
%Warning: wrong time_set (annual) resetting to dc-annual.
%Warning: diurnal cycle plot are implemented for frequency=Amon-hr only.
%Status: datasets considered are NOAA-CIRES-DOE_20th_century_V3
%Status: plot type: diurnal cycle
%Status: plot subtype: absolut
%Status: variable: tas
%Status: domain: Peru
%Status: fname_out: ./pictures/plot.png
%Status: reference timeframe: 1981-01-01 to 2010-12-31
%Status: gathering metadata of NOAA-CIRES-DOE_20th_century_V3.
%Status: reading NOAA-CIRES-DOE_20th_century_V3.
%Status: reading: GCM:NOAA-CIRES-DOE_20th_century_V3, REALIZATION:, RCM:, VERSION:
%Status: number of grid-points covering the domain: 273
%Status: calculate statistic.
%Status: converting calendar.
%Status: writing to pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_NOAA-CIRES-DOE_20th_century_V3_Peru-mean_Amon-hr-in_dc-annual-mean-out_19810101-20101231.pickle.
%Status: calculating ensemble statistics.
%Status: ploting diurnal cycle
[menz@login03: ~/Downloads]> mct -p bivariate -v tas,pr -rtf '1981-01-01,2010-12-31' -etf '2071-01-01,2100-12-31' -tsAMJJAS -d CMIP5_rcp26,CMIP5_rcp85,CMIP6_ssp126,CMIP6_ssp585 --domain Italy
%Status: datasets considered are CMIP5_rcp26, CMIP5_rcp85, CMIP6_ssp126, CMIP6_ssp585
%Status: plot type: bivariate change
%Status: plot subtype: change
%Status: variable-tuple: ['tas', 'pr']
%Status: time_set: AMJJAS
%Status: domain: Italy
%Status: fname_out: ./pictures/plot.png
%Status: reference timeframe: 1981-01-01 to 2010-12-31
%Status: evaluation timeframe: 2071-01-01 to 2100-12-31
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP5_rcp26_Italy-mean_Amon-in_AMJJAS-mean-out_19810101-20101231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP5_rcp26_Italy-mean_Amon-in_AMJJAS-mean-out_20710101-21001231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/pr_CMIP5_rcp26_Italy-mean_Amon-in_AMJJAS-mean-out_19810101-20101231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/pr_CMIP5_rcp26_Italy-mean_Amon-in_AMJJAS-mean-out_20710101-21001231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP5_rcp85_Italy-mean_Amon-in_AMJJAS-mean-out_19810101-20101231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP5_rcp85_Italy-mean_Amon-in_AMJJAS-mean-out_20710101-21001231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/pr_CMIP5_rcp85_Italy-mean_Amon-in_AMJJAS-mean-out_19810101-20101231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/pr_CMIP5_rcp85_Italy-mean_Amon-in_AMJJAS-mean-out_20710101-21001231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP6_ssp126_Italy-mean_Amon-in_AMJJAS-mean-out_19810101-20101231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP6_ssp126_Italy-mean_Amon-in_AMJJAS-mean-out_20710101-21001231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/pr_CMIP6_ssp126_Italy-mean_Amon-in_AMJJAS-mean-out_19810101-20101231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/pr_CMIP6_ssp126_Italy-mean_Amon-in_AMJJAS-mean-out_20710101-21001231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP6_ssp585_Italy-mean_Amon-in_AMJJAS-mean-out_19810101-20101231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_CMIP6_ssp585_Italy-mean_Amon-in_AMJJAS-mean-out_20710101-21001231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/pr_CMIP6_ssp585_Italy-mean_Amon-in_AMJJAS-mean-out_19810101-20101231.pickle.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/pr_CMIP6_ssp585_Italy-mean_Amon-in_AMJJAS-mean-out_20710101-21001231.pickle.
%Status: plotting bivariate
[menz@login01: ~/Downloads]> mct -p separate_years -v pr -rtf '1981-01-01,2023-12-31' -etf None -d E-OBS_v29.0e --domain Brandenburg -ref-years='2018,2020'
%Status: datasets considered are E-OBS_v29.0e
%Status: plot type: separate years
%Status: plot subtype: absolut (only type supported)
%Status: variable: pr
%Status: time_set: daily
%Status: domain: France
%Status: fname_out: ./pictures/plot.png
%Status: reference timeframe: 1981-01-01 to 2023-12-31
%Status: working on E-OBS_v29.0e.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/pr_E-OBS_v29.0e_France-mean_day-in_daily-mean-out_19810101-20231231.pickle.
%Status: disentangle dataset.
%Status: ploting separate years
%Status: return period of year 2018 (Cumulative Precipitation [$\mathrm{mm}/\mathrm{d}$] = 901.14):
%Status: E-OBS_v29.0e : 27/43
%Status: return period of year 2020 (Cumulative Precipitation [$\mathrm{mm}/\mathrm{d}$] = 826.46):
%Status: E-OBS_v29.0e : 16/43
[menz@login03: ~/Downloads]> mct -p cdf -v tas -rtf '1981-01-01,2010-12-31' -etf None -d E-OBS_v20.0e,E-OBS_v21.0e,E-OBS_v22.0e,E-OBS_v23.1e,E-OBS_v25.0e,E-OBS_v27.0e,E-OBS_v29.0e --domain Germany -lt no
%Warning: only absolut plot subtype for the evaluation timeframe (etf) supported for cdf plots!
%Status: datasets considered are E-OBS_v20.0e, E-OBS_v21.0e, E-OBS_v22.0e, E-OBS_v23.1e, E-OBS_v25.0e, E-OBS_v27.0e, E-OBS_v29.0e
%Status: plot type: cdf plot
%Status: plot subtype: absolut
%Status: variable: tas
%Status: time_set: annual
%Status: frequency: day
%Status: domain: Germany
%Status: fname_out: ./pictures/plot.png
%Status: evaluation timeframe: 1981-01-01 to 2010-12-31
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_E-OBS_v20.0e_Germany-mean_day-in_annual-mean-out_19810101-20101231.pickle.
%Status: disentangle dataset.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_E-OBS_v21.0e_Germany-mean_day-in_annual-mean-out_19810101-20101231.pickle.
%Status: disentangle dataset.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_E-OBS_v22.0e_Germany-mean_day-in_annual-mean-out_19810101-20101231.pickle.
%Status: disentangle dataset.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_E-OBS_v23.1e_Germany-mean_day-in_annual-mean-out_19810101-20101231.pickle.
%Status: disentangle dataset.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_E-OBS_v25.0e_Germany-mean_day-in_annual-mean-out_19810101-20101231.pickle.
%Status: disentangle dataset.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_E-OBS_v27.0e_Germany-mean_day-in_annual-mean-out_19810101-20101231.pickle.
%Status: disentangle dataset.
%Status: reading from pickle /p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data/tas_E-OBS_v29.0e_Germany-mean_day-in_annual-mean-out_19810101-20101231.pickle.
%Status: disentangle dataset.
%Status: ploting cdf
%Status: statistics of dataset: E-OBS_v20.0e
nobs: 30.0000
mean: 8.8718
median: 9.0424
min: 7.1940
max: 9.8509
std: 0.7459
q-01: 7.2667
q-05: 7.4522
q-10: 7.8141
q-25: 8.4113
q-50: 9.0424
q-75: 9.4593
q-90: 9.5834
q-95: 9.7961
q-99: 9.8477
%Status: statistics of dataset: E-OBS_v21.0e
nobs: 30.0000
mean: 8.8713
median: 9.0416
min: 7.1935
max: 9.8503
std: 0.7461
q-01: 7.2661
q-05: 7.4515
q-10: 7.8138
q-25: 8.4114
q-50: 9.0416
q-75: 9.4590
q-90: 9.5833
q-95: 9.7962
q-99: 9.8473
%Status: statistics of dataset: E-OBS_v22.0e
nobs: 30.0000
mean: 8.8763
median: 9.0474
min: 7.1976
max: 9.8517
std: 0.7453
q-01: 7.2705
q-05: 7.4564
q-10: 7.8152
q-25: 8.4202
q-50: 9.0474
q-75: 9.4702
q-90: 9.5844
q-95: 9.7951
q-99: 9.8488
%Status: statistics of dataset: E-OBS_v23.1e
nobs: 30.0000
mean: 8.8737
median: 9.0446
min: 7.1949
max: 9.8515
std: 0.7455
q-01: 7.2682
q-05: 7.4549
q-10: 7.8153
q-25: 8.4147
q-50: 9.0446
q-75: 9.4617
q-90: 9.5847
q-95: 9.7978
q-99: 9.8487
%Status: statistics of dataset: E-OBS_v25.0e
nobs: 30.0000
mean: 8.8918
median: 9.0580
min: 7.2018
max: 9.8774
std: 0.7494
q-01: 7.2727
q-05: 7.4595
q-10: 7.8316
q-25: 8.4537
q-50: 9.0580
q-75: 9.4911
q-90: 9.6178
q-95: 9.8114
q-99: 9.8744
%Status: statistics of dataset: E-OBS_v27.0e
nobs: 30.0000
mean: 8.8949
median: 9.0608
min: 7.2042
max: 9.8903
std: 0.7515
q-01: 7.2742
q-05: 7.4578
q-10: 7.8384
q-25: 8.4526
q-50: 9.0608
q-75: 9.4950
q-90: 9.6274
q-95: 9.8137
q-99: 9.8848
%Status: statistics of dataset: E-OBS_v29.0e
nobs: 30.0000
mean: 8.8985
median: 9.0676
min: 7.2051
max: 9.8899
std: 0.7503
q-01: 7.2776
q-05: 7.4665
q-10: 7.8384
q-25: 8.4546
q-50: 9.0676
q-75: 9.4982
q-90: 9.6270
q-95: 9.8162
q-99: 9.8855
# main path definitions ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
pickle_path = '/p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/pickle_data'
domain_path = '/p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/domain_data'
netcdf_path = '/p/projects/ou/rd2/hydroclimatic_risks/model_comparison_toolbox/data/netcdf_data'
...
# domain settings ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
predefined_domains = {
'central-asia-box': [np.vstack((
# lon vertices lat vertices
(45, 90, 90, 45, 45), (25, 25, 60, 60, 25)))],
'global': [np.vstack((
# lon vertices lat vertices
(-180, 180, 180, -180, -180),
# lat vertices
(-90, -90, 90, 90, -90)))],
'Germany-box': [np.vstack((
# lon vertices lat vertices
(4.0, 17.5, 17.5, 4.0, 4.0), (45.5, 45.5, 56.5, 56.5, 45.5)))],
...
'Tarim': spatial_tools.get_domain_bounds(os.path.join(domain_path, 'Tarim/sumario_project_tarim_basin.dat'),
encoding='utf-8'),
'Guanting': spatial_tools.get_domain_bounds(os.path.join(domain_path, 'Guanting/guanting.dat'),
encoding='utf-8'),
'Spree': spatial_tools.get_domain_bounds(os.path.join(domain_path, 'Spree/Spree_EZG1_UBA.shp'),
encoding='windows-1252'),
}
# grid definitions +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
grid_lib_list = {**{'reg-{0:02d}'.format(res): {'x': np.arange(-180+res/20., 180., res/10),
'y': np.arange(-90.+res/20., 90., res/10.),
'crs': CRS.from_epsg('4326')} for res in [1, 5, 10, 20]},
**{'reg-{0:03d}'.format(res): {'x': np.arange(-180+res/200., 180., res/100),
'y': np.arange(-90.+res/200., 90., res/100.),
'crs': CRS.from_epsg('4326')} for res in [5]},
'cordex-eur11': {'x': np.arange(-28.43+0.11/2., 18.21, 0.11),
'y': np.arange(-23.43+0.11/2., 21.89, 0.11),
'crs': cordex_eur_crs},
'cordex-was22': {'x': np.arange(-32.34+0.22/2., 48.18, 0.22),
'y': np.arange(-21.78+0.22/2., 31.02, 0.22),
'crs': cordex_was_crs},
'cordex-was44': {'x': np.arange(-32.34+0.44/2., 52.58, 0.44),
'y': np.arange(-21.78+0.44/2., 35.42, 0.44),
'crs': cordex_was_crs},
'cordex-mna22': {'x': np.arange(-26.62+0.22/2., 75.46, 0.22),
'y': np.arange(-6.82+0.22/2., 45.1, 0.22),
'crs': cordex_mna_crs},
'cordex-mna44': {'x': np.arange(-26.62+0.44/2., 75.46, 0.44),
'y': np.arange(-6.82+0.44/2., 45.1, 0.44),
'crs': cordex_mna_crs},
}
# bounds of the map plot +++++++++++++++++++++++++++++++++++++++++++++++++++++++
map_extent = {'Germany': {'xy': [5, 16, 46, 57], 'crs': CRS.from_epsg('4326'), 'x_offset': 0, 'y_offset': 0},
'Europe-large': {'xy': [-11, 39, 35, 71], 'crs': CRS.from_epsg('4326'), 'x_offset': 0, 'y_offset': 0},
'Europe-small': {'xy': [-11, 39, 35, 65], 'crs': CRS.from_epsg('4326'), 'x_offset': 0, 'y_offset': 0},
'global': {'xy': [-180, 180, -89, 89], 'crs': CRS.from_epsg('4326'), 'x_offset': 0, 'y_offset': 0},
'Africa': {'xy': [-20, 55, -37, 40], 'crs': CRS.from_epsg('4326'), 'x_offset': 2, 'y_offset': 2},
'Antarctica': {'xy': [-180, 180, -90, -55], 'crs': CRS.from_epsg('4326'), 'x_offset': 0, 'y_offset': 0},
'Asia': {'xy': [25, 178, -18, 82], 'crs': CRS.from_epsg('4326'), 'x_offset': 2, 'y_offset': 2},
'Australia': {'xy': [110, 155, -45, -9], 'crs': CRS.from_epsg('4326'), 'x_offset': 2, 'y_offset': 2},
'Europe': {'xy': [-21, 46, 34, 72], 'crs': CRS.from_epsg('4326'), 'x_offset': 2, 'y_offset': 2},
'Kenya': {'xy': [33, 42, -6, 6], 'crs': CRS.from_epsg('4326'), 'x_offset': 1, 'y_offset': 1},
'Zimbabwe': {'xy': [24, 34, -23, -15], 'crs': CRS.from_epsg('4326'), 'x_offset': 1, 'y_offset': 1},
'Ghana': {'xy': [-4, 1, 4, 12], 'crs': CRS.from_epsg('4326'), 'x_offset': 1, 'y_offset': 1},
'North-America': {'xy': [-170, -50, 10, 80], 'crs': CRS.from_epsg('4326'), 'x_offset': 2, 'y_offset': 2},
'South-America': {'xy': [-90, -30, -60, 20], 'crs': CRS.from_epsg('4326'), 'x_offset': 2, 'y_offset': 2},
'South-Asia': {'xy': [65, 130, -12, 56], 'crs': CRS.from_epsg('4326'), 'x_offset': 0, 'y_offset': 0},
'Maldives': {'xy': [72.6930, 73.7740, 0.2555, 7.1019], 'crs': CRS.from_epsg('4326'),
'x_offset': 3, 'y_offset': 0.5},
'Guadalupe': {'xy': [-119, -117, 28, 30], 'crs': CRS.from_epsg('4326'),
'x_offset': 1, 'y_offset': 1},
}
map_plot_projection = ccrs.PlateCarree()
# map_plot_projection = None
# cities to add to map_plot ++++++++++++++++++++++++++++++++++++++++++++++++++++
# cities = ['Amman','Jerusalem','Damascus','Beirut']
cities = None
# background layer for map_plot ++++++++++++++++++++++++++++++++++++++++++++++++
# scale defines resolution of the backgroupd map (higher values mean higher resolution)
# bg_layer = {'tile': cimg_tiles.GoogleTiles(style='satellite'), 'scale': 6}
bg_layer = None
# remove countries from map ++++++++++++++++++++++++++++++++++++++++++++++++++++
# remove_from_map = ['Turkey', 'Algeria', 'Morocco', 'Tunisia', 'Egypt',
# 'Libya', 'Syria', 'Israel', 'Lebanon', 'Jordan', 'Russian Federation']
# remove_from_map = ['Turkey', 'Algeria', 'Morocco', 'Tunisia', 'Egypt',
# 'Libya', 'Syria', 'Israel', 'Lebanon', 'Jordan']
remove_from_map = []
# line and bivariate plot ranges +++++++++++++++++++++++++++++++++++++++++++++++
ylim = {
'tasmin': [-3, 7],
'tasmax': [-3, 7],
'tas': [-3, 7],
}
# map plot color and ranges ++++++++++++++++++++++++++++++++++++++++++++++++++++
cmap = {
'tasmin': {'absolut': mpl.cm.turbo,
'bias': mpl.cm.RdBu_r,
'change': mpl.cm.RdBu_r},
'tasmax': {'absolut': mpl.cm.turbo,
'bias': mpl.cm.RdBu_r,
'change': mpl.cm.RdBu_r},
'tas': {'absolut': mpl.cm.rainbow,
'bias': mpl.cm.RdBu_r,
'change': mpl.cm.RdBu_r},
}
clevs = {
'tasmin': {'absolut': {'levels': np.arange(8.0, 20.0 + 0.1, 0.1),
'ticks': np.arange(8.0, 20.0 + 2, 2),
'ticklabels': np.arange(8.0, 20.0 + 2, 2),
'extend': 'both'},
'bias': {'levels': np.arange(-4.0, 4.0 + 0.1, 0.1),
'ticks': np.arange(-4.0, 4.0 + 1.0, 1.0),
'ticklabels': np.arange(-4, 4 + 1, 1),
'extend': 'both'},
'change': {'levels': np.arange(-4.0, 4.0 + 0.1, 0.1),
'ticks': np.arange(-4.0, 4.0 + 1.0, 1.0),
'ticklabels': np.arange(-4, 4 + 1, 1),
'extend': 'both'}},
'tasmax': {'absolut': {'levels': np.arange(8.0, 20.0 + 0.1, 0.1),
'ticks': np.arange(8.0, 20.0 + 2, 2),
'ticklabels': np.arange(8.0, 20.0 + 2, 2),
'extend': 'both'},
'bias': {'levels': np.arange(-4.0, 4.0 + 0.1, 0.1),
'ticks': np.arange(-4.0, 4.0 + 1.0, 1.0),
'ticklabels': np.arange(-4, 4 + 1, 1),
'extend': 'both'},
'change': {'levels': np.arange(-4.0, 4.0 + 0.1, 0.1),
'ticks': np.arange(-4.0, 4.0 + 1.0, 1.0),
'ticklabels': np.arange(-4, 4 + 1, 1),
'extend': 'both'}},
'tas': {'absolut': {'levels': np.arange(2.0, 16.0 + 0.1, 0.1),
'ticks': np.arange(2.0, 16.0 + 4, 4),
'ticklabels': np.arange(2.0, 16.0 + 4, 4),
'extend': 'both'},
'bias': {'levels': np.arange(-4.0, 4.0 + 0.1, 0.1),
'ticks': np.arange(-4.0, 4.0 + 1.0, 1.0),
'ticklabels': np.arange(-4, 4 + 1, 1),
'extend': 'both'},
'change': {'levels': np.arange(-7.0, 7.0 + 0.1, 0.1),
'ticks': np.arange(-7.0, 7.0 + 2.0, 2.0),
'ticklabels': np.arange(-7, 7 + 2, 2),
'extend': 'both'}},
}
# legend for line plots, bivariate plotas and maps +++++++++++++++++++++++++++++
legend = {
'tasmin': {'absolut': r'Minimum Temperature [${}^\circ\mathrm{C}$]',
'bias': r'Minimum Temperature Bias [$\mathrm{K}$]',
'change': r'Minimum Temperature Change [$\mathrm{K}$]'},
'tasmax': {'absolut': r'Maximum Temperature [${}^\circ\mathrm{C}$]',
'bias': r'Maximum Temperature Bias [$\mathrm{K}$]',
'change': r'Maximum Temperature Change [$\mathrm{K}$]'},
'tas': {'absolut': r'Temperature [${}^\circ\mathrm{C}$]',
'bias': r'Temperature Bias [$\mathrm{K}$]',
'change': r'Temperature Change [$\mathrm{K}$]'},
}
# scaling and shift of variables +++++++++++++++++++++++++++++++++++++++++++++++
mul = {
'tasmax': 1.0,
'tasmin': 1.0,
'tas': 1.0,
}
add = {
'tasmax': -273.15,
'tasmin': -273.15,
'tas': -273.15,
}
# plot labels ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
month_names = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
# month_names = ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun',
# 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez']
# statistic settings +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
n_samples = 1000 # bootstrapping
lbound_q = 5
ubound_q = 95
threshold = (100. - ubound_q + lbound_q)/100.
ma_window = 5
bins = 50
# settings for parallelization +++++++++++++++++++++++++++++++++++++++++++++++++
# used for statistical calculations
n_tasks = 4
backend = 'threads'
dtype = 'float32'
# interpolation settings +++++++++++++++++++++++++++++++++++++++++++++++++++++++
# interpolation_method = 'inverse_distance_weighting'
# interpolation_kwgs = {'radius': 100000, 'within': True, 'k': 9}
interpolation_method = 'universal_kriging'
interpolation_kwgs = {'radius': None, 'within': True, 'k': 9}
interpolation_fill_up_lib = {'pre': {'lswitch': False, 'nx': 1, 'ny': 1},
'post': {'lswitch': True, 'nx': 5, 'ny': 5}} # fill up values at boundaries
# prior to interpolation
# plot settings ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dpi = 300
# datasets +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dataset_specs = {
# ISIMIPFastTrack
'ISIMIPFastTrack_rcp26': {
'dir_in': os.path.join(settings.netcdf_path, 'RCM-ESD', 'ISIMIP', 'ISIMIPFastTrack'),
'experiment_list': ['hist', 'rcp2p6'],
'lobservation': False,
'add_include': [],
'model_list': [
{'rcm': '', 'version': '', 'gcm': 'hadgem2-es', 'realization': ''},
{'rcm': '', 'version': '', 'gcm': 'ipsl-cm5a-lr', 'realization': ''},
{'rcm': '', 'version': '', 'gcm': 'miroc-esm-chem', 'realization': ''},
{'rcm': '', 'version': '', 'gcm': 'gfdl-esm2m', 'realization': ''},
{'rcm': '', 'version': '', 'gcm': 'noresm1-m', 'realization': ''},
],
},
'ISIMIPFastTrack_rcp85': {
'dir_in': os.path.join(settings.netcdf_path, 'RCM-ESD', 'ISIMIP', 'ISIMIPFastTrack'),
'experiment_list': ['hist', 'rcp8p5'],
'lobservation': False,
'add_include': [],
'model_list': [
{'rcm': '', 'version': '', 'gcm': 'hadgem2-es', 'realization': ''},
{'rcm': '', 'version': '', 'gcm': 'ipsl-cm5a-lr', 'realization': ''},
{'rcm': '', 'version': '', 'gcm': 'miroc-esm-chem', 'realization': ''},
{'rcm': '', 'version': '', 'gcm': 'gfdl-esm2m', 'realization': ''},
{'rcm': '', 'version': '', 'gcm': 'noresm1-m', 'realization': ''},
],
},
...
}
# dataset plot specifications ++++++++++++++++++++++++++++++++++++++++++++++++++
# appearance of all datasets (color, marker etc.)
dataset_plot_specs = {
'ISIMIPFastTrack_rcp26': __gen_plot_specs(color=__colors_lib__['low'][3], marker=__marker_lib__['ISIMIPFastTrack'],
name='ISIMIP-FastTrack RCP2.6'),
'ISIMIPFastTrack_rcp85': __gen_plot_specs(color=__colors_lib__['mid'][0], marker=__marker_lib__['ISIMIPFastTrack'],
name='ISIMIP-FastTrack RCP8.5'),
...
}
[menz@login01: src/model-comparison-toolbox]> get_domain_name --domain "Amer" (master|)
%Status: found domain name: "North America" in continents
%Status: found domain name: "South America" in continents
%Status: found domain name: "Cameron" in admin_2_counties - cultural
%Status: found domain name: "Cameron" in admin_2_counties - cultural
%Status: found domain name: "Cameron" in admin_2_counties - cultural
%Status: found domain name: "HaMerkaz" in admin_1_states_provinces - cultural
%Status: found domain name: "Cameroon" in admin_0_countries - cultural
%Status: found domain name: "United States of America" in admin_0_countries - cultural
%Status: found domain name: "American Samoa" in admin_0_countries - cultural
[menz@login01: src/model-comparison-toolbox]> get_city_name --city "Berl" (master|)
%Status: found domain name: "Cumberland" in populated_places - cultural
%Status: found domain name: "Kimberley" in populated_places - cultural
%Status: found domain name: "Uberlândia" in populated_places - cultural
%Status: found domain name: "Berlin" in populated_places - cultural
and
menz@Mattermost