Skip to content

Commit

Permalink
Merge pull request #755 from flohump/f_fixfader
Browse files Browse the repository at this point in the history
bugfix fader GHG emission pricing policy and Sync of NPI and NDC policies to  2025
  • Loading branch information
flohump authored Dec 3, 2024
2 parents b1e7f23 + e2e6481 commit 66d69ab
Show file tree
Hide file tree
Showing 57 changed files with 156 additions and 144 deletions.
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
25 changes: 11 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,22 @@ 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)
# based on https://unece.org/forests/prices: 60 EUR/m3 = 72 USD/m3; 72 USD/m3 / 0.6 = 120 USD/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

# harvesting cost per ha of forests (USD17MER/ha)
# harvesting cost of woodfuel per ton of dry matter produced (USD17MER/tDM)
# based on https://unece.org/forests/prices
# * (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

0 comments on commit 66d69ab

Please sign in to comment.