MAgPIE - An Open Source land-use modeling framework

4.8.2

created with goxygen 1.4.4

Cropland (29_cropland)

Description

Cropland is defined as the sum of croparea, fallow land and tree cover on cropland. Croparea and corresponding carbon stocks are provided from [30_crop]. Area and carbon stocks for fallow land and tree cover are defined in this module.

Interfaces

Interfaces to other modules

Input

module inputs (A: detail_apr24 | B: simple_apr24)
  Description Unit A B
fm_bii_coeff
(bii_class44, potnatveg)
Biodiversity Intactness Index coefficients \(unitless\) x
fm_carbon_density
(t_all, j, land, c_pools)
LPJmL carbon density for land and carbon pools \(tC/ha\) x
fm_luh2_side_layers
(j, luh2_side_layers10)
luh2 side layers \(grid cell share\) x
pcm_land
(j, land)
Land area in previous time step including possible changes after optimization \(10^6 ha\) x x
pm_carbon_density_plantation_ac
(t_all, j, ac, ag_pools)
Above ground plantation carbon density for age classes and carbon pools \(tC/ha\) x
pm_carbon_density_secdforest_ac
(t_all, j, ac, ag_pools)
Above ground secondary forest carbon density for age classes and carbon pools \(tC/ha\) x
pm_interest
(t_all, i)
Interest rate in each region and timestep \(\%/yr\) x
pm_land_conservation
(t, j, land, consv_type)
Land protection and restoration for all land types \(10^6 ha\) x x
pm_land_hist
(t_ini10, j, land)
Land area for historial time steps \(10^6 ha\) x
vm_area
(j, kcr, w)
Agricultural production area \(10^6 ha\) x x
vm_bv
(j, landcover44, potnatveg)
Biodiversity stock for all land cover classes \(Mha\) x x
vm_carbon_stock
(j, land, c_pools, stockType)
Carbon stock in vegetation soil and litter for different land types \(10^6 tC\) x x
vm_carbon_stock_croparea
(j, ag_pools)
Carbon stock in croparea \(tC\) x x
vm_land
(j, land)
Land area of the different land types \(10^6 ha\) x x
vm_lu_transitions
(j, land_from, land_to)
Land transitions between time steps \(10^6 ha\) x x

Output

module outputs
  Description Unit
pm_avl_cropland_iso
(iso)
Available land area for cropland at ISO level \(10^6 ha\)
vm_cost_cropland
(j)
Cost for total cropland \(10^6 USD_{05MER}/yr\)
vm_fallow
(j)
Fallow land is temporarily fallow cropland \(10^6 ha\)
vm_treecover
(j)
Cropland tree cover \(10^6 ha\)

Realizations

(A) detail_apr24

In this realization, total cropland equals the sum of croparea,
fallow land and tree cover on cropland. Correspondingly, cropland carbon stocks consist of carbons stocks for croparea, fallow land and tree cover on cropland. The development of fallow land and tree cover on cropland depends on targets defined as a certain fraction of total cropland. These targets can be either exogenously enforced (rule-based) or endogenously incentivized by a penalty term, which enters the objective function. This realisation also includes the option to reserve a minimum semi-natural vegetation share within the total available cropland for other land cover classes, including grassland, forest, and other land (by a given target year), in order to provide species habitats and to benefit from ecosystem ervices in agricultural landscapes.

Total cropland is calculated as the sum of croparea, fallow land and tree cover area.

\[\begin{multline*} vm\_land(j2,"crop") = \sum_{kcr,w} vm\_area(j2,kcr,w) + vm\_fallow(j2) + \sum_{ac} v29\_treecover(j2,ac) \end{multline*}\]

We assume that crop production can only take place on suitable cropland area. We use a suitability index (SI) map from Zabel, Putzenlechner, and Mauser (2014) to exclude areas from cropland production that have a low suitability, e.g. due to steep slopes, to estimate the available cropland area. The cultivated area therefore has to be smaller than the available cropland area. Moreover, the available cropland can be reduced by constraining the cropland area in favour of other land types, in order to increase compositional heterogeneity of land types at the cell level.

\[\begin{multline*} vm\_land(j2,"crop") \leq \sum_{ct} p29\_avl\_cropland(ct,j2) \end{multline*}\]

