Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Ignore historic TAU patterns + land conversion costs forestry + Bugfix BII + Bugfix NPI/NDC afforestation #276

Merged
merged 33 commits into from
May 26, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
2eb19a5
Bugfix BII 32_forestry
flohump May 4, 2021
f0f89f1
update
flohump May 4, 2021
f76b643
bugfix sets BII
flohump May 5, 2021
8f44408
update cost forestry
flohump May 5, 2021
7abe9cf
update start script
flohump May 5, 2021
ba89b24
update script
flohump May 5, 2021
f841fcc
new land conversion cost module realization
flohump May 5, 2021
0119d37
update
flohump May 5, 2021
41456f7
update
flohump May 5, 2021
084f2cd
update
flohump May 6, 2021
2f985a5
update
flohump May 6, 2021
c04341f
Zero timber production costs for non timber demand runs
abhimishr May 6, 2021
b30c46b
update
flohump May 6, 2021
a4a373e
update
flohump May 6, 2021
5547e37
switch for lower bound on TC in historic time steps
flohump May 9, 2021
a1e17dc
additional runs
flohump May 9, 2021
f9d5d90
additional runs
flohump May 9, 2021
8152c25
changelog
flohump May 10, 2021
d128a34
update default value and documentation
flohump May 10, 2021
332c676
update of equations
flohump May 10, 2021
bd91998
update test run start script
flohump May 11, 2021
9c706b7
update config file
flohump May 11, 2021
38eb66b
Merge branch 'magpiemodel:develop' into develop
abhimishr May 12, 2021
0f2c0c7
Possible bugfix for afforestation bug where timber prodn happens unde…
abhimishr May 12, 2021
8f1b314
Added temporary start script
abhimishr May 12, 2021
71d4271
commented in start run
abhimishr May 12, 2021
6c43596
forestry cost in hist period bugfix (for cost validation task force)
abhimishr May 12, 2021
ad6f7aa
Correct application of NPI and NDC policies in baseline and co2 prici…
abhimishr May 12, 2021
061cf3d
typo fix
abhimishr May 12, 2021
8c7da82
General cleanup. Removed switch where plantation forestry could be tr…
abhimishr May 12, 2021
13fdca2
update of set names and option to choose BII for co2 price driven aff…
flohump May 12, 2021
ba57b6c
bugfix NPI/NDC afforestation + update changelog
flohump May 13, 2021
aab0f75
bugfix growth curve co2 price driven afforestation
flohump May 13, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]

### changed
- **13_tc_** added switch to ignore historic tau patterns in historic time steps (new default)
- **39_landconversion** lower costs for expansion of forestry land

### added

### removed
- **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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please briefly highlight new switch for choosing the BII coefficient

- **32_foresty** growth curve CO2 price driven afforestation
- **32_foresty** NPI/NDC afforestation infeasibility
- **44_biodiversity** ac0 included in pricing of biodiversity loss

## [4.3.4] - 2021-04-30

Expand Down
21 changes: 19 additions & 2 deletions config/default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,10 @@ cfg$gms$s12_hist_interest_hic_noselect <- "0.04" # def = 0.04
cfg$gms$tc <- "endo_jun18" # def = endo_jun18

# * tc cost scenario: low, medium or high
cfg$gms$c13_tccost <- "medium"
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 --------------------------------------
# * (biocorrect): cropland TC applied on pasture yields
Expand Down Expand Up @@ -443,9 +446,23 @@ cfg$gms$forestry <- "dynamic_feb21" # def = dynamic_feb21
# * afforestation planing horizon (years)
cfg$gms$s32_planing_horizon <- 50 # def = 50

# * switch for using natveg (0) or plantation (1) growth curves for afforestation
# * 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
Expand Down
8 changes: 0 additions & 8 deletions core/sets.gms
Original file line number Diff line number Diff line change
Expand Up @@ -257,14 +257,6 @@ sets
ac105,ac110,ac115,ac120,ac125,ac130,ac135,ac140,ac145,
ac150,ac155,acx /

ac_young(ac) age classes young
/ ac5,ac10,ac15,ac20,ac25,ac30 /

