Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
flohump committed Nov 12, 2024
1 parent 1e3f522 commit 8e865af
Show file tree
Hide file tree
Showing 29 changed files with 182 additions and 68 deletions.
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### added
- **62_material** added switch to turn off future material demand for bioplastic
- **config** added SSP1-POP-GDP SSP2-POP-GDP and SSP5-POP-GDP
- **modules[29-35]** added initial vales for ov_bv for better starting point

### removed
-
Expand All @@ -31,8 +32,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- **scripts** script/output/extra/resubmit.R
- **28_ageclass** bugfix input data unit and code clean-up. Renamed `feb21` realization to `oct24`
- **70_livestock** bugfix scaling.gms file in wrong folder
- **10_land** bugfix land transition matrix for improved feasibility (variables and parameters have different accuracy)
- **44_biodiversity** avoid division by zero and improved consistency between realisations for fixing variables
- **10_land** Simplified land transition matrix for improved feasibility
- **44_biodiversity** bugfix biorealm_biome.cs3 in input data (shares did not add-up to 1)

## [4.8.2] - 2024-09-24

Expand Down
6 changes: 3 additions & 3 deletions config/default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ cfg$model <- "main.gms" #def = "main.gms"
#### input settings ####

# which input data sets should be used?
cfg$input <- c(regional = "rev4.115_h12_magpie.tgz",
cellular = "rev4.115_h12_0bd54110_cellularmagpie_c200_MRI-ESM2-0-ssp119_lpjml-8e6c5eb1.tgz",
validation = "rev4.115_h12_validation.tgz",
cfg$input <- c(regional = "rev4.116_h12_magpie.tgz",
cellular = "rev4.116_h12_2ca80312_cellularmagpie_c400_MRI-ESM2-0-ssp370_lpjml-8e6c5eb1.tgz",
validation = "rev4.116_h12_validation.tgz",
additional = "additional_data_rev4.57.tgz",
calibration = "calibration_H12_27Sep24.tgz")

Expand Down
2 changes: 1 addition & 1 deletion config/projects/scenario_config_el2.csv
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ gms$s15_exo_alcohol;1;1;1
gms$s15_alc_scen;0;0;0
gms$factor_costs;sticky_labor;sticky_labor;sticky_labor
gms$c70_feed_scen;ssp1;ssp2;ssp2
input['cellular'];rev4.115EL2_h12_c6a7458f_cellularmagpie_c200_IPSL-CM6A-LR-ssp370_lpjml-8e6c5eb1.tgz;;
input['cellular'];rev4.116EL2_h12_c6a7458f_cellularmagpie_c200_IPSL-CM6A-LR-ssp370_lpjml-8e6c5eb1.tgz;;
magicc_emis_scen;REMIND_generic_C_SSP2EU-DSPkB650-DS_betax_DeepDive_noNDC-rem-12.mif;REMIND_generic_C_SSP2EU-DSPkB650-DS_betax_DeepDive_noNDC-rem-12.mif;REMIND_generic_C_SSP2EU-DSPkB650-DS_betax_DeepDive_noNDC-rem-12.mif
6 changes: 3 additions & 3 deletions config/projects/scenario_config_fsec.csv
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ gms$s62_max_dem_bioplastic;0;;;;400;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
gms$c70_fac_req_regr;reg;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
gms$c70_feed_scen;;;;;;;;;;;;;;;;;;ssp1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
gms$c73_build_demand;;;;;;;;;;;;;;;;;;;;;;;;50pc;;;;;;;;;;;;;;;;;;;;;;;;;;;
input['cellular'];rev4.115_FSEC_3c888fa5_cellularmagpie_c200_MRI-ESM2-0-ssp460_lpjml-8e6c5eb1.tgz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;rev4.115_FSEC_0bd54110_cellularmagpie_c200_MRI-ESM2-0-ssp119_lpjml-8e6c5eb1.tgz;rev4.115_FSEC_6819938d_cellularmagpie_c200_MRI-ESM2-0-ssp126_lpjml-8e6c5eb1.tgz;;rev4.115_FSEC_1b5c3817_cellularmagpie_c200_MRI-ESM2-0-ssp245_lpjml-8e6c5eb1.tgz;rev4.115_FSEC_3c888fa5_cellularmagpie_c200_MRI-ESM2-0-ssp460_lpjml-8e6c5eb1.tgz;rev4.115_FSEC_fd712c0b_cellularmagpie_c200_MRI-ESM2-0-ssp370_lpjml-8e6c5eb1.tgz;rev4.115_FSEC_09a63995_cellularmagpie_c200_MRI-ESM2-0-ssp585_lpjml-8e6c5eb1.tgz;;;
input['regional'];rev4.115_FSEC_magpie.tgz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
input['validation'];rev4.115_FSEC_validation.tgz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
input['cellular'];rev4.116_FSEC_3c888fa5_cellularmagpie_c200_MRI-ESM2-0-ssp460_lpjml-8e6c5eb1.tgz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;rev4.116_FSEC_0bd54110_cellularmagpie_c200_MRI-ESM2-0-ssp119_lpjml-8e6c5eb1.tgz;rev4.116_FSEC_6819938d_cellularmagpie_c200_MRI-ESM2-0-ssp126_lpjml-8e6c5eb1.tgz;;rev4.116_FSEC_1b5c3817_cellularmagpie_c200_MRI-ESM2-0-ssp245_lpjml-8e6c5eb1.tgz;rev4.116_FSEC_3c888fa5_cellularmagpie_c200_MRI-ESM2-0-ssp460_lpjml-8e6c5eb1.tgz;rev4.116_FSEC_fd712c0b_cellularmagpie_c200_MRI-ESM2-0-ssp370_lpjml-8e6c5eb1.tgz;rev4.116_FSEC_09a63995_cellularmagpie_c200_MRI-ESM2-0-ssp585_lpjml-8e6c5eb1.tgz;;;
input['regional'];rev4.116_FSEC_magpie.tgz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
input['validation'];rev4.116_FSEC_validation.tgz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
input['additional'];additional_data_rev4.57.tgz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
input['calibration'];calibration_FSEC_27Sep24.tgz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
magicc_emis_scen;bjoernAR6_C_SSP2-NDC.mif;;;bjoernAR6_C_SSP2-PkBudg900.mif;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;bjoernAR6_C_SSP1-NDC.mif;;;;;;;;;;;;bjoernAR6_C_RemSDP-900-MagSSP1.mif;;
2 changes: 1 addition & 1 deletion config/scenario_config.csv
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,4 @@ gms$c60_biodem_level;;;;;;;;;;;;;;;;;;;;1;0;;;;;;;;;;;;
gms$c60_res_2ndgenBE_dem;;;;ssp1;ssp2;ssp2;ssp3;ssp4;ssp5;sdp;ssp2;sdp;sdp;;;;;;;;;;;;;;;;;;;;
gms$c70_feed_scen;;;;ssp1;ssp2;ssp2;ssp3;ssp4;ssp5;ssp1;ssp5;ssp1;ssp1;;;;;;;;;;;;;;;;;;;;
gms$s73_timber_demand_switch;;;;;;;;;;;;;;;;;;;;;;;;;1;1;0;;;;;;
input['cellular'];;;;;;;;;;;;;;;;;;;;;;;;;;;;rev4.115_h12_0bd54110_cellularmagpie_c200_MRI-ESM2-0-ssp119_lpjml-8e6c5eb1.tgz;rev4.115_h12_6819938d_cellularmagpie_c200_MRI-ESM2-0-ssp126_lpjml-8e6c5eb1.tgz;rev4.115_h12_1b5c3817_cellularmagpie_c200_MRI-ESM2-0-ssp245_lpjml-8e6c5eb1.tgz;rev4.115_h12_3c888fa5_cellularmagpie_c200_MRI-ESM2-0-ssp460_lpjml-8e6c5eb1.tgz;rev4.115_h12_fd712c0b_cellularmagpie_c200_MRI-ESM2-0-ssp370_lpjml-8e6c5eb1.tgz;rev4.115_h12_09a63995_cellularmagpie_c200_MRI-ESM2-0-ssp585_lpjml-8e6c5eb1.tgz
input['cellular'];;;;;;;;;;;;;;;;;;;;;;;;;;;;rev4.116_h12_0bd54110_cellularmagpie_c200_MRI-ESM2-0-ssp119_lpjml-8e6c5eb1.tgz;rev4.116_h12_6819938d_cellularmagpie_c200_MRI-ESM2-0-ssp126_lpjml-8e6c5eb1.tgz;rev4.116_h12_1b5c3817_cellularmagpie_c200_MRI-ESM2-0-ssp245_lpjml-8e6c5eb1.tgz;rev4.116_h12_3c888fa5_cellularmagpie_c200_MRI-ESM2-0-ssp460_lpjml-8e6c5eb1.tgz;rev4.116_h12_fd712c0b_cellularmagpie_c200_MRI-ESM2-0-ssp370_lpjml-8e6c5eb1.tgz;rev4.116_h12_09a63995_cellularmagpie_c200_MRI-ESM2-0-ssp585_lpjml-8e6c5eb1.tgz
7 changes: 7 additions & 0 deletions modules/29_cropland/detail_apr24/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,10 @@ p29_country_dummy(policy_countries29) = 1;
* Countries are weighted by available cropland area.
pm_avl_cropland_iso(iso) = f29_avl_cropland_iso(iso,"%c29_marginal_land%");
p29_country_weight(i) = sum(i_to_iso(i,iso), p29_country_dummy(iso) * pm_avl_cropland_iso(iso)) / sum(i_to_iso(i,iso), pm_avl_cropland_iso(iso));

* Initialize biodiversity value
vm_bv.l(j2,"crop_fallow",potnatveg) = 0;

vm_bv.l(j2,"crop_tree",potnatveg) =
sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), pc29_treecover(j2,ac)) *
p29_treecover_bii_coeff(bii_class_secd,potnatveg)) * fm_luh2_side_layers(j2,potnatveg);
9 changes: 9 additions & 0 deletions modules/30_croparea/detail_apr24/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,12 @@ p30_country_dummy(policy_countries30) = 1;
* share is calculated that translates the countries' influence to regional level.
* Countries are weighted by available cropland area.
p30_country_weight(i) = sum(i_to_iso(i,iso), p30_country_dummy(iso) * pm_avl_cropland_iso(iso)) / sum(i_to_iso(i,iso), pm_avl_cropland_iso(iso));

