The MimiMooreEtAlAgricultureImpacts
package defines an Agriculture
component to be used in Integrated Assessment Models within the Mimi Framework. In addition to the component definition, this package also provides helper functions for using and running the component. Code is based on the agricultural damage functions from a 2017 paper in Nature Communications by Moore et al.
If you are new to the Julia language or to the Mimi software package, please see the Mimi documentation for installation of Julia and Mimi.
MimiMooreEtAlAgricultureImpacts
is a Julia package registered in the general Julia package registry. From a Julia package REPL, run the following to add the package to your environment:
pkg> add MimiMooreEtAlAgricultureImpacts, Mimi
We recommend you also add the Mimi
package itself to your environment with:
pkg> add Mimi
See docstrings for a full description of the available functionality.
using MimiMooreEtAlAgricultureImpacts, Mimi
m = MimiMooreEtAlAgricultureImpacts.get_model("midDF") # specify which of the 5 available GTAP dataframes of temperature-welfare results to use for the damage function
run(m)
explore(m)
update_param!(m, :gtap_spec, "AgMIP_NoNDF") # update the specification for which GTAP dataframe to use
run(m)
explore(m)
# Compare the values of the agricultural SCC with and without limiting how big damages can be
ag_scc1 = MimiMooreEtAlAgricultureImpacts.get_ag_scc("lowDF", prtp=0.03, floor_on_damages=true)
ag_scc2 = MimiMooreEtAlAgricultureImpacts.get_ag_scc("lowDF", prtp=0.03, floor_on_damages=false)
Input parameters:
income
population
temp
: global temperature seriesgtap_spec
: AString
specifying which GTAP temperature-welfare results dataframe from Moore et al to use for the damage function. Must be one of"AgMIP_AllDF"
,"AgMIP_NoNDF"
,"highDF"
,"lowDF"
, or"midDF"
. See documentation for a description of these choices.gtap_df_all
: Holds temperature-welfare data for all fivegtap_spec
choices. Only the one specified bygtap_spec
will be used when the component is runfloor_on_damages
: ABool
specifying whether or not to limit damages to 100% of the size of the agricultural sector. Default value istrue
.ceiling_on_benefits
: ABool
specifying whether or not to limit benefits to 100% of the size of the agricultural sector. Default value isfalse
.agrish0
: Initial agricultural share of GDPagel
: elasticitygdp90
pop90
Calculated variables:
AgLossGTAP
: Percent loss on the agricultural sector in each yearagcost
: Total cost on the agricultural sector in each year.gtap_df
: The selected temperature-welfare data used for the damage function, specified by thegtap_spec
parameter, selected from all the data held ingtap_df_all
MimiMooreEtAlAgricultureImpacts.get_model
MimiMooreEtAlAgricultureImpacts.get_model(gtap::String;
pulse::Bool=false,
floor_on_damages::Bool = true,
ceiling_on_benefits::Bool = false)
Return a Mimi model with one component, the Moore Agriculture
component. The user must
specify the gtap
input parameter as one of ["AgMIP_AllDF", "AgMIP_NoNDF", "highDF", "lowDF", "midDF"]
, indicating which gtap damage function the component should use.
The model has a time dimension of 2000:10:2300, and the fund_regions are the same as the FUND model.
Population and income levels are set to values from the USG2 MERGE Optimistic scenario.
Temperature is set to output from the DICE model. If the user specifies pulse=true
, then
temperature is set to output from the DICE model with a 1 GtC pulse of CO2 emissions in 2020.
If floor_on_damages
= true, then the agricultural damages in each timestep will not be allowed to exceed 100% of the size of the
agricultural sector in each region.
If ceiling_on_benefits
= true, then the agricultural benefits in each timestep will not be allowed to exceed 100% of the size of the
agricultural sector in each region.
MimiMooreEtAlAgricultureImpacts.get_ag_scc
MimiMooreEtAlAgricultureImpacts.get_ag_scc(gtap::String;
prtp::Float64 = 0.03,
horizon::Int = _default_horizon,
floor_on_damages::Bool = true,
ceiling_on_benefits::Bool = false)
Return the Agricultural SCC for a pulse in 2020 DICE temperature series and constant
pure rate of time preference discounting with the specified keyword argument prtp
.
Optional keyword argument horizon
can specify the final year of marginal damages to be
included in the SCC calculation, with a default year of 2300.
If floor_on_damages
= true, then the agricultural damages in each timestep will not be allowed to exceed 100% of the size of the
agricultural sector in each region.
If ceiling_on_benefits
= true, then the agricultural benefits in each timestep will not be allowed to exceed 100% of the size of the
agricultural sector in each region.