Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Obtaining Marginal Damages #90

Open
lrennels opened this issue Jun 11, 2022 · 0 comments
Open

Obtaining Marginal Damages #90

lrennels opened this issue Jun 11, 2022 · 0 comments

Comments

@lrennels
Copy link
Collaborator

lrennels commented Jun 11, 2022

Question by fcidmora

If I would like to check the values with different discounting, is there any keyword that I can use to get the marginal damages for this and other packages, different than the MimiIWG? I want to get the damage values and discount them myself, so I can compare them with the model discount rates (and maybe apply a decreasing discount rate). In this case, I would like to know if there is a way to get the future damages undiscounted per pulse year of the model.


Tagging @jrising who is the expert on PAGE. Most simply, you can use the eta and prtp parameters to parameterize a Ramsey Discounting scheme. Setting eta to 0. uses constant discounting with prtp.

To get undercounted marginal damages, I think the following is simplest:

  1. Obtain your base MimiPAGE2009 model
m = MimiPAGE2009.get_model()
  1. Obtain a marginal model with a pulse of emissions using MimiPAGE2009.get_marginal_model as described below
"""
    get_marginal_model(m::Model = get_model(); year::Union{Int, Nothing} = nothing, pulse_size = 100000.)

Returns a Mimi MarginalModel where the provided m is the base model, and the
marginal model has additional emissions of CO2 in year `year`. If no Model m is
provided, the default model from MimiPAGE2020.get_model() is used as the base model.
Note that the returned MarginalModel has already been run. The `pulse_size` defaults
to 100_000 metric megatonnes of CO2 (Mtonne CO2), and is spread over all years within the
period following `year`.
"""

so you type

mm = MimiPAGE2009.get_marginal_model(m)

These two steps can be combined in this case, since you're using just default m, but both would be needed if you want to do some sort of Monte Carlo and modify m and then recalculate the marginal damages

  1. Obtain your marginal value from the TotalCosts component, either using total_costs or total_damages depending on if you'd like to include abatement. Again, make sure to remember the period years as noted above: [2009, 2010, 2020, 2030, 2040, 2050, 2075, 2100, 2150, 2200]).
md = mm[:TotalCosts, :total_costs_aggregated]

Noting that under the hood this does

(mm.modified[:TotalCosts, :total_costs_aggregated] .- mm.base[:TotalCosts, :total_costs_aggregated]) ./ mm.delta

where we have mm.delta = pulse_size

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant