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

bugfix fader GHG emission pricing policy and Sync of NPI and NDC policies to 2025 #755

Merged
merged 12 commits into from
Dec 3, 2024
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- **modules** update of scaling factors in several modules
- **scripts** renamed disaggregation_mrdownscale.R -> mrdownscale_LUH2.R
- **config** default for `c60_bioenergy_subsidy` changed from 369 to 246 USD17MER per ton
- **scripts** NPI/NDC policies synced to the year 2025 - update of additional data to `additional_data_rev4.59.tgz`

### added
- **62_material** added switch to turn off future material demand for bioplastic
Expand All @@ -28,6 +29,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- **32_forestry** added option s32_npi_ndc_reversal
- **35_natveg** added option s35_npi_ndc_reversal
- **58_peatland** added option for exogenous peatland rewetting
- **56_ghg_policy** added new interface pcm_carbon_stock to avoid use of vm_carbon_stock.l in equations

### removed
- **31_past** removed `grasslands_apr22` realization
Expand All @@ -42,6 +44,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- **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)
- **config** additional data increased to `additional_data_rev4.58.tgz` which fixes missing gdp2017 conversions in f20_processing_unitcosts
- **56_ghg_policy** Fader for GHG emission pricing policy
- **config** settings in default.cfg for some switches in `73_timber` did not work correctly

## [4.8.2] - 2024-09-24

Expand All @@ -65,7 +69,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- **scripts** `.nc` files are no longer created by default after disaggregation
- **scripts** output/extra/highres.R use default 13_tc realization
- **scripts** rewrite of merge_report.R based on rds files and rbind, which allows for more flexibility when merging reports. Avoid inconsistent use of "GLO" instead of "World" in report.rds files.

- **modules** renamed `country_dummy` to `country_switch` in all modules

### added
- **42_water_demand** added water abstraction type dimension for non-ag uses
Expand Down
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ Imports:
m4fsdp,
madrat,
magclass (>= 6.14.0),
magpie4 (>= 2.15.6),
magpie4 (>= 2.15.8),
MagpieNCGains,
magpiesets (>= 0.46.1),
mip,
mrcommons,
patchwork,
piamenv (>= 0.5.5),
piamInterfaces (>= 0.36.9),
piamInterfaces (>= 0.37.1),
piamutils,
quitte,
raster,
Expand Down
23 changes: 9 additions & 14 deletions config/default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ cfg$model <- "main.gms" #def = "main.gms"
cfg$input <- c(regional = "rev4.116_h12_magpie.tgz",
cellular = "rev4.116_h12_fd712c0b_cellularmagpie_c200_MRI-ESM2-0-ssp370_lpjml-8e6c5eb1.tgz",
validation = "rev4.116_h12_validation.tgz",
additional = "additional_data_rev4.58.tgz",
additional = "additional_data_rev4.59.tgz",
calibration = "calibration_H12_27Sep24.tgz")

# NOTE: It is recommended to recalibrate the model when changing cellular input data
Expand Down Expand Up @@ -1513,7 +1513,7 @@ cfg$gms$s56_ghgprice_fader <- 0 # def = 0
# * Pollutants on which the GHG policy fader will applied
cfg$gms$pollutants_fader <- c("co2_c", "ch4", "n2o_n_direct", "n2o_n_indirect", "nh3_n", "no2_n", "no3_n") # def = all pollutants
# * Start year of GHG policy fade-in
cfg$gms$s56_fader_start <- 2030 # def = 2030
cfg$gms$s56_fader_start <- 2025 # def = 2025
# * End year of GHG policy fade-in
cfg$gms$s56_fader_end <- 2050 # def = 2050
# * Target value of GHG policy fade-in in end year
Expand Down Expand Up @@ -2022,25 +2022,20 @@ cfg$gms$timber <- "default" # def = default
# (implicitly assuming the same rate for plantation harvest and establishment).
# * 1=on
# * 0=off
cfg$gms$s73_timber_demand_switch <- 1 # def = 1
cfg$gms$s73_timber_demand_switch <- 1 # def = 1

# harvesting cost per ton of dry matter produced (USD17MER/tDM)
# harvesting cost of industrial roundwood per ton of dry matter produced (USD17MER/tDM)
# * (inflated from default originally in USD05 using USD05 --> USD17 inflation rate: 1.23)
s73_timber_prod_cost <- 2460 # def = 2000 * 1.23
cfg$gms$s73_timber_prod_cost_wood <- 148 # def = 120 * 1.23
Copy link
Member

Choose a reason for hiding this comment

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

Where do the original values come from? Maybe add a reference for the 120 for roundwood and 60 for woodfuel in the comment?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The value of 2460 was never used because cfg$gms was missing in front of s73_timber_prod_cost. Moreover, s73_timber_prod_cost does no longer exist.
The value of s73_timber_prod_cost_wood is unchanged because so far the value was directly taken from input.gms


# harvesting cost per ha of forests (USD17MER/ha)
# harvesting cost of woodfuel per ton of dry matter produced (USD17MER/tDM)
# * (inflated from default originally in USD05 using USD05 --> USD17 inflation rate: 1.23)
s73_timber_harvest_cost <- 2460 # def = 2000 * 1.23

# Cost multiplier for harvesting costs to make natural vegetation harvest expensive
# than timber plantation harvest. This provides a signal to the model to harvest
# timber plantations first.
s73_cost_multiplier <- 1.5 # def = 1.5
cfg$gms$s73_timber_prod_cost_woodfuel <- 74 # def = 60 * 1.23

# 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 associated with this cost
# This is a last ditch effort for the model and the slack variable associated with this cost
# should not be used in a normally feasible model run (USD17MER/tDM)
s73_free_prod_cost <- 1000000 # def = 1000000
cfg$gms$s73_free_prod_cost <- 1000000 # def = 1000000

# Switch for modifying woody biomass demand starting in 2035
# * ("default") = Default paper demand
Expand Down
2 changes: 1 addition & 1 deletion config/projects/scenario_config_fsec.csv
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,6 @@ gms$c73_build_demand;;;;;;;;;;;;;;;;;;;;;;;;50pc;;;;;;;;;;;;;;;;;;;;;;;;;;;
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.58.tgz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
input['additional'];additional_data_rev4.59.tgz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
input['calibration'];calibration_FSEC_19Nov24.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 main.gms
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ $title magpie
* md5sum: NA
* Repository: https://rse.pik-potsdam.de/data/magpie/public
*
* Used data set: additional_data_rev4.58.tgz
* Used data set: additional_data_rev4.59.tgz
* md5sum: NA
* Repository: https://rse.pik-potsdam.de/data/magpie/public
*
Expand Down
2 changes: 1 addition & 1 deletion modules/12_interest_rate/select_apr20/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
parameters
pm_interest(t_all,i) Interest rate in each region and timestep (% per yr)
* country-specific region scenario switch
p12_country_dummy(iso) Dummy parameter indicating whether country is affected by interest rate scenario (1)
p12_country_switch(iso) Switch indicating whether country is affected by interest rate scenario (1)
p12_reg_shr(t_all,i) Weighted share of region with regards to interest rate scenario of countries (1)
;
6 changes: 3 additions & 3 deletions modules/12_interest_rate/select_apr20/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
* shall be applied.
* In the default case, the interest rate scenario affects all countries when
* activated.
p12_country_dummy(iso) = 0;
p12_country_dummy(select_countries12) = 1;
p12_country_switch(iso) = 0;
p12_country_switch(select_countries12) = 1;
* Because MAgPIE is not run at country-level, but at region level, a region
* share is calculated that translates the countries' influence to regional level.
* Countries are weighted by their population size.
p12_reg_shr(t_all,i) = sum(i_to_iso(i,iso), p12_country_dummy(iso) * im_pop_iso(t_all,iso)) / sum(i_to_iso(i,iso), im_pop_iso(t_all,iso));
p12_reg_shr(t_all,i) = sum(i_to_iso(i,iso), p12_country_switch(iso) * im_pop_iso(t_all,iso)) / sum(i_to_iso(i,iso), im_pop_iso(t_all,iso));

* Interest rate in countries selected in select_countries12
$ifthen "%c12_interest_rate%" == "coupling"
Expand Down
2 changes: 1 addition & 1 deletion modules/15_food/anthro_iso_jun22/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ parameters
i15_exo_foodscen_fader(t,iso) Fader that converges per capita food consumption to an exogenous diet scenario (1)

* country-specific scenario switch
p15_country_dummy(iso) Dummy parameter indicating whether country is affected by diet scenarios (1)
p15_country_switch(iso) Switch indicating whether country is affected by diet scenarios (1)

* calculate diet iteration breakpoint
p15_income_pc_real_ppp(t,i) Regional per capita income after price shock on regional level (USD17PPP per capita)
Expand Down
20 changes: 10 additions & 10 deletions modules/15_food/anthro_iso_jun22/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ Elseif s15_milk_share_fadeout_india = 1,
* Switch to determine countries for which exogenous food scenarios (EAT Lancet diet and
* food waste scenarios), and food substitution scenarios shall be applied.
* In the default case, the exogenous food scenarios affect all countries.
p15_country_dummy(iso) = 0;
p15_country_dummy(scen_countries15) = 1;
p15_country_switch(iso) = 0;
p15_country_switch(scen_countries15) = 1;