ac_mature(ac) age classes mature
/ ac35,ac40,ac45,ac50,ac55,ac60,ac65,ac70,ac75,ac80,ac85,ac90,
ac95,ac100,ac105,ac110,ac115,ac120,ac125,ac130,ac135,ac140,
ac145,ac150,ac155,acx /

ac_est(ac) Dynamic subset of age classes for establishment

ac_sub(ac) Dynamic subset of age classes excluding establishment
Expand Down
4 changes: 4 additions & 0 deletions modules/13_tc/endo_jun18/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
*** | Contact: magpie@pik-potsdam.de


scalars
s13_ignore_tau_historical ignore historial tau (1) or use it as lower bound (0) (binary) / 1 /
;

parameter fm_tau1995(i) Agricultural land use intensity tau in 1995 (1)
/
$ondelim
Expand Down
2 changes: 1 addition & 1 deletion modules/13_tc/endo_jun18/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

pc13_land(i) = sum(cell(i,j),pcm_land(j,"crop"));

if (sum(sameas(t_past,t),1) = 1,
if (sum(sameas(t_past,t),1) = 1 AND s13_ignore_tau_historical = 0,
vm_tau.lo(i) = f13_tau_historical(t,i);
else
vm_tau.lo(i) = pc13_tau(i);
Expand Down
8 changes: 5 additions & 3 deletions modules/32_forestry/dynamic_feb21/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@ parameters
p32_plantation_contribution(t_ext,i) Share of roundwood production coming from timber plantations (percent)
p32_ac_dist_flag(j,ac) Distribution flag with inverse weights according to age-classes (1)
p32_ac_dist(j,ac) Actual share of age-class distribution (1)
;
p32_bii_coeff(type32,bii_class_secd,potnatveg) bii coeff (unitless)
p32_c_density_ac_fast_forestry(t_all,j,ac) Carbon densities in plantations based on Braakhekke et al (tC per ha)
;

positive variables
vm_cost_fore(i) Forestry costs (Mio USD)
Expand All @@ -68,11 +70,11 @@ positive variables
v32_cost_establishment(i) Cost of establishment calculated at the current time step (mio. USD)
v32_hvarea_forestry(j,ac) Harvested area from timber plantations (mio. ha)
vm_prod_forestry(j,kforestry) Production of woody biomass from commercial plantations (mio. tDM per yr)
;
;

variables
vm_cdr_aff(j,ac,aff_effect) Expected bgc (CDR) and local bph effects of afforestation depending on planning horizon (mio. tC)
;
;

equations
q32_cost_total(i) Total forestry costs constraint (mio. USD)
Expand Down
12 changes: 7 additions & 5 deletions modules/32_forestry/dynamic_feb21/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -99,17 +99,19 @@ sum(ac_est, v32_land(j2,"aff",ac_est)) =l= sum(ac, v32_land(j2,"aff",ac)) - sum(

q32_bv_aff(j2,potnatveg) .. vm_bv(j2,"aff_co2p",potnatveg)
=e=
sum(ac_mature, v32_land(j2,"aff",ac_mature)) * fm_bii_coeff("secd_mature",potnatveg) * fm_luh2_side_layers(j2,potnatveg)
+ sum(ac_young, v32_land(j2,"aff",ac_young)) * fm_bii_coeff("secd_young",potnatveg) * fm_luh2_side_layers(j2,potnatveg);
sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), v32_land(j2,"aff",ac)) *
p32_bii_coeff("aff",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j2,potnatveg);

q32_bv_ndc(j2,potnatveg) .. vm_bv(j2,"aff_ndc",potnatveg)
=e=
sum(ac_mature, v32_land(j2,"ndc",ac_mature)) * fm_bii_coeff("secd_mature",potnatveg) * fm_luh2_side_layers(j2,potnatveg)
+ sum(ac_young, v32_land(j2,"ndc",ac_young)) * fm_bii_coeff("secd_young",potnatveg) * fm_luh2_side_layers(j2,potnatveg);
sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), v32_land(j2,"ndc",ac)) *
p32_bii_coeff("ndc",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j2,potnatveg);