* Initialize biodiversity value
vm_bv.l(j,"crop_ann",potnatveg) =
sum((crop_ann30,w), fm_croparea("y1995",j,w,crop_ann30)) * fm_bii_coeff("crop_ann",potnatveg)
* fm_luh2_side_layers(j,potnatveg);

vm_bv.l(j,"crop_per",potnatveg) =
sum((crop_per30,w), fm_croparea("y1995",j,w,crop_per30)) * fm_bii_coeff("crop_per",potnatveg)
* fm_luh2_side_layers(j,potnatveg);
9 changes: 9 additions & 0 deletions modules/30_croparea/simple_apr24/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,12 @@ p30_country_dummy(policy_countries30) = 1;
* share is calculated that translates the countries' influence to regional level.
* Countries are weighted by available cropland area.
p30_country_weight(i) = sum(i_to_iso(i,iso), p30_country_dummy(iso) * pm_avl_cropland_iso(iso)) / sum(i_to_iso(i,iso), pm_avl_cropland_iso(iso));

* Initialize biodiversity value
vm_bv.l(j,"crop_ann",potnatveg) =
sum((crop_ann30,w), fm_croparea("y1995",j,w,crop_ann30)) * fm_bii_coeff("crop_ann",potnatveg)
* fm_luh2_side_layers(j,potnatveg);

