diff --git a/tutorials/02_RunningREMIND.md b/tutorials/02_RunningREMIND.md index 27bcbe126..f94acc5bb 100644 --- a/tutorials/02_RunningREMIND.md +++ b/tutorials/02_RunningREMIND.md @@ -141,7 +141,7 @@ The optimization in REMIND requires a lot of input data. For example, the model /p/projects/rd3mod/inputdata/sources ``` -The data are mostly in csv files. During the input data preparation, these files are read and processed, using functions from the *mrremind* package. Input data are available on country-level. Then, depending on the regionmapping file you chose in the config file of your run, the country-level data are aggregated into regions, e.g. to LAM (Latin America), EUR (Europe) and so on. Finally, the data are stored as .cs3r or .cs4r files in various input folders of your REMIND directory. These files are basically tables, too, that you can open with a text editor or Excel. For example, you find the input file `pm_histCap.cs3r` in your REMIND directory under `core/input`. It provides the model with historically observed values of installed capacities of some technologies in the respective regions. +The data are mostly in csv files. During the input data preparation, these files are read and processed, using functions from the *mrremind* package. Input data are available on country-level. Then, depending on the regionmapping file you chose in the config file of your run, the country-level data are aggregated into regions, e.g. to LAM (Latin America), EUR (Europe) and so on. Finally, the data are stored as `.cs3r` or `.cs4r` files in various input folders of your REMIND directory. These files are basically tables, too, that you can open with a text editor or Excel. For example, you find the input file `pm_histCap.cs3r` in your REMIND directory under `core/input`. It provides the model with historically observed values of installed capacities of some technologies in the respective regions. The regional resolution of the run is set in the `config/default.cfg` by ``` bash cfg$regionmapping diff --git a/tutorials/04_RunningREMINDandMAgPIE.md b/tutorials/04_RunningREMINDandMAgPIE.md index ebc19a8db..18ddf6f63 100644 --- a/tutorials/04_RunningREMINDandMAgPIE.md +++ b/tutorials/04_RunningREMINDandMAgPIE.md @@ -55,7 +55,7 @@ Here's an example of a simple case. If you start a new coupled run with the scen This process will continue until for as many iterations as set in `max_iterations` in `start_bundle_coupled.R` (see Check the Convergence below). The last iteration will run REMIND only, so REMIND will have run `max_iterations` times and MAgPIE wil have run `max_iterations - 1` times. So, if `max_iterations` is 5, the last REMIND run in this case will be `C_Base-rem-5` and the last MAgPIE iteration will be `C_Base-mag-4`. -The output of both models can be analyzed normally from these two runs. The REMIND .mif file contains also the MAgPIE variables. Additionally, at the end of a successful coupled run the coupling script will automatically merge the reports of the last runs of both models in a `.mif` file located in the root of REMIND's output folder, using the joint model name "REMIND-MAgPIE". In our example, that file will be `path_remind/output/C_SSP-Base.mif`. +The output of both models can be analyzed normally from these two runs. The REMIND `.mif` file contains also the MAgPIE variables. Additionally, at the end of a successful coupled run the coupling script will automatically merge the reports of the last runs of both models in a `.mif` file located in the root of REMIND's output folder, using the joint model name "REMIND-MAgPIE". In our example, that file will be `path_remind/output/C_SSP-Base.mif`. So, in the end of the coupled run in this example, you should have a directory structure like: diff --git a/tutorials/06_Advanced_ChangeInputs.md b/tutorials/06_Advanced_ChangeInputs.md index f1c6d2ff9..60a8f7033 100644 --- a/tutorials/06_Advanced_ChangeInputs.md +++ b/tutorials/06_Advanced_ChangeInputs.md @@ -44,7 +44,7 @@ If you want to peek inside the archive to debug something or out of curiosity yo 2. Clone or pull the latest version of the [remind-preprocessing repo](https://github.com/remindmodel/pre-processing) to your tmp folder on the cluster and edit its `config/default.cfg` file by inserting the next revision number. Use the additional argument `dev` for testing. If an old revision number is used, the input data will not be recalculated. Input data for a new regional resolution will be recalculated based on the existing cache information in the PUC file. 3. Start the script with `Rscript submit_preprocessing.R`. -The .log file lists the progress and potential errors. This process might take a while (currently >8 hours). +The `.log` file lists the progress and potential errors. This process might take a while (currently >8 hours). 4. If the process terminates without errors, do a test run with the new input data. To do this, clone the REMIND repo and update the data input version `cfg$revision` in `config/default.cfg` using your recently created data revision number file and run one scenario (e.g. SSP2-Base). diff --git a/tutorials/09_Advanced_StandaloneModels.md b/tutorials/09_Advanced_StandaloneModels.md index d5e474c32..40563b778 100644 --- a/tutorials/09_Advanced_StandaloneModels.md +++ b/tutorials/09_Advanced_StandaloneModels.md @@ -66,7 +66,7 @@ You can start a standalone model in the same manner as the main REMIND model by There are a just a couple minor differences: -**scenario-config**: it is recommended to create a new .csv file tailored to your model, including the following: +**scenario-config**: it is recommended to create a new `.csv` file tailored to your model, including the following: * Add a column named **model** and set this to your standalone model's filepath (e.g. standalone/NewModel.gms). This tells the start_functions to run the standalone model instead of main.gms. * Add a column named **output** and set this to your new reporting file(s) (e.g. reporting_NewModel,validationSummary) * **IF** running with start.R, edit **default.cfg** instead: set **cfg$model** to your model's filepath and **cfg$output** to your reporting file (e.g. c("reporting_NewModel","validationSummary")) diff --git a/tutorials/12_Calibrating_CES_Parameters.md b/tutorials/12_Calibrating_CES_Parameters.md index f2bad347b..1c957510e 100644 --- a/tutorials/12_Calibrating_CES_Parameters.md +++ b/tutorials/12_Calibrating_CES_Parameters.md @@ -4,52 +4,52 @@ REMIND uses a nested CES production function of the form -$V_o = \left( \sum{\alpha_i {V_i}^{\rho_o}} \right)^{\frac{1}{\rho_o}}$ +$V_o = \left( \sum\limits_i{\alpha_i {V_i}^{\rho_o}} \right)^{\frac{1}{\rho_o}}$ with output quantity $V_o$, input quantities $V_i$, elasticity parameter -$\rho_o$, and efficiency parameters $\alpha_i$. The top-level output is the +$\rho_o$, and efficiency parameters $\alpha_i$. \ +The top-level output is the macroeconomic output (GDP, `inco`), and the inputs can be either intermediate production factors, that are themselves outputs of a lower level of the CES function (hence nested), or primary production factors (`ppf`) that are linked to the energy system model or macro parts of REMIND. In a REMIND run, the quantities $V$ are free (within the constraints of the -scenario) and subject to the optimisation, while the efficiency and -substitution parameters $\alpha_i$ and $\rho_o$ are fixed. +scenario) and subject to the optimisation. The substitution parameters $\rho_o$ +are fixed manually, and the efficiencies $\alpha_i$ are fixed during calibration. The purpose of the CES calibration is to find efficiency parameters $\alpha_i$ -(the substitution parameters $\rho_o$ are fixed in the code) such that in the -baseline scenario the quantities $V$ (which are derived for the different -scenarios like SSP2 as part of the input data generation) are matched as best as -possible. +such that the quantities $V$ are matched as well as possible. +Calibration is done for a baseline scenario where input and output quantities +derive from a choice of drivers (like SSP2) and a particular input data revision. +Therefore, -Therefore, anytime either the REMIND model or the input data generation is -changed in a way that affects the results of a baseline scenario, that baseline -scenario needs to be calibrated. +> **Anytime either the REMIND model or the input data change in a way that affects +the results of a baseline scenario, that baseline scenario needs to be calibrated.** ## Iterative Calibration As it is not possible to calculate $n$ parameters $\alpha_i$ from a single equation, we use an iterative approach. The [Euler identity](https://en.wikipedia.org/wiki/Homogeneous_function#Euler's_theorem) -asserts that for homogeneous functions of degree one the function value is equal +asserts that, for homogeneous functions of degree one, the function value is equal to the sum of the partial derivatives times the function arguments: -$V_o = \sum{\frac{\partial V_o}{\partial V_i} V_i}$ +$V_o = \sum\limits_i{\frac{\partial V_o}{\partial V_i} V_i}$ -We are not seeking a general analytic solution, but only need to calculate -values at specific points for the iterative process, and thus can express the +We are not seeking a general analytical solution, but only need to calculate +values at specific points for the iterative process. Thus, we can express the partial derivatives in terms of the input and output quantities: -$\frac{\partial V_o}{\partial V_i} = \pi_i = \alpha_i {V_i}^{\rho_o - 1} {V_o}^{1 - \rho_o}$ +$\frac{\partial V_o}{\partial V_i} = \alpha_i {V_i}^{\rho_o - 1} {V_o}^{1 - \rho_o}$ Since the final output of the production function $V_o$ is also the numéraire (e.g. the unit – U.S. dollars – in which inputs are measured), the partial -derivatives are the equilibrium prices $\pi_i$ of the input factors $V_i$ and -the efficiency parameters can be expressed in terms of quantities, prices, and -elasticity parameters: +derivatives are the equilibrium prices, noted $\pi_i = \frac{\partial V_o}{\partial V_i}$. +This allows rewriting the efficiency parameters $\alpha_i$ in terms of quantities, prices, +and elasticity: -$\frac{\partial V_o}{\partial V_i} = \pi_i \Leftrightarrow \alpha_i = \pi_i \left(\frac{V_i}{V_o}\right)^{1 - \rho_o}$ +$\alpha_i = \pi_i \left(\frac{V_i}{V_o}\right)^{1 - \rho_o}$ The basic process of the calibration is to use the price calculated using the partial derivatives of iteration $j$ and combine them with the exogenously @@ -77,8 +77,8 @@ input data generation and always present. Prices under (2) are calculated using the `input.gdx` provided to the calibration run. User intervention is only required when prices cannot be -derived from the .gdx file, which will be the case of a change in the CES -structure, i.e. when nodes have been added or removed from the CES tree +derived from the `.gdx` file in case of a change in the CES structure: +when nodes have been added or removed from the CES tree (technically when the set `cesOut2cesIn` differs between `input.gdx` and the current calibration run), or seldom in cases of convergence problems. @@ -89,49 +89,47 @@ To set up a CES calibration run, simply set module 29 `CES_parameters` to the `calibration` realisation. All data relevant to the calibration is configured according to the selected scenario configuration. Keep them identical to the baseline scenario you want to calibrate. -Set the `inputRevision` in `./config/default.cfg` to the input data revision -you want to calibrate to. You can find the latest input data revision on the -cluster using `lastrev`. Do not include the `rev` part of the revision name, -just the part from the numbers on. Use quote signs (`"`) around the revision, -even if it is just numerical. -As the calibration performs multiple REMIND runs (ten by default), allow for -longer runtime, usually more than 24 hours, by selecting an appropriate slurm -configuration. - -The calibration can further be adjusted using three switches: - -- `c_CES_calibration_iterations`: The number of CES calibration iterations - (iterative adjustments of $\alpha_i$ parameters, see above). By default ten. - We don't use a convergence criterion but check the calibration quality manual - afterwards. Higher iteration numbers will generally lead to better - convergence, but at a runtime expense, as each iteration is an additional - REMIND run. -- `c_CES_calibration_new_structure`: Switch to use a default price for the - primary production factors instead of those derived from a .gdx file. Only - necessary when the structure of the CES tree was changed, but can be used to - manually force specific prices in the first CES calibration iteration. The - calibration will abort if this switch is necessary but unset, so it should not - be used unless it is known to be necessary. -- `cm_CES_calibration_default_prices`: Default price to be used when - `c_CES_calibration_new_structure` is set. By default 0.01. The price is not - differentiated by period, region, or production factor. A price far off from - the equilibrium prices will lead to longer calibration times/less good - calibration performance for a given number of iterations. Too high prices can - lead to errors during the calibration. - -Furthermore, there is the option `c_CES_calibration_write_prices`, which forces -the prices calculated as partial derivatives on the CES production function to -be written to the file `pm_cesdata_price`, which might be helpful in finding a -suitable value for `cm_CES_calibration_default_price`, but is generally not -used. +If your calibration depends on new input data, you need to update the configuration. +Use the command `lastrev` to find the latest input data revisions on the cluster. +If your choice is _rev1.23abc_, update the following line of the configuration file +`./config/default.cfg` (without _rev_ and always with quotation marks): + +```R +cfg$inputRevision <- "1.23abc" +``` + +The calibration can further be adjusted using the following switches: + +- `c_CES_calibration_iterations` (default = 10): Number of CES calibration + iterations (iterative adjustments of $\alpha_i$ parameters, see above). + There is no convergence criteria, so check the calibration quality manually + afterwards. More iterations generally lead to better convergence but longer + runtime, as each iteration is an additional REMIND run: select an appropriate + slurm configuration to allow for longer runtime, usually more than 24 hours. +- `c_CES_calibration_new_structure`: Switch to set a default price for the + primary production factors instead of deriving prices from a `.gdx` file. + If the structure of the CES tree has changed, this switch is necessary + otherwise the calibration aborts. + The switch also allows forcing specific prices in the first CES calibration + iteration. Do not use it unnecessarily. +- `cm_CES_calibration_default_prices` (default = 0.01): Default price to be used + when `c_CES_calibration_new_structure` is set. The price is not + differentiated by period, region, or production factor. When the price is far + from the equilibrium prices, calibration takes longer or shows poorer convergence. + Errors can occur if prices are too high. +- `c_CES_calibration_write_prices`: Writes the prices (calculated as partial + derivatives on the CES production function) into the file `pm_cesdata_price`. + Can help finding a suitable value for `cm_CES_calibration_default_price`. ## Results -The main output of the CES calibration are a .gdx file and an .inc file with all -the CES parameters. They are named based on the CES configuration, the -GDP/population scenarios, the capital market module realisation and the region -configuration (e.g. `indu_subsectors-buil_simple-tran_edge_esm-POP_pop_SSP2-GDP_gdp_SSP2-En_gdp_SSP2-Kap_debt_limit-Reg_62eff8f7`). +The CES calibration outputs a `.gdx` file and an `.inc` file with all +the CES parameters. Their long name, for instance +`indu_subsectors-buil_simple-tran_edge_esm-POP_pop_SSP2-GDP_gdp_SSP2-En_gdp_SSP2-Kap_debt_limit-Reg_62eff8f7` +indicates the CES configuration, the GDP/population scenarios, the capital market +module realisation and the [region configuration](17_Regions_and_abbreviations.md) +(_62eff8f7_ for H12, _2b1450bc_ for EU21). You don't need to change these names, they are matched automatically using the switch `cm_CES_configuration`. The parameter files also include a counter for the calibration iteration they resulted from (e.g. `_ITERATION_10.inc`). @@ -139,99 +137,91 @@ the calibration iteration they resulted from (e.g. `_ITERATION_10.inc`). Calibration results can be included the PIK calibration repository (for use by all REMIND users), or used in a local directory (e.g. for project work). -- To include calibration results in the PIK calibration repository, navigate to - `/p/projects/remind/inputdata/CESparametersAndGDX/` on the PIK cluster and use - the `collect_calibration` script with one ore more paths to the completed - calibration run directories as a parameter (e.g. - `./collect_calibration /p/tmp/pehl/Remind/output/SSP2EU-calibrate_2022-09-06_08.48.56/`). \ - The script will copy the necessary .inc and .gdx files to the repository, - (adjusting the file names as needed) stage and commit them. It will also add - the directories the parameter files originated from to the commit message. - You can review and amend the message before committing. (If after reviewing - you decide not to commit, use `:cq` in vim to abort.) \ - The commit will trigger the generation of new `.tgz` archive, which is what - the REMIND model will be looking for in order to run. Finally it will display - the commit hash that has to be included as the `CESandGDXrevision` in the - REMIND configuration. - -- For use in a local directory, use `make set-local-calibration` to set up a - `calibration_results/` directory inside the REMIND directory and add it as a - repository for `.gdx` files to the REMIND configuration (the `remind_repos` R - option). From there on, proceed inside the local `calibration_results/` - directory as you would in the PIK calibration repository on the cluster, i.e. - call the `collect_calibration` script on your local calibration results (e.g. - `./collect_calibration ../output/SSP2EU-calibrate_2022-09-06_08.48.56/`). - -If the specific calibration settings (e.g. `cm_CES_configuration`) have not been -calibrated and used in REMIND before, the names of the .gdx and .inc files have -to be included in the `./config/gdx-files/files` and -`./modules/29_CES_parameters/load/input/files` files, respectively, so that the +1. Prepare the calibration directory: + - To include calibration results in the PIK calibration repository, navigate to + `/p/projects/remind/inputdata/CESparametersAndGDX/`. + - For use in a local directory, go to your local REMIND folder and type + `make set-local-calibration`. Navigate to the newly created folder `calibration_results/`. +2. Use the `collect_calibration` script with one ore more paths to the completed + calibration run directories as a parameter, for instance: + ```sh + ./collect_calibration /p/tmp/username/Remind/output/SSP2-calibrate_2024-12-31_23.59.59/ + ``` + Note that an absolute or relative path may be used. + The script copies the necessary `.inc` and `.gdx` files to the repository + (adjusting the file names as needed), stages and commits them; you may review and + modify the commit message before committing (or abort with `:cq` in vim). + The script then generates a `.tgz` archive, which is what REMIND will be looking for + in order to run. Finally it displays the commit hash and offers to include it as the + `CESandGDXrevision` in the REMIND configuration. +3. If the specific calibration settings (`cm_CES_configuration`) have never been +calibrated and used in REMIND before, add the name of the `.gdx` file to `./config/gdx-files/files` +and add the name of the `.inc` file to `./modules/29_CES_parameters/load/input/files`, so that the new calibration results are copied into these directories during run setup. -As for diagnostic output, there are the `full.log` and `full.lst` files for each -calibration iteration (`full_01.log` …), the file `CES_calibration.csv` -containing all the relevant calibration parameters (inputs and outputs) for all -iterations for automated analysis and a -`CES_calibration_report_.pdf` file with plots of quantities, -prices, and efficiency parameters over regions, production factors, and time. -This .pdf file can also be generated manually using the `output.R` script -(option "reportCEScalib"). -## Validity +## Diagnostic and validity + +To diagnose the outputs, you may use the `full.log` and `full.lst` files for each +calibration iteration (`full_01.log` …), the file `CES_calibration.csv` +containing all the relevant calibration parameters (inputs and outputs) for all +iterations for automated analysis. You can also generate a pdf report with plots of +quantities, prices, and efficiency parameters over regions, production factors, and time: +type `Rscript output.R`, select option _reportCEScalib_ and look at +`CES_calibration_report_.pdf`. To check the validity of a CES calibration run: -1. Check there are no GAMS/REMIND errors - - Did the prescribed number of CES calibration iterations (ten by - default) finish? +1. Check there are no errors: + - Did the prescribed number of CES calibration iterations (ten by default) finish? - Did the last CES calibration iteration converge? - Where there no GAMS errors (in the `full.log` and `full.lst`)? -2. Check the convergence of the Calibration: - - In the `CES_calibration_report` .pdf file, do the quantities converge +2. Check the convergence of the calibration: + - In `CES_calibration_report_.pdf`, do the quantities converge (sufficiently) towards the target values? There is no fixed level of - "sufficient" convergence. Use personal judgment. + "sufficient" convergence: use personal judgment. - If derived production factor prices are so high that the value (quantity times price) of inputs exceeds the value of the output (GDP), they are - scaled down. This is done in order to overcome a transient problem in the - iterative calibration process. The `full.log` file will have a warning - that reads - `>>> Warning: Rescaling en and kap prices as their combined value exceeds inco <<<` - (or similar). It is OK if that warning appears in some .log files, as long + automatically scaled down (this is done in order to overcome a transient problem in the + iterative calibration process). + The `full.log` file will have a warning similar to + `>>> Warning: Rescaling en and kap prices as their combined value exceeds inco <<<`. + It is OK if that warning appears in some `.log` files, as long as it is not present in the last one. Check which log files contain this warning using - ``` + ```sh $ grep ">>> Warning: Rescaling" full_*.log ``` ## Problems -The calibration can, just like REMIND, fail at many points. This is a list of +Just like a REMIND run, the calibration can fail at many points. This is a list of observed problems and suggested solutions. ### GAMS Runtime Errors -- Missing Data - If any of the quantities required for the calibration (final energy or energy - service demand, labour, capital) is missing, GAMS either complains outright - about (`Symbol declared but no values have been assigned.`) or assumes the +#### Missing Data + The calibration requires some external data: final energy or energy service demand, + labour, capital. If any of those quantities is missing, GAMS either complains outright + about _Symbol declared but no values have been assigned_, or assumes the missing data to be zero and fails on a division by zero. - This can be due to a new or modified scenario (`GDPscen`, `POPscen`) that is - missing entirely or data in the scenario missing. Check the input files + This can happen in new or modified scenario (`GDPscen`, `POPscen`) where the data + is missing entirely. Otherwise, check the input files (`./core/input/f_gdp.cs3r`, `./core/input/f_pop.cs3r`, `./modules/29_CES_parameters/calibrate/input/f29_capitalQuantity.cs4r`, and - `./core/input/f_fedemand.cs4r`) to figure out which data is missing and go - from there. -- $\xi \lt 0$ - This error (`assertion xi gt 0 failed, see .log file for details`) should not + `./core/input/f_fedemand.cs4r`) to figure out which data is missing and fix it. + +#### $\xi \lt 0$ + This error (_assertion xi gt 0 failed, see .log file for details_) should not show up anymore. If it still does it is because (the code working around it failed and) the value (quantity times price) of some inputs exceeds the value of the output at the root of the CES tree, where labour, energy, and capital are combined to produce income. This can be a fundamental issue as some input trajectories are just too high (or grow too high over time), but usually it is transitory and due to too high estimates of input prices from the previous - iterations .gdx file. To overcome this, check the plausibility of the input + iterations `.gdx` file. To overcome this, check the plausibility of the input trajectories (growth over time, level compared to other factors) or use `c_CES_calibration_new_structure` to force the usage of `cm_CES_calibration_default_prices`, which can be lowered as need be. @@ -247,7 +237,7 @@ Nash runs where it does not find infeasibilities in `testOneRegi` (for reasons unknown), but the output of a `testOneRegi` CES calibration (while itself quite useless) can be used as a `input.gdx` for the Nash calibration, overcoming these infeasibilities. Just put the path of the `fulldata.gdx` from the `testOneRegi` -run into the `path_gdx` column of the scenario config .csv file. It is (in +run into the `path_gdx` column of the scenario config `.csv` file. It is (in extreme cases) also possible to daisy-chain `testOneRegi` runs, using the output of one as the input to another, all with different `c_testOneRegi_region`, and the result of the last one as the input to a Nash calibration. (This method was @@ -258,20 +248,20 @@ used for the initial calibration of the new EU-21-regions version of REMIND.) The CES calibration can fail to converge towards the calibration targets. In that case -- Check the convergence trend +- Check the convergence trend. If subsequent iterations show quantities closer to the calibration target, more calibration iterations might be necessary. Start the calibration again, using the `fulldata.gdx` as input to reuse the achieved convergence, and possibly increase the number of calibration iterations (`c_CES_calibration_iterations`). -- Check production factor prices +- Check production factor prices. The prices of the production factors constitute the information transfer between calibration iterations. Check whether they change between iterations, - or stay constant, in either the `CES_calibration.csv` or the - `CES_calibration_report` .pdf file. If they are constant, investigate why the + or stay constant, in either `CES_calibration.csv` or + `CES_calibration_report_.pdf`. If they are constant, investigate why the inputs to the price calculation $\pi_i = \alpha_i {V_i}^{\rho_o - 1} {V_o}^{1 - \rho_o}$ do not change. -- Check bounds on quantities +- Check bounds on quantities. If quantities (`vm_cesIO`) do not change in between calibration iterations, it might be that they are fixed, either explicitly through lower and upper bounds, or implicitly through constraints in the ESM or other parts of the diff --git a/tutorials/17_Regions_and_abbreviations.md b/tutorials/17_Regions_and_abbreviations.md new file mode 100644 index 000000000..f22021111 --- /dev/null +++ b/tutorials/17_Regions_and_abbreviations.md @@ -0,0 +1,160 @@ +# REMIND regions and other abbreviations + +## Region codes as of REMIND v2.1 + +### H12 (hash _62eff8f7_) + +| Code | Name | Full list of countries | +|------|------|------------------------| +| CAZ | Canada, NZ, Australia | Canada, Australia, New Zealand, Heard & McDonald Islands, St. Pierre & Miquelon | +| CHA | China | China, Hong Kong, Macau, Taiwan | +| EUR | EU 28 | Austria, Belgium, Bulgaria, Cyprus, Czechia, Germany, Denmark, Spain, Estonia, Finland, France, Faroe Islands, United Kingdom, Gibraltar, Greece, Greenland, Hungary, Isle of Man, Ireland, Italy, Jersey, Lithuania, Luxembourg, Latvia, Malta, Netherlands, Poland, Portugal, Romania, Slovakia, Slovenia, Sweden | +| IND | India | India | +| JPN | Japan | Japan | +| LAM | Latin America and the Caribbean | Aruba, Anguilla, Argentina, Antigua & Barbuda, Bahamas, Belize, Bermuda, Bolivia, Brazil, Barbados, Chile, Colombia, Costa Rica, Cuba, Cayman Islands, Dominica, Dominican Republic, Ecuador, Falkland Islands, Guadeloupe, Grenada, Guatemala, French Guiana, Guyana, Honduras, Haiti, Jamaica, St. Kitts & Nevis, St. Lucia, Mexico, Montserrat, Martinique, Nicaragua, Panama, Peru, Paraguay, El Salvador, Suriname, Turks & Caicos Islands, Trinidad & Tobago, Uruguay, St. Vincent & Grenadines, Venezuela, British Virgin Islands, U.S. Virgin Islands, Puerto Rico, U.S. Virgin Islands | +| MEA | Middle East, North Africa, Central Asia | United Arab Emirates, Bahrain, Algeria, Egypt, Western Sahara, Iran, Iraq, Israel, Jordan, Kuwait, Lebanon, Libya, Morocco, Oman, Palestinian Territories, Qatar, Saudi Arabia, Sudan, Syria, Tunisia, Yemen | +| NEU | Non-EU28 Europe | Albania, Andorra, Bosnia & Herzegovina, Switzerland, Guernsey, Croatia, Iceland, Liechtenstein, Monaco, North Macedonia, Montenegro, Norway, Nauru, Svalbard & Jan Mayen, San Marino, St. Pierre & Miquelon, Serbia, Turkey, Vatican City | +| OAS | Other Asia | Afghanistan, American Samoa, Bangladesh, Brunei, Bhutan, Cocos (Keeling) Islands, Cook Islands, Christmas Island, Fiji, Micronesia (Federated States of), Guam, Indonesia, Cambodia, Kiribati, South Korea, Laos, Sri Lanka, Maldives, Marshall Islands, Myanmar (Burma), Mongolia, Northern Mariana Islands, Malaysia, New Caledonia, Norfolk Island, Niue, Nepal, Pakistan, Pitcairn Islands, Philippines, Palau, Papua New Guinea, North Korea, French Polynesia, Singapore, Solomon Islands, Thailand, Tokelau, Timor-Leste, Tonga, Tuvalu, Vietnam, Vanuatu, Wallis & Futuna, Samoa | +| REF | Countries from the Reforming Economies of the Former Soviet Union | Armenia, Azerbaijan, Belarus, Georgia, Kazakhstan, Kyrgyzstan, Moldova, Russia, Tajikistan, Turkmenistan, Ukraine, Uzbekistan | +| SSA | Sub-Saharan Africa | Angola, Benin, Botswana, Burkina Faso, Burundi, Cameroon, Cape Verde, Central African Republic, Chad, Comoros, Congo-Brazzaville, Congo-Kinshasa, Côted'Ivoire, Djibouti, Equatorial Guinea, Eritrea, Eswatini, Ethiopia, Gabon, Gambia, Ghana, Guinea, Guinea-Bissau, Kenya, Lesotho, Liberia, Madagascar, Malawi, Mali, Mauritania, Mauritius, Mozambique, Namibia, Niger, Nigeria, Réunion, Rwanda, São Tomé & Príncipe, Senegal, Sierra Leone, Somalia, South Africa, South Sudan, Sudan, Tanzania, Togo, Uganda, Zambia, Zimbabwe | +| USA | USA | USA | + +### EU21 (hash _2b1450bc_) + +The H21 variant (REMIND-EU) splits the European regions further: + +| EU21 region | H12 region | Tentative meaning of name | Full list of countries | +|-------------|------------|----------------------------|------------------------| +| DEU | EUR | Deutschland | Germany | +| ECE | EUR | EU Central East | Czech Republic, Estonia, Latvia, Lithuania, Poland, Slovakia | +| ECS | EUR | EU Central South | Bulgaria, Croatia, Hungary, Romania, Slovenia | +| ENC | EUR | EU North | Aland Islands, Denmark, Faroe Islands, Finland, Sweden | +| ESC | EUR | EU Southern Center | Cyprus, Greece, Italy, Malta | +| ESW | EUR | EU Southern West | Portugal, Spain | +| EWN | EUR | EU Western North | Austria, Belgium, Luxembourg, Netherlands | +| FRA | EUR | France | France | +| UKI | EUR | United Kingdom and Ireland | Gibraltar, Guernsey, Ireland, Isle of Man, Jersey, United Kingdom | +| NEN | NEU | Non-EU North | Greenland, Iceland, Liechtenstein, Norway, Svalbard and Jan Mayen, Switzerland | +| NES | NEU | Non-EU South | Albania, Andorra, Bosnia and Herzegovina, Holy See (Vatican City State), Macedonia, the former Yugoslav Republic of, Monaco, Montenegro, San Marino, Serbia, Turkey | + + +## Abbreviations + + +| Acronym | Definition | +|---------|------------| +| AFOLU | Agriculture, Forestry and Other Land Use | +| AMOC | Atlantic Meridional Overturning Circulation / Gulf Stream | +| ARIADNE | [Part of the Kopernikus project](https://www.pik-potsdam.de/en/news/latest-news/shaping-the-energy-transition-together-kopernikus-project-ariadne-launched) | +| AR | Assessment Report (by IPCC) | +| BAU | Business as usual | +| BC | Black Carbon (fine particulate matter, pure carbon formed through incomplete combustion, main part of soot, climate forcing agent; [wikipedia](https://en.wikipedia.org/wiki/Black_carbon)) | +| BECCS | Bioenergy with carbon capture and storage | +| BEV | Battery Electric Vehicle | +| CDIAC | Carbon Dioxide Information Analysis Center | +| CDR | Carbon Dioxide Removal | +| CEDS | [Community Emissions Data System](https://data.pnnl.gov/group/nodes/project/13463) | +| CES | Constant Elasticity of Substitution (production function; [wikipedia](https://en.wikipedia.org/wiki/Constant_elasticity_of_substitution)) | +| CF | Capacity Factor | +| CGE | Computable General Equilibrium | +| CHP | [Combined Heat and Power](https://en.wikipedia.org/wiki/Cogeneration) | +| CMIP6 | Coupled Model Intercomparison Project version 6 | +| COP | UN Climate Change Conference of the Parties | +| COP | Coefficient of Performance (e.g. heat input/output per unit of work for heat pumps/chillers) | +| CSP | Concentrated Solar Power | +| DACCS | direct air capture with CCS | +| DM | [Dry Matter](https://en.wikipedia.org/wiki/Dry_matter) in Agricultural Production | +| EAIS | East Antarctic Ice Sheet | +| EEA | [European Environment Agency](http://www.eea.europa.eu/de/) | +| EEA_WAM | EEA scenario with additional measures | +| EEA_WEM | EEA scenario with existing measures | +| EMI | Emissions | +| ERF | Effective Radiative Forcing | +| ES | Energy Services | +| ESM | Earth System Model | +| ESR | Effort Sharing Regulation (buildings, agriculture, waste management, small industry and transport) | +| ETS | Emissions Trading System (power sector, manufacturing industry, EU airlines) | +| EW | enhanced weathering of rocks (CDR technique) | +| FCEV | Fuel Cell Electric Vehicles | +| FE | Final Energy | +| FLH | Full Load Hour | +| GCAM | Global Change Assessment Model | +| GDP | Gross Domestic Product | +| GHG | Greenhouse Gases | +| GMSL | Global Mean Sea Level | +| GMST | Global Mean Surface Temperature | +| GSAT | Global Surface Air Temperature | +| GWP 100 | global warming potential (over 100 years) | +| HCFC | Hydrochlorofluorocarbons | +| HDVs | heavy duty vehicles | +| HEV | Hybrid Electric Vehicle | +| IASB | International Accounting Standards Board | +| ICE | Internal Combustion Engine | +| IEA | International Energy Agency | +| IFRS | International Financial Reporting Standards | +| IRES | International Recommendations for Energy Statistics | +| ISSB | [International Sustainability Standards Board](https://www.ifrs.org/projects/work-plan/sustainability-reporting/) of the IFRS Foundation | +| IIASA | International Institute for Applied Systems Analysis | +| INNOPATHS | EU funded PIK project: [Innovation Pathways, Strategies and Policies for the Low-Carbon Transition in Europe](https://www.pik-potsdam.de/en/output/projects/all/612) | +| IPCC | Intergovernmental Panel on Climate Change | +| ISIMIP | [Inter-Sectoral Impact Model Intercomparison Projekt](https://www.isimip.org/) | +| ITCZ | Intertropical Convergence Zome | +| KSG | Klimaschutzgesetz | +| LCOE | levelized cost of energy ([wikipedia](https://en.wikipedia.org/wiki/Levelized_cost_of_energy)) | +| LDV | light duty vehicle | +| LPJmL | [Lund-Potsdam-Jena managed Land](https://www.pik-potsdam.de/en/institute/departments/activities/biosphere-water-modelling/lpjml) | +| LULUCF | Land Use, Land-Use Change and Forestry | +| MACC | marginal abatement cost curves | +| MADRaT | [May All Data be Reproducible and Transparent](https://github.com/pik-piam/madrat) - a tool for data processing | +| MAGICC | [Model for the Assessment of Greenhouse Gas Induced Climate Change](https://magicc.org/) | +| MAgPIE | [Model of Agricultural Production and its Impact on the Environment](https://www.pik-potsdam.de/en/institute/departments/activities/land-use-modelling/magpie) | +| MAT | Marine Air Temperature | +| MER | Market Exchange Rates | +| MICI | Marine Ice Cliff Instability | +| .mif | Model Intercomparison File Format | +| NDC | Nationally determined contributions (non-binding national climate plans, [wikipedia](https://en.wikipedia.org/wiki/Nationally_Determined_Contributions)) | +| NGCC | natural gas combined cycle (electricity by gas turbine plus steam turbine using the hot steam of the former; used in most new gas power plants) | +| NGFS | Network for Greening the Financial System | +| NOx | Nitrogen oxide ([wikipedia](https://en.wikipedia.org/wiki/Nitrogen_oxide)) | +| NPi | National Policies implemented | +| NZE | Net-Zero Emissions | +| O&M | Operations and Maintenance | +| OC | Organic compount (chemical compound containing carbon-hydrogen bonds; [wikipedia](https://en.wikipedia.org/wiki/Organic_compound)) | +| PE | Primary Energy | +| PETM | Paleocene-Eocene Thermal Maximum | +| PIAM | Potsdam Integrated Assassment Modelling | +| PPP | Purchasing Power Parity | +| PRIMAPhist | [national historical emissions time series](https://dataservices.gfz-potsdam.de/pik/showshort.php?id=escidoc:2086888) @ PIK | +| PV | solar photovoltaics | +| RCP | Representative Concentration Pathways | +| RDD&D | Research, Development, Demonstration and Deployment | +| REMIND | [REgional Model of Investment and Development](https://www.pik-potsdam.de/en/institute/departments/transformation-pathways/models/remind/remind) | +| RFP | Risk Factor Pathways | +| RLDC | Residual Load Duration Curve | +| RSE | Research Software Engineering @ PIK | +| SCC | Social Cost of Carbon ([wikipedia](https://en.wikipedia.org/wiki/Social_cost_of_carbon)) | +| SCM | Simple Climate Model | +| SDP | sustainable development pathway | +| SDGs | Sustainable Development Goals (17 UN goals set up in 2015; [wikipedia](https://en.wikipedia.org/wiki/Sustainable_Development_Goals)) | +| SEJ | Structured Expert Judgment | +| SE | Secondary Energy | +| SLCF | Short Lived Climate Forcers | +| SLR | Sea Level Rise | +| SR15 | Special Report on Global Warming of 1.5°C (by IPCC) | +| SRES | Special Report on Emissions Scenarios (by IPCC) | +| SROCC | Special Report on Ocean and Cryosphere in Climate Change | +| SSP | Shared Socioeconomic Pathway | +| SST | Sea Surface Temperature | +| TCFD | Task Force on Climate-Related Financial Disclosures | +| TCRE | Transient Climate Response to Cumulative Carbon Emissions | +| UE | Useful Energy | +| UNCED | United Nations Conference on Environment and Development (Rio Summit 1992; [wikipedia](https://en.wikipedia.org/wiki/Earth_Summit)) | +| UNEP-FI | United Nations Environment Programme Finance Initiative | +| UNFCCC | United Nations Framework Convention on Climate Change (int. env. treaty signed at UNCED 1992; [wikipedia](https://en.wikipedia.org/wiki/United_Nations_Framework_Convention_on_Climate_Change)) | +| VOC | Volatile organic compound (vaporous chemical; [wikipedia](https://en.wikipedia.org/wiki/Volatile_organic_compound)) | +| VRE | variable renewable energy (= wind and solar PV) | +| WAIS | West Antarctic Ice Sheet | +| WBCSD | World Business Council for Sustainable Development ([wikipedia](https://en.wikipedia.org/wiki/World_Business_Council_for_Sustainable_Development)) | +| WDI | [World Development Indicators](https://datatopics.worldbank.org/world-development-indicators/) | +| ZECMIP | Zero Emissions Commitment Model Intercomparison Project | +