q32_bv_plant(j2,potnatveg) .. vm_bv(j2,"plant",potnatveg)
=e=
sum(ac, v32_land(j2,"plant",ac)) * fm_bii_coeff("timber",potnatveg) * fm_luh2_side_layers(j2,potnatveg);
sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), v32_land(j2,"plant",ac)) *
p32_bii_coeff("plant",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j2,potnatveg);

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above....are the repeated terms the same as above? Perhaps calculate them first in a separate equations and use them afterwards in these two equations?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I revised these equations. Please check.


************************************************************
**** Timber production related equations in plantations ****
Expand Down
2 changes: 1 addition & 1 deletion modules/32_forestry/dynamic_feb21/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ scalars
s32_free_land_cost Very high cost for using non existing land for plantation establishment (USD per ha) /1000000/
s32_max_aff_area Maximum total global afforestation (mio. ha) / Inf /
s32_aff_plantation Switch for using growth curves for afforestation 0=natveg 1=plantations (1) / 0 /
s32_timber_plantation Switch for using growth curves for timber plantations 0=natveg 1=plantations (1) / 1 /
s32_tcre_local Switch for local (1) or global (0) TRCE factors (1) / 1 /
s32_forestry_int_rate Global interest rate for plantations (percent) / 0.05 /
s32_max_self_suff Upper ceiling for the self sufficiency used in calculation for establishment decision (1) / 0.8 /
s32_aff_bii_coeff BII coefficent to be used for CO2 price driven afforestation 0=natural vegetation 1=plantation (1) / 0 /
;

parameter f32_aff_mask(j) afforestation mask (binary)
Expand Down
22 changes: 18 additions & 4 deletions modules/32_forestry/dynamic_feb21/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -120,14 +120,14 @@ loop(t_all,
);

** Afforestation policies NPI and NDCs
p32_aff_pol(t,j) = f32_aff_pol(t,j,"%c32_aff_policy%");
p32_aff_pol(t,j) = round(f32_aff_pol(t,j,"%c32_aff_policy%"),6);

* Calculate the remaining exogenous afforestation with respect to the maximum exogenous target over time.
* `p32_aff_togo` is used to adjust `s32_max_aff_area` in the constraint `q32_max_aff`.
p32_aff_togo(t) = sum(j, smax(t2, p32_aff_pol(t2,j)) - p32_aff_pol(t,j));
p32_aff_togo(t) = smax(t2, sum(j, p32_aff_pol(t2,j))) - sum(j, p32_aff_pol(t,j));

* Adjust the afforestation limit `s32_max_aff_area` upwards, if it is below the exogenous policy target.
s32_max_aff_area = max(s32_max_aff_area, sum(j, smax(t2, p32_aff_pol(t2,j))) );
s32_max_aff_area = max(s32_max_aff_area, smax(t2, sum(j, p32_aff_pol(t2,j))) );

p32_cdr_ac(t,j,ac) = 0;

Expand Down Expand Up @@ -243,5 +243,19 @@ p32_gs_scaling_reg(i)$(f32_gs_relativetarget(i)>0) = f32_gs_relativetarget(i) /
** Calibration factors lower than 1 are set to 1
p32_gs_scaling_reg(i)$(p32_gs_scaling_reg(i) < 1) = 1;

** Update c-densitiy based on calibration factor for growing stocks
** Save pm_carbon_density_ac_forestry in a parameter before upscaling to FAO growing stocks.
** This allows to use plantation growth curves for CO2 price driven afforestation.
p32_c_density_ac_fast_forestry(t_all,j,ac) = pm_carbon_density_ac_forestry(t_all,j,ac,"vegc");

** Update c-density for timber plantations based on calibration factor to match FAO growing stocks
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to be sure:
While timber plantation uses the FAO-calibrated carbon density (pm_carbon_density_ac_forestry(t_all,j,ac,"vegc") ), carbon-price induced afforestation uses the uncalibrated carbon density (p32_c_density_ac_fast_forestry(t_all,j,ac) ), right?

