MAgPIE - An Open Source land-use modeling framework

4.3.0

created with goxygen 1.3.0

Natural Vegetation (35_natveg)

Description

The natural vegetation (natveg) land module is one of the land modules in MAgPIE (see also the other land modules: 30_crop, 31_past, 32_forestry, 34_urban). It calculates land and carbon stocks of natural vegetation, which consists of primary forest, secondary forest and other natural land. The module determines the availability of natural vegetation for land conversion.

Interfaces

Interfaces to other modules

Input

module inputs (A: dynamic_may20 | B: static)
  Description Unit A B
fm_carbon_density
(t_all, j, land, c_pools)
LPJmL carbon density for land and carbon pools \(tC/ha\) x x
pcm_carbon_stock
(j, land, c_pools)
Current carbon in vegetation soil and litter for different land types \(10^6 tC\) x
pcm_land
(j, land)
Land area in previous time step \(10^6 ha\) x x
pm_carbon_density_ac
(t, j, ac, ag_pools)
Above ground natveg carbon density for age classes and carbon pools \(tC/ha\) x
pm_land_start
(j, land)
Land initialization area \(10^6 ha\) x
sm_fix_SSP2 year until which all parameters are fixed to SSP2 values \(year\) x
vm_carbon_stock
(j, land, c_pools)
Carbon stock in vegetation soil and litter for different land types \(10^6 tC\) x x
vm_land
(j, land)
Land area of the different land types \(10^6 ha\) x x

Output

module outputs
  Description Unit
vm_hvarea_other
(j, ac)
Harvested area from other land \(10^6 ha\)
vm_hvarea_primforest
(j)
Harvested area from primary forest \(10^6 ha\)
vm_hvarea_secdforest
(j, ac)
Harvested area from secondary forest \(10^6 ha\)
vm_landdiff_natveg Aggregated difference in natveg land compared to previous timestep \(10^6 ha\)

Realizations

(A) dynamic_may20

In the dynamic_may18 realization, land and carbon stock dynamics of natural vegetation are modeled endogenously. The initial spatial distribution of the sub-land-types primary forest, secondary forest and other natural land is based on the LUH2 data set (Hurtt et al. 2018). The realization includes 2 different kinds of land protection. a) Land protection based on the World Database on Protected Areas (WDPA) maintained by the International Union for Conservation of Nature (IUCN) and b) land protection based on national policies implemented (NPI) and nationally determined contributions to the Paris agreement (NDC) taken from individual country reports. Land protection based on WDPA is static over time, while the NPI/NDC polices ramp up until 2030 and are assumed constant thereafter. For WDPA the level of land protection is based on IUCN catI+II, which reflect areas currently under protection (e.g. strict nature reserves and national parks), and distributed equally across all sub-land-types (primary forest, secondary forest and other natural land). On top of the IUCN catI+II land protection, there are options to protect different conservation priority areas such as biodiversity hotspots (BH), centers of plant diversity (CBD), frontier forests (FF) and last of the wild (LW). NPI/NDC land protection polices are be applied on forest and other land, depending on individual country reports. Additionally, this module provides the ability to harvest natural vegetation for timber. Both wood and woodfuel can be produceed from primary and secondary forest but other land is only allowed to be harvested for woodfuel.

The interface vm_land provides aggregated natveg land pools (ac) to other modules.

\[\begin{multline*} vm\_land(j2,"secdforest") = \sum_{ac} v35\_secdforest(j2,ac) \end{multline*}\]

\[\begin{multline*} vm\_land(j2,"other") = \sum_{ac} v35\_other(j2,ac) \end{multline*}\]

Carbon stocks for primary forest, secondary forest or other natural land are calculated as the product of respective area and carbon density. Carbon stocks decline if the area decreases (e.g. due to cropland expansion into forests). In case of abandoned agricultural land (increase of other natural land), natural succession, represented by age-class growth, results in increasing carbon stocks.