vm_bv.l(j,"crop_per",potnatveg) =
sum((crop_per30,w), fm_croparea("y1995",j,w,crop_per30)) * fm_bii_coeff("crop_per",potnatveg)
* fm_luh2_side_layers(j,potnatveg);
14 changes: 14 additions & 0 deletions modules/31_past/endo_jun13/preloop.gms
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
*** | (C) 2008-2024 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: [email protected]

* Initialize biodiversity value
vm_bv.l(j,"manpast",potnatveg) =
pcm_land(j,"past") * fm_luh2_side_layers(j,"manpast") * fm_bii_coeff("manpast",potnatveg) * fm_luh2_side_layers(j,potnatveg);

vm_bv.l(j,"rangeland",potnatveg) =
pcm_land(j,"past") * fm_luh2_side_layers(j,"rangeland") * fm_bii_coeff("rangeland",potnatveg) * fm_luh2_side_layers(j,potnatveg);

1 change: 1 addition & 0 deletions modules/31_past/endo_jun13/realization.gms
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
$Ifi "%phase%" == "declarations" $include "./modules/31_past/endo_jun13/declarations.gms"
$Ifi "%phase%" == "input" $include "./modules/31_past/endo_jun13/input.gms"
$Ifi "%phase%" == "equations" $include "./modules/31_past/endo_jun13/equations.gms"
$Ifi "%phase%" == "preloop" $include "./modules/31_past/endo_jun13/preloop.gms"
$Ifi "%phase%" == "presolve" $include "./modules/31_past/endo_jun13/presolve.gms"
$Ifi "%phase%" == "postsolve" $include "./modules/31_past/endo_jun13/postsolve.gms"
*######################## R SECTION END (PHASES) ###############################
9 changes: 9 additions & 0 deletions modules/31_past/grasslands_apr22/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,12 @@ i31_grass_yields(t,j,"pastr") = i31_grass_yields(t,j,"pastr") * i31_grass_calib(

*' Note that the calculation is split into two parts for better readability.
*' @stop

* Initialize biodiversity value
vm_bv.l(j,"manpast",potnatveg) =
pcm_land(j,"past") * fm_luh2_side_layers(j,"manpast") * fm_bii_coeff("manpast",potnatveg) * fm_luh2_side_layers(j,potnatveg);

vm_bv.l(j,"rangeland",potnatveg) =
pcm_land(j,"past") * fm_luh2_side_layers(j,"rangeland") * fm_bii_coeff("rangeland",potnatveg) * fm_luh2_side_layers(j,potnatveg);


13 changes: 13 additions & 0 deletions modules/32_forestry/dynamic_may24/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -228,3 +228,16 @@ p32_land(t,j,type32,ac) = 0;

* initialize forest disturbance losses
p32_disturbance_loss_ftype32(t,j,"aff",ac) = 0;

* Initialize biodiversity value
vm_bv.l(j,"aff_co2p",potnatveg) =
sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), pc32_land(j,"aff",ac)) *
p32_bii_coeff("aff",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j,potnatveg);