This allows afforestation to follow the growth curves towards LPJmL natural vegetation carbon density, without being inconsistent with the LPJmL estimates at the mature level.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked in modules/32_forestry/dynamic_feb21/presolve.gms the application of the carbon density parameters. All looks fine.

Copy link
Contributor Author

@flohump flohump May 14, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to be sure:
While timber plantation uses the FAO-calibrated carbon density (pm_carbon_density_ac_forestry(t_all,j,ac,"vegc") ), carbon-price induced afforestation uses the uncalibrated carbon density (p32_c_density_ac_fast_forestry(t_all,j,ac) ), right?

Yes, I confirm. That's how it is intended. I discussed this @abhimish

This allows afforestation to follow the growth curves towards LPJmL natural vegetation carbon density, without being inconsistent with the LPJmL estimates at the mature level.

pm_carbon_density_ac_forestry(t_all,j,ac,"vegc") = pm_carbon_density_ac_forestry(t_all,j,ac,"vegc") * sum(cell(i,j),p32_gs_scaling_reg(i));

** set bii coefficients
p32_bii_coeff(type32,bii_class_secd,potnatveg) = 0;
if(s32_aff_bii_coeff = 0,
p32_bii_coeff("aff",bii_class_secd,potnatveg) = fm_bii_coeff(bii_class_secd,potnatveg)
elseif s32_aff_bii_coeff = 1,
p32_bii_coeff("aff",bii_class_secd,potnatveg) = fm_bii_coeff("timber",potnatveg)
);
p32_bii_coeff("ndc",bii_class_secd,potnatveg) = fm_bii_coeff(bii_class_secd,potnatveg);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to also allow for the application of the switch "s32_aff_bii_coeff" onto NPI/NDC afforestation? Also here, afforestation policies could be implemented in different ways, either in a more plantation like manner with fast growing species or using only native species, with different implications for biodiversity and thus the choice of bii coefficient.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, this could be added. We would need 2 more switches for that like s32_ndc_growth_curve and s32_ndc_bii_coeff to allow for different assumptions with respect to ndc and co2 price driven afforestation. @mishkos What do you think?Does it make sense to have these additional switches?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While it does make sense to differentiate what kind of forests are established under npi/ndc policies, the national documents don't specify this at all. Therefore I suggest for the time being to stick to the natveg growth curves for npi/ndc aff pol.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NPI/NDC afforestation still uses natveg growth. We only now provide a possibility where CO2 price induced afforestation can be selected to grow with a plantation growth curved. We have three forestry categories, plant which is timber production plantations, aff which are co2 priced afforestation and ndc which are prescribed afforestation according to NPI/NDC policy. My understanding was that prescribed NPI/NDC policy does not merge back into aff.
@flohump this is the correct way to put it right?

p32_bii_coeff("plant",bii_class_secd,potnatveg) = fm_bii_coeff("timber",potnatveg);
36 changes: 15 additions & 21 deletions modules/32_forestry/dynamic_feb21/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -16,42 +16,36 @@ ac_sub(ac) = yes$(ord(ac) > (m_yeardiff_forestry(t)/5));
v32_hvarea_forestry.fx(j,ac_est) = 0;
v32_land_reduction.fx(j,type32,ac_est) = 0;

** Start ndc **
* Limit demand for prescribed NPI/NDC afforestation in `p32_aff_pol` if not enough suitable area (`p32_aff_pot`) for afforestation is available.
** START ndc **
* calc NPI/NDC afforestation per time step based on forest stock change
p32_aff_pol_timestep("y1995",j) = 0;
p32_aff_pol_timestep(t,j)$(ord(t)>1) = p32_aff_pol(t,j) - p32_aff_pol(t-1,j);
* Suitable area (`p32_aff_pot`) for NPI/NDC afforestation
p32_aff_pot(t,j) = (vm_land.l(j,"crop") - vm_land.lo(j,"crop")) + (vm_land.l(j,"past") - vm_land.lo(j,"past"));
*correct ndc forest stock based on p32_aff_pot
if((ord(t) > 1),
p32_aff_pol(t,j)$(p32_aff_pol(t,j) - p32_aff_pol(t-1,j) > p32_aff_pot(t,j)) = p32_aff_pol(t-1,j) + p32_aff_pot(t,j);
);
*calc ndc afforestation per time step based on forest stock changes
p32_aff_pol_timestep("y1995",j) = 0;
p32_aff_pol_timestep(t,j)$(ord(t)>1) = p32_aff_pol(t,j) - p32_aff_pol(t-1,j);
* Limit prescribed NPI/NDC afforestation in `p32_aff_pol_timestep` if not enough suitable area (`p32_aff_pot`) for afforestation is available
p32_aff_pol_timestep(t,j)$(p32_aff_pol_timestep(t,j) > p32_aff_pot(t,j)) = p32_aff_pot(t,j);
** END ndc **
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me. The change doesn't affect the way how npi/ndc aff policy is established in each cell. The code is simplified.