\[\begin{multline*} vm\_carbon\_stock(j2,"primforest",ag\_pools) = vm\_land(j2,"primforest") \cdot \sum_{ct} fm\_carbon\_density(ct,j2,"primforest",ag\_pools) \end{multline*}\]

\[\begin{multline*} vm\_carbon\_stock(j2,"secdforest",ag\_pools) = \sum_{ac}\left( v35\_secdforest(j2,ac) \cdot \sum\left(ct, pm\_carbon\_density\_ac(ct,j2,ac,ag\_pools)\right)\right) \end{multline*}\]

\[\begin{multline*} vm\_carbon\_stock(j2,"other",ag\_pools) = \sum_{ac}\left( v35\_other(j2,ac) \cdot \sum\left(ct, pm\_carbon\_density\_ac(ct,j2,ac,ag\_pools)\right)\right) \end{multline*}\]

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

\[\begin{multline*} vm\_land(j2,"primforest") + vm\_land(j2,"secdforest") \geq \sum_{ct} p35\_min\_forest(ct,j2) \end{multline*}\]

\[\begin{multline*} vm\_land(j2,"other") \geq \sum_{ct} p35\_min\_other(ct,j2) \end{multline*}\]

The following technical calculations are needed for reducing differences in land-use patterns between time steps. The gross change in natural vegetation is calculated based on land expansion and land contraction of other land, and land reduction of primary and secondary forest. This information is then passed to the land module (10_land):

\[\begin{multline*} vm\_landdiff\_natveg = \sum_{j2,ac}\left( v35\_other\_expansion(j2,ac) + v35\_other\_reduction(j2,ac) + v35\_secdforest\_expansion(j2,ac) + v35\_secdforest\_reduction(j2,ac) + v35\_primforest\_reduction(j2)\right) \end{multline*}\]

\[\begin{multline*} v35\_other\_expansion(j2,ac\_est) = v35\_other(j2,ac\_est) - pc35\_other(j2,ac\_est) \end{multline*}\]

\[\begin{multline*} v35\_other\_reduction(j2,ac\_sub) = pc35\_other(j2,ac\_sub) - v35\_other(j2,ac\_sub) \end{multline*}\]

\[\begin{multline*} v35\_other\_expansion(j2,ac\_est) = v35\_secdforest(j2,ac\_est) - pc35\_secdforest(j2,ac\_est) \end{multline*}\]

\[\begin{multline*} v35\_secdforest\_reduction(j2,ac\_sub) = pc35\_secdforest(j2,ac\_sub) - v35\_secdforest(j2,ac\_sub) \end{multline*}\]

\[\begin{multline*} v35\_primforest\_reduction(j2) = pcm\_land(j2,"primforest") - vm\_land(j2,"primforest") \end{multline*}\]

Harvesting costs are paid everytime natural vegetation is harvested. The “real” harvested area are received from the timber module 73_timber. Harvested area from secondary forest

\[\begin{multline*} vm\_hvarea\_secdforest(j2,ac\_sub) \leq v35\_secdforest\_reduction(j2,ac\_sub) \end{multline*}\]

Harvested area from primary forest

\[\begin{multline*} vm\_hvarea\_primforest(j2) \leq v35\_primforest\_reduction(j2) \end{multline*}\]

Harvested area from other land

\[\begin{multline*} vm\_hvarea\_other(j2,ac\_sub) \leq v35\_other\_reduction(j2,ac\_sub) \end{multline*}\]

Harvested secondary forest is still considered secondary forests due to restrictive NPI definitions. Also primary forest harvested will be considered to be secondary forest.

\[\begin{multline*} \sum_{ac\_est} v35\_secdforest(j2,ac\_est) = \sum_{ac\_sub}vm\_hvarea\_secdforest(j2,ac\_sub) + vm\_hvarea\_primforest(j2) \end{multline*}\]

The following two constraints distribute additions to secdforest and other land over ac_est, which depends on the time step length (e.g. ac0 and ac5 for a 10 year time step).

\[\begin{multline*} v35\_secdforest(j2,ac\_est) = \frac{ \sum_{ac\_est2} v35\_secdforest(j2,ac\_est2)}{card(ac\_est2)} \end{multline*}\]

