Environmental Impacts¶
Overview¶
The environmental module accounts for greenhouse gas emissions and land use change from food production. These impacts are monetized and included in the objective function via configurable prices/penalties. Land-use change accounting distinguishes between existing cropland and newly converted area so that only new conversions bear LUC costs, while existing cropland can generate regrowth credits when spared.
This is currently a work in progress and not all relevant environmental impacts are implemented and monetized yet.
Greenhouse Gas Emissions¶
The model tracks three major greenhouse gases using 100-year global warming potentials (GWP100):
CO₂ (GWP = 1): From land use change
CH₄ (GWP = 27 by default): From enteric fermentation (ruminants), rice paddies, manure
N₂O (GWP = 273 by default): From nitrogen fertilizer application, manure, crop residue incorporation
All emissions are aggregated to CO₂-equivalent (internally tracked in MtCO₂-eq; the configured price still applies per tonne) for carbon pricing.
Implementation notes (buses, stores, links)¶
The optimisation model represents environmental flows with three PyPSA components that are worth keeping in mind:
Buses act as balance sheets. Process components report raw emissions to the
co2andch4buses, while a dedicatedghgbus tracks the combined CO₂-equivalent balance.Links move quantities between buses, applying efficiencies that encode global warming potentials.
convert_co2_to_ghghas efficiency 1.0, andconvert_ch4_to_ghguses the configuredemissions.ch4_to_co2_factor; similar for N₂O. Every megatonne of CH₄ and N₂O (after scaling from tonnes) therefore appears on theghgbus weighted by its 100-year GWP.Stores accumulate quantities over the horizon. The extendable
ghgstore sits on the combined bus and is priced atemissions.ghg_price. Because neither theco2,ch4norn2obuses have stores, their flows must pass through the conversion links before the objective is charged.
With this structure the linear program keeps separate ledgers for each greenhouse gas while charging the objective using a single priced stock of CO₂-equivalent. Scenario files can tighten or relax climate policy simply by changing the configuration values—no code modifications are required.
Land representation in the network¶
Land is represented with three carriers and corresponding bus groups per (region, resource class, water supply):
land_pool_*buses hold the usable cropland area that production links consume.land_existing_*buses supply the baseline cropland area (fromprocessing/{name}/cropland_baseline_by_class.csv) via fixed-capacity generators and one-way links into the pool.land_new_*buses supply expansion land up to the configured regional limit;convert_new_land_*links route this expansion into the pool and emit CO₂ according to the cropland LEFs.
Crop production links draw only from land_pool_*. LUC emissions are carried on the expansion-conversion links, not on crop links. When validation fixes harvested areas, optional slack generators attach to the pool to enforce fixed land use at a configurable penalty.
Sources of Emissions¶
- Crop Production:
N₂O from synthetic fertilizer application (direct and indirect)
CH₄ from flooded rice cultivation
N₂O from crop residues incorporated into soil
- Livestock:
CH₄ from enteric fermentation (ruminants) - see Enteric Fermentation (CH₄)
CH₄ and N₂O from manure management (all animals) - see Manure Management (CH₄)
CO₂ from feed production (indirect)
- Land Use Change:
CO₂ from converting natural land to new cropland (charged on
convert_new_land_*links)Soil carbon losses embodied in the cropland LEFs; spared land on existing cropland can generate regrowth credits
Direct N₂O emission factors¶
The model uses the 2019 Refinement to the IPCC Guidelines for National Greenhouse Gas Inventories to parameterise direct N₂O emissions from managed soils. Table 11.1 (updated) is reproduced below to make the default emission factors and their uncertainty ranges readily accessible when configuring fertilizer-related pathways.
Emission factor |
Aggregated default value |
Aggregated uncertainty range |
Disaggregation |
Default value |
Uncertainty range |
|---|---|---|---|---|---|
EF1 for N additions from synthetic fertilisers, organic amendments and crop residues, and N mineralised from mineral soil as a result of loss of soil carbon [kg N₂O-N (kg N)-1] |
0.010 |
0.002 – 0.018 |
Synthetic fertiliser inputs in wet climates Other N inputs in wet climates All N inputs in dry climates |
0.016 (wet synthetic) 0.006 (wet other) 0.005 (dry) |
0.013 – 0.019 0.001 – 0.011 0.000 – 0.011 |
EF1FR for flooded rice fields [kg N₂O-N (kg N)-1] |
0.004 |
0.000 – 0.029 |
Continuous flooding Single and multiple drainage |
0.003 0.005 |
0.000 – 0.010 0.000 – 0.016 |
EF3PRP,CPP for cattle (dairy, non-dairy and buffalo), poultry and pigs [kg N₂O-N (kg N)-1] |
0.004 |
0.000 – 0.014 |
Wet climates Dry climates |
0.006 0.002 |
0.000 – 0.027 0.000 – 0.007 |
EF3PRP,SO for sheep and “other animals” [kg N₂O-N (kg N)-1] |
0.003 |
0.000 – 0.010 |
– |
– |
– |
Crop Residue Incorporation (N₂O)¶
Crop residues left on the field and incorporated into the soil contribute to direct N₂O emissions. The model applies the IPCC EF1 emission factor to residue nitrogen content to calculate these emissions.
Methodology¶
N₂O emissions from incorporated crop residues are calculated as:
- where:
ResidueDM is the dry matter of crop residues incorporated into soil (tonnes DM)
Ncontent is the nitrogen content of the residue (kg N per kg DM)
EF1 is the IPCC direct emission factor for N inputs (kg N₂O-N per kg N input) = 0.010 (aggregated default)
44/28 converts N₂O-N to N₂O mass
Residue Management Constraints¶
To ensure soil health and prevent degradation, the model limits the fraction of crop residues that can be removed for animal feed. The remainder must be left on the field and incorporated into the soil.
Maximum removal for feed: 30% of generated residues (configurable via
residues.max_feed_fraction; override per ISO3 country or M49 region/sub-region viaresidues.max_feed_fraction_by_regionwith country > sub-region > region)Minimum soil incorporation: 70% of generated residues
This constraint is implemented as:
The constraint ensures that residue removal for feed does not compromise soil organic matter maintenance and nutrient cycling.
Data Sources¶
Residue N content:
processing/{name}/ruminant_feed_categories.csv, columnN_g_per_kg_DM, derived from GLEAM 3.0 [2] Supplement S1, Table S.3.3Emission factor: IPCC 2019 Refinement, Table 11.1 (EF1 aggregated default = 0.010)
Removal limits: Model assumption based on sustainable residue management practices
Rice Cultivation (CH₄)¶
Flooded rice paddies are a major source of methane emissions due to anaerobic decomposition of organic matter in the soil.
Methodology¶
The model applies a per-hectare emission factor to wetland rice production, distinguishing between irrigated and rainfed water regimes:
- where:
Area is the harvested area of wetland rice (hectares) by water supply
EFbase is the baseline methane emission factor for continuously flooded fields (kg CH₄ per hectare per crop cycle)
SFrainfed is the scaling factor for the rainfed water regime (dimensionless)
Configuration¶
The emission parameters are configured via emissions.rice:
methane_emission_factor_kg_per_ha: Baseline factor for continuously flooded fields (~134.5 kg CH₄/ha/crop). Based on the IPCC 2019 Tier 1 global default daily emission factor (1.19 kg CH₄/ha/day) and cultivation period (113 days).
rainfed_wetland_rice_ch4_scaling_factor: Scaling factor for “Regular rainfed” fields (0.54). Reduces emissions to account for non-continuous flooding.
Dryland (upland) rice is assumed to have zero methane emissions.
Reference¶
IPCC 2019 Refinement to the 2006 IPCC Guidelines for National Greenhouse Gas Inventories, Volume 4, Chapter 5.5, Tables 5.11, 5.11A, and 5.12.
Enteric Fermentation (CH₄)¶
Ruminant livestock (cattle, sheep, goats, buffalo) produce methane during digestion through microbial fermentation in the rumen. The model calculates enteric CH₄ emissions using IPCC Tier 2 methodology based on feed-specific methane yields.
Methodology¶
Enteric methane emissions are calculated as:
- where:
DMI is dry matter intake (kg feed/day or t feed/year)
MYenteric is the enteric methane yield (g CH₄ per kg DMI)
The methane yield depends primarily on feed digestibility and fiber content. Higher-quality feeds (grains, concentrates) produce less CH₄ per unit intake than low-quality forages because they ferment more efficiently with less methane as a byproduct.
IPCC Conversion Factors¶
The model uses methane yields from the 2019 Refinement to the 2006 IPCC Guidelines for National Greenhouse Gas Inventories [1], Volume 4, Chapter 10, Table 10.12 (Methane Conversion Factors for Cattle and Buffalo).
Feed categories are mapped to IPCC dietary classes:
Roughage (23.3 g CH₄/kg DMI): High-forage diets >75% forage, digestible energy (DE) ≤ 62%, typical of extensive grazing systems
Forage (21.0 g CH₄/kg DMI): Mixed rations 15-75% forage with grain/silage, DE 62-71%, typical of semi-intensive dairy and beef
Grain (13.6 g CH₄/kg DMI): Concentrate-based feedlot diets 0-15% forage, DE ≥ 72%, typical of intensive finishing systems
Protein (13.6 g CH₄/kg DMI): High-protein concentrates, same as grain category
Monogastric animals (pigs, poultry) produce negligible enteric methane and are not included in this calculation.
Data Sources¶
IPCC values:
data/ipcc_enteric_methane_yields.csvmaps feed categories to MY values from IPCC (2019) Table 10.12Feed properties:
processing/{name}/ruminant_feed_categories.csvgenerated from GLEAM 3.0 [2] Supplement S1, Table S.3.3 (Ruminant Nutrition Parameters)Feed mapping:
data/gleam_feed_mapping.csvlinks model feed items to GLEAM feed categories
Implementation¶
Enteric emissions are calculated in workflow/scripts/build_model.py within the add_feed_to_animal_product_links() function:
Feed items are categorized by digestibility into roughage/forage/grain/protein pools (
workflow/scripts/categorize_feeds.py)Each category is assigned an MY value from
data/ipcc_enteric_methane_yields.csvFor each animal production link, CH₄ emissions per tonne of feed intake are calculated and attached to
bus2(methane bus)Emissions scale linearly with feed consumption in the optimization
Manure Management (CH₄)¶
Livestock in confined systems produce methane emissions from manure storage, handling, and treatment. Unlike enteric fermentation, manure CH₄ affects both ruminants and monogastrics (pigs, poultry), with emissions varying significantly by management system. However, manure deposited directly on pasture during grazing produces negligible CH₄ because aerobic decomposition dominates (IPCC MCF ~0.5% for “Pasture, Range & Paddock”). The model therefore excludes manure CH₄ for grassland feed categories.
Methodology¶
Manure methane emissions follow IPCC Tier 2 methodology based on volatile solids excretion and system-specific methane conversion factors:
- where:
VS is volatile solids excretion (kg VS per kg feed DM intake)
B0 is maximum methane producing capacity (m³ CH₄ per kg VS)
MCF is the methane conversion factor (fraction 0-1, varies by management system and climate)
0.67 converts m³ CH₄ to kg CH₄
Volatile Solids Calculation¶
Volatile solids represent the organic fraction of manure available for anaerobic decomposition. The model calculates VS using an adapted version of IPCC Equation 10.24:
- where:
Digestibility is the fraction of feed digested by the animal (from GLEAM feed properties)
UE is urinary energy excretion as a fraction of gross energy intake:
0.04 for ruminants (cattle, sheep, goats)
0.02 for pigs
0.00 for poultry (minimal urinary losses)
Ash is the ash content of feed (% dry matter, from
data/feed_ash_content.csvbased on feedtables.com)
- The formula accounts for:
Undigested feed (1 - digestibility)
Urinary excretion (UE)
Mineral content that doesn’t decompose (ash fraction)
Maximum Methane Producing Capacity (B₀)¶
B₀ represents the theoretical maximum CH₄ yield from complete anaerobic digestion of manure volatile solids. Values are animal-specific:
Animal Product |
B₀ (m³ CH₄/kg VS) |
Source |
|---|---|---|
Dairy cattle |
0.24 |
IPCC Table 10.16, high productivity |
Beef cattle |
0.18 |
IPCC Table 10.16, high productivity |
Pigs |
0.45 |
IPCC Table 10.16 |
Poultry (broilers) |
0.36 |
IPCC Table 10.16 |
Poultry (layers/eggs) |
0.39 |
IPCC Table 10.16 |
Data source: data/ipcc_manure_methane_producing_capacity.csv
Methane Conversion Factors (MCF)¶
MCF represents the fraction of B₀ actually realized under specific management conditions. It varies by:
Management system: Liquid systems (lagoons, slurry pits) have high MCF (0.4-0.8), solid systems (composting, daily spread) have low MCF (0.001-0.05)
Climate zone: Warmer climates increase anaerobic activity and MCF
Storage duration: Longer storage increases MCF
The model uses MCF values from IPCC (2019) Table 10.17, which provides system-specific and climate-specific factors for 21 manure management systems.
Current simplification: MCF values are averaged across climate zones for each management system (workflow/scripts/calculate_manure_emissions.py). This will be refined when climate zone data is added to modeling regions, allowing for country-specific and region-specific emission factors.
Manure Management System Distribution¶
Real-world manure CH₄ emissions reflect a weighted average across multiple management practices. The model uses global system distributions from GLEAM 3.0 [2] (Supplement S1, Tables 4.4 and 4.5):
Cattle: Primarily pasture/paddock (low MCF ~0.005) with some confinement and liquid systems
Pigs: Mix of solid storage, liquid slurry, and pit systems (higher MCF ~0.1-0.4)
Poultry: Mostly litter-based and solid systems (moderate MCF ~0.01-0.04)
The weighted MCF is calculated as:
where fi is the fraction of manure managed in system i (from data/gleam_tables/manure_management_systems_fraction.csv).
Data Sources¶
B₀ values:
data/ipcc_manure_methane_producing_capacity.csv(IPCC 2019 Table 10.16)MCF values:
data/ipcc_manure_methane_conversion_factors.csv(IPCC 2019 Table 10.17)MMS distributions:
data/gleam_tables/manure_management_systems_fraction.csv(GLEAM 3.0 Supplement S1)Ash content:
data/feed_ash_content.csv(from feedtables.com, matched to model feed entities)Feed properties:
processing/{name}/ruminant_feed_categories.csvandprocessing/{name}/monogastric_feed_categories.csv(digestibility from GLEAM 3.0)
Implementation¶
Manure emissions are calculated in workflow/scripts/calculate_manure_emissions.py and integrated into the model via workflow/scripts/build_model.py:
Preprocessing (
calculate_manure_emissions.py):Calculate VS excretion for each feed category using digestibility and ash content
Average MCF across climate zones for each management system (temporary simplification)
Compute weighted MCF for each animal product using GLEAM MMS distributions
Calculate CH₄ emissions per kg feed intake: VS × B₀ × MCFweighted × 0.67
Generate
processing/{name}/manure_ch4_emission_factors.csvwith emissions by country, product, and feed category
Model integration (
build_model.py):Load manure emission factors from
processing/{name}/manure_ch4_emission_factors.csvIn
add_feed_to_animal_product_links(), combine enteric and manure CH₄:\[\text{CH}_4\text{/t feed} = \text{MY}_\text{enteric} + \text{MY}_\text{manure}\]Exception: For grassland feed categories (
ruminant_grassland), manure CH₄ is set to zero because pasture-deposited manure decomposes aerobically with negligible methane productionAttach total CH₄ to
bus2(methane bus) for all animal production linksEmissions scale with feed consumption in the optimization
Example Calculation¶
Scenario: Dairy cow fed on forage (ruminant_forage category)
- Parameters:
Digestibility: 0.61 (from GLEAM)
Ash content: 7.15% (average for forage feeds)
Urinary fraction (UE): 0.04 (ruminants)
B₀ (dairy): 0.24 m³ CH₄/kg VS
Weighted MCF (dairy, global average): 0.034 (mostly pasture-based)
Calculation:
VS excretion:
\[\text{VS} = (1 - 0.61 + 0.04) \times (1 - 7.15/100) = 0.43 \times 0.9285 = 0.399 \text{ kg VS/kg DMI}\]Manure CH₄:
\[\text{CH}_4 = 0.399 \times 0.24 \times 0.034 \times 0.67 = 0.00217 \text{ kg CH₄/kg DMI} = 2.17 \text{ g CH₄/kg DMI}\]Total CH₄ (enteric + manure):
\[\text{Total} = 21.0 \text{ (enteric)} + 2.17 \text{ (manure)} = 23.17 \text{ g CH₄/kg DMI}\]
This shows that for dairy cattle on forage diets, manure contributes ~9% of total CH₄ emissions, with enteric fermentation being dominant. For monogastrics (pigs, poultry), where enteric emissions are zero, manure is the sole CH₄ source.
Manure Nitrogen Management¶
In addition to methane emissions, the model tracks nitrogen flows from livestock manure, accounting for both the fertilizer value and N₂O emissions from manure application.
Nitrogen Mass Balance
Nitrogen excreted in manure is calculated from a simple mass balance:
- where:
Nfeed is the nitrogen content of feed (from GLEAM feed properties, g N/kg DM)
Nproduct is the nitrogen content of the animal product, derived from protein content
Protein-to-Nitrogen Conversion¶
Animal product nitrogen content is calculated from protein using the standard Jones factor of 6.25:
This factor reflects that proteins average ~16% nitrogen by mass (1/6.25 ≈ 0.16). While specific proteins vary (5.18-6.38), 6.25 is the FAO-recommended general conversion factor for mixed animal products [3].
Protein content is sourced from USDA FoodData Central (data/nutrition.csv).
Manure Nitrogen as Fertilizer¶
Not all excreted nitrogen becomes available as fertilizer due to volatilization and other losses during storage and handling. The model applies a configurable recovery fraction:
where frecovery is configured via fertilizer.manure_n_to_fertilizer (default: 0.75, representing 75% recovery and 25% losses).
This manure N is added to the global fertilizer pool (n_fertilizer bus) where it competes with and substitutes for synthetic fertilizer, subject to the global fertilizer limit.
Special Case: Grazing Systems
For animals fed from the ruminant_grassland feed category (pasture grazing), manure is deposited directly on pasture and not collected. For these systems:
Nfertilizer = 0 (no manure collection)
N₂O emissions are still calculated from the full excreted nitrogen (representing pasture deposition emissions)
This distinction reflects the practical reality that grazing manure cannot be redistributed to cropland, while maintaining accurate N₂O accounting for pasture emissions.
N₂O Emissions from Manure Application¶
Applied manure nitrogen produces both direct and indirect N₂O emissions following IPCC 2019 Refinement Tier 1 methodology (Chapter 11, Equations 11.1, 11.9, 11.10):
Direct N₂O emissions (Equation 11.1):
Indirect N₂O from volatilization and atmospheric deposition (Equation 11.9):
Indirect N₂O from leaching and runoff (Equation 11.10):
Total N₂O emissions:
- where:
Napplied is manure N applied to soil (FON) or deposited on pasture (FPRP)
EFpasture = EF3PRP from IPCC Table 11.1 (0.02 for cattle/buffalo, 0.01 for others)
EFmanaged = weighted storage EF (Table 10.21) + recovery × application EF (0.006)
FracGASM = 0.21 kg NH₃-N + NOₓ-N per kg N (volatilization fraction for organic N, IPCC Table 11.3)
EF4 = 0.010 kg N₂O-N per kg volatilized N (indirect volatilization/deposition factor, IPCC Table 11.3)
FracLEACH = 0.24 kg N per kg N (leaching fraction in wet climates, IPCC Table 11.3)
EF5 = 0.011 kg N₂O-N per kg leached N (indirect leaching/runoff factor, IPCC Table 11.3)
44/28 converts N₂O-N to N₂O (molecular weight ratio)
The direct emission factors are calculated from Manure Management System (MMS) distributions from GLEAM, combined with IPCC emission factors for each MMS type. This accounts for the different N₂O characteristics of different management systems (pasture deposition, solid storage, liquid systems, deep litter, etc.).
Configuration¶
Manure nitrogen management is configured under fertilizer and emissions.fertilizer:
fertilizer:
manure_n_to_fertilizer: 0.75 # Fraction of excreted N available as fertilizer
emissions:
fertilizer:
# Note: Direct N2O factors are computed from MMS distributions (see calculate_manure_emissions.py)
indirect_ef4: 0.010 # kg N₂O-N per kg volatilized N
indirect_ef5: 0.011 # kg N₂O-N per kg leached N
frac_gasm: 0.21 # Fraction of organic N volatilized
frac_leach: 0.24 # Fraction of N leached (wet climate)
Implementation¶
Manure N₂O emission factors are preprocessed in workflow/scripts/calculate_manure_emissions.py:
For each (product, feed_category) combination, calculate MMS-weighted emission factors:
Load MMS distributions from GLEAM (
data/gleam_tables/manure_management_systems_fraction.csv)Map feed categories to Livestock Production Systems (LPS):
ruminant_grassland→ Grassland LPS (high pasture fraction)Other ruminant categories → Mixed LPS (moderate pasture fraction)
Monogastrics → Industrial/Intermediate LPS (low pasture fraction)
Calculate weighted N₂O factors from
data/ipcc_manure_n2o_emission_factors.csv:pasture_fraction: Share of manure deposited on pasture
pasture_n2o_ef: EF3PRP (0.02 for cattle, 0.01 for others)
managed_n2o_ef: Storage EF + (recovery × application EF)
In
workflow/scripts/build_model/utils.py, the_calculate_manure_n_outputs()function:Calculates N excretion from feed N content (GLEAM) minus product N content (protein ÷ 6.25)
Splits excreted N between pasture and managed fractions using MMS-based
pasture_fractionApplies appropriate emission factors to each fraction:
Pasture: N × pasture_n2o_ef + indirect emissions
Managed: N × managed_n2o_ef + indirect emissions
Computes
pasture_n2o_sharefor plotting breakdown
Attach outputs to the link:
bus3:fertilizer_{country}(manure N contributing to fertilizer pool)bus4:n2o(total N₂O emissions including direct and indirect)
This creates a closed nutrient cycle where livestock manure offsets synthetic fertilizer demand while incurring proportional N₂O emissions, with grazing systems correctly accounting for on-pasture deposition and all N sources including indirect emission pathways.
Example Calculation¶
Scenario: Beef cattle on forage diet (ruminant_forage)
- Parameters:
Feed N: 19.5 g N/kg DM (from GLEAM)
Product protein: 18.59 g/100g (meat-cattle, from USDA FoodData Central)
Product N: 18.59 ÷ 6.25 = 2.97 g N/100g = 29.7 g N/kg
Feed conversion efficiency: 0.15 (6.67 kg feed per kg product)
Recovery fraction: 0.75
Emission factors: EF1 = 0.010, EF4 = 0.010, EF5 = 0.011
Fractions: FracGASM = 0.21, FracLEACH = 0.24
Calculation (per tonne of feed DM):
N inputs and outputs:
\[\begin{split}N_\text{feed} &= 19.5 \text{ g/kg} = 0.0195 \text{ t N/t feed} \\ \text{Product output} &= 0.15 \text{ t product/t feed} \\ N_\text{product} &= 29.7 \text{ g/kg} \times 0.15 \text{ t/t} = 0.00446 \text{ t N/t feed}\end{split}\]N excretion:
\[N_\text{excretion} = 0.0195 - 0.00446 = 0.0150 \text{ t N/t feed}\]Manure N fertilizer (collected manure):
\[N_\text{applied} = N_\text{fertilizer} = 0.0150 \times 0.75 = 0.0113 \text{ t N/t feed}\]N₂O emissions (direct + indirect):
\[\begin{split}N_2O_\text{direct} &= 0.0113 \times 0.010 \times \frac{44}{28} = 0.000178 \text{ t N}_2\text{O/t feed} \\ N_2O_\text{vol} &= 0.0113 \times 0.21 \times 0.010 \times \frac{44}{28} = 0.000037 \text{ t N}_2\text{O/t feed} \\ N_2O_\text{leach} &= 0.0113 \times 0.24 \times 0.011 \times \frac{44}{28} = 0.000043 \text{ t N}_2\text{O/t feed} \\ N_2O_\text{total} &= 0.000178 + 0.000037 + 0.000043 = 0.000258 \text{ t N}_2\text{O/t feed}\end{split}\]
Result: Each tonne of feed produces 11.3 kg of manure N (contributing to the fertilizer pool) and 258 g of total N₂O emissions (178 g direct + 37 g volatilization + 43 g leaching).
Grazing Example: Beef cattle on pasture (ruminant_grassland)
Using the same parameters as above but with pasture grazing:
1-2. N excretion remains the same: 0.0150 t N/t feed
Manure N fertilizer (grazing):
\[N_\text{fertilizer} = 0 \text{ (manure deposited on pasture, not collected)}\]N₂O emissions from pasture deposition (direct + indirect, all excreted N):
\[\begin{split}N_\text{applied} &= 0.0150 \text{ t N/t feed (all excreted N)} \\ N_2O_\text{direct} &= 0.0150 \times 0.010 \times \frac{44}{28} = 0.000236 \text{ t N}_2\text{O/t feed} \\ N_2O_\text{vol} &= 0.0150 \times 0.21 \times 0.010 \times \frac{44}{28} = 0.000050 \text{ t N}_2\text{O/t feed} \\ N_2O_\text{leach} &= 0.0150 \times 0.24 \times 0.011 \times \frac{44}{28} = 0.000057 \text{ t N}_2\text{O/t feed} \\ N_2O_\text{total} &= 0.000236 + 0.000050 + 0.000057 = 0.000343 \text{ t N}_2\text{O/t feed}\end{split}\]
Result: No manure N enters the fertilizer pool, but 343 g total N₂O per tonne feed is emitted from pasture deposition (236 g direct + 50 g volatilization + 57 g leaching). Higher than confined systems since all excreted N remains on pasture and is subject to emissions.
Future Refinements¶
Planned improvements to manure emissions modeling:
Climate zone differentiation: Use actual climate zones for each region instead of averaging MCF across zones and using wet climate assumption for all regions
Country-specific MMS distributions: Currently all countries use global GLEAM averages
Manure management system emissions: Differentiate N₂O emission factors by storage system (currently uses field-application factor for all)
Carbon Pricing¶
All GHG emissions (CO₂, CH₄, N₂O) are priced at a configurable rate:
emissions:
ghg_pricing_enabled: true # Whether to include GHG pricing in the objective function
ghg_price: 200 # USD_2024/tCO2-eq (emissions stored in MtCO2-eq internally)
ch4_to_co2_factor: 27.0 # IPCC AR6 GWP100 (WG1, Chapter 7, Table 7.15; https://www.ipcc.ch/report/ar6/wg1/chapter/chapter-7/)
n2o_to_co2_factor: 273.0 # IPCC AR6 GWP100 (WG1, Chapter 7, Table 7.15; https://www.ipcc.ch/report/ar6/wg1/chapter/chapter-7/)
rice:
methane_emission_factor_kg_per_ha: 134.47 # kg CH4 per ha per crop (IPCC 2019 Refinement, Vol 4, Chapter 5, Tables 5.11 and 5.11A. Default for continuously flooded fields.)
rainfed_wetland_rice_ch4_scaling_factor: 0.54 # IPCC 2019 Refinement, Vol 4, Chapter 5, Table 5.12. Scaling factor for "Regular rainfed" water regime.
fertilizer:
synthetic_n2o_factor: 0.010 # kg N2O-N per kg N input (IPCC 2019 Refinement, Table 11.1 aggregated default)
# Indirect N2O emission parameters (IPCC 2019 Refinement, Chapter 11.2.2, Table 11.3)
indirect_ef4: 0.010 # kg N2O-N per kg (NH3-N + NOx-N) volatilized and deposited (EF4)
indirect_ef5: 0.011 # kg N2O-N per kg N leached/runoff (EF5)
frac_gasf: 0.11 # Fraction of synthetic fertilizer N volatilized as NH3 and NOx (FracGASF)
frac_gasm: 0.21 # Fraction of organic N and grazing N volatilized as NH3 and NOx (FracGASM)
frac_leach: 0.24 # Fraction of applied/deposited N lost through leaching and runoff in wet climates (FracLEACH-(H))
residues:
incorporation_n2o_factor: 0.010 # kg N2O-N per kg residue N incorporated into soil (IPCC 2019 Refinement, Table 11.1 aggregated default)
# --- section: land use change ---
luc:
horizon_years: 25
managed_flux_mode: "zero"
forest_fraction_threshold: 0.2 # Minimum forest fraction (0-1) to apply regrowth sequestration
spared_land_agb_threshold_tc_per_ha: 20.0 # Max AGB (tC/ha) for spared land eligibility
IPCC (2019). 2019 Refinement to the 2006 IPCC Guidelines for National Greenhouse Gas Inventories, Volume 4: Agriculture, Forestry and Other Land Use. https://www.ipcc.ch/report/2019-refinement-to-the-2006-ipcc-guidelines-for-national-greenhouse-gas-inventories/
FAO (2022). Global Livestock Environmental Assessment Model (GLEAM) 3.0. Food and Agriculture Organization of the United Nations. https://www.fao.org/gleam/
Land Use Change¶
Land-use change (LUC) emissions capture the carbon consequences of converting land between natural vegetation, cropland, pasture, and spared (actively rewilded) states. The model derives annualized per-hectare coefficients for each resource class and water supply that quantify the net CO₂ flux associated with allocating an additional hectare to a specific land use.
Conceptual overview¶
For every grid cell on the common suitability grid, the workflow computes three main quantities:
Pulse emissions (:math:`P_{i,u}`) – the one-off release (or uptake) that occurs when land transitions from its natural state to land use \(u\) (cropland or pasture). We estimate above-ground biomass (AGB), below-ground biomass (BGB), and soil organic carbon (SOC) stocks for both the natural and agricultural equilibria, then convert the difference to CO₂ using the stoichiometric factor \(44/12\).
Annual regrowth (:math:`R_i`) – the ongoing sequestration potential when land is spared or allowed to regrow. Regrowth credits are only granted where the baseline land-cover map indicates the area is eligible for potential forest (forest fraction above the configured threshold), reflecting that the Cook-Patton & Griscom dataset quantifies how much carbon could accumulate if forests were allowed to return.
Managed flux (:math:`M_{i,u}`) – ongoing emissions from managed systems (e.g., peat oxidation, continuous tillage). The current implementation sets \(M_{i,u} = 0\) everywhere as a simplifying assumption.
The per-hectare land-use change factor (LEF) combines these components over the planning horizon \(H\) (years) configured in config/default.yaml:
LEFs are computed for three uses (cropland, pasture, spared). Cropland and pasture incur positive costs when they release carbon; spared land yields negative LEFs because regrowth produces a CO₂ sink. Area-weighted aggregation over resource classes produces region-level coefficients that the optimisation layer consumes.
Application in the optimisation distinguishes new conversion from existing area: cropland LEFs are charged only when land expands (convert_new_land_*), while baseline cropland can be spared to earn the spared LEF. Pasture LEFs attach to grazing supply links so that expanding pasture bears its conversion cost.
Input datasets¶
The LUC pipeline harmonises several global datasets to the common grid:
Land cover fractions and forest masks from Copernicus ESA CCI land cover (Copernicus Satellite Land Cover)
Above-ground biomass from ESA Biomass CCI v6.0 (ESA Biomass CCI — Global Above-Ground Biomass)
Soil organic carbon stocks (0–30 cm) from ISRIC SoilGrids 2.0 (ISRIC SoilGrids — Global Soil Organic Carbon Stock), scaled to 1 m depth using IPCC Tier 1 factors
Natural forest regrowth rates from Cook-Patton & Griscom (2020) (Cook-Patton & Griscom — Forest Carbon Accumulation Potential), representing the carbon that would accumulate if previously cleared land were reforested
IPCC Tier 1 below-ground biomass ratios, soil depletion factors, and agricultural equilibrium assumptions stored in
data/luc_zone_parameters.csv
These layers are reprojected, resampled, and combined by dedicated Snakemake rules to produce per-cell biomass/SOC stocks, forest masks, and regrowth rates ready for downstream processing. Figure Land-use change input layers harmonised to the modelling grid: forest fraction (Copernicus CCI), above-ground biomass (ESA Biomass CCI v6.0), soil organic carbon 0–30 cm (SoilGrids 2.0), and natural forest regrowth potential (Cook-Patton & Griscom, 2020). summarises the harmonised rasters on the common model grid.
Land-use change input layers harmonised to the modelling grid: forest fraction (Copernicus CCI), above-ground biomass (ESA Biomass CCI v6.0), soil organic carbon 0–30 cm (SoilGrids 2.0), and natural forest regrowth potential (Cook-Patton & Griscom, 2020).¶
Model integration and land states¶
The land-use change workflow:
prepare_luc_inputs.pyaligns the raw rasters to the resource-class grid and stores intermediate masks and carbon pools underprocessing/{config}/luc/.build_luc_carbon_coefficients.pyderives pulse emissions, annual LEFs, and aggregates them toluc_carbon_coefficients.csv.build_current_cropland_area.pycaptures irrigated and rainfed cropland already in use ascropland_baseline_by_class.csv.
During model construction, build_model.py loads these inputs, converts LEFs to marginal CO₂ flows (MtCO₂ per Mha-year), and applies them by land state:
Baseline cropland enters via fixed
land_existing_*generators. It does not pay conversion costs but can be spared viaspare_*links that earn regrowth credits.Expansion cropland lives on
land_new_*buses up to the suitability cap; only theconvert_new_land_*links that move this expansion intoland_pool_*apply cropland LEFs (and emit CO₂).Pasture conversion costs ride on the grazing supply links that tap pasture area.
All LUC flows connect to the global co2 bus, which feeds a priced CO₂ store (emissions.ghg_price). This keeps cropland expansion, pasture expansion, and regrowth credits on the same carbon price scale while avoiding double-charging existing land. The spatial pattern of the resulting LEFs is shown in Annualised land-use change emission factors (LEFs) used in the optimisation. Warm colors indicate positive emissions costs (CO₂ release), while cool colors represent sequestration credits..
Spared land filtering¶
Regrowth sequestration rates from Cook-Patton et al. (2020) represent young regenerating forest (0-30 years) on previously cleared or degraded land. They do not apply to mature forests, which have already accumulated most of their carbon stock and exhibit near-zero net sequestration.
To avoid incorrectly crediting sequestration on mature forest, the LEF calculation for spared land includes a conditional that sets the sequestration benefit to zero where current above-ground biomass (AGB) exceeds a configurable threshold (luc.spared_land_agb_threshold_tc_per_ha, default 20 tC/ha). Specifically:
Regrowth credits are granted only when both of the following hold:
This ensures:
Low-biomass areas (recently cleared or degraded land suitable for agriculture) receive negative LEFs (sequestration credits) if left unused
Cells flagged as potential forest by the land-cover dataset are eligible for credits provided their AGB is low enough, representing areas that could regrow quickly if spared
High-biomass areas (mature tropical rainforest, boreal forest) receive zero spared-land LEF—their carbon value is already captured via high pulse emissions if converted, but they are not credited for additional regrowth
The threshold of 20 tC/ha is intermediate between typical agricultural land (0-10 tC/ha) and mature forest (50-200+ tC/ha). Areas above this threshold are assumed to represent established vegetation that would not exhibit the rapid early-successional regrowth rates quantified by Cook-Patton et al.
Only baseline cropland (existing managed area) can be spared in the optimisation; newly converted land must first revert to the baseline pool before becoming eligible for regrowth credits.
Network links that implement this behaviour use the spare_* naming scheme: they pull from land_existing_* buses and produce to dedicated land_spared_* sinks with CO₂ outputs proportional to the spared LEF.
Annualised land-use change emission factors (LEFs) used in the optimisation. Warm colors indicate positive emissions costs (CO₂ release), while cool colors represent sequestration credits.¶
Limitations and assumptions¶
The current implementation makes several simplifying assumptions that should be considered when interpreting results:
Climatic zones: Zones (tropical, temperate, boreal) are assigned by latitude only (tropical: \(\lvert \phi \rvert < 23.5^\circ\), boreal: \(\lvert \phi \rvert \ge 50^\circ\), temperate: otherwise). This does not account for altitude effects (e.g., highland tropics behave more like temperate zones) or local climate variations. A future enhancement would use actual biome or Köppen-Geiger climate classifications.
Agricultural biomass stocks: Cropland and pasture equilibrium above-ground biomass is assumed to be negligible (0 tC/ha) for annual crops. This is a conservative assumption appropriate for grain crops where biomass is harvested annually, but underestimates carbon storage in perennial crops (orchards, oil palm, coffee) and improved pastures. See
data/luc_zone_parameters.csvfor the zone-specific parameters.Forest mask threshold: Regrowth sequestration is only applied to cells with ≥20% forest fraction in the land-cover-derived potential forest layer (i.e., areas that would naturally support forest if unmanaged). This threshold can be adjusted via
config['luc']['forest_fraction_threshold'](default: 0.2). Raising the threshold restricts eligibility to areas that are strongly classified as forest; lowering it allows credits on lightly wooded mosaics.Soil organic carbon depth: SOC stocks in the 0-30 cm layer (from SoilGrids) are scaled to 1 m depth using zone-specific factors from
data/luc_zone_parameters.csv. TODO: These factors require verification against IPCC 2006/2019 Guidelines Volume 4 Chapter 2 to ensure they match the intended Tier 1 methodology.Managed flux: Set to zero everywhere (\(M_{i,u} = 0\)), meaning ongoing emissions from agricultural management (e.g., peat oxidation, tillage-induced decomposition) are not currently modeled. Future work could incorporate organic soil maps and management-specific emission factors.