if(m_year(t) <= sm_fix_SSP2,
p32_max_aff_area = Inf;
else
p32_max_aff_area = s32_max_aff_area;
);
** END ndc **

*' @code

*' Afforestation switch:
*' 0 = Use natveg carbon densities for afforestation,
*' 1 = Use plantation carbon densities for afforestation.
*' 0 = Use natveg growth curve towards LPJmL natural vegetation
*' 1 = Use plantation growth curve (faster than natveg) towards LPJmL natural vegetation
if(s32_aff_plantation = 0,
p32_carbon_density_ac(t,j,"aff",ac,ag_pools) = pm_carbon_density_ac(t,j,ac,ag_pools);
elseif s32_aff_plantation = 1,
p32_carbon_density_ac(t,j,"aff",ac,ag_pools) = pm_carbon_density_ac_forestry(t,j,ac,ag_pools);
);
*' Timber plantations switch:
*' 0 = Use natveg carbon densities for timber plantations,
*' 1 = Use plantation carbon densities for timber plantations.
if(s32_timber_plantation = 0,
p32_carbon_density_ac(t,j,"plant",ac,ag_pools) = pm_carbon_density_ac(t,j,ac,ag_pools);
elseif s32_timber_plantation = 1,
p32_carbon_density_ac(t,j,"plant",ac,ag_pools) = pm_carbon_density_ac_forestry(t,j,ac,ag_pools);
p32_carbon_density_ac(t,j,"aff",ac,ag_pools) = p32_c_density_ac_fast_forestry(t,j,ac);
);

*' Timber plantations carbon densities:
p32_carbon_density_ac(t,j,"plant",ac,ag_pools) = pm_carbon_density_ac_forestry(t,j,ac,ag_pools);

*' NDC carbon densities are natveg carbon densities.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see comment on bii coefficient in the NPI/NDC context above: maybe consider also here the possibility to select between plantation and natveg growth curves?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This I discussed with @abhimishr . We agreed that it does not make sense to assume natveg growth curves for timber plantations.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as answered above, I suggest to keep natveg growth curves for the npi/ndc aff policy.

p32_carbon_density_ac(t,j,"ndc",ac,ag_pools) = pm_carbon_density_ac(t,j,ac,ag_pools);

Expand Down
8 changes: 4 additions & 4 deletions modules/35_natveg/dynamic_feb21/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,13 @@

q35_bv_secdforest(j2,potnatveg) .. vm_bv(j2,"secdforest",potnatveg)
=e=
sum(ac_mature, v35_secdforest(j2,ac_mature)) * fm_bii_coeff("secd_mature",potnatveg) * fm_luh2_side_layers(j2,potnatveg)
+ sum(ac_young, v35_secdforest(j2,ac_young)) * fm_bii_coeff("secd_young",potnatveg) * fm_luh2_side_layers(j2,potnatveg);
sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), v35_secdforest(j2,ac)) *
fm_bii_coeff(bii_class_secd,potnatveg)) * fm_luh2_side_layers(j2,potnatveg);