vm_bv.l(j,"aff_ndc",potnatveg) =
sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), pc32_land(j,"ndc",ac)) *
p32_bii_coeff("ndc",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j,potnatveg);

vm_bv.l(j,"plant",potnatveg) =
sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), pc32_land(j,"plant",ac)) *
p32_bii_coeff("plant",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j,potnatveg);
4 changes: 4 additions & 0 deletions modules/34_urban/exo_nov21/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@ i34_urban_area(t_all, j) = f34_urbanland(t_all, j,"%c34_urban_scenario%");
);

pcm_land(j,"urban") = i34_urban_area("y1995",j);

* Initialize biodiversity value
vm_bv.l(j2,"urban", potnatveg) =
pcm_land(j2,"urban") * fm_bii_coeff("urban",potnatveg) * fm_luh2_side_layers(j2,potnatveg);
2 changes: 1 addition & 1 deletion modules/34_urban/static/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

vm_land.fx(j,"urban") = pcm_land(j,"urban");
vm_carbon_stock.fx(j,"urban",ag_pools,stockType) = 0;
*' Biodiveristy value (BV)
* Biodiveristy value (BV)
vm_bv.fx(j,"urban", potnatveg) = pcm_land(j,"urban") * fm_bii_coeff("urban",potnatveg) * fm_luh2_side_layers(j,potnatveg);

vm_cost_urban.fx(j) = 0;
12 changes: 12 additions & 0 deletions modules/35_natveg/pot_forest_may24/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,15 @@ m_sigmoid_time_interpol(p35_damage_fader,sm_fix_SSP2,s35_forest_damage_end,0,1);

pc35_secdforest(j,ac) = i35_secdforest(j,ac);
pc35_land_other(j,othertype35,ac) = i35_land_other(j,othertype35,ac);

* Initialize biodiversity value
vm_bv.l(j,"primforest",potnatveg) =
pcm_land(j,"primforest") * fm_bii_coeff("primary",potnatveg) * fm_luh2_side_layers(j,potnatveg);

vm_bv.l(j,"secdforest",potnatveg) =
sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), i35_secdforest(j,ac)) *
fm_bii_coeff(bii_class_secd,potnatveg)) * fm_luh2_side_layers(j,potnatveg);

vm_bv.l(j,"other",potnatveg) =
sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), sum(othertype35, i35_land_other(j,othertype35,ac))) *
fm_bii_coeff(bii_class_secd,potnatveg)) * fm_luh2_side_layers(j,potnatveg);
18 changes: 10 additions & 8 deletions modules/44_biodiversity/bii_target/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,24 @@