Total cost for the cropland module.

\[\begin{multline*} vm\_cost\_cropland(j2) = v29\_cost\_treecover\_est(j2) + v29\_cost\_treecover\_recur(j2) + v29\_fallow\_missing(j2) \cdot \sum_{ct} i29\_fallow\_penalty(ct) + v29\_treecover\_missing(j2) \cdot \sum_{ct} i29\_treecover\_penalty(ct) \end{multline*}\]

The carbon stocks of total cropland are calculated as the sum of carbon stocks in cropland, fallow land and tree cover area.

\[\begin{multline*} vm\_carbon\_stock(j2,"crop",ag\_pools,stockType) = vm\_carbon\_stock\_croparea(j2,ag\_pools) + vm\_fallow(j2) \cdot \sum_{ct} fm\_carbon\_density(ct,j2,"crop",ag\_pools) + m\_carbon\_stock\_ac(v29\_treecover,p29\_carbon\_density\_ac,"ac","ac\_sub") \end{multline*}\]

The semi-natural land constraint in cropland areas for sustaining critical regulating NCP for agricultural production is added on top of land conserved for other reasons (e.g. conservation of intact ecosystems or protection of biodiversity hotspots).

\[\begin{multline*} \sum_{land\_snv} vm\_land(j2,land\_snv) \geq \sum_{ct} p29\_snv\_shr(ct,j2) \cdot vm\_land(j2,"crop") + \sum_{ct,land\_snv,consv\_type} pm\_land\_conservation(ct,j2,land\_snv,consv\_type) \end{multline*}\]

The semi-natural vegetation constraint for cropland areas has been suggested at the per square kilometer scale. The amount of cropland requiring relocation has therefore been derived from exogeneous high-resolution land cover information from the Copernicus Global Land Service (Buchhorn et al. (2020)).

\[\begin{multline*} \sum_{land\_snv} vm\_lu\_transitions(j2,"crop",land\_snv) \geq \sum_{ct} p29\_snv\_relocation(ct,j2) \end{multline*}\]

A penalty is applied for the violation of fallow land rules. The penalty applies to the missing fallow land, i.e. where fallow land is lower than a certain fraction of total cropland.

\[\begin{multline*} v29\_fallow\_missing(j2) \geq vm\_land(j2,"crop") \cdot \sum_{ct} i29\_fallow\_target(ct) - vm\_fallow(j2) \end{multline*}\]

\[\begin{multline*} vm\_fallow(j2) \leq vm\_land(j2,"crop") \cdot s29\_fallow\_max \end{multline*}\]

Fallow land biodiversity value is based on perennial crops.

\[\begin{multline*} vm\_bv(j2,"crop\_fallow",potnatveg) = vm\_fallow(j2) \cdot fm\_bii\_coeff("crop\_per",potnatveg) \cdot fm\_luh2\_side\_layers(j2,potnatveg) \end{multline*}\]

Interface vm_treecover for other modules.

\[\begin{multline*} vm\_treecover(j2) = \sum_{ac} v29\_treecover(j2,ac) \end{multline*}\]

A penalty is applied for the violation of treecover rules. The penalty applies to the missing treecover area, i.e. where treecover area is lower than a certain fraction of total cropland.

\[\begin{multline*} v29\_treecover\_missing(j2) \geq vm\_land(j2,"crop") \cdot \sum_{ct} i29\_treecover\_target(ct,j2) - \sum_{ac} v29\_treecover(j2,ac) \end{multline*}\]

\[\begin{multline*} \sum_{ac} v29\_treecover(j2,ac) \leq vm\_land(j2,"crop") \cdot s29\_treecover\_max \end{multline*}\]

Depending on s29_treecover_bii_coeff, tree cover biodiversity value is based on natural vegetation or plantation BII coefficients.

\[\begin{multline*} vm\_bv(j2,"crop\_tree",potnatveg) = \sum_{bii\_class\_secd}\left( \sum\left(ac\_to\_bii\_class\_secd(ac,bii\_class\_secd), v29\_treecover(j2,ac)\right) \cdot p29\_treecover\_bii\_coeff(bii\_class\_secd,potnatveg)\right) \cdot fm\_luh2\_side\_layers(j2,potnatveg) \end{multline*}\]