q35_bv_other(j2,potnatveg) .. vm_bv(j2,"other",potnatveg)
=e=
sum(ac_mature, v35_other(j2,ac_mature)) * fm_bii_coeff("secd_mature",potnatveg) * fm_luh2_side_layers(j2,potnatveg)
+ sum(ac_young, v35_other(j2,ac_young)) * fm_bii_coeff("secd_young",potnatveg) * fm_luh2_side_layers(j2,potnatveg);
sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), v35_other(j2,ac)) *
fm_bii_coeff(bii_class_secd,potnatveg)) * fm_luh2_side_layers(j2,potnatveg);

*' NPI/NDC land protection policies are implemented as minium forest land and other land stock.

Expand Down
6 changes: 4 additions & 2 deletions modules/39_landconversion/global_static_aug18/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
*** | Contact: magpie@pik-potsdam.de

scalars
s39_cost_establish Cost for establishing new land use (USD05MER per hectare) /8000/
s39_cost_clearing Clearing costs linked to removed biomass (USD05MER per ton C) /0/
s39_cost_establish_crop Cost for establishing new land use (USD05MER per hectare) /8000/
s39_cost_establish_past Cost for establishing new land use (USD05MER per hectare) /8000/
s39_cost_establish_forestry Cost for establishing new land use (USD05MER per hectare) /1000/
s39_cost_clearing Clearing costs linked to removed biomass (USD05MER per ton C) /0/
;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this change in settings requires the PR to be tagged as "medium risk" as it will have probably some visible effects on the dynamics

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. Happy to discuss these changes in the next group meeting.

4 changes: 3 additions & 1 deletion modules/39_landconversion/global_static_aug18/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
*** | Contact: magpie@pik-potsdam.de

i39_cost_establish(land) = 0;
i39_cost_establish(land_establish39) = s39_cost_establish;
i39_cost_establish("crop") = s39_cost_establish_crop;
i39_cost_establish("past") = s39_cost_establish_past;
i39_cost_establish("forestry") = s39_cost_establish_forestry;

i39_cost_clearing(land) = 0;
i39_cost_clearing(land_clearing39) = s39_cost_clearing;
6 changes: 4 additions & 2 deletions modules/39_landconversion/global_static_aug18/realization.gms
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@
*' In the global_static_aug18 realization, per hectare land conversion costs are separated into
*' costs for expansion of cropland, pasture and forestry (establishment costs) and
*' costs for clearing of primary forest, secondary forest and other natural land (clearing costs).
*' We assume a global cost factor of 8000 USD/ha (static over time) for establishment of managed land.
*' For clearing of natural vegetation we assume a global static cost factor of 5 USD/tC (based on @kreidenweis_pasture_2018).
*' By default, we assume a global cost factor of 8000 USD/ha (static over time)
*' for establishment of cropland and pasture, and 1000 USD/ha for forestry land.
*' By default, clearing of natural vegetation is not priced. Plausible values range
*' between 0-5 USD/tC (based on @kreidenweis_pasture_2018).
*'
*' @limitations Data availability for land conversion costs is very limited.

Expand Down
13 changes: 12 additions & 1 deletion modules/44_biodiversity/bv_btc_mar21/sets.gms
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,20 @@ sets
landcover44 land cover classes used in bii calculation
/ crop_ann, crop_per, manpast, rangeland, urban, aff_ndc, aff_co2p, primforest, secdforest, other, plant /

bii_class44 bii land cover classes
bii_class44 bii coefficent land cover classes
/ crop_ann, crop_per, manpast, rangeland, urban, primary, secd_mature, secd_young, timber /

bii_class_secd(bii_class44) bii coefficent land cover classes secondary vegetation
/ secd_mature, secd_young /

ac_to_bii_class_secd(ac,bii_class_secd) Mapping between forest ageclasses and bii coefficent land cover classes
/ (ac0,ac5,ac10,ac15,ac20,ac25,ac30) . (secd_young)
(ac35,ac40,ac45,ac50,ac55,ac60,
ac65,ac70,ac75,ac80,ac85,ac90,
ac95,ac100,ac105,ac110,ac115,
ac120,ac125,ac130,ac135,ac140,
ac145,ac150,ac155,acx) . (secd_mature) /

price_biodiv44 price paths biodiv loss
/ p0,p1,p1_p10,p10,p10_p100,p1_p1000,p10_p10000 /

Expand Down
Loading