Home

Awesome

META 2021

The Model for Economic Tipping point Analysis

META 2021 is an advanced integrated assessment model (SC-IAM), designed as a model-based meta-analysis of the effects of tipping points on the social cost of carbon (SCC). The model simulates greenhouse gas emissions, temperature and sea-level rise, and market and non-market damages at the country level, and the effects of eight climate tipping points that have been studied in the climate economics literature.

META 2021 is introduced in; Dietz, Rising, Stoerk, and Wagner (2021): "Economic impacts of tipping points in the climate system", PNAS, 118(34), e2103081118. [https://doi.org/10.1073/pnas.2103081118]

See that paper and its supplementary information for further details. Please cite the paper when using META in your research.

Model versions

The repository contains two versions of the model, which produce identical results to high precision. The initial version of the model is implemented in Excel using the @RISK extension to perform Monte Carlo simulations. We have now produced a version implemented in Mimi [https://www.mimiframework.org/], an integrated assessment modeling framework developed in Julia [https://julialang.org/].

The Excel version is more user-friendly, but additional analyses may require the Mimi version. The Mimi version will be used for future developments.

Excel @RISK model

Installation and Use

It is recommended that you download this entire repository to use META, since the model relies on a number of linked files. You can do this at the Code link above or download a zip archive.

The main model is implemented as an Excel spreadsheet, which uses @RISK for Monte Carlo analysis. You should have @RISK installed to use META 2021.

To open the model, first load @RISK, and within @RISK load excel/META model July 2021.xlsx.

The model links to a number of supporting files. You should therefore also open the following files:

The first tab, Settings, allows you to activate tipping points, choose emissions and socioeconomic scenarios, and choose other settings. It also contains a dashboard, which provides an overview of your settings, including key parameters and sets of parameters (see below).

Input parameters and their uncertainty are defined in the Parameters tab. Cells that are intended to be changed, in order to switch from one parameter scheme to another, are shaded yellow.

All other tabs compute intermediate and final results, including global temperature rise (Temperatures column G), sea-level rise (SLR column D), country-level downscaled temperature (Pattern scaling), income levels after impacts (National cons per cap), and global social welfare (Welfare & SCCO2 calculator cell C2).

Contents of the Excel model

All model files are in the excel folder, and consist of:

The main model includes links to the other files in the excel folder.

Computing the social cost of carbon

To calculate the SCC, run the model without the additional pulse of CO2 (set Settings cell C14 to No) and record welfare (Welfare & SCCO2 calculator cell C2). Then run the model again with the additional pulse of CO2 (set Settings cell C14 to Yes) and record welfare (Welfare & SCCO2 calculator cell C2 again). Calculate the difference in welfare. Then divide by ∂W/∂C(2020), using world mean consumption/capita in Welfare & SCCO2 calculator cell C3. You may wish to inflate the resulting number to current dollars!

Running the model without @RISK

We very strongly recommend installing @RISK before loading META 2021. However, there is a setting that enables the models' many random parameters to be treated as deterministic (set Settings cell C16 to No). The model should then work in standard Excel but will not perform Monte Carlo simulations.

Model details

Settings

image

The top of the Settings tab provides a dashboard of high-level choices:

The bottom of the sheet draws from the Parameters sheet, based on the selections above.

Parameters

image

Column B contains inputs to the model, columns C onwards to the right provide various alternatives that you can choose. So, you set the yellow cells in column B equal to whichever input alternative (i.e. column) you want to use. Where available, 'distribution' gives you the stochastic option. Also change the title cell (e.g. cell B4 for the carbon cycle module) so that the dashboard is updated.

Mimi model

See the description of the Excel model for details on the component-based structure and parameterization, which are maintained in the Mimi model.

Directories in the repository

The following directories are used for the Mimi model:

Basic use cases

Please note that all code is designed to be run with the working directory set to a subdirectory of the repository (e.g., src or you can create a subdirectory analysis).

1. Running the full deterministic model

The full model is constructed using full_model(...), defined in src/MimiMETA.jl. The full_model function can be called with no arguments, to use the default construction, or override the defaults with the following arguments:

There is also a base_model function which includes only the non-tipping-point calibration options.

A basic usage is as follows:

include("../src/MimiMETA.jl")
model = full_model(rcp="RCP4.5", ssp="SSP2")
run(model)
explore(model)

Other examples are shown in test/test_system_tp.jl (for the full model) and test/test_system_notp.jl (for the no-tipping-point model).

2. Running the full Monte Carlo model

To run the model in Monte Carlo mode, you need to first generate the simulation parameter values, using the getsim(...) function, and then run the Monte Carlos, using the runsim(...) function, both of which are defined in src/montecarlo.jl.

getsim takes the following arguments (all are required, and given in order):

The runsim function takes the following parameters, all of which must be provided:

There are also getmodel_base and runsim_base functions, which include just the non-tipping-point parameters.

A basic usage is as follows:

include("../src/MimiMETA.jl")
include("../src/montecarlo.jl")
model = full_model(rcp="RCP4.5", ssp="SSP2")
draws = getsim(500, "Fit of Hope and Schaefer (2016)", # PCF
               "Cai et al. central value", # AMAZ
               "Nordhaus central value", # GIS
               "Distribution", # WAIS
               "Distribution", # SAF
               false, # persit
               false, # emuc
               false) # prtp
results = runsim(model, draws, true, # ism_used
                 true, # omh_used
                 true, # amoc_used
                 true, # saf_used
                 "Cai et al. central value", # AMAZ
                 "Distribution") # WAIS

Other examples are included in test/test_montecarlo_tp.jl.

3. Calculating the social cost of carbon

The src/scc.jl script includes functions that help with the calculation of the SCC, using the infrastructure within Mimi.

The current standard method is calculate_scc_mc which takes the following parameters (all given, in order):

A basic usage is:

include("../src/MimiMETA.jl")
include("../src/lib/presets.jl")
include("../src/scc.jl")
benchmark = CSV.read("../data/benchmark/ExcelMETA-alltp.csv", DataFrame)
model = full_model()
preset_fill(rr) = preset_fill_tp(model, benchmark, rr)
calculate_scc_mc(model, preset_fill, nrow(benchmark), 2020, 10., 1.5) # Runs 500 MC reps.