Cropland tree cover annuity cost.

\[\begin{multline*} v29\_cost\_treecover\_est(j2) = \sum_{ac\_est} v29\_treecover(j2,ac\_est) \cdot s29\_cost\_treecover\_est \cdot \sum_{cell(i2,j2),ct}\left(\frac{pm\_interest(ct,i2)}{\left(1+pm\_interest(ct,i2)\right)}\right) \end{multline*}\]

Cropland tree cover recurring cost.

\[\begin{multline*} v29\_cost\_treecover\_recur(j2) = \sum_{ac\_sub} v29\_treecover(j2,ac\_sub) \cdot s29\_cost\_treecover\_recur \end{multline*}\]

Cropland tree cover establishment rules for distributing areas equally to age-classes. For a 5-year time step ac_est includes only ac0. But for a 10-year time step ac_est includes ac0 and ac5.

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

Switch for tree cover on cropland: 0 = Use natveg growth curve towards LPJmL natural vegetation 1 = Use plantation growth curve (faster than natveg) towards LPJmL natural vegetation

Minimum semi-natural vegetation (SNV) share is fading in after 2020

p29_snv_shr(t,j) = i29_snv_scenario_fader(t) *
  (s29_snv_shr * sum(cell(i,j), p29_country_weight(i))
  + s29_snv_shr_noselect * sum(cell(i,j), 1-p29_country_weight(i)));

Cropland relocation in response to SNV policy is based on exogeneous land cover information from the Copernicus Global Land Service (Buchhorn et al. (2020)). The rate of the policy implementation is derived based on the difference of scenario fader values in consecutive time steps

p29_snv_relocation(t,j) = (i29_snv_scenario_fader(t) - i29_snv_scenario_fader(t-1)) *
  (i29_snv_relocation_target(j) * sum(cell(i,j), p29_country_weight(i))
  + s29_snv_shr_noselect * sum(cell(i,j), 1-p29_country_weight(i)));

The following lines take care of mismatches in the input data (derived from satellite imagery from the Copernicus Global Land Service (Buchhorn et al. (2020))) and in cases of cropland reduction

p29_max_snv_relocation(t,j) = p29_snv_shr(t,j) * (i29_snv_scenario_fader(t) - i29_snv_scenario_fader(t-1)) * pcm_land(j,"crop")
                              - sum(ac, pc29_treecover(j,ac));
p29_max_snv_relocation(t,j)$(p29_max_snv_relocation(t,j) < 1e-6) = 0;  
p29_snv_relocation(t,j)$(p29_snv_relocation(t, j) > p29_max_snv_relocation(t,j)) = p29_max_snv_relocation(t,j);

Area potentially available for cropping

p29_avl_cropland(t,j) = f29_avl_cropland(j,"%c29_marginal_land%") * (1 - p29_snv_shr(t,j));

Limitations There are currently no known limitations of this realization.

(B) simple_apr24

In this realization, total cropland equals croparea because fallow land and tree cover on cropland are fixed to zero. Therefore, also cropland carbon stocks consist only of croparea carbon stocks. Biodiversity BII values are fixed to zero. Costs are fixed to zero. This realisation also includes the option to reserve a minimum semi-natural vegetation share within the total available cropland for other land cover classes, including grassland, forest, and other land (by a given target year), in order to provide species habitats and to benefit from ecosystem ervices in agricultural landscapes.

Total cropland equals croparea, because fallow land is fixed to zero and tree cover on cropland does not exist in this realization.

\[\begin{multline*} vm\_land(j2,"crop") = \sum_{kcr,w} vm\_area(j2,kcr,w) \end{multline*}\]

We assume that crop production can only take place on suitable cropland area. We use a suitability index (SI) map from Zabel, Putzenlechner, and Mauser (2014) to exclude areas from cropland production that have a low suitability, e.g. due to steep slopes, to estimate the available cropland area. The cultivated area therefore has to be smaller than the available cropland area.

\[\begin{multline*} vm\_land(j2,"crop") \leq \sum_{ct} p29\_avl\_cropland(ct,j2) \end{multline*}\]