** The following lines define scenario faders for substituting different food groups
* If s15_exo_foodscen_functional_form = 1, the exogenous food scenario is faded in linearly.
Expand Down Expand Up @@ -96,13 +96,13 @@ elseif s15_food_subst_functional_form = 2,


* Food substitution scenarios including functional forms, targets and transition periods
i15_ruminant_fadeout(t,iso) = 1 - p15_country_dummy(iso)*p15_ruminant_subst_fader(t);
i15_fish_fadeout(t,iso) = 1 - p15_country_dummy(iso)*p15_fish_subst_fader(t);
i15_alcohol_fadeout(t,iso) = 1 - p15_country_dummy(iso)*p15_alcohol_subst_fader(t);
i15_livestock_fadeout(t,iso) = 1 - p15_country_dummy(iso)*p15_livestock_subst_fader(t);
i15_rumdairy_fadeout(t,iso) = 1 - p15_country_dummy(iso)*p15_rumdairy_subst_fader(t);
i15_rumdairy_scp_fadeout(t,iso) = 1 - p15_country_dummy(iso)*p15_rumdairy_scp_subst_fader(t);
i15_livestock_fadeout_threshold(t,iso) = 1 - p15_country_dummy(iso)*p15_livestock_threshold_subst_fader(t);
i15_ruminant_fadeout(t,iso) = 1 - p15_country_switch(iso)*p15_ruminant_subst_fader(t);
i15_fish_fadeout(t,iso) = 1 - p15_country_switch(iso)*p15_fish_subst_fader(t);
i15_alcohol_fadeout(t,iso) = 1 - p15_country_switch(iso)*p15_alcohol_subst_fader(t);
i15_livestock_fadeout(t,iso) = 1 - p15_country_switch(iso)*p15_livestock_subst_fader(t);
i15_rumdairy_fadeout(t,iso) = 1 - p15_country_switch(iso)*p15_rumdairy_subst_fader(t);
i15_rumdairy_scp_fadeout(t,iso) = 1 - p15_country_switch(iso)*p15_rumdairy_scp_subst_fader(t);
i15_livestock_fadeout_threshold(t,iso) = 1 - p15_country_switch(iso)*p15_livestock_threshold_subst_fader(t);


** The following lines define the scenario fader for the exogeneous food scenario
Expand All @@ -117,7 +117,7 @@ elseif s15_exo_foodscen_functional_form = 2,
);

* Fade in scenarios at country level
i15_exo_foodscen_fader(t,iso) = p15_exo_food_scenario_fader(t) * p15_country_dummy(iso);
i15_exo_foodscen_fader(t,iso) = p15_exo_food_scenario_fader(t) * p15_country_switch(iso);

* Select from the data set of EAT Lancet scenarios the target years that are
* consistent with the target year of the fader:
Expand Down
16 changes: 8 additions & 8 deletions modules/15_food/anthro_iso_jun22/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ if(m_year(t) <= sm_fix_SSP2,
i15_dem_halfsat(iso,regr15) = f15_demand_paras(regr15,"SSP2","halfsaturation");
i15_dem_nonsat(iso,regr15) = f15_demand_paras(regr15,"SSP2","non_saturation");
else
i15_dem_intercept(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","intercept")*p15_country_dummy(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","intercept")*(1-p15_country_dummy(iso));
i15_dem_saturation(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","saturation")*p15_country_dummy(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","saturation")*(1-p15_country_dummy(iso));
i15_dem_halfsat(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","halfsaturation")*p15_country_dummy(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","halfsaturation")*(1-p15_country_dummy(iso));
i15_dem_nonsat(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","non_saturation")*p15_country_dummy(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","non_saturation")*(1-p15_country_dummy(iso));
i15_dem_intercept(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","intercept")*p15_country_switch(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","intercept")*(1-p15_country_switch(iso));
i15_dem_saturation(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","saturation")*p15_country_switch(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","saturation")*(1-p15_country_switch(iso));
i15_dem_halfsat(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","halfsaturation")*p15_country_switch(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","halfsaturation")*(1-p15_country_switch(iso));
i15_dem_nonsat(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","non_saturation")*p15_country_switch(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","non_saturation")*(1-p15_country_switch(iso));
);

option nlp = conopt4;
Expand Down
2 changes: 1 addition & 1 deletion modules/15_food/anthropometrics_jan18/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ parameters
i15_exo_foodscen_fader(t,i) Fader that converges per capita food consumption to an exogenous diet scenario (1)

* country-specific scenario switch
p15_country_dummy(iso) Dummy parameter indicating whether country is affected by diet scenarios (1)
p15_country_switch(iso) Switch indicating whether country is affected by diet scenarios (1)
p15_foodscen_region_shr(t_all,i) Weighted share of region with regards to diet scenario of countries (1)