positive variables
vm_cost_bv_loss(j) Biodiversity cost (mio USD17MER)
vm_bv(j,landcover44,potnatveg) Biodiversity stock for all land cover classes (Mha)
v44_bii(i,biome44) Biodiversity Intactness Index BII (1)
v44_bii_missing(i,biome44) Missing BII increase for compliance with BII target (1)
vm_cost_bv_loss(j) Biodiversity cost (mio USD17MER)
vm_bv(j,landcover44,potnatveg) Biodiversity stock for all land cover classes (Mha)
v44_bii(i,biome44) Biodiversity Intactness Index BII (1)
v44_bii_missing(i,biome44) Missing BII increase for compliance with BII target (1)
;

parameters
p44_bii_lower_bound(t,i,biome44) Interpolated lower bound for BII over time (1)
p44_bii_lower_bound(t,i,biome44) Interpolated lower bound for BII over time (1)
p44_start_value(i,biome44) Start value for BII lower bound (1)
p44_target_value(i,biome44) Target value for BII lower bound (1)
i44_biome_share(j,biome44) Share of biome type in each spatial unit (1)
i44_biome_area_reg(i,biome44) Area of range-rarity weighted biome type in each region (mio. ha)
;

equations
q44_bii(i,biome44) Biodiversity Intactness Index BII (1)
q44_bii_target(i,biome44) Missing BII increase for compliance with BII target (1)
q44_cost(i) Biodiversity cost (mio USD17MER)
q44_bii(i,biome44) Biodiversity Intactness Index BII (1)
q44_bii_target(i,biome44) Missing BII increase for compliance with BII target (1)
q44_cost(i) Biodiversity cost (mio USD17MER)
;


Expand Down
9 changes: 5 additions & 4 deletions modules/44_biodiversity/bii_target/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,16 @@
*' The Biodiversity Intactness Index (BII) is calculated at the level of 71 biomes.
*' The regional layer is needed for compatibility with the high resolution parallel optimization output script (scripts/output/extra/highres.R)

q44_bii(i2,biome44)$(sum(cell(i2,j2), f44_biome(j2,biome44)) > 1e-10) ..
v44_bii(i2,biome44) * sum((cell(i2,j2),land), pcm_land(j2,land) * f44_biome(j2,biome44))
q44_bii(i2,biome44)$(i44_biome_area_reg(i2,biome44) > 0) ..
v44_bii(i2,biome44)
=e=
sum((cell(i2,j2),potnatveg,landcover44), vm_bv(j2,landcover44,potnatveg) * f44_biome(j2,biome44));
sum((cell(i2,j2),potnatveg,landcover44), vm_bv(j2,landcover44,potnatveg) * f44_biome(j2,biome44))
/ i44_biome_area_reg(i2,biome44);

*' For each of the 71 biomes, the BII has to meet a minium level based on `s44_bii_lower_bound`.
*' `v44_bii_missing` is a technical variable to maintain feasibility in case `v44_bii` cannot be increased.

q44_bii_target(i2,biome44)$(sum(cell(i2,j2), f44_biome(j2,biome44)) > 1e-10) ..
q44_bii_target(i2,biome44)$(i44_biome_area_reg(i2,biome44) > 0) ..
v44_bii(i2,biome44) + v44_bii_missing(i2,biome44) =g= sum(ct, p44_bii_lower_bound(ct,i2,biome44));

*' Costs accrue only for `v44_bii_missing`. In the best case costs should be zero or close to zero.
Expand Down
6 changes: 3 additions & 3 deletions modules/44_biodiversity/bii_target/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
*** | Contact: [email protected]

scalars
s44_bii_lower_bound Lower bound for BII (1) / 0 /
s44_bii_lower_bound Lower bound for BII (1) / 0 /
c44_bii_decrease Implementation of lower bound for BII (binary) / 1 /
s44_target_year Year in which the BII lower bound is reached (1) / 2100 /
s44_start_year Start year for interpolation towards BII lower bound (1) / 2025 /
s44_cost_bii_missing Technical costs for missing BII increase (USD17MER per unit of BII) / 1e+06 /
s44_cost_bii_missing Technical costs for missing BII increase (USD17MER per unit of BII) / 1e+06 /
;


Expand All @@ -20,7 +20,7 @@ $include "./modules/44_biodiversity/bii_target/input/f44_bii_coeff.cs3"
$offdelim
;