\[\begin{multline*} v35\_other(j2,ac\_est) = \frac{ \sum_{ac\_est2} v35\_other(j2,ac\_est2)}{card(ac\_est2)} \end{multline*}\]

If the vegetation carbon density in a simulation unit due to regrowth exceeds a threshold of 20 tC/ha the respective area is shifted from other natural land to secondary forest.

p35_recovered_forest(t,j,ac)$(not sameas(ac,"acx")) =
            p35_other(t,j,ac)$(pm_carbon_density_ac(t,j,ac,"vegc") > 20);
p35_other(t,j,ac) = p35_other(t,j,ac) - p35_recovered_forest(t,j,ac);
p35_secdforest(t,j,ac) =
            p35_secdforest(t,j,ac) + p35_recovered_forest(t,j,ac);

Limitations Initialization of both primary and secondary forest in highest age class or equal distrivution of such areas in all age classes. Data exists on a more emperically obtained distribution in different age classes based on satellite data but this results is highly negative land-use change emissions. Inclusion of this data in MAgPIE remains work in progess and is not available for release yet. Additionally, in this module realizatuion, harvested secondary forest stays secondary forest and harvested primary forest is reclassified as secondary forest.

(B) static

In the static realization natural vegetation is constant over time with the spatial distribution of 1995 from the LUH2 data set (Hurtt et al. 2018). Due to static land patterns also carbon stocks are static over time.

Above ground carbon stocks for primary forest, secondary forest or other natural land are calculated as the product of respective area and carbon density.

vm_carbon_stock.fx(j,"primforest",ag_pools) =
          vm_land.l(j,"primforest")*fm_carbon_density(t,j,"primforest",ag_pools);
vm_carbon_stock.fx(j,"secdforest",ag_pools) =
          vm_land.l(j,"secdforest")*fm_carbon_density(t,j,"secdforest",ag_pools);
vm_carbon_stock.fx(j,"other",ag_pools) =
          vm_land.l(j,"other")*fm_carbon_density(t,j,"other",ag_pools);

Limitations Land and carbon stocks of natural vegetation are static over time.

Definitions

Objects

module-internal objects (A: dynamic_may20 | B: static)
  Description Unit A B