The carbon stocks of total cropland are calculated as the sum of carbon stocks in cropland, fallow land and tree cover area.

\[\begin{multline*} vm\_carbon\_stock(j2,"crop",ag\_pools,stockType) = vm\_carbon\_stock\_croparea(j2,ag\_pools) \end{multline*}\]

The semi-natural land constraint in cropland areas for sustaining critical regulating NCP for agricultural production is added on top of land conserved for other reasons (e.g. conservation of intact ecosystems or protection of biodiversity hotspots).

\[\begin{multline*} \sum_{land\_snv} vm\_land(j2,land\_snv) \geq \sum_{ct} p29\_snv\_shr(ct,j2) \cdot vm\_land(j2,"crop") + \sum_{ct,land\_snv,consv\_type} pm\_land\_conservation(ct,j2,land\_snv,consv\_type) \end{multline*}\]

The semi-natural vegetation constraint for cropland areas has been suggested at the per square kilometer scale. The amount of cropland requiring relocation has therefore been derived from exogeneous high-resolution land cover information from the Copernicus Global Land Service (Buchhorn et al. (2020)).

\[\begin{multline*} \sum_{land\_snv} vm\_lu\_transitions(j2,"crop",land\_snv) \geq \sum_{ct} p29\_snv\_relocation(ct,j2) \end{multline*}\]

Minimum semi-natural vegetation (SNV) share is fading in after 2020

p29_snv_shr(t,j) = i29_snv_scenario_fader(t) *
  (s29_snv_shr * sum(cell(i,j), p29_country_weight(i))
  + s29_snv_shr_noselect * sum(cell(i,j), 1-p29_country_weight(i)));

Cropland relocation in response to SNV policy is based on exogeneous land cover information from the Copernicus Global Land Service (Buchhorn et al. (2020)). The rate of the policy implementation is derived based on the difference of scenario fader values in consecutive time steps

p29_snv_relocation(t,j) = (i29_snv_scenario_fader(t) - i29_snv_scenario_fader(t-1)) *
  (i29_snv_relocation_target(j) * sum(cell(i,j), p29_country_weight(i))
  + s29_snv_shr_noselect * sum(cell(i,j), 1-p29_country_weight(i)));

The following lines take care of mismatches in the input data (derived from satellite imagery from the Copernicus Global Land Service (Buchhorn et al. (2020))) and in cases of cropland reduction

p29_max_snv_relocation(t,j) = p29_snv_shr(t,j) * (i29_snv_scenario_fader(t) - i29_snv_scenario_fader(t-1)) * pcm_land(j,"crop")
                              - vm_treecover.l(j);
p29_max_snv_relocation(t,j)$(p29_max_snv_relocation(t,j) < 1e-6) = 0;  
p29_snv_relocation(t,j)$(p29_snv_relocation(t, j) > p29_max_snv_relocation(t,j)) = p29_max_snv_relocation(t,j);

Area potentially available for cropping

p29_avl_cropland(t,j) = f29_avl_cropland(j,"%c29_marginal_land%") * (1 - p29_snv_shr(t,j));

Limitations Fallow land and tree cover on cropland are fixed to zero

Definitions

Objects

module-internal objects (A: detail_apr24 | B: simple_apr24)
  Description Unit A B