table f44_biome(j,biome44) Share of biome type in each spatial unit (1)
table f44_biome_area(j,biome44) Area of biome type in each spatial unit (mio. ha)
$ondelim
$include "./modules/44_biodiversity/bii_target/input/biorealm_biome.cs3"
$offdelim
Expand Down
23 changes: 18 additions & 5 deletions modules/44_biodiversity/bii_target/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,23 @@
*** | MAgPIE License Exception, version 1.0 (see LICENSE file).
*** | Contact: [email protected]

v44_bii.l(i,biome44) = 0.75;
i44_biome_share(j,biome44) = 0;
i44_biome_share(j,biome44)$(sum(land, pcm_land(j,land)) > 0) = f44_biome_area(j,biome44) / sum(land, pcm_land(j,land));

v44_bii.fx(i,biome44)$(sum(cell(i,j), f44_biome(j,biome44)) <= 1e-10) = 0;
v44_bii_missing.fx(i,biome44)$(sum(cell(i,j), f44_biome(j,biome44)) <= 1e-10) = 0;
p44_bii_lower_bound(t,i,biome44) = 0;
i44_biome_area_reg(i,biome44) =
sum((cell(i,j),land), pcm_land(j,land) * i44_biome_share(j,biome44));

loop(i,
loop(biome44,
if(i44_biome_area_reg(i,biome44) <= 0,
v44_bii.fx(i,biome44) = 0;
v44_bii_missing.fx(i,biome44) = 0;
else
v44_bii.l(i,biome44) =
sum((cell(i,j),potnatveg,landcover44), vm_bv.l(j,landcover44,potnatveg) * i44_biome_share(j,biome44))
/ i44_biome_area_reg(i,biome44);
);
);
);

vm_bv.l(j,landcover44,potnatveg) = 0;
p44_bii_lower_bound(t,i,biome44) = 0;
2 changes: 1 addition & 1 deletion modules/44_biodiversity/bii_target/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ else
);
p44_bii_lower_bound(t2,i,biome44)$(p44_bii_lower_bound(t2,i,biome44) >= 1) = 1;
p44_bii_lower_bound(t2,i,biome44)$(m_year(t2) < s44_start_year) = 0;
p44_bii_lower_bound(t2,i,biome44)$(sum(cell(i,j), f44_biome(j,biome44)) <= 1e-10) = 0;
p44_bii_lower_bound(t2,i,biome44)$(i44_biome_area_reg(i,biome44) <= 0) = 0;
* The lower bound of `v44_bii` is set to `p44_bii_lower_bound` to avoid a reduction of BII in combination with `v44_bii_missing`.
v44_bii.lo(i,biome44) = p44_bii_lower_bound(t,i,biome44);
display p44_bii_lower_bound;
Expand Down
16 changes: 9 additions & 7 deletions modules/44_biodiversity/bii_target_apr24/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,24 @@


positive variables
vm_cost_bv_loss(j) Biodiversity cost (mio USD17MER)
vm_bv(j,landcover44,potnatveg) Biodiversity stock for all land cover classes (Mha)
v44_bii(i,biome44) Biodiversity Intactness Index BII (1)
vm_cost_bv_loss(j) Biodiversity cost (mio USD17MER)
vm_bv(j,landcover44,potnatveg) Biodiversity stock for all land cover classes (Mha)
v44_bii(i,biome44) Biodiversity Intactness Index BII (1)
v44_bii_missing(i,biome44) Missing BII increase for compliance with BII target (1)
;

parameters
p44_bii_lower_bound(t,i,biome44) Interpolated lower bound for BII over time (1)
p44_bii_lower_bound(t,i,biome44) Interpolated lower bound for BII over time (1)
p44_start_value(i,biome44) Start value for BII lower bound (1)
p44_target_value(i,biome44) Target value for BII lower bound (1)
i44_biome_share(j,biome44) Share of biome type in each spatial unit (1)
i44_biome_area_reg(i,biome44) Area of range-rarity weighted biome type in each region (mio. ha)
;

equations
q44_bii(i,biome44) Biodiversity Intactness Index BII (1)
q44_bii_target(i,biome44) Missing BII increase for compliance with BII target (1)
q44_cost(i) Biodiversity cost (mio USD17MER)
q44_bii(i,biome44) Biodiversity Intactness Index BII (1)
q44_bii_target(i,biome44) Missing BII increase for compliance with BII target (1)
q44_cost(i) Biodiversity cost (mio USD17MER)
;


Expand Down
Loading

0 comments on commit 8e865af

Please sign in to comment.