* calculate diet iteration breakpoint
Expand Down
6 changes: 3 additions & 3 deletions modules/15_food/anthropometrics_jan18/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,13 @@ p15_demand2intake_ratio_ref(i) = 0;
* Switch to determine countries for which exogenous food scenarios (EAT Lancet diet and
* food waste scenarios), and food substitution scenarios shall be applied.
* In the default case, the food scenario affects all countries when activated.
p15_country_dummy(iso) = 0;
p15_country_dummy(scen_countries15) = 1;
p15_country_switch(iso) = 0;
p15_country_switch(scen_countries15) = 1;

* Because MAgPIE is not run at country-level, but at region level, a region
* share is calculated that translates the countries' influence to regional level.
* Countries are weighted by their population size.
p15_foodscen_region_shr(t_all,i) = sum(i_to_iso(i,iso), p15_country_dummy(iso) * im_pop_iso(t_all,iso)) / sum(i_to_iso(i,iso), im_pop_iso(t_all,iso));
p15_foodscen_region_shr(t_all,i) = sum(i_to_iso(i,iso), p15_country_switch(iso) * im_pop_iso(t_all,iso)) / sum(i_to_iso(i,iso), im_pop_iso(t_all,iso));


** The following lines define scenario faders for substituting different food groups
Expand Down
16 changes: 8 additions & 8 deletions modules/15_food/anthropometrics_jan18/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ if(m_year(t) <= sm_fix_SSP2,
i15_dem_halfsat(iso,regr15) = f15_demand_paras(regr15,"SSP2","halfsaturation");
i15_dem_nonsat(iso,regr15) = f15_demand_paras(regr15,"SSP2","non_saturation");
else
i15_dem_intercept(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","intercept")*p15_country_dummy(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","intercept")*(1-p15_country_dummy(iso));
i15_dem_saturation(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","saturation")*p15_country_dummy(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","saturation")*(1-p15_country_dummy(iso));
i15_dem_halfsat(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","halfsaturation")*p15_country_dummy(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","halfsaturation")*(1-p15_country_dummy(iso));
i15_dem_nonsat(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","non_saturation")*p15_country_dummy(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","non_saturation")*(1-p15_country_dummy(iso));
i15_dem_intercept(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","intercept")*p15_country_switch(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","intercept")*(1-p15_country_switch(iso));
i15_dem_saturation(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","saturation")*p15_country_switch(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","saturation")*(1-p15_country_switch(iso));
i15_dem_halfsat(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","halfsaturation")*p15_country_switch(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","halfsaturation")*(1-p15_country_switch(iso));
i15_dem_nonsat(iso,regr15) = f15_demand_paras(regr15,"%c15_food_scenario%","non_saturation")*p15_country_switch(iso)
+ f15_demand_paras(regr15,"%c15_food_scenario_noselect%","non_saturation")*(1-p15_country_switch(iso));
);

option nlp = conopt4;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ parameters
p22_past_restore_pot(t,j) Potential pasture restoration area (mio. ha)
p22_other_restore_pot(t,j) Potential other land restoration area (mio. ha)
p22_country_weight(i) Land conservation country weight per region (1)
p22_country_dummy(iso) Dummy parameter indicating whether country is affected by selected land conservation policy (1)
p22_country_switch(iso) Switch indicating whether country is affected by selected land conservation policy (1)
i22_land_iso(iso) Total land area at ISO level (mio. ha)
;

6 changes: 3 additions & 3 deletions modules/22_land_conservation/area_based_apr22/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
* Regional share of land conservation policies in selective countries:
* Country switch to determine countries for which land conservation shall be applied.
* In the default case, the land conservation affects all countries when activated.
p22_country_dummy(iso) = 0;
p22_country_dummy(policy_countries22) = 1;
p22_country_switch(iso) = 0;
p22_country_switch(policy_countries22) = 1;
* Because MAgPIE is not run at country-level, but at region level, a region
* share is calculated that translates the countries' influence to regional level.
* Countries are weighted by total land area.
i22_land_iso(iso) = sum(land, fm_land_iso("y1995",iso,land));
p22_country_weight(i) = sum(i_to_iso(i,iso), p22_country_dummy(iso) * i22_land_iso(iso)) / sum(i_to_iso(i,iso), i22_land_iso(iso));
p22_country_weight(i) = sum(i_to_iso(i,iso), p22_country_switch(iso) * i22_land_iso(iso)) / sum(i_to_iso(i,iso), i22_land_iso(iso));

* ---------------------------------------------------------------------
* Initialise baseline protection and conservation priority areas
Expand Down
Loading