f35_min_land_stock
(t_all, j, pol35, pol_stock35)
Land protection policies [minimum land stock] \(Mha\) x
f35_protect_area
(j, prot_type)
Conservation priority areas \(10^6 ha\) x
i35_other
(j, ac)
Inital other land \(10^6 ha\) x
i35_secdforest
(j, ac)
Inital secdforest \(10^6 ha\) x
p35_carbon_density_other
(t, j, ac, ag_pools)
Carbon density other land \(tC/ha\) x
p35_carbon_density_secdforest
(t, j, ac, ag_pools)
Carbon density secdforest \(tC/ha\) x
p35_min_forest
(t, j)
Minimum forest stock [land protection policies] \(Mha\) x
p35_min_other
(t, j)
Minimum other land stock [land protection policies] \(Mha\) x
p35_other
(t, j, ac)
Other land per age class \(10^6 ha\) x
p35_protect_shr
(t, j, prot_type)
Protection share for primforest secdforest and other land \(1\) x
p35_recovered_forest
(t, j, ac)
Recovered forest \(10^6 ha\) x
p35_save_other
(t, j)
Other land protection \(10^6 ha\) x
p35_save_primforest
(t, j)
Primforest protection \(10^6 ha\) x
p35_save_secdforest
(t, j)
Secdforest protection \(10^6 ha\) x
p35_secdforest
(t, j, ac)
Secdforest per age class \(10^6 ha\) x
pc35_other
(j, ac)
Other land per age class in current time step \(10^6 ha\) x
pc35_secdforest
(j, ac)
Secdforest per age class in current time step \(10^6 ha\) x
q35_carbon_other
(j, ag_pools)
Other land carbon stock calculation \(10^6 tC\) x
q35_carbon_primforest
(j, ag_pools)
Primforest carbon stock calculation \(10^6 tC\) x
q35_carbon_secdforest
(j, ag_pools)
Secdforest carbon stock calculation \(10^6 tC\) x
q35_hvarea_other
(j, ac)
Harvested area other land \(10^6 ha\) x
q35_hvarea_primforest
(j)
Harvested area primforest \(10^6 ha\) x
q35_hvarea_secdforest
(j, ac)
Harvested area secdforest \(10^6 ha\) x
q35_land_other
(j)
Other land pool calculation \(10^6 ha\) x
q35_land_secdforest
(j)
Secdforest land pool calculation \(10^6 ha\) x
q35_landdiff Difference in natveg land \(10^6 ha\) x
q35_min_forest
(j)
Minimum forest land constraint \(10^6 ha\) x
q35_min_other
(j)
Minimum other land constraint \(10^6 ha\) x
q35_other_est
(j, ac)
Distribution of other land additions over ac_est \(10^6 ha\) x
q35_other_expansion
(j, ac)
Other land expansion \(10^6 ha\) x
q35_other_reduction
(j, ac)
Other land reduction \(10^6 ha\) x
q35_primforest_reduction
(j)
Primforest reduction \(10^6 ha\) x
q35_secdforest_conversion
(j)
Secondary forest remains secondary forest \(10^6 ha\) x
q35_secdforest_est
(j, ac)
Distribution of secdforest additions over ac_est \(10^6 ha\) x
q35_secdforest_expansion
(j, ac)
Secdforest reduction \(10^6 ha\) x
q35_secdforest_reduction
(j, ac)
Secdforest reduction \(10^6 ha\) x
s35_natveg_harvest_shr Constrains the allowed wood harvest from natural vegetation (1=unconstrained) \(1\) x
s35_secdf_distribution Flag for secdf initialization (0=all secondary forest in highest age class 1=Equal distribution among all age classes) \(1\) x
s35_shift number of 5-year age-classes corresponding to current time step length \(1\) x
v35_other
(j, ac)
Detailed stock of other land \(10^6 ha\) x x
v35_other_expansion
(j, ac)
Other land expansion compared to previous timestep \(10^6 ha\) x
v35_other_reduction
(j, ac)
Other land reduction compared to previous timestep \(10^6 ha\) x
v35_primforest_reduction
(j)
Primforest reduction compared to previous timestep \(10^6 ha\) x
v35_secdforest
(j, ac)
Detailed stock of secdforest \(10^6 ha\) x x
v35_secdforest_expansion
(j, ac)
Secdforest reduction compared to previous timestep \(10^6 ha\) x
v35_secdforest_reduction
(j, ac)
Secdforest reduction compared to previous timestep \(10^6 ha\) x

Sets

sets in use
  description
ac Age classes
ac_est(ac) Dynamic subset of age classes for establishment
ac_poulter Forest age classes in Poulter data set
ac_poulter_to_ac(ac_poulter, ac) mapping between ac and ac_poulter
ac_sub(ac) Dynamic subset of age classes excluding establishment
ag_pools(c_pools) Above ground carbon pools
age Population age groups
c_pools Carbon pools
ct(t) Current time period
j number of LPJ cells
j2(j) Spatial Clusters (dynamic set)
land Land pools
land_natveg(forest_land) Natural vegetation land pools
pol_stock35 Land types for land protection policies
pol35 Land protection policy
prot_type Conservation priority areas
t_all(t_ext) 5-year time periods
t_past(t_all) Timesteps with observed data
t(t_all) Simulated time periods
type GAMS variable attribute used for the output

Authors

Florian Humpenöder, Abhijeet Mishra

See Also

10_land, 52_carbon, 73_timber

References

Hurtt, George C, Louise P Chini, Ritvik Sahajpal, Steve E Frolking, Benjamin Bodirsky, Katherine V Calvin, Jonathan C Doelman, et al. 2018. “LUH2: Harmonization of Global Land-Use Scenarios for the Period 850-2100.” AGUFM 2018: GC13A–01.