f29_avl_cropland
(j, marginal_land29)
Available land area for cropland \(10^6 ha\) x x
f29_avl_cropland_iso
(iso, marginal_land29)
Available land area for cropland at ISO level \(10^6 ha\) x x
f29_snv_target_cropland
(j, relocation_target29)
Cropland in 2019 requiring relocation due to SNV policy \(10^6 ha\) x x
f29_treecover
(j)
Tree cover on cropland in 2015 \(10^6 ha\) x
i29_fallow_penalty
(t)
Penalty for violation of fallow target \(USD_{05MER}/ha\) x
i29_fallow_scenario_fader
(t_all)
Fallow land scenario fader \(1\) x
i29_fallow_target
(t)
Target share for fallow land on total cropland \(1\) x
i29_snv_relocation_target
(j)
Overall cropland area that requires relocation due to SNV policy \(10^6 ha\) x x
i29_snv_scenario_fader
(t_all)
SNV scenario fader \(1\) x x
i29_treecover_penalty
(t)
Penalty for violation of treecover target \(USD_{05MER}/ha\) x
i29_treecover_scenario_fader
(t_all)
Cropland treecover scenario fader \(1\) x
i29_treecover_target
(t, j)
Target share for treecover on total cropland \(1\) x
p29_avl_cropland
(t, j)
Total available land for crop cultivation \(10^6 ha\) x x
p29_carbon_density_ac
(t, j, ac, ag_pools)
Carbon density for ac and ag_pools \(tC/ha\) x
p29_country_dummy
(iso)
Dummy parameter indicating whether country is affected by selected cropland policy \(1\) x x
p29_country_weight
(i)
Policy country weight per region \(1\) x x
p29_max_snv_relocation
(t, j)
Maximum cropland relocation during time step \(10^6 ha\) x x
p29_snv_relocation
(t, j)
Cropland area that is actually relocated during time step \(10^6 ha\) x x
p29_snv_shr
(t, j)
Share of semi-natural vegetation in cropland areas \(1\) x x
p29_treecover
(t, j, ac)
Cropland tree cover per age class \(10^6 ha\) x
p29_treecover_bii_coeff
(bii_class_secd, potnatveg)
BII coefficient for cropland treecover \(1\) x
pc29_treecover
(j, ac)
Cropland tree cover per age class in current time step \(10^6 ha\) x
pc29_treecover_share
(j)
Share of treecover on total cropland \(1\) x
q29_avl_cropland
(j)
Available cropland constraint \(10^6 ha\) x x
q29_carbon
(j, ag_pools, stockType)
Cropland above ground carbon content calculation \(10^6 tC\) x x
q29_cost_cropland
(j)
Costs and benefits related to agroforestry \(10^6 USD_{05MER}/yr\) x
q29_cost_treecover_est
(j)
Establishment cost for cropland tree cover \(10^6 USD_{05MER}/yr\) x
q29_cost_treecover_recur
(j)
Recurring cost for cropland tree cover \(10^6 USD_{05MER}/yr\) x
q29_cropland
(j)
Total cropland calculation \(10^6 ha\) x x
q29_fallow_bv
(j, potnatveg)
Biodiversity value for fallow land \(10^6 ha\) x
q29_fallow_max
(j)
Maximum fallow land towards target \(10^6 ha\) x
q29_fallow_min
(j)
Missing fallow land towards target \(10^6 ha\) x
q29_land_snv
(j)
Land constraint for the SNV policy in cropland areas \(10^6 ha\) x x
q29_land_snv_trans
(j)
Land transition constraint for SNV policy in cropland areas \(10^6 ha\) x x
q29_treecover
(j)
Cropland tree cover \(10^6 ha\) x
q29_treecover_bv
(j, potnatveg)
Biodiversity value for cropland treecover \(10^6 ha\) x
q29_treecover_est
(j, ac)
Cropland treecover establishment \(10^6 ha\) x
q29_treecover_max
(j)
Maximum treecover area \(10^6 ha\) x
q29_treecover_min
(j)
Missing treecover area towards target \(10^6 ha\) x
s29_cost_treecover_est Tree cover establishment cost \(USD_{05MER}/ha\) x
s29_cost_treecover_recur Tree cover recurring cost \(USD_{05MER}/ha\) x
s29_fader_functional_form Switch for functional form of faders \(1\) x
s29_fallow_max Maximum share of fallow land on total cropland \(1\) x
s29_fallow_penalty Penalty for violation of fallow target \(USD_{05MER}/ha\) x
s29_fallow_scenario_start Fallow land scenario start year x
s29_fallow_scenario_target Fallow land scenario target year x
s29_fallow_target Minimum share of fallow land on total cropland in target year \(1\) x
s29_shift number of 5-year age-classes corresponding to current time step length \(1\) x
s29_snv_relocation_data_x1 First reference value in SNV target cropland data \(1\) x x
s29_snv_relocation_data_x2 Second reference value in SNV target cropland data \(1\) x x
s29_snv_scenario_start SNV scenario start year x x
s29_snv_scenario_target SNV scenario target year x x
s29_snv_shr Share of available cropland that is witheld for other land cover types \(1\) x x
s29_snv_shr_noselect Share of available cropland that is witheld for other land cover types \(1\) x x
s29_treecover_bii_coeff BII coefficent to be used for tree cover on cropland 0=secondary vegetation 1=timber plantations \(1\) x
s29_treecover_keep Avoid loss of existing treecover \(1=yes 0=no\) x
s29_treecover_map Treecover map for initialization \(binary\) x
s29_treecover_max Maximum share of treecover on total cropland \(1\) x
s29_treecover_penalty Penalty for violation of treecover target after sceanrio start \(USD_{05MER}/ha\) x
s29_treecover_penalty_before Penalty for violation of treecover target before scenario start \(USD_{05MER}/ha\) x
s29_treecover_plantation Growth curve switch for tree cover on cropland 0=natveg 1=plantations \(1\) x
s29_treecover_scenario_start Cropland treecover scenario start year x
s29_treecover_scenario_target Cropland treecover scenario target year x
s29_treecover_target Minimum share of treecover on total cropland in target year \(1\) x
s29_treecover_target_noselect Minimum share of treecover on total cropland in target year \(1\) x
v29_cost_treecover_est
(j)
Establishment cost for cropland tree cover \(10^6 USD_{05MER}/yr\) x
v29_cost_treecover_recur
(j)
Recurring cost for cropland tree cover \(10^6 USD_{05MER}/yr\) x
v29_fallow_missing
(j)
Missing fallow land towards target \(10^6 ha\) x
v29_treecover
(j, ac)
Cropland tree cover per age class \(10^6 ha\) x
v29_treecover_missing
(j)
Missing treecover area towards target \(10^6 ha\) x

