Jan Philipp Dietrich
dixyzetrich@pik-xyzpotsdam.de
Model of Agricultural Production and its Impact on the Environment
MAgPIE
cost minimization of consecutive time slices with a length of 5-20 years until 2100
dynamic recursive optimization
global | 5-20 world regions | 50-2000 spatial cluster
3 spatial layers
bringing together biophysical (plant growth, carbon, nutrients, water) and economic (costs, prices, demand, policies) aspects
balance biophysical and economic side
raw data
model input
ISO countries
Default world regions
Alternative aggregation
model input
powered by madrat » github.com/pik-piam/madrat
REMIND-MAgPIE Integrated Assessment Model
PIAM - Potsdam Integrated Assessment Modelling Framework
> 30 supporting R packages published under LGPL (copyleft), BSD-2 (non-copyleft), or other Open Source licenses
github.com/pik-piam
GAMS Model Core
R Pre- & Postprocessing Layer
GAMS Model Core
...
Naming conventions to..
q13_cost_tc(i2) ..
v13_cost_tc(i2) =e= sum(ct, i13_land(i2) * i13_tc_factor(ct,i2)
* vm_tau(i2)**i13_tc_exponent(ct,i2)
* (1+pm_interest(i2))**15);
1st Prefix q - eQuation v - Variable i - Input parameter p - Parameter
...
2nd Prefix
?m - module interface
?00 - module-internal
(2-digit module code)
more details:
# | (C) 2008-2021 Potsdam Institute for Climate Impact Research (PIK)
# | authors, and contributors see CITATION.cff file. This file is part
# | of MAgPIE and licensed under AGPL-3.0-or-later. Under Section 7 of
# | AGPL-3.0, you are granted additional permissions described in the
# | MAgPIE License Exception, version 1.0 (see LICENSE file).
# | Contact: magpie@pik-potsdam.de
##################
#### SETTINGS ####
##################
cfg <- list()
#### Main settings ####
# short description of the actual run
cfg$title <- "default"
# path to the submodel to be used relative to main model folder
cfg$model <- "main.gms" #def = "main.gms"
#### input settings ####
# which input data sets should be used?
cfg$input <- c(regional = "rev4.65_h12_magpie.tgz",
cellular = "rev4.65_h12_1998ea10_cellularmagpie_c200_MRI-ESM2-0-ssp370_lpjml-8e6c5eb1.tgz",
validation = "rev4.65_h12_validation.tgz",
additional = "additional_data_rev4.07.tgz",
calibration = "calibration_H12_sticky_feb18_free_30Nov21.tgz")
# Options for calibration tgz files for different factor costs realizations, with default settings and rev4.64:
# * (fixed_per_ton_mar18): "calibration_H12_fixed_per_ton_mar18_30Nov21.tgz"
# * (mixed_feb17): "calibration_H12_mixed_feb17_30Nov21.tgz"
# * (sticky_feb18)(free) "calibration_H12_sticky_feb18_free_30Nov21.tgz"
# * (sticky_feb18)(dynamic) "calibration_H12_sticky_feb18_dynamic_30Nov21.tgz"
# * (sticky_labor)(free) "calibration_H12_sticky_feb18_free_30Nov21.tgz"
# * (sticky_labor)(dynamic) "calibration_H12_sticky_feb18_dynamic_30Nov21.tgz"
#a list of repositories (please pay attention to the list format!) in which the
#files should be searched for. Files will be searched in all repositories until
#found, always starting with the first repository in the list. The argument must
#have the format of a named list with the url of the repository as name and a
#corresponding list of options such as username or password to access the
#repository as value. If no options are required the value has to be NULL. (e.g.
#list("ftp://my_pw_protected_server.de/data"=list(user="me",password=12345),
# "http://free_server.de/dat"=NULL))
#Please add system or user specific repositories (such as repos with limited
#access for) through the R option "magpie_repos". Through the append command
#below it will get merged into cfg$repositories
cfg$repositories <- append(list("https://rse.pik-potsdam.de/data/magpie/public"=NULL),
getOption("magpie_repos"))
# Should input data be downloaded from source even if cfg$input did not change?
cfg$force_download <- FALSE
# Should an existing output folder be replaced if a new run with the same name is started?
cfg$force_replace <- FALSE
# Settings for the yield calibration
# * (TRUE): Yield calibration will be performed
# * (ifneeded): Yield calibration will only be executed if input data is
# * downloaded from repository
# * (FALSE): Yield calibration will not be performed
cfg$recalibrate <- "ifneeded" # def = "ifneeded"
# Up to which accuracy shall be recalibrated?
cfg$calib_accuracy <- 0.05 # def = 0.05
# What is the maximum number of iterations if the precision goal is not reached?
cfg$calib_maxiter <- 20 # def = 20
# factor determining how much the new calibration factor influences the result (0-1)
cfg$damping_factor <- 0.98 # def= 0.98
# switch on/of calibration of cropland (pasture will be left untouched)
cfg$calib_cropland <- TRUE # def= TRUE
# set upper limit for cropland calibration factor
cfg$crop_calib_max <- 1.5 # def= 1.5
# Selection type of calibration factors.
# If FALSE, calibration factors from the last iteration are used.
# If TRUE, calibration factors from the iteration with the lowest standard deviation are used.
cfg$best_calib <- TRUE
# Settings for land conversion cost calibration (cropland)
# The calibration routine derives regional calibration factors for
# costs of cropland expansion and rewards for cropland reduction,
# with the goal to match historical regional cropland in 2015.
# * (TRUE): Land conversion cost calibration will be performed
# * (ifneeded): Land conversion cost calibration will only be executed the input file "f39_calib.csv" is missing
# * (FALSE): Land conversion cost calibration will not be performed
cfg$recalibrate_landconversion_cost <- "ifneeded" #def "ifneeded"
# Up to which accuracy shall be recalibrated?
cfg$calib_accuracy_landconversion_cost <- 0.05 # def = 0.05
# What is the maximum number of iterations if the precision goal is not reached?
cfg$calib_maxiter_landconversion_cost <- 20 # def = 20
# Restart from existing calibration factors (TRUE or FALSE)
cfg$restart_landconversion_cost <- FALSE # def = FALSE
# factor determining how much the new calibration factor influences the result (0-1)
cfg$damping_factor_landconversion_cost <- 0.98 # def= 0.98
# set upper limit for cropland calibration factor
cfg$crop_calib_max_landconversion_cost <- 2.5 # def= 2.5
# set lower limit for cropland calibration factor
cfg$crop_calib_min_landconversion_cost <- 0.2 # def= 0.2
# Selection type of calibration factors.
# If FALSE, calibration factors from the last iteration are used.
# If TRUE, calibration factors from the iteration with the lowest standard deviation are used.
cfg$best_calib_landconversion_cost <- TRUE # def = TRUE
# Settings for NPI/NDC recalculation
# * (TRUE): NPI/NDC recalculation will be performed
# * (ifneeded): NPI/NDC recalculation will only be executed if current input files are zero
# * and policy switches (p32_aff_pol, p35_ad_pol, p35_emis_pol) are set to "npi" or "ndc".
# * If policy switches are set to "none" (default) NPI/NDC recalculation will not be performed
# * (FALSE): NPI/NDC recalculation will not be performed
cfg$recalc_npi_ndc <- "ifneeded" # def = ifneeded
# * which national or subnational mappinng should be used
# * (iso): policies on the national levels
# * (bra): includes subnational policies for Brazil
cfg$policyregions <- "bra" # def = "bra"
#### magpie.gms settings ####
cfg$gms <- list()
# Set number of time steps (1-16) or type "less_TS" for remind time steps
cfg$gms$c_timesteps <- "coup2100"
# historic time steps
cfg$gms$c_past <- "till_2010"
# use of gdx files
cfg$gms$s_use_gdx <- 2 # def = 2
#* 0: gdx will not be loaded
#* 1: gdx is loaded in the first time step
#* 2: gdx is loaded in all time steps
# **----------------------------------------------------------------------------
# *** MODULES
# ***---------------------------------------------------------------------------
#### Useful shortcuts ####
# Vector of all iso countries (used for regional policy implementations)
all_iso_countries <- "ABW,AFG,AGO,AIA,ALA,ALB,AND,ARE,ARG,ARM,
ASM,ATA,ATF,ATG,AUS,AUT,AZE,BDI,BEL,BEN,
BES,BFA,BGD,BGR,BHR,BHS,BIH,BLM,BLR,BLZ,
BMU,BOL,BRA,BRB,BRN,BTN,BVT,BWA,CAF,CAN,
CCK,CHN,CHE,CHL,CIV,CMR,COD,COG,COK,COL,
COM,CPV,CRI,CUB,CUW,CXR,CYM,CYP,CZE,DEU,
DJI,DMA,DNK,DOM,DZA,ECU,EGY,ERI,ESH,ESP,
EST,ETH,FIN,FJI,FLK,FRA,FRO,FSM,GAB,GBR,
GEO,GGY,GHA,GIB,GIN,GLP,GMB,GNB,GNQ,GRC,
GRD,GRL,GTM,GUF,GUM,GUY,HKG,HMD,HND,HRV,
HTI,HUN,IDN,IMN,IND,IOT,IRL,IRN,IRQ,ISL,
ISR,ITA,JAM,JEY,JOR,JPN,KAZ,KEN,KGZ,KHM,
KIR,KNA,KOR,KWT,LAO,LBN,LBR,LBY,LCA,LIE,
LKA,LSO,LTU,LUX,LVA,MAC,MAF,MAR,MCO,MDA,
MDG,MDV,MEX,MHL,MKD,MLI,MLT,MMR,MNE,MNG,
MNP,MOZ,MRT,MSR,MTQ,MUS,MWI,MYS,MYT,NAM,
NCL,NER,NFK,NGA,NIC,NIU,NLD,NOR,NPL,NRU,
NZL,OMN,PAK,PAN,PCN,PER,PHL,PLW,PNG,POL,
PRI,PRK,PRT,PRY,PSE,PYF,QAT,REU,ROU,RUS,
RWA,SAU,SDN,SEN,SGP,SGS,SHN,SJM,SLB,SLE,
SLV,SMR,SOM,SPM,SRB,SSD,STP,SUR,SVK,SVN,
SWE,SWZ,SXM,SYC,SYR,TCA,TCD,TGO,THA,TJK,
TKL,TKM,TLS,TON,TTO,TUN,TUR,TUV,TWN,TZA,
UGA,UKR,UMI,URY,USA,UZB,VAT,VCT,VEN,VGB,
VIR,VNM,VUT,WLF,WSM,YEM,ZAF,ZMB,ZWE"
# * Based on https://tntcat.iiasa.ac.at/SspDb/dsd?Action=htmlpage&page=10#regiondefs
oecd90andEU <- "ALB,AUS,AUT,BEL,BIH,BGR,CAN,CYP,CZE,DNK,EST,FIN,FRA,
DEU,GRC,HUN,HRV,ISL,IRL,ITA,JPN,LUX,LVA,LTU,MLT,MNE,
NLD,NOR,NZL,POL,PRT,ROU,SRB,SVK,SVN,ESP,SWE,CHE,MKD,TUR,
GBR,USA"
# ***--------------------- 09_drivers ----------------------------------------
# * (aug17): default drivers
cfg$gms$drivers <- "aug17" # def = aug17
cfg$gms$c09_pop_scenario <- "SSP2" # def = SSP2
cfg$gms$c09_gdp_scenario <- "SSP2" # def = SSP2
# * options: SSP: "SSP1", "SSP2", "SSP3", "SSP4", "SSP5", "SSP2EU"
# * SDP: "SDP", "SDP_EI", "SDP_MC", "SDP_RC"
# * SRES: "A1", "A2", "B1", "B2"
# * Note: SSP2EU a European Commission population/income scenario for
# * Ariadne project. SDP is same as SSP1 income, while SDP_EI, SDP_RC, SDP_MC
# * see different GDP trajectories as described in SHAPE project.
# Year until which all parameters are fixed to SSP2 values
cfg$gms$sm_fix_SSP2 <- 2020
# Year until which all parameters affected by climate change are fixed to historical values
cfg$gms$sm_fix_cc <- 2020
# ***--------------------- 10_land ----------------------------------------
# * (feb15): default land realization
# * (landmatrix_dec18): includes a land transition matrix
cfg$gms$land <- "landmatrix_dec18" # def = landmatrix_dec18
# * Artificial cost for balance variables (USD05MER per ha)
# * The balance variables in the land module avoid infeasibilities due to
# * differences in accuracy between parameters and variables in GAMS.
# * High costs make sure that the balance variables are only used as a last resort.
cfg$gms$s10_cost_balance <- 1000000 # def = 1000000
# ***--------------------- 11_costs ------ --------------------------------
# * (default): default cost realization
cfg$gms$costs <- "default" # def = default
# ***--------------------- 12_interest_rate ---------------------------------
# * (select_apr20): regional interest rates dependent on development state
cfg$gms$interest_rate <- "select_apr20" # def = select_apr20
# * Interest rate scenario:
# * Options: coupling (exogenous interest rate)
# * gdp_dependent (regional interest rate dependent on development state)
# * Note: Currently, coupling is included as an option of an exogenous interest
# * rate scenario. It is currently not part of coupled runs with REMIND.
# * Note: In the gdp_dependent scenario, the selected interest rate fully takes
# * effect in 2050. It slowly starts fading in by 2025.
cfg$gms$c12_interest_rate <- "gdp_dependent" # def = "gdp_dependent"
# * Interest rate coefficients:
# * The coefficients determine the regionally specific interest rate. They do
# * not represent the value of the interest rate.
# * The s12_interest_lic coefficient determines the intercept for future interest
# * rate determination. It represents the interest rate in low income countries.
cfg$gms$s12_interest_lic <- "0.1" # def = 0.1
# * The s12_interest_hic determines the speed of interest rate adjustment for
# * future interest rates. It represents the interest rate in high income countries.
cfg$gms$s12_interest_hic <- "0.04" # def = 0.04
# * Analog logic applies to historic interest rate coefficients
cfg$gms$s12_hist_interest_lic <- "0.1" # def = 0.1
cfg$gms$s12_hist_interest_hic <- "0.04" # def = 0.04
# * Note: It is also possible to choose a global interest rate by setting the
# * upper (s12_interest_lic) and the lower (s12_interest_hic) bound equal
# * This was formerly used for SSP runs and was set to SSP1, SSP5: 0.07 (hist),
# * 0.04 (future), SSP2: 0.07 (hist, future), SSP3: 0.07 (hist), 0.1 (future),
# * SSP4: s12_interest_lic=0.1, s12_interest_hic=0.04, s12_hist_interest_lic=0.07,
# * s12_hist_interest_hic=0.07
# * Regional interest rate policy scenario switch
# * Options: list of iso-codes of countries where above selected coefficients
# * should be in effect.
# * In all other countries, alternative coefficients (s12_interest_lic_noselect, s12_interest_hic_noselect,
# * s12_hist_interest_lic_noselect, s12_hist_interest_hic_noselect) that can be selected below
# * are in effect.
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$select_countries12 <- all_iso_countries # def = all_iso_countries
# * Interest rate coefficients for non-selected countries:
cfg$gms$s12_interest_lic_noselect <- "0.1" # def = 0.1
cfg$gms$s12_interest_hic_noselect <- "0.04" # def = 0.04
cfg$gms$s12_hist_interest_lic_noselect <- "0.1" # def = 0.1
cfg$gms$s12_hist_interest_hic_noselect <- "0.04" # def = 0.04
# ***--------------------- 13_tc -----------------------------------------
# * (endo_jun18): endogenous technological change with full cost accounting and
# * stepwise updated crop area information
# * (exo): exogenous technological change (removes non-linearities from the model);
# * requires an existing model run with endo tc for generating the input file
# * f13_tau_scenario.csv
cfg$gms$tc <- "endo_jun18" # def = endo_jun18
# * tc cost scenario: low, medium or high
cfg$gms$c13_tccost <- "medium" # def = medium
# * ignore historial tau (1) or use it as lower bound (0)
cfg$gms$s13_ignore_tau_historical <- 1 # def = 1
# ***--------------------- 14_yield --------------------------------------
# * (managementcalib_aug19): calibrate potential LPJmL-yields to FAO regional numbers,
# * pasture yields increase based on exogenous demand-side proxy
# * for growth rate of cattle stocks
cfg$gms$yields <- "managementcalib_aug19" # def = managementcalib_aug19
# * yield scenario
# * options: cc (climate change)
# * nocc (no climate change)
# * nocc_hist (no climate change after year defined by sm_fix_cc)
cfg$gms$c14_yields_scenario <- "cc" # def = "cc"
# * switch determing the effectivity of translating crop tc into pasture yield
# * increase. Value has to be in the range of 0 (no pasture yield growth)
# * and 1 (pasture yields increase linearily with tau). Only used in the realizations:
# * biocorrect (tc of current time step) and managementcalib (tc of previous time step).
cfg$gms$s14_yld_past_switch <- 0.25 # def = 0.25
# * switch between limiting relative increase of yields due to climate impacts
# * to absolute yield increases in cases of high management induced
# * yield calibration factors in the historic time period
# * options: 1 (limit to absolute values)
# * 0 (pure relative calibration)
cfg$gms$s14_limit_calib <- 1 # def = 1
# ***--------------------- 15_food ---------------------------------------
# * (anthropometrics_jan18): estimates food using scenario dependent regression
# * and demography drivers
cfg$gms$food <- "anthropometrics_jan18" # def = anthropometrics_jan18
# * maximal number of iterations between food and magpie model before
# * simulation proceeds to next time step
cfg$gms$s15_maxiter <- 5 # def = 5
# * convergence criteria: maximal allowed country-wise deviation in calculated
# * real income between iterations
cfg$gms$s15_convergence <- 0.005 # def = 0.005
# * switch between exogenous and endogenous food demand
# * options: 0 (exogenous food demand) and 1 (endogenous food demand)
cfg$gms$s15_elastic_demand <- 0 # def =0
# * food scenario for selected (and respectively not selected) countries
# * in scen_countries15
# * options: SSP: "SSP1", "SSP2", "SSP3", "SSP4", "SSP5"
# * SRES: "A1", "A2", "B1", "B2"
# * OTHER: "PB" (planetary boundaries)
cfg$gms$c15_food_scenario <- "SSP2" # def = SSP2
cfg$gms$c15_food_scenario_noselect <- "SSP2" # def = SSP2
# * Temporal development of ruminant meat share within the livestock food product
# * group (applied before food demand model is executed)
# * options: constant, halving2050, mixed
cfg$gms$c15_rum_share <- "mixed" # def = mixed
# * Stronger ruminant fadeout in India
# * options: 0 (=off), 1 (=on)
cfg$gms$s15_rum_share_fadeout_india_strong <- 1 # def = 1
# * Milk share fadeout in India within the livestock food product
# * group (applied before food demand model is executed)
# * options: 0 (=off), 1 (=on)
cfg$gms$s15_milk_share_fadeout_india <- 1 # def = 1
# * Food substitution scenarios including functional forms, targets
# * and transition periods (applied after food demand model is executed)
# * options consist of 3 parts: functional form (lin,sigmoid), target (zero, 20pc, 50pc, 80pc, 90pc) and transition period (10_50: from 2010 to 2050, 20_50: from 2020 to 2050)
# * Example for sigmoid_50pc_20_50:
# * Functional form: sigmoid (S-shaped)
# * Target: 50percent reduction at end of transition period (2050 in this case)
# * Transition period: start in 2020, end in 2050
# * options: constant,
# * lin_zero_10_50, lin_zero_20_50, lin_zero_20_30, lin_zero_20_70, lin_50pc_20_50, lin_50pc_20_50_extend65, lin_50pc_20_50_extend80,
# * lin_50pc_10_50_extend90, lin_75pc_10_50_extend90, lin_80pc_20_50, lin_80pc_20_50_extend95, lin_90pc_20_50_extend95,
# * lin_99-98-90pc_20_50-60-100, sigmoid_20pc_20_50, sigmoid_50pc_20_50, sigmoid_80pc_20_50
cfg$gms$c15_rumscen <- "constant" # def = constant
cfg$gms$c15_fishscen <- "constant" # def = constant
cfg$gms$c15_alcscen <- "constant" # def = constant
cfg$gms$c15_livescen <- "constant" # def = constant
cfg$gms$c15_rumdairy_scp_scen <- "constant" # def = constant
cfg$gms$c15_rumdairyscen <- "constant" # def = constant
# * Set items of kfo_rd. This option allows for sensitivity scenarios (e.g. only livst_milk).
# * kfo_rd is used in the food substitution scenarios c15_rumdairy_scp_scen and c15_rumdairyscen (see above)
# * options: "livst_rum,livst_milk", "livst_rum" or "livst_milk"
cfg$gms$kfo_rd <- "livst_rum,livst_milk" #def = livst_rum,livst_milk
# * Reduction of livestock products towards a kcal/cap/day intake target with or w/o substitution
# * maximum kcal/cap/day intake target used for downwards convergence of livestock products
cfg$gms$s15_kcal_pc_livestock_intake_target <- "430" # def = 430
# * choice temporal fade-out towards s15_kcal_pc_livestock_intake_target
# * options: constant, lin_zero_10_50, lin_zero_20_50, lin_zero_20_30, lin_zero_20_70
cfg$gms$c15_livescen_target <- "constant" # def = constant
# * fade-out of livestock products (0) or substitution of livestock products with plant-based products (1)
# * options: 0 (=fade-out), 1 (=substitution)
cfg$gms$s15_livescen_target_subst <- 1 # def = 1
# * target year for transition to exogenous scenarios
# * only active for exogenous scenario switches that are set to 1
# * currently available: waste (s15_exo_waste) and EAT Lancet diets (s15_exo_diet)
# * options: y2030, y2050
cfg$gms$c15_exo_scen_targetyear <- "y2050" # def = y2050
# * switch for transition to food waste scenarios
# * (1): transition towards exogenous food waste target
# * (0): regression-based estimation of food waste
cfg$gms$s15_exo_waste <- 0 # def = 0
# * scenario target for the ratio between food demand and intake
# * only activated if s15_exo_waste is set to 1
# * options: scalars >1
# * (1.1): corresponds to 10% food waste ~ quarter waste of HIC
# * (1.2): corresponds to 20% food waste ~ half waste of HIC
cfg$gms$s15_waste_scen <- 1.2 # def = 1.2
# * switch for transition to EAT Lancet diet scenarios
# * (1): transition towards exogenous diets and food demand
# * (0): regression-based estimation of diets and food demand
cfg$gms$s15_exo_diet <- 0 # def = 0
# * exogenous calorie scenario (EAT Lancet diet scenarios)
# * only activated if s15_exo_diet is set to 1
# * options: healthy_BMI, 2100kcal, 2500kcal
cfg$gms$c15_kcal_scen <- "healthy_BMI" # def = healthy_BMI
# * exogenous food-specific diet scenario (EAT Lancet diet scenarios)
# * only activated if s15_exo_diet is set to 1
# * options: BMK, FLX, PSC, VEG, VGN, FLX_hmilk, FLX_hredmeat
cfg$gms$c15_EAT_scen <- "FLX" # def = FLX
# * Scenario target for the inclusion of alcohol in the EAT-Lancet diet
# * only activated if s15_exo_diet is set to 1
# * (0): no alcohol consumption, as in the original version of the EAT-Lancet diet
# * (0.014): maximum target for alcohol consumption is 1.4% of total calorie consumption
# * (see Lassen et al., 2020)
cfg$gms$s15_alc_scen <- 0.014 # def = 0.014
# * Switch and specification of countries for which exogenous food scenarios
# * (EAT Lancet diet and food waste scenarios), food substitution scenarios and
# * c15_food_scenario shall be applied
# * Options: list of iso-codes of countries where exogenous scenario should be
# * in effect
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$scen_countries15 <- all_iso_countries
# * calibration to historical values
# * options: 0, 1
cfg$gms$s15_calibrate <- 1 # def = 1
# ***--------------------- 16_demand -------------------------------------
# * (sector_may15): default for flexible regions
cfg$gms$demand <- "sector_may15" # def = sector_may15
# ***--------------------- 17_production ---------------------------------
# * (flexreg_apr16): default production aggregation
cfg$gms$production <- "flexreg_apr16" # def = flexreg_apr16
#* Additional switch to initialize cellular production
# * (on) : it initializes cellular production
# * (off) : it does not initialize cellular production
cfg$gms$c17_prod_init <- "on" # default = on
# ***--------------------- 18_residues -----------------------------------
# * (flexreg_apr16): detailed residue calculations
# * (off): off
cfg$gms$residues <- "flexreg_apr16" # def = flexreg_apr16
# * residue on field burning
# * options: phaseout - phaseout of residue burning to minimum burn share (0-10%)
# * constant - constant shares of on field burning (15-25%)
cfg$gms$c18_burn_scen <- "phaseout" # def = phaseout
# ***--------------------- 20_processing ---------------------------------
# * (substitution_may21) : processing with couple products allowing for substitution
# * (off): off
cfg$gms$processing <- "substitution_may21" # def = substitution_may21
# * SCP route
# * single-cell microbial protein production route
# * options: mixed, methane, sugar, cellulose, hydrogen
# * Mapping of scp route to feedstock: methane:foddr, sugar:sugar_cane, cellulose:begr
# * Note that hydrogen does not require land-based inputs
# * Mixed assumes equal shares of methane, sugar, cellulose and hydrogen
cfg$gms$c20_scp_type <- "sugar" # def = sugar
# ***--------------------- 21_trade --------------------------------------
# * (free_apr16): free trade without restrictions
# * (off): no trade at all
# * (exo): exogenously prescribed trade
# * (selfsuff_reduced): self-sufficiency based trade with trade costs related
# * to exports
cfg$gms$trade <- "selfsuff_reduced" # def = selfsuff_reduced
# * trade balance reduction scenario
# * (l909090r808080): 10 percent trade liberalisation for secondary and
# * livestock products in 2030,2050,2100 and 20 percent for
# * crops
# * (l908080r807070): livestock/secondary: 10% in 2030, 20% in 2050,2100
# * crops: 20% in 2030, 30% in 2050,2100
# * (l909595r809090): livestock/secondary: 10% in 2030, 5% in 2050,2100
# * crops: 20% in 2030, 10% in 2050,2100
# * Initial values for the trade balance reduction in 1995 are 1, i.e. all trade in
# * 1995 happens through the self-sufficiency pool. For later time steps, additional
# * scenarios of trade liberalization (i.e. of allocation to the comparative advantage pool)
# * are implemented based on Schmitz et al. 2012 (also described in Popp et al. 2017)
cfg$gms$c21_trade_liberalization <- "l909090r808080" # def = l909090r808080
# * whether trade tariff should be considered
# * (0) without trade tariff
# * (1) with trade tariff
cfg$gms$s21_trade_tariff <- 1 # def =1
# ***--------------------- 29_ageclass -----------------------------------
# * (feb21): Distribution of age-classes according to Poulter et al 2018
cfg$gms$ageclass <- "feb21" # def = feb21
# ***--------------------- 30_crop ---------------------------------------
# * (endo_apr21): dynamic cropland and detailed cropland availability data at grid cell level
cfg$gms$crop <- "endo_apr21" # def = endo_apr21
# * (c30_bioen_type): switch for type of bioenergy crops; options: begr, betr, all
cfg$gms$c30_bioen_type <- "all" # def = "all"
# * (c30_bioen_water): switch for irrigation of bioenergy crops; options: rainfed, irrigated, all
cfg$gms$c30_bioen_water <- "rainfed" # def = "rainfed"
# * (c30_rotation_constraints): switch for rotational constraints: on, off
cfg$gms$c30_rotation_constraints <- "on" # def = "on"
# * Switch to determine whether marginal land (suitability index below 0.33) should be included
# * in the total available cropland. Options are:
# * ("all_marginal"): All marginal land can be used for crop cultivation
# * ("q33_marginal"): The bottom tertile of marginal land is excluded
# * ("no_marginal"): Marginal land is completely excluded from crop cultivation
cfg$gms$c30_marginal_land <- "all_marginal" # def = "all_marginal"
# * Share of available cropland that is witheld for other land cover types. For example,
# * a share of 0.2 corresponds to setting aside 20 % of the available cropland.
# * Accepted values are between 0 and 1
# Note: s30_set_aside_shr applies to countries selected in policy_countries30
# s30_set_aside_shr_noselect applies to all other countries.
cfg$gms$s30_set_aside_shr <- 0 # def = 0
cfg$gms$s30_set_aside_shr_noselect <- 0 # def = 0
# * Target year for set aside policy ('s30_set_aside_shr'). Options are:
# * ("none"): No set-aside policy
# * ("by2030"): The target is reached by 2030
# * ("by2050"): The target is reached by 2050
cfg$gms$c30_set_aside_target <- "none" # def = "none"
# * Switch and specification of countries for which set aside policy in
# * s30_set_aside_shr apply.
# * Options: list of iso-codes of countries where set aside policy should be applied
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$policy_countries30 <- all_iso_countries
# ***--------------------- 31_past ---------------------------------------
# * (static): static pasture
# * (endo_jun13): dynamic pasture
cfg$gms$past <- "endo_jun13" # def = endo_jun13
# * Factor requirements (USD04 per ton DM)
cfg$gms$s31_fac_req_past <- 1 # def = 1
# * switch for unequal (1) or equal (0) sign in pasture production constraint q31_prod.
# * unequal means that pasture production can be lower than pasture area x pasture yield,
# * reflecting that not all pasture area is grazed.
cfg$gms$s31_unequal <- 1 # def = 1
# ***--------------------- 32_forestry -----------------------------------
# * (dynamic_feb21): Dynamic forestry sector including afforestation with detailed age-classes
cfg$gms$forestry <- "dynamic_feb21" # def = dynamic_feb21
# * afforestation planing horizon (years)
cfg$gms$s32_planing_horizon <- 50 # def = 50
# * Settings for CO2 price driven afforestation (Growth curve and BII)
# * Growth curve for CO2 price driven afforestation
# * Switch for using natural vegetation (0) or plantation (1) growth curves towards LPJmL natural
# * vegetation carbon density.
# * Afforestation following plantation growth curves reflects managed or assistent regrowth,
# * and might also include non-native species.
cfg$gms$s32_aff_plantation <- 0 # def = 0
# * BII coefficient for CO2 price driven afforestation
# * Switch for using secondary vegetation (0) or timber (1) BII coefficients for CO2 price driven afforestation
# * The recommend setting is to map the BII coefficient to the choice of the growth curve.
# * natural vegetation growth curve (0): secondary vegetation BII coefficient (0)
# * plantation growth curve (1): timber BII coefficient (1)
# * However, afforestation with plantations (1) could possibly be done in a biodiversity friendly way (0)
cfg$gms$s32_aff_bii_coeff <- 0 # def = 0
# Afforestation policy
# * ("none"): no prescribed afforestation
# * ("npi"): prescribed afforestation based on NPI policies
# * ("ndc"): prescribed afforestation based on NPI+NDC policies
cfg$gms$c32_aff_policy <- "npi" # def = "npi"
# maximum total global afforestation in Mha (Inf = no constraint)
cfg$gms$s32_max_aff_area <- Inf # def = Inf
# Type of afforestation constraint
cfg$gms$c32_max_aff_area <- "global" # def = global
# * ("global"): global sets a global limit according to s32_max_aff_area
# * ("regional"): regional sets a regional limit, based on the input file "f32_max_aff_area.cs4"
# Switch to determine whether afforestation should be limited to
# certain latitudinal zones
# * ("unrestricted"): No regions excluded
# * ("noboreal"): Exclude boreal regions > 50deg N
# * ("onlytropical"): Afforestation only in tropical areas 20deg S-20deg N
cfg$gms$c32_aff_mask <- "noboreal" # def = "noboreal"
# Switch to determine whether biogeophysical responses to
# afforestation should be considered
# If this endogenous bgp effect is considered it is adviced to use the
# unrestricted afforestation mask
# to avoid superimposing the additional exogeneous bgp implementation
# * ("nobgp"): No biogeophysical influences
# * ("ann"): Annual BGP
# * ("djf"): Boreal winter BGP December January February
# * ("jja"): Boreal summer BGP June July August
cfg$gms$c32_aff_bgp <- "nobgp" # def = "nobgp"
# Switch for the different TCRE estimates which are used to
# translate the BGP temperature effect into their carbon equivalent.
# The estimates encompass the ensemble mean +/- SD of 20 CMIP5 models.
# Ceq ~ BGP/TCRE - Hence, high TCRE decreases the BGP effect.
# * ("ann_TCREmean"): Ensemble mean
# * ("ann_TCREhigh"): Ensemble mean + SD
# * ("ann_TCRElow"): Ensemble mean - SD
cfg$gms$c32_tcre_ctrl <- "ann_TCREmean"
# Switch for dynamic timber plantations
# "off" means that timber plantations are initialized in the highest
# age class and that there is no regrowth seen in such plantations.
# In addition, timber plantations are fixed to 1995 levels in the "off" case.
# In other cases, age-classes in timber plantations are initialized based on
# rotation length and can change dynamically over time.
# Note that this switch has no effect in the "static_sep16" realization,
# in which forestry area is assumed static.
# * 0= off
# * 1= Equal distribution
# * 2= FAO distribution based on planted forest estimates 2006
# * 3= Poulter distribution
# * 4= Manual distribution - Similar to equal distribution but higher weight on
# * younger age-classes as plantation areas increase strongly
# * in recent history (ca. >1990).
cfg$gms$s32_initial_distribution <- 0 # def = 0
# Switch fore regional or global interest rate for rotation length calculations.
# Using the global setting would mean that the timber plantation decisions are
# decoupled from other decisions in the model which are based on regional interest
# rates.
# * ("regional") = Regionally differentiated interest rates
# * ("global") = One global interest rate
cfg$gms$c32_interest_rate <- "regional" # def = "regional"
# Global interest rate for plantations in case c32_interest_rate switch is global
# Accepted values between 0 and 1.
cfg$gms$s32_forestry_int_rate <- 0.05 # def = 0.05
# Scenarios for using FAO scenarios of future proportion of production coming from
# Timber plantations used for deciding how much establishment should be made in
# simulation time step. This setting is only used when s32_hvarea is set to 2 ("Endogenous")
# * ("abare") = Global outlook for plantations. Australian Bureau of Agriculture and Resource Economics (ABARE) and Jaakko Pöyry Consulting 1999
# * ("brown") = The global outlook for future wood supply from forest plantations. Working paper GFPOS/WP/03 prepared for the 1999 Global Forest Products Outlook Study 1999
cfg$gms$c32_dev_scen <- "abare" # def = "abare"
# Scenarios for future development of timber production contribution to roundwood demand
# based on the settings from c32_dev_scen.
# * ("constant") = Constant share over time (1995-2250)
# * ("h5s5l5") = In every time step 5% increase from 1995 till 2020, 5% increase from 2025 till 2050, 5% increase from 2055 till 2250
# * ("h5s2l2") = In every time step 5% increase from 1995 till 2020, 2% increase from 2025 till 2050, 2% increase from 2055 till 2250
# * ("h5s2l1") = In every time step 5% increase from 1995 till 2020, 2% increase from 2025 till 2050, 1% increase from 2055 till 2250
# * ("h5s1l1") = In every time step 5% increase from 1995 till 2020, 1% increase from 2025 till 2050, 1% increase from 2055 till 2250
# * ("h5s1l05") = In every time step 5% increase from 1995 till 2020, 1% increase from 2025 till 2050, 0.5% increase from 2055 till 2250
# * ("h2s1l05") = In every time step 2% increase from 1995 till 2020, 1% increase from 2025 till 2050, 0.5% increase from 2055 till 2250
cfg$gms$c32_incr_rate <- "h5s2l1" # def = "h5s2l1"
# Harvesting switch for timber production
# * 0 = No harvested area from plantations, no age-class shifting (area held constant at 1995 levels)
# * This also means that no harvesting or establishment of new plantations takes place.
# * 1 = "Exogenous" scenario. Harvested area from plantations but with age-class shifting
# * All timber plantations are harvested at rotation age and are re-established
# * such that the total plantation area remains constant.
# * 2 = "Endogenous" scenario. Harvest from plantations including age-class shifting
# * All plantations are harvested at rotation age. Plantation establishment is endogenous.
cfg$gms$s32_hvarea = 0 # def = 0
# Type of rotation length selection criteria
# * ("mean_annual_increment") = Harvesting when the average annual increment is maximum
# * ("current_annual_increment") = Harvesting when the marginal increment is maximum
# * ("instantaneous_growth_rate") = Harvest when instantaneous growth rate is equal to interest rate
cfg$gms$c32_rot_calc_type = "current_annual_increment"
# ***--------------------- 34_urban ---------------------------------------
# * 34_urban includes urban land
# * (static) static urban land fixed on 1995 patterns from LUH2v2
# * (exo_nov21) has exogenous future urban land patterns based on LUH2v2
cfg$gms$urban <- "exo_nov21" # def = exo_nov21
# ***--------------------- 35_natveg --------------------------------------
# * 35_natveg includes primforest, secdforest and other land
# * (dynamic_feb21): Dynamic natural vegetation land with detailed age-classes
cfg$gms$natveg <- "dynamic_feb21" # def = dynamic_feb21
# Land protection policies (primforest,secdforest,other land)
# * (WDPA) WDPA IUCN catI+II
# * (BH) Biodiversity Hotspots + WDPA
# * (FF) Frontier Forests + WDPA
# * (FF_BH) Frontier Forests + Biodiversity Hotspots + WDPA
# * (CPD) Centres of Plant Diversity + WDPA
# * (LW) last of the wild + WDPA
# * (HalfEarth) protection of half land and sea
# * (PrimForest) primforest
# * (SecdForest) secdforest
# * (Forest) primforest+secdforest
# * (Forest_Other) primforest+secdforest+other
# Note: c35_protect_scenario applies to countries selected in policy_countries35
# c35_protect_scenario_noselect applies to all other countries.
cfg$gms$c35_protect_scenario <- "WDPA" # def = WDPA
cfg$gms$c35_protect_scenario_noselect <- "WDPA" # def = WDPA
# * Switch and specification of countries for which land protection policies in
# * c35_protect_scenario apply.
# * Options: list of iso-codes of countries where land protection should be applied
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$policy_countries35 <- all_iso_countries
# * Fade-in of land protection policy ('c35_protect_scenario').
# * Note that all land protection policies assume WDPA area protection until 2020
# * ("by2030"): Full implementation is reached by 2030
# * ("by2050"): Full implementation is reached by 2050
cfg$gms$c35_protect_fadein <- "by2030" # def = by2030
# Avoided Deforestation policy
# * ("none"): no avoided deforestation
# * ("npi"): avoided deforestation based on NPI policies
# * ("ndc"): avoided deforestation based on NPI+NDC policies
cfg$gms$c35_ad_policy <- "npi" # def = "npi"
# Avoided Other Land Conversion policye
# * ("none"): no avoided other land conversion
# * ("npi"): avoided other land conversion based on NPI policies
# * ("ndc"): avoided other land conversion based on NPI+NDC policies
cfg$gms$c35_aolc_policy <- "npi" # def = "npi"
# Distribution of age-classes during secondary forest initialization
# * (0): All secondary forest belongs to highest age class
# * (1): Equal distribution of secondary forest in all age-classes
# * (2): Distribution of secondary forest according to Poulter et al 2018 based on MODIS satellite data
cfg$gms$s35_secdf_distribution <- 0 # def = 0
# Damages in natural forests
# * (0): No damage simulated
# * (1): Damage from shifting agriculture (constant)
# * (2): Damage from shifting agriculture is faded out by the year defined in 'cfg$gms$c35_forest_damage_end'
cfg$gms$s35_forest_damage <- 2 # def = 2
# * If option (2) above: Year by which damage from shifting agriculture has petered out
# * ("by2030"): No clearance by shifting agriculture after 2030
# * ("by2050"): No clearance by shifting agriculture after 2050
cfg$gms$c35_forest_damage_end <- "by2050" # def = "by2050"
# Harvesting switch for timber production
# * 0 = No timber production from natveg, no age-class shifting
# * 1 = No timber production from natveg but with age-class shifting
# * 2 = Timber production from natveg including age-class shifting
cfg$gms$s35_hvarea = 0 # def = 0
# ***--------------------- 37_labor_prod ---------------------------------
# * This module provides a labour productivity factor (0-1),
# * which reflects the efficiency of labour under changing environmental conditions (1 = no change).
# * The labour productivity factor is currently only considered in the sticky_labour
# * realization of the [38_factor_costs] module.
# * (off): labour productivity factor fixed to 1
# * (exo): labour productivity factor is affected by climate change impacts
cfg$gms$labor_prod <- "off" # default = off
# * Additional setting for exo realization only:
# * Climate change impact scenario. Options: "rcp119", "rcp585"
cfg$gms$c37_labor_rcp <- "rcp119" # default = "rcp119"
# * Heat assessment metric. Options: "ISO", "HOTHAPS"
cfg$gms$c37_labor_metric <- "ISO" # default = "ISO"
# * Labour intensity. Options: "300W", "400W"
cfg$gms$c37_labor_intensity <- "400W" # default = "400W"
# * Uncertainty over ESMs. Options: "enslower", "ensmean", "ensupper"
cfg$gms$c37_labor_uncertainty <- "ensmean" # default = "ensmean"
# ***--------------------- 38_factor_costs -------------------------------
# * Make sure you use the corresponding calibration file to the selected realization
# * Please, check details in input settings.
# * (fixed_per_ton_mar18): factor costs fixed per ton
# * (mixed_feb17): reimplementation of MAgPIE 3.0 default
# * (sticky_feb18) factor costs including investments in capital
# * (sticky_labor) based on sticky_feb18 + labor productivity factor included
cfg$gms$factor_costs <- "sticky_feb18" # default = sticky_feb18
# * additional settings for sticky realization only:
# * (dynamic): capital shares depend on each regions GDP in each time step
# * (free): capital shares are assumed to be equal to zero which turns sticky
# * into the fixed_per_ton_mar18 realization with factor requirements
# * calculated with FAO and USDA data.
cfg$gms$c38_sticky_mode <- "free" # default = free
# ***--------------------- 39_landconversion -----------------------------
# * (calib): Costs for cropland expansion are scaled with a regional calibration factor
# * Costs for pasture and forestry expansion are global static
cfg$gms$landconversion <- "calib" # def = calib
# * Cost for cropland expansion before calibration (USD05MER per hectare)
cfg$gms$s39_cost_establish_crop <- 10000 #def = 10000
# * Share of cropland expansion cost used as reward for cropland reduction in calibration (1)
cfg$gms$s39_reward_shr <- 0.66
# * Cost for pasture land expansion (USD05MER per hectare)
cfg$gms$s39_cost_establish_past <- 8000 #def = 8000
# * Cost for foresty land expansion (USD05MER per hectare)
cfg$gms$s39_cost_establish_forestry <- 1000 #def = 1000
# * Cost for urban land expansion (USD05MER per hectare)
cfg$gms$s39_cost_establish_urban <- 10000 #def = 10000
# * Switch for ignoring land conversion cost calibration factors
# * Options: 0 (ignore calibration factors)
# * 1 (use calibration factors)
cfg$gms$s39_ignore_calib <- 0 #def = 0
# ***--------------------- 40_transport ----------------------------------
# * (off): no transport costs
# * (gtap_nov12): transport costs applied to crops and ruminant livestock
# * products calibrated based on magpie-output (dynamic pasture)
# * to match GTAP data
cfg$gms$transport <- "gtap_nov12" # def = gtap_nov12
# * scalar to introduce pasture transport costs
cfg$gms$s40_pasture_transport_costs <- 0 # def = 0
# ***--------------------- 41_area_equipped_for_irrigation ---------------
# * (static): no expansion
# * (endo_apr13): endogenous, cost driven expansion
cfg$gms$area_equipped_for_irrigation <- "endo_apr13" # def = endo_apr13
# * switch for initialization area
# * (LUH2v2): area equipped for irrigation based on LUH2v2
# * (Siebert): area equipped for irrigation from Siebert et al.
cfg$gms$c41_initial_irrigation_area <- "LUH2v2" # def = LUH2v2
# * Sets the rate of depreciation of irrigation infrastructure in every timestep.
# * Only applicable when (endo_apr13) realization is selected
cfg$gms$s41_AEI_depreciation <- 0 # def = 0
# ***--------------------- 42_water_demand --------------------------------
# * (agr_sector_aug13): fixed fraction of water available is reserved
# * for other uses
# * (all_sectors_aug13): industrial, electricity and domestic demand are
# * retrieved from WATERGAP data.
cfg$gms$water_demand<- "all_sectors_aug13" # def = all_sectors_aug13
# * water demand scenario
# * options: cc (climate change)
# * nocc (no climate change)
# * nocc_hist (no climate change after year defined by sm_fix_cc)
cfg$gms$c42_watdem_scenario <- "cc" # def = "cc"
# * Choice of fraction of available water that is not
# * available for agriculture (only affects agr_sector_aug13 realization)
cfg$gms$s42_reserved_fraction <- 0.5 # def = 0.5
# * Scenario for non agricultural water demand from WATERGAP
# * (only affects all_sector_aug13 realization)
# * (1): SSP2
# * (2): A2
# * (3): B1
cfg$gms$s42_watdem_nonagr_scenario <- 1 # def = 1
# * Switch to determine the irrigation efficiency scenario
# * (1): global static value
# * (2): regional static values from gdp regression
# * (3): gdp driven increase
cfg$gms$s42_irrig_eff_scenario <- 2 # def = 2
# * Irrigation efficiency
# * (Only used if global static value is requested)
cfg$gms$s42_irrigation_efficiency <- 0.66 # def=0.66
# * Environmental flow protection policy
# * (off): no EFP policy
# * (on): global EFP policy
# * (mixed): EFP policy only in hic regions
cfg$gms$c42_env_flow_policy <- "off" # def = "off"
# * Switch and specification of countries for which environmental flow policy
# * shall apply.
# * Options: list of iso-codes of countries where EFP should be in effect.
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$EFP_countries <- all_iso_countries # def = all_iso_countries
# * Environmental flow protection scenario
# * (0): do not consider environmental flows.
# * s42_env_flow_base_fraction and
# * s42_env_flow_fraction have no effect.
# * (1): Reserve a certain fraction of available water
# * specified by s42_env_flow_fraction for
# * environmental flows
# * (2): Each grid cell receives its own value for
# * environmental flow protection based on LPJ
# * results and a calculation algorithm by Smakhtin 2004.
# * s42_env_flow_fraction has no effect.
cfg$gms$s42_env_flow_scenario <- 2 # def = 2
# * Fraction of available water that is reserved for the environment
# * in case of a protection policy
# * In which regions and timesteps a protection policy is in place is determined
# * in the file EFR_protection_policy.csv in the input folder
# * of the 42_water_demand module
cfg$gms$s42_env_flow_fraction <- 0.2 # def = 0.2
# * Fraction of available water that is reserved for the environment in case of
# * missing protection policy
cfg$gms$s42_env_flow_base_fraction <- 0.05 # def = 0.05
# ***--------------------- 43_water_availability --------------------------
# * (total_water_aug13): surface and ground water resources available
cfg$gms$water_availability <- "total_water_aug13" # def = total_water_aug13
# * water availability scenario
# * options: cc (climate change)
# * nocc (no climate change)
# * nocc_hist (no climate change after year defined by sm_fix_cc)
cfg$gms$c43_watavail_scenario <- "cc" # def = "cc"
# ***------------------------- 44_biodiversity ------------------------------
# * (bv_btc_mar21): biodiversity value (BV) calculation following the Bending the Curve initiative (BTC) and incentive to increase BV based on price on BV loss.
cfg$gms$biodiversity <- "bv_btc_mar21" # def = bv_btc_mar21
# * Price on loss of biodiversity / reward for increase of biodiversity
# * Unit: USD per ha of biodiversity value loss
# * Options: p0, p1, p1_p10, p10, p10_p100, p1_p1000, p10_p10000
# * Pattern: p<price in year 2020>_p<price in year 2100> in USD, while
# * the price path between the starting and end points follows a sigmaoid trajectory.
cfg$gms$c44_price_bv_loss <- "p0" # def = "p0";
# ***------------------------- 45_climate ---------------------------------
# * (static): static koeppengeiger climate classification data
cfg$gms$climate <- "static" # def = static
# ***------------------------- 50_nr_soil_budget --------------------------
# * (off): off
# * (exoeff_aug16): exogenous nr efficiency
cfg$gms$nr_soil_budget <- "exoeff_aug16" # def = exoeff_aug16
# * Scenario for nr efficiency on croplands or pastures for selected (and
# * respectively non-selected) countries in cropneff_countries and pastneff_countries
# * Scenario name are composed as follows: first number is the nitrogen uptake efficiency
# * (NUE) by 2050, second number is the NUE by 2100, startyear describes
# * the year when historical values end. Zhang et al 2015 describes regional maximum
# * values.
# * Options: constant, neff_ZhangBy2030_start2010, neff_ZhangBy2050_start2010,
# * neff55_55_starty1990,neff60_60_starty1990,neff65_70_starty1990,
# * neff65_70_starty2010,neff60_60_starty2010,neff55_60_starty2010,
# * neff70_75_starty2010,neff75_80_starty2010,neff80_85_starty2010
# * neff85_85_starty2010
cfg$gms$c50_scen_neff <- "neff60_60_starty2010" # def = neff60_60_starty2010
cfg$gms$c50_scen_neff_noselect <- "neff60_60_starty2010" # def = neff60_60_starty2010
# * Options: constant, neff_ZhangBy2030_start2010, neff_ZhangBy2050_start2010,
# * neff55_55_starty1990,neff60_60_starty1990,neff65_70_starty1990,
# * neff65_70_starty2010,neff60_60_starty2010,neff55_60_starty2010,
# * neff70_75_starty2010,neff75_80_starty2010,neff80_85_starty2010
cfg$gms$c50_scen_neff_pasture <- "constant" # def = constant
cfg$gms$c50_scen_neff_pasture_noselect <- "constant" # def = constant
# * Switch and specification of countries for which above defined (c50_scen_neff,
# * c50_scen_neff_pasture) apply, respectively.
# * For all other countries c50_scen_neff_noselect / c50_scen_neff_pasture_noselect
# * apply.
# * Options: list of iso-codes of countries where selected neff scenario should
# * be in effect.
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: above defined neff scenario applies to all iso countries
cfg$gms$cropneff_countries <- all_iso_countries
cfg$gms$pastneff_countries <- all_iso_countries
# ***--------------------- 51_nitrogen ------------------------------------
# * (ipcc2006_sep16): IPCC based nitrogen implementation
# * (rescaled_jan21): IPCC emissions factors rescaled with efficiency
# * (off): no nitrogen calculations
cfg$gms$nitrogen <- "ipcc2006_sep16" # def = ipcc2006_sep16
# ***--------------------- 52_carbon --------------------------------------
# * (normal_dec17): regrowth of carbon stocks in all c pools starts from pasture levels
# * (off): carbon calculations deactivated
cfg$gms$carbon <- "normal_dec17" # def = normal_dec17
# * carbon scenario
# * options: cc (climate change)
# * nocc (no climate change)
# * nocc_hist (no climate change after year defined by sm_fix_cc)
cfg$gms$c52_carbon_scenario <- "cc" # def = "cc"
# * Minimum threshold of carbon density (tC/ha) in timber plantations
cfg$gms$s52_plantation_threshold <- 8 # def = 8
# ***--------------------- 53_methane -------------------------------------
# * (ipcc2006_flexreg_apr16): IPCC 1996 methodology
# * (off): methane calculations deactivated
cfg$gms$methane <- "ipcc2006_flexreg_apr16" # def = ipcc2006_flexreg_apr16
# ***--------------------- 54_phosphorus ----------------------------------
# * (off): calculations deactivated
cfg$gms$phosphorus <- "off" # def = off
# ***--------------------- 55_awms ---------------------------------------
# * (ipcc2006_aug16): animal waste management systems
# * (based on IPCC 2006 Guidelines)
# * (off): deactivated animal waste management
cfg$gms$awms <- "ipcc2006_aug16" # def = ipcc2006_aug16
# * scenario for animal waste management.
# * option: "ssp1", "ssp2", "ssp3", "ssp4", "ssp5", "constant", "a1", "a2", "b1","b2",
#* "GoodPractice"
# * Note: c55_scen_conf applies to countries selected in scen_countries55
# * c55_scen_conf_noselect applies to all other countries.
# * Available scenarios for c55_scen_conf_noselect are identical to c55_scen_conf
cfg$gms$c55_scen_conf <- "ssp2" # def = ssp2
cfg$gms$c55_scen_conf_noselect <- "ssp2" # def = ssp2
# * Switch and specification of countries for which awm scenario in
# * c55_scen_conf applies.
# * Options: list of iso-codes of countries where awm scneario should be applied
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$scen_countries55 <- all_iso_countries
# ***--------------------- 56_ghg_policy ----------------------------------
# * (price_jan20): applies pollutant prices to different emission types and calculates the reward for CDR from afforestation
cfg$gms$ghg_policy <- "price_jan20" # def = price_jan20
# * Switch for scaling GHG price with development state (1=on 0=off)
cfg$gms$s56_ghgprice_devstate_scaling <- 0 # def = 0
# * Switch for phasing-in GHG price over a 20 year period (1=on 0=off)
cfg$gms$s56_ghgprice_phase_in <- 0 # def = 0
# * start year of GHG emission pricing phase-in (only used if s56_ghgprice_phase_in=1)
cfg$gms$s56_ghgprice_start <- 2025 # def = 2025
# * reduction factor for CO2 price (only used in price_jan19)
# * lowers the economic incentive for CO2 emission reduction (avoided deforestation) and afforestation
cfg$gms$s56_cprice_red_factor <- 1 # def = 1
# * GHG emission price scenario
# * Note: For best consistency it is recommended to use trajectories from the most recent
# * coupled REMIND-MAgPIE runs. Currently, this is R21M42.
# * Note on available scenarios from coupled REMIND-MAgPIE runs
# * NPi: Current policies; above 3.0°C in 2100
# * PkBudg900: Budget with 900 GtCO2; well-below 1.5°C in 2100 (PkBudg1000 for SDP)
# * PkBudg1300: Budget with 1300 GtCO2; well-below 2.0°C in 2100
# *
# * Available scenarios:
# * Coupled REMIND-MAgPIE runs
# * R21M42-SDP-NPi, R21M42-SDP-PkBudg1000, R21M42-SDP-PkBudg1100, R21M42-SDP-PkBudg900,
# * R21M42-SSP1-NPi, R21M42-SSP1-PkBudg1100, R21M42-SSP1-PkBudg1300, R21M42-SSP1-PkBudg900,
# * R21M42-SSP2-NPi, R21M42-SSP2-PkBudg1100, R21M42-SSP2-PkBudg1300, R21M42-SSP2-PkBudg900,
# * R21M42-SSP5-NPi, R21M42-SSP5-PkBudg1100, R21M42-SSP5-PkBudg1300, R21M42-SSP5-PkBudg900,
# * R2M41-SSP2-NPi, R2M41-SSP2-NDC, R2M41-SSP2-Budg1300, R2M41-SSP2-Budg600, R2M41-SSP2-Budg950
# * Standalone REMIND runs from Strefler et al 2021; well-below 2.0°C in 2100
# * https://www.nature.com/articles/s41467-021-22211-2
# * PIK_GDP, PIK_H2C, PIK_HBL, PIK_HOS, PIK_LIN, PIK_NPI, PIK_OPT
# * SSP Database 2018, various SSP, RCP and Model combinations
# * https://tntcat.iiasa.ac.at/SspDb
# * Caution: using trajectories from other models or older MAgPIE versions might be
# * inconsistent with the current MAgPIE version.
# * SSPDB-SSP1-20-IMAGE,SSPDB-SSP1-20-REMIND-MAGPIE,
# * SSPDB-SSP1-26-IMAGE,SSPDB-SSP1-26-REMIND-MAGPIE,
# * SSPDB-SSP1-34-IMAGE,SSPDB-SSP1-34-REMIND-MAGPIE,
# * SSPDB-SSP1-37-REMIND-MAGPIE,
# * SSPDB-SSP1-45-IMAGE,SSPDB-SSP1-45-REMIND-MAGPIE,
# * SSPDB-SSP1-Ref-IMAGE,SSPDB-SSP1-Ref-REMIND-MAGPIE,
# * SSPDB-SSP2-18-MESSAGE-GLOBIOM,SSPDB-SSP2-19-MESSAGE-GLOBIOM,
# * SSPDB-SSP2-20-MESSAGE-GLOBIOM,SSPDB-SSP2-20-REMIND-MAGPIE,
# * SSPDB-SSP2-26-MESSAGE-GLOBIOM,SSPDB-SSP2-26-REMIND-MAGPIE,
# * SSPDB-SSP2-34-MESSAGE-GLOBIOM,SSPDB-SSP2-34-REMIND-MAGPIE,
# * SSPDB-SSP2-37-REMIND-MAGPIE,
# * SSPDB-SSP2-45-MESSAGE-GLOBIOM,SSPDB-SSP2-45-REMIND-MAGPIE,
# * SSPDB-SSP2-60-MESSAGE-GLOBIOM,SSPDB-SSP2-60-REMIND-MAGPIE,
# * SSPDB-SSP2-Ref-MESSAGE-GLOBIOM,SSPDB-SSP2-Ref-REMIND-MAGPIE,
# * SSPDB-SSP3-34-AIM-CGE,SSPDB-SSP3-45-AIM-CGE,
# * SSPDB-SSP3-60-AIM-CGE,SSPDB-SSP4-26-GCAM4,
# * SSPDB-SSP4-34-GCAM4,SSPDB-SSP4-45-GCAM4,
# * SSPDB-SSP4-60-GCAM4,SSPDB-SSP4-Ref-GCAM4,
# * SSPDB-SSP5-20-REMIND-MAGPIE,SSPDB-SSP5-26-REMIND-MAGPIE,
# * SSPDB-SSP5-34-REMIND-MAGPIE,SSPDB-SSP5-37-REMIND-MAGPIE,
# * SSPDB-SSP5-45-REMIND-MAGPIE,SSPDB-SSP5-60-REMIND-MAGPIE,
# * SSPDB-SSP5-Ref-REMIND-MAGPIE,
# * Used for producing coupled runs with REMIND-MAgPIE or for exogenous input (see below)
# * coupling
# * Note: c56_pollutant_prices applies to countries selected in policy_countries56
# * c56_pollutant_prices_noselect applies to all other countries.
# * Available scenarios for c56_pollutant_prices_noselect are identical to c56_pollutant_prices
# * (see above) except for emulator and coupling (which can only be chosen for c56_pollutant_prices)
cfg$gms$c56_pollutant_prices <- "R21M42-SSP2-NPi" # def = R21M42-SSP2-NPi
cfg$gms$c56_pollutant_prices_noselect <- "R21M42-SSP2-NPi" # def = R21M42-SSP2-NPi
# * The following two settings can be used to provide exogenous ghg prices
# * via a file that is not part of the input data. This is currently used
# * in the REMIND-MAgPIE coupling to read in the REMIND data.
# * Takes effect only if cfg$gms$c56_pollutant_prices is set to "coupling"
# * Use ghg prices from the mif file specified here
cfg$path_to_report_ghgprices <- NA
# * Set GHG prices from the exogenous file (see above) to zero until (and including) the year given here
cfg$mute_ghgprices_until <- "y2010"
# * Switch and specification of countries for which pollutant pricing in
# * c56_pollutant_prices applies.
# * Options: list of iso-codes of countries where ghg policy should be applied
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
# * Note: Only for exogenous scenarios. Does not take any effect when "coupling" /
# * "emulator" is selected above.
cfg$gms$policy_countries56 <- all_iso_countries
# * Switch for C price driven afforestation (1=on 0=off)
cfg$gms$s56_c_price_induced_aff <- 1
# * C price expectation for afforestation decision-making in years
# * 0 is myopic behaviour (only C price of current time step)
# * reflects perfect-foresight if equal to s32_planing_horizon
# * should not be higher than s32_planing_horizon
cfg$gms$s56_c_price_exp_aff <- 50 # def = 50
# * share of carbon credits for afforestation projects pooled in a buffer
# * Values > 0 will reduced the incentive for c price induced afforestation
# * a plausible value is 0.2, based on the Gold Standard for afforestation projects
cfg$gms$s56_buffer_aff <- 0.2 # def = 0.2
# * Upper limit for CH4 and N2O GHG price (USD05MER per tC)
# * Limits GHG prices selected in c56_pollutant_prices to the chosen value.
# * CH4 and N2O GHG prices are limited by default to 1000 USD05MER per tC equivalent,
# * which induces the maximum abatement possible in the 57_maccs module.
# * Beyond 1000 USD05MER per tC equivalent no further technical mitigation is possible
# * but would increase food prices.
cfg$gms$s56_limit_ch4_n2o_price <- 1000 # def = 1000
# * emission policies
# * options: none, redd_nosoil, redd+_nosoil, redd+natveg_nosoil, all, all_nosoil, maccs_excl_cropland_n2o
# * none: Not including any GHG sources
# * redd_nosoil: Above ground CO2 emis from LUC in forest; all CH4 and N2O emissions
# * redd+_nosoil: Above ground CO2 emis from LUC in forest and forestry; all CH4 and N2O emissions
# * redd+natveg_nosoil: Above ground CO2 emis from LUC in forest, forestry and natveg; all CH4 and N2O emissions
# * all: CO2 emis from LUC in all LUs; all CH4 and N2O emissions
# * all_nosoil: Above ground CO2 emis from LUC for all LUs; all CH4 and N2O emissions
# * maccs_excl_cropland_n2o: Above ground CO2 emis from all LUC; all CH4 emissions and animal-sourced N2O
cfg$gms$c56_emis_policy <- "redd+natveg_nosoil" # def = redd+natveg_nosoil
# * Treatment of negative costs originating from negative co2 emissions
# * reward negative co2 emissions (-Inf) or not (0)
# * s56_reward_neg_emis is applied on the emission policy chosen in c56_emis_policy
# * In case of carbon pricing s56_reward_neg_emis = -Inf results in increase of other land
# * For runs with afforestation s56_reward_neg_emis should be 0 (default setting)
cfg$gms$s56_reward_neg_emis <- 0 # def = 0
# * Peatland GHG emission pricing
# * 0=off
# * 1=on
cfg$gms$s56_peatland_policy <- 1 # def = 1
# ***--------------------- 57_maccs ---------------------------------------
# * (on_sep16): maccs for non-CO2 emission mitigation activated
# * (off_jul16): maccs for non-CO2 emission mitigation deactivated
cfg$gms$maccs <- "on_sep16" # def = on_sep16
# * Version of MACCs
# * options: PBL_2007, PBL_2019
cfg$gms$c57_macc_version <- "PBL_2007" # def = PBL_2007
# ***--------------------- 58_peatland ------------------------------------
# * (off): Peatland area and associated GHG emissions are assumed zero
# * (on): Peatland area is initialized with present-day degraded and intact peatland.
# * GHG emissions are calculated using IPCC Tier 1 emission factors (2013 Wetland supplement).
cfg$gms$peatland <- "on" # def = on
# * peatland rewetting
# * options: 0 (off)
# * Inf (on)
cfg$gms$s58_rewetting_switch <- Inf # def = Inf
# * One-time and recurring costs for peatland rewetting (USD05MER per ha)
cfg$gms$s58_rewet_cost_onetime <- 7000 # def = 7000
cfg$gms$s58_rewet_cost_recur <- 200 # def = 200
# * One-time and recurring costs for peatland degradation (USD05MER per ha)
# * Can be used to test area-based incentives for peatland protection and restoration,
# * complementary or in addition to pricing GHG emissions from degraded peatlands (see s56_peatland_policy).
# * One-time costs apply on the conversion of intact (and rewetted) peatland to degraded peatland.
# * Therefore, one-time costs can used to incentivize the protection of intact peatlands.
# * Recurring costs apply on the level of degraded peatland. Therefore, recurring costs,
# * in combination with one-time costs, can be used to incentivize peatland restoration.
cfg$gms$s58_degrad_cost_onetime <- 0 # def = 0
cfg$gms$s58_degrad_cost_recur <- 0 # def = 0
# * Artificial cost for balance variables (USD05MER per ha)
# * The balance variables in the peatland module avoid infeasibilities due to
# * differences in accuracy between parameters and variables in GAMS.
# * High costs make sure that the balance variables are only used as a last resort.
cfg$gms$s58_cost_balance <- 1e+06 # def = 1e+06
# * Switch for fixing peatland area to 2015 levels from 1995 onwards until the given year
# * Note: The initial peatland area is only available for the year 2015.
# * Fixing the peatland area in previous time steps to 2015 levels provides a better
# * proxy for GHG emissions from peatlands than assuming no peatland area.
cfg$gms$s58_fix_peatland <- 2015 # def = 2015
# ***------------------------- 59_som -------------------------------------
# * (static_jan19): static soil carbon loss for cropland
# * (cellpool_aug16): dynamic soil organic matter pool on cellular level
cfg$gms$som <- "static_jan19" # def = off
# * static realization switch
# * options: cellular (use preprocessed cellular stock change factors)
# * cluster (use cshare_released on cluster within gams)
cfg$gms$c59_static_spatial_level <- "cellular"
# * cellpool realization switches
# * som climate impact scenario
# * options: cc (climate change)
# * nocc (no climate change)
# * nocc_hist (no climate change after year defined by sm_fix_cc)
cfg$gms$c59_som_scenario <- "cc" # def = "cc"
# * irrigation feedback
# * options: on (higher carbon sequestration under irrigation)
# * off (no carbon sequestration under irrigation)
cfg$gms$c59_irrigation_scenario <- "on" # def = "on"
# * Exogenous nr release through som loss (only in static realization)
# * options: constant (constant from 2020)
# * fadeout_2050 (fading out till 2050)
cfg$gms$c59_exo_scen <- "constant"
# ***--------------------- 60_bioenergy -----------------------------------
# * (1stgen_priced_dec18): exogenous and price-based 1st generation bioenergy
# * demand, 2nd generation residues exogeneous,
# * 2nd generation betr and begr coupled with REMIND.
cfg$gms$bioenergy <- "1stgen_priced_dec18" # def = 1stgen_priced_dec18
# * 1st generation bioenergy demand scenarios based on Lotze Campen (2014)
# * (phaseout2020): increase until 2020, followed by phaseout until 2050
# * (const2020): increase until 2020, constant thereafter
# * (const2030): increase until 2030, constant thereafter
cfg$gms$c60_1stgen_biodem <- "const2020" # def = const2020
# * 2nd generation bioenergy demand scenario
# * Note: For best consistency it is recommended to use trajectories from the most recent
# * coupled REMIND-MAgPIE runs. Currently, this is R21M42.
# * Note on available scenarios from coupled REMIND-MAgPIE runs
# * NPi: Current policies; above 3.0°C in 2100
# * PkBudg900: Budget with 900 GtCO2; well-below 1.5°C in 2100 (PkBudg1000 for SDP)
# * PkBudg1300: Budget with 1300 GtCO2; well-below 2.0°C in 2100
# *
# * Available scenarios:
# * Coupled REMIND-MAgPIE runs
# * R21M42-SDP-NPi, R21M42-SDP-PkBudg1000, R21M42-SDP-PkBudg1100, R21M42-SDP-PkBudg900,
# * R21M42-SSP1-NPi, R21M42-SSP1-PkBudg1100, R21M42-SSP1-PkBudg1300, R21M42-SSP1-PkBudg900,
# * R21M42-SSP2-NPi, R21M42-SSP2-PkBudg1100, R21M42-SSP2-PkBudg1300, R21M42-SSP2-PkBudg900,
# * R21M42-SSP5-NPi, R21M42-SSP5-PkBudg1100, R21M42-SSP5-PkBudg1300, R21M42-SSP5-PkBudg900,
# * R2M41-SSP2-NPi, R2M41-SSP2-NDC, R2M41-SSP2-Budg1300, R2M41-SSP2-Budg600, R2M41-SSP2-Budg950
# * Standalone REMIND runs from Strefler et al 2021; well-below 2.0°C in 2100
# * https://www.nature.com/articles/s41467-021-22211-2
# * PIK_GDP, PIK_H2C, PIK_HBL, PIK_HOS, PIK_LIN, PIK_NPI, PIK_OPT
# * SSP Database 2018, various SSP, RCP and Model combinations
# * https://tntcat.iiasa.ac.at/SspDb
# * Caution: using trajectories from other models or older MAgPIE versions might be
# * inconsistent with the current MAgPIE version.
# * SSPDB-SSP1-20-IMAGE,SSPDB-SSP1-20-REMIND-MAGPIE,
# * SSPDB-SSP1-26-IMAGE,SSPDB-SSP1-26-REMIND-MAGPIE,
# * SSPDB-SSP1-34-IMAGE,SSPDB-SSP1-34-REMIND-MAGPIE,
# * SSPDB-SSP1-37-REMIND-MAGPIE,
# * SSPDB-SSP1-45-IMAGE,SSPDB-SSP1-45-REMIND-MAGPIE,
# * SSPDB-SSP1-Ref-IMAGE,SSPDB-SSP1-Ref-REMIND-MAGPIE,
# * SSPDB-SSP2-18-MESSAGE-GLOBIOM,SSPDB-SSP2-19-MESSAGE-GLOBIOM,
# * SSPDB-SSP2-20-MESSAGE-GLOBIOM,SSPDB-SSP2-20-REMIND-MAGPIE,
# * SSPDB-SSP2-26-MESSAGE-GLOBIOM,SSPDB-SSP2-26-REMIND-MAGPIE,
# * SSPDB-SSP2-34-MESSAGE-GLOBIOM,SSPDB-SSP2-34-REMIND-MAGPIE,
# * SSPDB-SSP2-37-REMIND-MAGPIE,
# * SSPDB-SSP2-45-MESSAGE-GLOBIOM,SSPDB-SSP2-45-REMIND-MAGPIE,
# * SSPDB-SSP2-60-MESSAGE-GLOBIOM,SSPDB-SSP2-60-REMIND-MAGPIE,
# * SSPDB-SSP2-Ref-MESSAGE-GLOBIOM,SSPDB-SSP2-Ref-REMIND-MAGPIE,
# * SSPDB-SSP3-34-AIM-CGE,SSPDB-SSP3-45-AIM-CGE,
# * SSPDB-SSP3-60-AIM-CGE,SSPDB-SSP4-26-GCAM4,
# * SSPDB-SSP4-34-GCAM4,SSPDB-SSP4-45-GCAM4,
# * SSPDB-SSP4-60-GCAM4,SSPDB-SSP4-Ref-GCAM4,
# * SSPDB-SSP5-20-REMIND-MAGPIE,SSPDB-SSP5-26-REMIND-MAGPIE,
# * SSPDB-SSP5-34-REMIND-MAGPIE,SSPDB-SSP5-37-REMIND-MAGPIE,
# * SSPDB-SSP5-45-REMIND-MAGPIE,SSPDB-SSP5-60-REMIND-MAGPIE,
# * SSPDB-SSP5-Ref-REMIND-MAGPIE,
# * Used for producing coupled runs with REMIND-MAgPIE or for exogenous input (see below)
# * coupling
# * Note: c60_2ndgen_biodem applies to countries selected in scen_countries60
# * c60_2ndgen_biodem_noselect applies to all other countries.
cfg$gms$c60_2ndgen_biodem <- "R21M42-SSP2-NPi" # def = R21M42-SSP2-NPi
cfg$gms$c60_2ndgen_biodem_noselect <- "R21M42-SSP2-NPi" # def = R21M42-SSP2-NPi
# * The following setting can be used to provide exogenous bioenergy demand
# * via a .mif file that is not part of the input data. This is currently used
# * in the REMIND-MAgPIE coupling to read in the REMIND data.
# * Takes effect only if cfg$gms$c60_2ndgen_biodem is set to "coupling"
cfg$path_to_report_bioenergy <- NA
# * Switch and specification of countries for which 2nd gen bioenergy demand
# * scenario applies.
# * Options: list of iso-codes of countries where scenario should be applied
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
# * Note: Only for exogenous scenarios. Does not take any effect when "coupling" /
# * "emulator" selected.
cfg$gms$scen_countries60 <- all_iso_countries
# * residue demand for 2nd generation bioenergy scenarios
# * options: ssp1, ssp2, ssp3, ssp4, ssp5, off
cfg$gms$c60_res_2ndgenBE_dem <- "ssp2" # def = ssp2
# * bioenergy demand level
# * (1): regional
# * (0): global
cfg$gms$c60_biodem_level <- 1 # def = 1
# * Minimum dedicated 2nd generation bioenergy demand assumed in each region (mio. GJ per yr)
# * Without a minimum demand, there is the risk that some regions won't have a price for 2nd generation bioenergy.
# * Therefore, the minimum demand is of particular importance for the coupling with REMIND.
cfg$gms$s60_2ndgen_bioenergy_dem_min <- 1 # def = 1
# * first generation bioenergy subsidy (USD05MER per ton)
cfg$gms$c60_bioenergy_subsidy <- 300 # def = 300
# ***--------------------- 62_material ------------------------------------
# * (exo_flexreg_apr16): default
cfg$gms$material <- "exo_flexreg_apr16"
# ***--------------------- 70_livestock -----------------------------------
# * (fbask_jan16): default feed basket realization
cfg$gms$livestock <- "fbask_jan16" # def = fbask_jan16
# * feed scenario
# * options: ssp1, ssp2, ssp3, ssp4, ssp5, constant
cfg$gms$c70_feed_scen <- "ssp2" # def = ssp2
# * Feed substitution scenarios.
# * options consist of 3 parts: functional form (lin,sigmoid), target (zero, 20pc, 50pc, 80pc, 90pc) and transition period (10_50: from 2010 to 2050, 20_50: from 2020 to 2050)
# * Example for sigmoid_50pc_20_50:
# * Functional form: sigmoid (S-shaped)
# * Target: 50percent reduction at end of transition period (2050 in this case)
# * Transition period: start in 2020, end in 2050
# * options: constant,
# * lin_zero_10_50, lin_zero_20_50, lin_zero_20_30, lin_zero_20_70, lin_50pc_20_50, lin_50pc_20_50_extend65, lin_50pc_20_50_extend80,
# * lin_50pc_10_50_extend90, lin_75pc_10_50_extend90, lin_80pc_20_50, lin_80pc_20_50_extend95, lin_90pc_20_50_extend95,
# * lin_99-98-90pc_20_50-60-100, sigmoid_20pc_20_50, sigmoid_50pc_20_50, sigmoid_80pc_20_50
# * Cereal feed substituted by SCP
cfg$gms$c70_cereal_scp_scen <- "constant" # def = constant
# * Fooder feed substituted by SCP
cfg$gms$c70_foddr_scp_scen <- "constant" # def = constant
# ***--------------------- 71_disagg_lvst -----------------------------------
# * (off): default
# * (foragebased_aug18): Disaggregation of livestock to cells
# * with high pasture and fodder availability
cfg$gms$disagg_lvst <- "foragebased_aug18" # def = foragebased_aug18
# ***--------------------- 73_timber -----------------------------------
# * (default): Demand and production of timber products
cfg$gms$timber <- "default" # def = default
# Logical switch to turn on or off timber demand (wood and woodfuel).
# Note that "on" requires dynamic timber plantations (s32_hvarea=2 and s35_hvarea=2)
# for actual results.
# Vice-versa, in the "off" case, timber plantations should be static (s32_hvarea=0/1 and s35_hvarea=0/1)
# for a simplified representation of land demand for timber production from plantations
# (implicitly assuming the same rate for plantation harvest and establishment).
# * 1=on
# * 0=off
cfg$gms$s73_timber_demand_switch <- 0 # def = 0
# Setting to define if the model should be forward looking or not in terms of
# seeing the future demand for current timestep establishment of new plantations
# in the forward setting, the model sees only current demand for establishment
# decisions in the historical time period but then sees future demand for non
# historic time periods. In myopic setting, the model sees always the current
# timber demand for establishment decisions.
# * 1 = forward looking. Model sees future demand for establishment in current step
# * 0 = myopic. Model sees current demand for establishment in current step
cfg$gms$s73_foresight <- 0 # def = 0
# harvesting cost per ton of dry matter produced (USD/tDM)
s73_timber_prod_cost <- 2000 # def = 2000
# harvesting cost per ha of forests (USD/ha)
s73_timber_harvest_cost <- 2000 # def = 2000
# Cost multiplier for harvesting costs to make natural vegetation harvest expensive
# than timber plantation harvst. This provides a signal to the model to harvest
# timber plantations first.
s73_cost_multiplier <- 1.5 # def = 1.5
# Cost of production without using any land in case the model is running into infeasibilities.
# This is a last ditch effort for the model and the variable assocaited with this cost
# should not be used in a normally feasible model run (USD/tDM)
s73_free_prod_cost <- 1000000 # def = 1000000
# Switch for modifying woody biomass demand starting in 2035
# * ("default") = Default paper demand
# * ("nopaper") = Diminishing paper demand
# * ("construction") = Higher demand for construction wood in future
cfg$gms$c73_wood_scen <- "default" # def = "default"
# Building material demand
# * ("BAU") = Business as usual, only 0.5% of urban dwellers need timber buildings
# * ("10pc") = 10% of urban dwellers need timber buildings
# * ("50pc") = 50% of urban dwellers need timber buildings
# * ("90pc") = 90% of urban dwellers need timber buildings
cfg$gms$c73_build_demand <- "BAU" # def = "BAU"
# Linearized multiplier for scaling construction wood demand for easier demand
# scenario tests. The expansion factor is applied over next 80 years starting in
# 2020.
cfg$gms$s73_expansion <- 0 # def = 0
# ***------------------- 80_optimization ------------------------------------
# * (nlp_apr17): solve procedure solving the whole, nonlinear problem
# * at once
# * (lp_nlp_apr17): alternative approach in which the nonlinear terms are
# * fixed first so that the linear problem can be solved
# * before the full problem is solved
# * (nlp_par): Parallel optimization of regions. Allows to use higher
# * spatial resolution but works only with exogenous trade patterns
# * from a run with lower resolution solved with nlp_apr17.
# * Usage: add "extra/highres" as output script. This will start a
# * second model run with higher resolution.
# * Make sure that the cellular input file specified in
# * scripts/output/extra/highres.R exists.
# * See scripts/output/extra/highres.R for details.
cfg$gms$optimization <- "nlp_apr17" # def = nlp_apr17
# maximal number of solve iterations
cfg$gms$s80_maxiter <- 30
# * (conopt3): conopt3
# * (conopt4): conopt4
# * (conopt4+cplex): conopt4 followed by cplex with landdiff optimization
# * (conopt4+conopt3): conopt4 followed by conopt3
cfg$gms$c80_nlp_solver <- "conopt4" # def = conopt4
# number of allowed non-optimal variables
# Should be set to 0 for GAMS version 25.x.x or earlier
# Should be set to Inf for GAMS version 26.x.x or later
cfg$gms$s80_num_nonopt_allowed <- Inf
# * 1: using optfile for specified solver settings
# * 0: default settings (optfile will be ignored)
cfg$gms$s80_optfile <- 1
#*******************************END MODULE SETUP********************************
#### Other settings (e.g. clustering, gdx files, ...): ####
# Decide whether the runs should be run sequentially (TRUE),
# or in parallel (FALSE)
# NA means that this decision is taken automatically
# (typically on cluster = FALSE and locally = TRUE)
cfg$sequential <- NA
# Selection of QOS to be used for submitted runs on cluster.
# Will be ignored for all other runs.
# * options: short (24h max, no preemption)
# * short_maxMem (same as short but with 16 CPUs and max Memory)
# * medium (1 week max, no preemption)
# * priority (immediate start, but slots limited to 5 in parallel)
# * priority_maxMem (same as priority but with 16 CPUs and max Memory)
# * standby (1 week max, preemption possible)
# * standby_maxMem (same as standby but with 16 CPUs and max Memory)
# * NULL (educated guess of best option based
# * available resources)
cfg$qos <- NULL # def = NULL
# How should log information be treated?
# (0:no output, 2:write to full.log 3:show in console)
cfg$logoption <- 2
# Should output.R generate output?
# List of output scripts that should be used
# Available scripts can be found in scripts/output/
cfg$output <- c("output_check", "rds_report", "validation_short",
"extra/disaggregation")
# Set the format for the results folder
# :date: is a placeholder for the current time stamp (e.g. "results:date:")
# :title: is a placeholder for the current run title (cfg$title)
cfg$results_folder <- "output/:title::date:"
# Which files should be copied into the output folder?
cfg$files2export <- list()
# Files that should be copied before MAgPIE is started
cfg$files2export$start <- c("input/info.txt",
"input/avl_land_full_t_0.5.mz",
"modules/14_yields/input/lpj_yields_0.5.mz",
"modules/30_crop/endo_apr21/input/avl_cropland_0.5.mz",
"modules/50_nr_soil_budget/input/f50_NitrogenFixationRateNatural_0.5.mz",
"modules/50_nr_soil_budget/input/f50_AtmosphericDepositionRates_0.5.mz",
"input/f34_urbanland_0.5.mz",
"input/land_carbon_sink_adjust_grassi.mz",
"input/spatial_header.rda",
"scripts/run_submit/submit.R",
"scripts/run_submit/submit_*.sh",
".Rprofile",
"input/clustermap*.rds",
"input/lpj_envflow_total_*.mz",
"input/lpj_watavail_total_*.mz",
"input/validation.mif",
"calib_*.cs3",
"land_conversion_cost_calib_*.cs3",
"input/spamplot_*.pdf")
# Files that should be copied after the MAgPIE run is finished
cfg$files2export$end <- NULL
# Folder run statistics should be submitted to
cfg$runstatistics <- "/p/projects/rd3mod/models/statistics/magpie"
# name of the overall model (just used for reporting purposes)
# should usually not be changed
cfg$model_name <- "MAgPIE"
# a list of additional information characterizing this run. Can be used
# to save relevant information about the run and can, in contrast to all other
# setting, contain list elements which do not exist in the reference
# configuration
cfg$info <- list()
# Should the model run in developer mode? This will loosen some restrictions,
# such as temporary toleration of coding etiquette violations
# Please make sure to set it to FALSE for production runs!
cfg$developer_mode <- FALSE
# Should the model run in debug mode?
# Download script will copy files from input to destination folder instead of
# moving it allowing to check whether something in the move/copy process goes
# wrong
cfg$debug <- FALSE
################################################################################
Rscript start.R
Main selection of MAgPIE start scripts
----------------------------------------------
-> Scripts in this selection are actively <-
-> managed and work out of the box <-
----------------------------------------------
1: default | start run with default.cfg settings
2: check code | Checking code for consistency issues
3: download data | just download default.cfg input data
4: Rprofile | Add R snapshot to ".Rprofile"
5: test runs | Test routine for standardized test runs
6: forestry | start run with Forestry (Endogenous)
Alternatively, choose a start script from another selection:
7: extra | Additional MAgPIE start scripts
8: projects | Project-specific MAgPIE start scripts
9: deprecated | Deprecated scripts
# ------------------------------------------------
# description: start run with default.cfg settings
# position: 1
# ------------------------------------------------
# Load start_run(cfg) function which is needed
# to start MAgPIE runs
source("scripts/start_functions.R")
#start MAgPIE run
start_run(cfg="default.cfg")
powered by goxygen » github.com/pik-piam/goxygen
[...]
*' @equations
*' ![Investment-yield ratio in relation to $\tau$-factor
*' [@dietrich_forecasting_2014]](tcc_regression.png){ width=60% }
*'
*' Relative technological change costs `v13_cost_tc` are calculated as a
*' heuristically derived power function of the land use intensity `vm_tau` for
*' the investment-yield-ratio (see figure above) multiplied by the current
*' regional crop areas `pc13_land` (taken from previous time step) and shifted
*' 15 years into the future using the region specific interest
*' rate `pm_interest`:
q13_cost_tc(i2) ..
v13_cost_tc(i2) =e= sum(ct, pc13_land(i2) * i13_tc_factor(ct)
* sum(supreg(h2,i2),vm_tau(h2))**i13_tc_exponent(ct)
* (1+pm_interest(ct,i2))**15);
*' The shifting is performed because investments into technological change
*' require on average 15 years of research before a yield increase is achieved,
*' but the model has to see costs and benefits concurrently in order to take the
*' right investment decisions (see also @dietrich_forecasting_2014). Investment
*' costs are scaled in relation to crop area, since a wider areal coverage means
*' typically also higher variety in biophysical conditions, which would require
*' more research for the same overall intensity boost.
*'
*' In order to get the full investments required for the desired intensification
*' the relative technological change costs are multiplied with the given
*' intensification rate. These full costs are then distributed over an infinite
*' time horizon by multiplication with the interest rate `pm_interest(i)`
*' (annuity with infinite time horizon):
q13_tech_cost(i2) ..
vm_tech_cost(i2) =e= sum(supreg(h2,i2), vm_tau(h2)/pcm_tau(h2)-1) * v13_cost_tc(i2)
* sum(ct,pm_interest(ct,i2)/(1+pm_interest(ct,i2)));
[...]
Structurally, not much...
Look and feel quite comparable to 4.0
If you know how to use any 4.x version you (mostly) know how to use any other 4.x version
one notable exception: superregional layer (4.3.5)
it is now possible to have a
second regional layer
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [4.4.0] - 2021-12-13
### changed
- **inputs** new default LPJmL version with growing season adaptation (gsadapt) on
- **51_nitrogen** parameter change in rescaled_jan21, now including regionalized climate-dependent leaching factors
- **config** Update default configuration to new input data (especially cellular inputs) including all module realization updates (14_yield, 22_processing, 30_crop, 38_factor_costs, 39_landconversion). Moreover, climate impatcs (cc options for biophysical inputs) are activiated as default. New best_calib calibration routine is activated as default.
- **config** peatland module on by default (cfg$gms$peatland <- "on")
- **config** update default setting for 2nd generation bioenergy demand and GHG prices
- **config** update default setting for the 42_water_demand module (to all_sectors_aug13)
- **scripts** output/extra/disaggregation.R updated to account for country-specific set-aside shares in post-processing
- **scripts** output/extra/disaggregation.R updated to account for sub-categories of "forestry"
- **scripts** Default recalibration routine does not read in previous calibration factors anymore
- **09_drivers** Update sets in drivers to include new SDP and Ariadne GDP and Pop scenarios
- **21_trade** In the exo and off realization, equations corrected to be consistent with the mapping between supreg h and regions i. Bugfixes in trade exo and off realizations. Added scaling factor for exo realization.
- **inputs** Update of GDP and population scenarios based upon recent historic data from WDI (complemented with growth rates given by the James2019 dataset), short term projections until 2025 from IMF (for GDPpc) and WB (for pop) and reconverge to the original SSP GDPpc levels by 2100.
- **inputs** Update of all input data that are based on FAO, using the most up-to-date version of FAOSTAT datasets available at the date of input calculations via automated download.
- **inputs** Update of additional data to rev4.07
- **scripts** scripts/start/projects/project_LAMACLIMA.R -> scripts/start/projects/project_LAMACLIMA_WP4.R
- **58_peatland** "On" realization: Degraded peatland is estimated differently, based on an additional calibration factor.
- **43_water_availability** changed scaling factor
- **10_land** Converted "v10_landreduction" to interface "vm_landreduction", used in "modules/39_landconversion/calib"
- **52_carbon** Removed interface "vm_carbon_stock_change", no longer needed
- **scripts** recalibrate_realizations.R and recalibrate.R adjusted for land conversion cost calibration + default time steps for convenient validation of results
- **scripts** start_functions adjustments for land conversion cost calibration
- **scripts** start.R added SLURM medium as choice
- **scripts** yield calibration, "best" setting uses factors from iteration with lowest standard deviation
- **14_yield** read-in file f14_yld_calib.csv if exists. Set default calibration factors to 1 in case f14_yld_calib.csv does not exist
- **13_tc** different educated guess for vm_tau in 1995
- **scaling** Update of scaling factors. removed duplicates
- **32_foresty** Avoid division by zero (observed under higher regional resolutions)
- **35_natveg** Avoid division by zero (observed under higher regional resolutions)
- **70_livestock** Avoid division by zero (observed under higher regional resolutions)
- **60_bioenergy** Minimum dedicated 2nd generation bioenergy demand assumed in each region raised from 0.01 to 1 mio. GJ per yr, and added as option in the config file (s60_2ndgen_bioenergy_dem_min)
- **config** Remove elements from the parameter list of start_run(), instead include them as regular settings in the default.cfg.
- **scripts** Add option to take ghg prices from different file than the regular reporting file (used in the REMIND coupling)
- **60_bioenergy** Switch off fixing the bioenergy demand to SSP2 until 2020 if MAgPIE runs coupled (to REMIND) or for emulator runs (to derive biomass supply crurves).
- **56_ghg_policy** Switch off fixing the GHG prices to SSP2 until 2020 if MAgPIE runs coupled (to REMIND) or for emulator runs (to derive biomass supply crurves).
- **scripts** start/test_runs.R added SSP1, SSP2 and SSP5 as default test runs
### added
- **34_urban** New exo_nov21 exogenous realization of urban land expansion
- **21_trade** Missing interface parameter for failing exo realization runs
- **59_som** exogenous pathway for vm_nr_som via f59_som_exogenous
- **config** Addition of a new scenario column (Tland) in scenario_config.csv
- **config** Added option c32_max_aff_area, which allows to provide a file with regional limits for afforestation
- **14_yield** parameter created to save historical cellular yields and to be used in the sticky realization of 38_factor_costs and in the 17_production module
- **17_production** switch added to decide if initialization of cellular crop production is needed or not. Also, a parameter to calculate initial production based on input cellular crop patterns and semicalibrated yields (potential yields calibrated to FAO values).
- **scripts** Added calibration script to generate default calibration for different factor costs realization
- **scripts** scripts/output/extra/disaggregation_LUH2.R script for exporting spatial output in LUH2 format (NetCDF)
- **37_labor_prod** labor productivity module with two realizations: off and exo
- **38_factor_costs** new realization "sticky_labor", based on "sticky_feb18" but accounting for changes in labor productivity
- **15_food** Added additional solve with CONOPT3 in case of modelstat 7
- **scripts** Added script "landconversion_cost.R" for land conversion cost calibration in scripts/calibration, for matching historic cropland in 2015
- **39_landconversion_cost** added new realization "calib", which uses the calibration factors derived by "landconversion_cost.R"
- **scripts** Added start script for yield and land conversion cost calibration "recalibrate_all.R"
- **scripts** added script validation_short.R with aggregated crop types (cutting the PDF size in half) -> replaces validation.R in default.cfg
- **scripts** added start script "scripts/start/Rprofile.R" for adding a R snapshot to the ".Rprofile" file
- **config** file "land_carbon_sink_adjust_grassi.mz" added to cfg$files2export$start
- **config** Inclusion of LAMACLIMA scenarios in scenario_config.csv
- **output.R** added SLURM standby maxMem and SLURM priority maxMem; needed for some output scripts (e.g. disaggregation_LUH2.R)
### removed
- **32_foresty** Removed static realization
- **35_natveg** Removed static realization
- **scripts** lpjml_addon script is removed and all calls within dependend starting scripts
- **scripts** output/extra/disaggregation_transitions_.R moved to deprecated folder
- **scripts** output/extra/disaggregation_cropsplit.R moved to deprecated folder
- **14_yield** Removed `biocorrect` and `dynamic_aug18` realizations
- **20_processing** Removed `substitution_dec18` realization
- **30_crop** Removed `endo_jun13` realization
- **scripts** scripts/start/extra/highres.R
- **39_landconversion_cost** removed realizations "global_static_aug18" and "devstate"
### fixed
- **80_optimization** Improved solve logic in "nlp_apr17" and "nlp_par" realization, multiple bugfixes and switch to solvelink=3 in "nlp_par"
- **58_peatland** fixed rare infeasibility in "on" realization
- **10_land** fixed rare infeasibility in "landmatrix_dec18" realization
- **38_factor_costs** For the sticky_feb18 realization correction in initial capital stocks, use of production initial values, and 05USDppp units changed to 05USDMER for sticky so it matches the units of the other realizations
- **80_optimization** Bug fixes in the nlp_par (parallel optimization) and improved code to collect failing handles.
- **32_foresty** Avoid division by zero in q32_establishment_dynamic_yield
- **35_natveg** fixed land protection to SSP2 default (WDPA) for historic period
- **15_food** New iteration needs to be started before setting food prices for curr_iter15
- **scripts** scripts/output/extra/highres.R bugfixes
- **38_factor_costs** units in sticky_feb18
- **32_foresty** Global afforestation limit s32_max_aff_area was not effective in case of parallel optimization -> added option c32_max_aff_area, which allows to provide a file with regional limits for afforestation;
- **73_timber** plausible cost for balance variable in case of s73_timber_demand_switch = 0 to avoid cost distortion
- **56_ghg_policy** choose the correct scenario for fixing the GHG prices until sm_fix_SSP2
## [4.3.5] - 2021-09-02
### changed
- **13_tc** added switch to ignore historic tau patterns in historic time steps (new default)
- **16_demand** Moved most of cropping related set definitions (k, kve, kcr) from **16_demand** to **14_yield**
- **32_foresty** Added option to choose a rotation length calculation criteria
- **35_natveg** Calculation of land protection policies revised and moved from presolve.gms to preloop.gms
- **38_factor_costs** Realization `sticky_feb18` extended to differentiate capital requirements between regions and their specific development status (GDP) in each time step of the magpie run. The changes in the `sticky` realization also include an additional switch so it can be operated as `dynamic` (change of each region capital share at each time step) or `free` (capital shares equal to zero and equivalent to the `fixed_per_ton_mar18` realization). Bugfix in the yearly update of the variable input requirements. Addition of the time dimension and clean up of names of parameters used in the realization. Removal of the management factor (this factor was not being used, it was being cancelled out in previous calculations). Correction of the costs, they are given in 05USDppp.
- **39_landconversion** lower costs for expansion of forestry land
- **58_peatland** Peatland area is initialized in 1995 based on levels for the year 2015, and hold fixed depending on `s58_fix_peatland`. This provides a better proxy for peatland area and associated GHG emissions for the historic period, which where assumed zero in previous versions.
- **80_optimization** **nlp_par** parallelizes now on superregional level `h` instead of regional level `i` as before.
- **script** Added forestry run script which used LPJmL addon
- **script** New standard for cluster to region mapping (rds-files) is used in all scripts. If old spam files are provided by input data, rds-mapping file is created.
- **script** updated test run script. Update of the sticky run script.
- **start scripts** improved function for GAMS set creation from R and outsourced it to package `gms`
- **inputs** Changed file format from cs2 to cs2b for cellular input files with a single data column
- **scenario_config** added RCPs as columns for use with setSceanrio function. This required the addition of "gms$" in the 1st column.
### added
- **73_timber** Added construction wood demand scenarios based on Churkina et al. 2020
- **script(s)** Added scripts to replicate runs for Mishra et al. 2021 (in review : https://doi.org/10.5194/gmd-2021-76)
- **13_tc** Added new interfaces for tau factor of the previous time step (`pcm_tau`)
- **14_yield** Added new realization `managementcalib_aug19` that is able to calibrate yield data coming from uncalibrated crop models (e.g. LPJmL yields for unlimited N supply). The yield calibration is either a purely multipicative factor or is limited to additive change in case of a underestimated FAO yield by the initial crop model yields (based on the switch `s14_limit_calib`). For pastures spillover of crop yield increases due to technological change from the previous time step are allowed and can be scaled using `s14_yld_past_switch`.
- **20_processing** Added new almost identical realization that excludes a calibration of the oil crop demand for oils (Note: old realization can be removed, when old yield realizations are deleted).
- **30_crop** Added new realization `endo_apr21`. The realisation includes new input data for available cropland and a new switch `c30_marginal_land`, which provides different options for including marginal land as cropland. Furthermore, a given share of the available cropland can be set aside for the provisioning of natures contribution to people and to promote biodiversity. The new switches `s30_set_aside_shr` and `c30_set_aside_target` are included to specify the share that should be set aside and the target year.
- **30_crop** Added new interface parameter historic croparea (`fm_croparea`)
- **30_crop** Added new option `policy_countries30` for country specific set aside share
- **35_natveg** Added new option `"FF+BH"` for protected areas.
- **35_natveg** Added new option `policy_countries35` for country specific land protection
- **38_factor_costs** Added scaling factors for improving model run time
- **39_landconversion** new realization `devstate` in which global land conversion costs are scaled with regional development state (0-1)
- **41_area_equipped_for_irrigation** Added switch for using different input data including new LUH2v2 consistent initialisation pattern.
- **41_area_equipped_for_irrigation** Added scalar for depreciation rate that depreciates certain area in every timestep, defined by switch in config.
- **58_peatland** Added option for one-time and recurring costs of peatland degradation (USD05MER per ha)
- **calibration run** has two new features: 1. Upper bound to cropland factor can be added (`crop_calib_max`). 2. Best calibration factor (factor with the lowest divergence) can be picked individually for each regions based on all calibration factors calculated during the calibration run iteration (`best_calib`).
- **disaggregation** Added new disaggregation script that is in line with new crop realisation and can account for cropland availabilty on grid level during disaggregation (see `interpolateAvlCroplandWeighted()` in package `luscale` for further details).
- **sets** added superregional layer `h` as additional spatial layer and moved constraints in **13_tc** and **21_trade** partly to the superregional level.
### removed
- **13_tc** Removed disfuctional setting c13_tccost = "mixed"
- **core** removed sets ac_young and ac_mature (no longer needed due to changes in 44_biodiversity)
### fixed
- **32_foresty** BII coefficients for CO2 price driven afforestation
- **32_foresty** growth curve CO2 price driven afforestation
- **32_foresty** NPI/NDC afforestation infeasibility
- **32_foresty** Correct distribution from LUH data to plantations and ndcs
- **35_natveg** option to fade out damage from shifting agriculture by 2030
- **44_biodiversity** ac0 included in pricing of biodiversity loss
## [4.3.4] - 2021-04-30
### changed
- **51_nitrogen** New calculations for emissions from agricultural residues (vm_res_ag_burn)
- **53_methane** New calculations for emissions from agricultural residues (vm_res_ag_burn)
- **citation file** added new contributors
### added
- **config** The set "kfo_rd" (livst_rum, livst_milk), which is used in the food substitution scenarios c15_rumdairy_scp_scen and c15_rumdairyscen, has been added to the default.cfg file. This allows for sensitivity scenarios (e.g. only livst_milk or only livst_rum).
- A new scenario (nocc_hist) was added to the cc/nocc switch. In this scenario, parameters affected by the cc/nocc switch in **14_yields**,**42_water_demand**,**43_water_availability**,**52_carbon**,**59_som** keep their historical/variable values up to the year defined by sm_fix_cc. Afterwards, sm_fix_cc values are kept constant for the overall run horizon.
### fixed
- **09_drivers** migration of sm_fix_SSP2 and sm_fix_cc declaration from the core declarations to the drivers module. This will allow to set the scalars properly .
- - **15_food** single-cell protein substitution scenarios included in intersolve.gms.
- **20_processing** The "mixed" scenario for single-cell protein production (c20_scp_type) was not working as expected. The corresponding code in 20_processing has been updated.
## [4.3.3] - 2021-03-30
### added
- **15_food*** added 3 sigmoid food substitution scenarios
- **44_biodiversity** New biodiversity module. The realization bv_btc_mar21 now allows to calculate an area-based biodiversity value across all land types. Switch `c44_price_bv_loss` to implement cost for biodiversity loss.
- **56_ghg_policy** Automatic sets for scenarios
- **60_bioenergy** Automatic sets for scenarios
- **70_livestock*** added 3 sigmoid feed substitution scenarios
- **scripts** added output script for disaggregation to GAINS regions
- **scripts** Automatic sets for 56_ghg_policy and 60_bioenergy
- **scripts** Added pre-commit hook
### fixed
- **60_bioenergy** Minimal bioenergy demand
## [4.3.2] - 2021-03-17
### changed
- **12_interest_rate** Interest fader changed to csv
- **15_food** better documentation of parameters over model iterations
- **15_food** added scenario switch for ruminant and dairy replacement by Single-Cell Protein
- **20_processing** added different options for Single-Cell Protein production
- **35_natveg** Fader for HalfEarth protection policy
- **50_nr_soil_budget** added necessary interfaces to 50_nitrogen module
- **70_livestock** added scenario switch for feed replacement (crop and forage) by Single-Cell Protein
- **scripts** Updated AgMIP output scripts.
- **runscripts** adapted to new input data and model version
- **tests** Replaced TravisCI with GithubActions
### added
- **15_food** Added the option to fade out livestock demand towards a target level in kcal/cap/day.
- **21_trade** Added scalar `s21_trade_bal_damper` and new set `k_trade_excl_timber`
- **29_ageclass** New age-class module
- **32_forestry** added new default realization
- **32_forestry** Simplified routine for plantation establishments. Added plantation area initialization based on MODIS data. Calibration to FAO growing stocks via carbon densities. New switches: `s32_distribution_type `, `s32_hvarea`, `s32_establishment_dynamic`, `s32_establishment_static`, `s32_max_self_suff`. New settings `c32_dev_scen`, `c32_incr_rate`, `c32_incr_rate`
- **35_natveg** Added new default realization
- **35_natveg** Added distribution in secondary forest based on Poulter et al. 2019. Added forest damages due to wildfire and shifting agriculture. Bugfix in forest protection calculations. New switches: `s35_secdf_distribution`, `s35_forest_damage`, `s35_hvarea`
- **35_natveg** Added HalfEarth scenario to protection scenarios
- **51_nitrogen** new module realization rescaled_jan21, which rescales n-related emissions with nitrogen surplus to account for lower emissions with higher NUE
- **52_carbon** Simplified routine for carbon stock calculations in timber plantations and cleanup of unused code.
- **56_ghg_policy** Added new scenario to emission policy
- **73_timber** Additive calibration with FAO data for roundwood demand. New switches: `c73_wood_scen`
- **73_timber** Added new realization `default` (modified version of previous realization)
- **default.cfg** New `forestry` scenario which simulates timber production in MAgPIE
- **scenario.csv** Added three plantation scenarios
- **scaling** Updated scaling across the modules
- **scripts** Updated to `forestry` script with general cleanup for publication. Added `forestry_magpie` script for generic forestry runs.
- **scripts** added output script for disaggregation of land transitions
### removed
- **32_forestry** Removed previous default realization
- **35_natveg** Removed previous default realization
- **73_timber** Removed previous default realization
### fixed
- **32_forestry** Bugfixes for "ac_est" and carbon treshold afforestation; removed plantations from "vm_cdr_aff".
- **core** bugfix m_fillmissingyears macro; was running over t before; now running over t_all_
## [4.3.1] - 2020-11-03
### added
- **main** Added Dockerfile for running MAgPIE in a container
### fixed
- **35_natveg** Bugfix "v35_secdforest_expansion"
- **52_carbon** Bugfix "p52_scaling_factor" for climate change runs
- **73_timber** New scenario switch `c73_wood_scen`.
## [4.3.0] - 2020-09-15
### added
- **38_factor_costs** Added the new "sticky" realization to the factor costs module. The realization "sticky_feb18" favors expansion in cells with preexisting farmland and capital based on capital investment decisions.
- **modules** added endogenous implementation of local biophysical (bph) impacts of afforestation to existing realizations in modules 32_forestry (dynamic_oct19) and 56_ghg_policy (price_jan20). default = off
- **73_timber** Added timber module which brings the ability of producing woody biomass for timber plantations and natural vegetation. Default = off. New switch: `s73_foresight`. New scalars : `s73_timber_prod_cost`, `s73_timber_harvest_cost`,`s73_cost_multiplier`,`s73_free_prod_cost`
- **32_forestry** New realization `dynamic_may20` for forestry land use dynamics. This builds up on previous forestry realization for afforestation. New switches: `s32_fix_plant`, `c32_interest_rate`. New scalars : `s32_plant_share`, `s32_forestry_int_rate`, `s32_investment_cost`, `s52_plantation_threshold`.
- **35_natveg** New realization `dynamic_may20` for natural vegetation land use dynamics. New forest protection scenario.
- **52_carbon** Added interface which is used for calculating additional investment needed in plantations when carbon stocks are lower than a specified threshold. New scalar: `s52_plantation_threshold`.
- **57_maccs** Added MACCs from Harmsen PBL 2019
- **15_food** Added the option to include calories from alcohol consumption in healthy and sustainable EAT-Lancet diets.
- **scripts** added start script for making timber production runs (forestry.R).
### changed
- **scripts** updated selection routine for start and output scripts
- **scripts** replaced lucode dependency with newer packages lucode2 and gms
- **32_forestry** include new datasets of the bph effect of afforestation / replaced the bph ageclass switch with a fade-in between ac10 and ac30 in (dynamic_may20)
- **13_tc**, **39_landconversion**, **41_area_equipped_for_irrigation** and **58_peatland**. For the current time step, the optimization costs only include now the annuity of the present investment. magpie4's reportCosts() function was modified to consider these changes.
### removed
- **scripts** deleted outdated start and output scripts
### fixed
- **32_forestry** Rotation length calculation based on correct marginals of growth function in timber plantations. Clearer calculations for harvested area for timber production.
- **35_natveg** Clearer calculations for harvested area for timber production.
- **52_carbon** Fix to the Carbon densities received from LPJmL for timber plantations.
## [4.2.1] - 2020-05-15
### added
- **modules** added option of regional scenario switches in modules 12_interest_rate, 15_food, 42_water_demand, 50_nr_soil_budget, 55_awms, 56_ghg_policy, 60_bioenergy
- **58_peatland** added peatland module. Two realizations: off (=default) and on.
- **80_optimization** added realization for parallel optimization of regions in combination with fixed trade patterns.
- **metadata** added .zenodo.json metadata file for proper metadata information in ZENODO releases
### changed
- **12_interest_rate** merged the two realizations (glo_jan16 and reg_feb18) into one (select_apr20) with same functionality and add on of option to choose different interest rate scenarios for different regions selected via country switch select_countries12
- **scripts** streamlined and improved performance of NPI/NDC preprocessing
### fixed
- **56_ghg_policy and 60_bioenergy** update of GHG prices and 2nd generation bioenergy demand from SSPDB to most recent snapshot
- **NPI/NDC policy calculations** revision of calculation method
## [4.2.0] - 2020-04-15
This release version is focussed on consistency between the MAgPIE setup and the [REMIND model] and result of a validation exercise of the coupled (REMIND 2.1)-(MAgPIE 4.2) system.
### added
- **config** Added new socioeconomic scenario (SDP) to scenario_config.csv (which include all switches to define among others the SSP scenarios). For the parametrization of the new SDP (Sustainable Development Pathway) scenario, the list of scenario switches was extended to account for a broad range of sustainability dimensions.
- **10_land** added new land realization landmatrix_dec18 to directly track land transition between land use types
- **15_food** stronger ruminant fade out in India
- **15_food** Added exogenous food substitution scenarios that can be selected via settings in the config-file, defining speed of convergence, scenario targets and transition periods (applied after the food demand model is executed). Among these scenarios are the substitution of livestock products with plant-based food commodities and the substitution of beef or fish with poultry. The food substitution scenarios are based on the model-native, regression-based calculation of food intake and demand.
- **15_food** Added exogenous EAT Lancet diet scenarios: It is now possible to define in the config-file exogenous diet scenarios that replace the regression-based calculation of food intake and demand. Possible settings are the target for total calorie intake (e.g. according to a healthy BMI) and variants of the EAT Lancet diet (e.g. in addition to the flexitarian a vegetarian or vegan variant).
- **15_food** Added exogenous food waste scenarios which can be defined via settings in the config-file, including scenario targets for the ratio between food demand and intake and the year in which full transition to the target should be achieved.
- **30_crop** added crop specific land use initialization pattern (used as interface for other modules)
- **50_nr_soil_budget and 55_awms** Additional inputs for the GoodPractice Scenario.
- **52_carbon** Added new forest growth curve parameters based on Braakhekke et al. 2019. Growth curves are now differentiated between natural vegetation (default) and plantations.
- **59_som** added new realization static_jan19 (new default) including all soil carbon related calculations. Before all carbon pools were updated in the specific land use type modules. This still holds true for the above ground pools (vegetation and litter carbon)
- **.gitattributes** file added to set line ending handling to auto for all text files
- **scaling** added scaling.gms files for several modules to improve optimization (based on gdx::calc_scaling)
- **scripts** added output scripts for global soil carbon maps (SoilMaps.R).
### changed
- **config** new default ghg emission pricing policy "redd+_nosoil" in c56_emis_policy. Includes all pools included in the previous default "SSP_nosoil", and in addition "forestry".
- **13_tau** lower bound for vm_tau for historical time steps
- **50_nr_soil_budget** atmospheric deposition is now estimated on the cluster-level instead of the region level to improve spatial patterns.
- **56_ghg_policy** updated scenarios in f56_emis_policy: none, all natural (called 'ssp') and all land use change emissions (pure co2) being included in greenhouse gas pricing. ssp and all also featuring additional scenarios excluding soil carbon pricing (marked with '_nosoil' postscript).
- **56_ghg_policy** Several changes regarding afforestation: use of detailed formula for incentive calculation instead of simplified Hotelling formula, 50 year planning horizon (instead of 80 years), phase-in of GHG prices deactivated by default (now done in REMIND), CO2 price reduction factor deactivated by default, introduced buffer reduction factor of 20% for afforestation.
- **59_som** updated cellpool_aug16 realization to use new interfaces from land module on land use type specific land expansion and reduction as well as crop type specific land initialization pattern. Additionally added irrigation as stock change factor sub-type. N fertilizer from soil organic matter decomposition is truncated after threshold to avoid unrealistically high fertilization rates.
- **80_optimization** write extended run information in list file in the case that the final solution is infeasible
- **modules** modular structure updated from version 1 to version 2
- **line endings** changed to unix-style for all text files
### fixed
- **modules** Fixing of all parameters to SSP2 values until 2020 (switch sm_fix_SSP2) for having identical outcomes in all scenarios (SDP, SSP1-5) until 2020.
- **21_trade** Bugfix kall instead of k in exo realization; Bufix begr/betr trade in default realization; Bugfix sets in free realization
- **32_forestry** NPI/NDC afforestation targets are now counted towards the global afforestation limit, which can be set for specific scenarios via the switch *s32maxaff_area* and constrains the potential for carbon-price induced endogenous afforestation.
- **56_ghg_policy** bugfix full soil carbon loss in default setting, renamed it from ssp to ssp_nosoil, indicating, that soil carbon losses are not priced.
- **56_ghg_policy** bugfix afforestation: vmbtm_cell was a free variable for some sources and pollutants, which could result in GHG cost neutral shifting of age classes to ac0 (e.g. from ac55 to ac0).
- **80_optimization** added fallback routine for CONOPT4 failure (fatal system error)
## [4.1.1] - 2020-03-09
This version provides the model version used for the publication starved, stuffed and wasteful. It provides a few technical updates compared to the 4.1 release, which include
### added
- **scripts** a startscript that allows the exchange of model parameters as a sensitivity analysis
### changed
- **core** allow for flexible calibration period of the model, which allows for uncalibrated runs of the past for validation purposes
- **15_food** Parameters for bodyheight regressions were included explicitly as input parameters
- **config** updated input data of the drivers and food demand regressions
### fixed
- **15_food** Precision of iteration convergence criterium for magpie-demandmodel-iteration is calculated more precisely, avoiding unnecessary iterations.
## [4.1.0] - 2019-05-02
This release version is focussed on consistency between the MAgPIE setup and the [REMIND model] and result of a validation exercise of the coupled REMIND-MAgPIE system.
### added
- **80_optimization** added support for GAMS version 26.x.x
- **scripts** added new start and output scripts
- **license** added exception to the applied AGPL license to clarify handling of required GAMS environment, solver libraries and R libraries
### changed
- **56_ghg_policy** apply reduction factor on CO2 price to account for potential negative side effects; lowers the economic incentive for CO2 emission reduction (avoided deforestation) and afforestation
- **56_ghg_policy** non-linar phase-in of GHG prices over 20 year period
- **56_ghg_policy** multiply GHG prices with development state to account for institutional requirements needed for implementing a GHG pricing scheme
- **40_transport** introduced transport costs for monogastric livestock products
- **NPI/NDC scripts** added forest protection policy for Brazilian Atlantic Forest in default NDC and NPI scenarios
- **NPI/NDC scripts** harmonized the starting year of the NDC policies 2020.
- **interpolation scripts** changed output files to seven magpie land use types, added additional cropsplit script for more detailed cropland output
- **15_food** clean-up and cosmetic changes (correction of comments, parameter names, structure of code); update BMI share calculations with the values of the last consistent MAgPIE/food-demand-model iteration
### fixed
- **42_water_demand** bugfix environmental flow policy harmonization for historic period
- **57_maccs** correction of cost calculation; Conversion from USD per ton C to USD per ton N and USD per ton CH4 was missing.
- **71_diagg_lvst** adjusted monogastric disaggregation for more flexiblity to avoid infeasibilities with EFPs (see 42_water_demand)
- **15_food** correction regarding the convergence measure of the iterative execution of the food demand model and MAgPIE; correction accounting for unusual time step length in body height calculations; body height regression parameters updated
## [4.0.1] - 2018-10-05
### fixed
- **FABLE** adapted FABLE-specific configuration so that it works with MAgPIE 4.0
## [4.0.0] - 2018-10-04
First open source release of the framework. See [MAgPIE 4.0 paper](https://doi.org/10.5194/gmd-12-1299-2019) for more information.
[Unreleased]: https://github.com/magpiemodel/magpie/compare/v4.4.0...develop
[4.4.0]: https://github.com/magpiemodel/magpie/compare/v4.3.5...v4.4.0
[4.3.5]: https://github.com/magpiemodel/magpie/compare/v4.3.4...v4.3.5
[4.3.4]: https://github.com/magpiemodel/magpie/compare/v4.3.3...v4.3.4
[4.3.3]: https://github.com/magpiemodel/magpie/compare/v4.3.2...v4.3.3
[4.3.2]: https://github.com/magpiemodel/magpie/compare/v4.3.1...v4.3.2
[4.3.1]: https://github.com/magpiemodel/magpie/compare/v4.3.0...v4.3.1
[4.3.0]: https://github.com/magpiemodel/magpie/compare/v4.2.1...v4.3.0
[4.2.1]: https://github.com/magpiemodel/magpie/compare/v4.2.0...v4.2.1
[4.2.0]: https://github.com/magpiemodel/magpie/compare/v4.1.1...v4.2.0
[4.1.1]: https://github.com/magpiemodel/magpie/compare/v4.1.0...v4.1.1
[4.1.0]: https://github.com/magpiemodel/magpie/compare/v4.0.1...v4.1.0
[4.0.1]: https://github.com/magpiemodel/magpie/compare/v4.0...v4.0.1
[4.0.0]: https://github.com/magpiemodel/magpie/releases/tag/v4.0
[REMIND model]: https://www.pik-potsdam.de/research/transformation-pathways/models/remind
contentwise ....
updated GDP & population scenarios (4.4.0)
updated FAO data (4.4.0)
new diet scenarios (4.2.0|4.3.0)
new Sustainable Development Pathway (SDP) scenarios (4.2.0 | 4.40)
new factor cost estimates (4.3.0|4.3.5|4.4.0)
peatland simulation (4.2.1|4.3.5|4.4.0)
dynamic forestry / timber production (4.3.0|4.3.2|4.3.5)
sticky costs (4.3.0|4.3.5|4.4.0)
more details @ MAgPIE stories
urban land expansion (4.4.0)
exogenous growth scenarios
simulation of set aside cropland (4.3.5)
(e.g. for its biodiversity implications)
updated yield calibration & updated LPJmL yield data (4.3.5)
new nitrogen emission realization (4.3.2|4.3.4|4.4.0)
added emissions from residue burning (4.3.4)
new land conversion cost calibration (4.4.0)
This presentation - slides.com/jandietrich/magpie-4-4
MAgPIE 4 framework paper - https://doi.org/10.5194/gmd-12-1299-2019
MAgPIE Repository | github.com/magpiemodel
R packages Repository | github.com/pik-piam
model requests | mxyzagpie@pik-poxyztsdam.de
contact me | dietrixyzch@pikxyz-potsdam.de