Sets

sets in use
  description
ac Age classes
ac_est(ac) Dynamic subset of age classes for establishment
ac_sub(ac) Dynamic subset of age classes excluding establishment
ac_to_bii_class_secd(ac, bii_class_secd) Mapping between forest ageclasses and bii coefficent land cover classes
ag_pools(c_pools) Above ground carbon pools
age Population age groups
bii_class_secd(bii_class44) bii coefficent land cover classes secondary vegetation
bii_class44 bii coefficent land cover classes
c_pools Carbon pools
cell(i, j) number of LPJ cells per region i
consv_type Type of land conservation
ct(t) Current time period
i all economic regions
i_to_iso(i, iso) mapping regions to iso countries
i2(i) World regions (dynamic set)
iso list of iso countries
j number of LPJ cells
j2(j) Spatial Clusters (dynamic set)
kcr(kve) Cropping activities
land Land pools
land_snv(land) land types allowed in the SNV policy
landcover44 land cover classes used in bii calculation
luh2_side_layers10 side layers from LUH2
marginal_land29 Marginal land scenarios
policy_countries29(iso) countries to be affected by SNV policy
potnatveg(luh2_side_layers10) potentially forested biomes
relocation_target29 Cropland requiring relocation based on different SNV targets
stockType Carbon stock types
t_all(t_ext) 5-year time periods
t_ini10 Time periods with land initialization data
t(t_all) Simulated time periods
type GAMS variable attribute used for the output
w Water supply type

Authors

Florian Humpenöder, Benjamin Bodirsky, Patrick v. Jeetze

See Also

10_land, 11_costs, 12_interest_rate, 22_land_conservation, 30_croparea, 32_forestry, 44_biodiversity, 50_nr_soil_budget, 52_carbon, 56_ghg_policy, 59_som

References

Buchhorn, Marcel, Bruno Smets, Luc Bertels, Bert De Roo, Myroslava Lesiv, Nandin-Erdene Tsendbazar, Martin Herold, and Steffen Fritz. 2020. “Copernicus Global Land Service: Land Cover 100m: Collection 3: Epoch 2019: Globe.” Zenodo. https://doi.org/10.5281/zenodo.3939050.
Zabel, Florian, Birgitta Putzenlechner, and Wolfram Mauser. 2014. “Global Agricultural Land Resources A High Resolution Suitability Evaluation and Its Perspectives Until 2100 Under Climate Change Conditions.” PLOS ONE 9 (9): e107522. https://doi.org/10.1371/journal.pone.0107522.