Skip to content

Environmental Flows

This guide covers working with biosphere exchanges - the emissions, resource consumption, and other environmental flows in your LCA models.

What are Environmental Flows?

Environmental flows (also called elementary flows or biosphere flows) represent exchanges between the industrial economy (technosphere) and the natural environment (biosphere):

  • Emissions: Substances released to air, water, or soil
  • Resources: Materials extracted from nature
  • Land use: Occupation and transformation of land
graph LR
    subgraph Technosphere
        A[Industrial<br/>Processes]
    end

    subgraph Biosphere
        B[Air]
        C[Water]
        D[Soil]
        E[Resources]
        F[Land]
    end

    A -->|Emissions| B
    A -->|Emissions| C
    A -->|Emissions| D
    E -->|Extraction| A
    F -->|Use| A

    style A fill:#e3f2fd
    style B fill:#ffebee
    style C fill:#e3f2fd
    style D fill:#efebe9
    style E fill:#e8f5e9
    style F fill:#fff3e0

Biosphere Structure

Environmental flows in ecoinvent are organized hierarchically:

Compartment
└── Sub-compartment
    └── Flow name

Main Compartments

Compartment Description Example Flows
Air Emissions to atmosphere CO₂, CH₄, NOₓ, particulates
Water Emissions to water bodies Phosphate, heavy metals, COD
Soil Emissions to soil Pesticides, heavy metals
Natural resource Extractions from nature Iron ore, crude oil, water
Land Land occupation/transformation Forest, agricultural land

Sub-compartments

Each compartment has specific sub-compartments:

  • low population density, long-term
  • lower stratosphere + upper troposphere
  • non-urban air or from high stacks
  • urban air close to ground
  • unspecified
  • ground-
  • ground-, long-term
  • lake
  • ocean
  • river
  • river, long-term
  • unspecified
  • agricultural
  • forestry
  • industrial
  • unspecified
  • biotic
  • fossil
  • in air
  • in ground
  • in water
  • land

Finding Biosphere Flows

Use search_biosphere to find the correct flow codes:

# Search for CO2 emissions
search_biosphere(
    q="carbon dioxide",
    database="ecoinvent-3.9.1-cutoff",
    compartment="air"
)

# Search for water emissions
search_biosphere(
    q="phosphate",
    database="ecoinvent-3.9.1-cutoff",
    compartment="water"
)

# Search with sub-compartment filter
search_biosphere(
    q="carbon dioxide",
    database="ecoinvent-3.9.1-cutoff",
    compartment="air",
    sub_compartment="urban air close to ground"
)

Common Flows

Category Flow Name Compartment Typical Unit
GHG Carbon dioxide, fossil air kg
GHG Methane, fossil air kg
GHG Dinitrogen monoxide air kg
Acidification Sulfur dioxide air kg
Acidification Nitrogen oxides air kg
Eutrophication Phosphate water kg
Eutrophication Nitrate water kg
Resources Water, unspecified natural resource/in water
Resources Crude oil natural resource/in ground kg

Adding Biosphere Exchanges

Direct Emissions

When your process directly emits substances:

# Step 1: Find the biosphere flow
result = search_biosphere(
    q="carbon dioxide fossil",
    database="ecoinvent-3.9.1-cutoff",
    compartment="air"
)
# Get the code from results, e.g., "349b29d1-3e58-4c66-98b9-9d1a076efd2e"

# Step 2: Create the exchange
create_database_exchange(
    activity_id="your-activity-uuid",
    amount=2.5,                    # 2.5 kg CO2 emitted
    exchange_type="biosphere",
    input_database="ecoinvent-3.9.1-cutoff",
    input_biosphere_code="349b29d1-3e58-4c66-98b9-9d1a076efd2e"
)

Resource Consumption

When your process directly consumes natural resources:

# Water consumption
create_database_exchange(
    activity_id="your-activity-uuid",
    amount=100.0,                  # 100 m³ of water
    exchange_type="biosphere",
    input_database="ecoinvent-3.9.1-cutoff",
    input_biosphere_code="water_flow_code"
)

Sign Convention for Biosphere

Positive Values

Use positive values for all biosphere exchanges:

  • ✅ Emissions to environment: amount=2.5 (2.5 kg CO₂ released)
  • ✅ Resource consumption: amount=100 (100 L water consumed)

The directionality is determined by the flow definition, not the sign:

Flow Type Amount Sign Meaning
Emission to air Positive Substance released to atmosphere
Emission to water Positive Substance released to water body
Resource from ground Positive Material extracted from earth
Resource from water Positive Water withdrawn from source

Choosing the Right Sub-compartment

The sub-compartment affects characterization factors in impact assessment:

Air Emissions

Sub-compartment When to Use
urban air close to ground Urban industrial processes, traffic
non-urban air or from high stacks Power plants, large industrial facilities
low population density, long-term Remote locations, long-term releases
unspecified When location is unknown

Water Emissions

Sub-compartment When to Use
river Discharge to flowing water
lake Discharge to standing freshwater
ocean Marine discharge
ground- Groundwater contamination
unspecified When receiving water body is unknown

When in Doubt

Use unspecified if you're unsure about the exact sub-compartment. This is often the most common choice in generic LCA studies.

Impact Categories and Flows

Different impact assessment methods characterize different flows:

Climate Change (GWP)

Key flows:

  • Carbon dioxide, fossil
  • Methane, fossil
  • Dinitrogen monoxide (N₂O)
  • Hydrofluorocarbons (HFCs)
  • Perfluorocarbons (PFCs)
  • Sulfur hexafluoride (SF₆)

Acidification

Key flows:

  • Sulfur dioxide (SO₂)
  • Nitrogen oxides (NOₓ)
  • Ammonia (NH₃)
  • Hydrogen chloride (HCl)

Eutrophication

Key flows:

  • Phosphate (PO₄³⁻)
  • Nitrate (NO₃⁻)
  • Ammonia (NH₃)
  • Nitrogen oxides (NOₓ)
  • COD (Chemical Oxygen Demand)

Human Toxicity

Key flows:

  • Heavy metals (Pb, Cd, Hg, As)
  • Particulate matter (PM2.5, PM10)
  • Volatile organic compounds (VOCs)
  • Dioxins and furans

Working with Land Use

Land use flows are special biosphere exchanges:

Land Occupation

Time-integrated land use (area × time):

# Occupation of agricultural land for 1 year
search_biosphere(
    q="occupation, arable",
    database="ecoinvent-3.9.1-cutoff",
    compartment="natural resource"
)
# Unit: m²·year (or hectare·year)

Land Transformation

Change from one land type to another:

# Transformation from forest to agricultural land
search_biosphere(
    q="transformation, from forest",
    database="ecoinvent-3.9.1-cutoff",
    compartment="natural resource"
)
# Unit: m² (or hectare)

Best Practices

1. Match Specificity to Data Quality

# If you know the exact emission point:
sub_compartment="urban air close to ground"

# If you only have aggregate data:
sub_compartment=None  # Uses "unspecified"

2. Use Consistent Flow Names

Search for the exact flow name used in ecoinvent:

# ❌ May not find the right flow
search_biosphere(q="CO2")

# ✅ More specific, better results
search_biosphere(q="carbon dioxide, fossil")

3. Verify Units

Biosphere flows have specific units:

Flow Type Common Units
Mass emissions kg
Volume emissions
Energy resources MJ
Land use m²·year, m²
Water

4. Consider Upstream vs Direct

Many emissions come from upstream processes (electricity, materials) rather than direct releases:

graph TD
    A[Your Process] -->|Direct emissions| B[Biosphere]
    C[Electricity Production] -->|Upstream emissions| B
    D[Material Production] -->|Upstream emissions| B
    A -->|Input| C
    A -->|Input| D

    style A fill:#e3f2fd
    style B fill:#ffebee
    style C fill:#fff3e0
    style D fill:#fff3e0

Don't Double Count

If your material inputs are linked to ecoinvent activities, those activities already include their emissions. Only add direct biosphere exchanges for emissions that occur at your specific process.

Exploring Available Flows

Get All Compartments

get_biosphere_compartments(database="ecoinvent-3.9.1-cutoff")

Returns the complete hierarchy of compartments and sub-compartments.

Browse by Category

# All air emissions
search_biosphere(
    q="",  # Empty query
    database="ecoinvent-3.9.1-cutoff",
    compartment="air",
    limit=100
)

Troubleshooting

"Biosphere flow not found"

  • Check spelling matches ecoinvent exactly
  • Try searching with fewer words
  • Verify the compartment filter is correct

Zero impact for some categories

  • Your process may not emit relevant substances
  • Check if the correct biosphere flows are included
  • Verify the impact method includes characterization for your flows

Unexpectedly high/low impacts

  • Verify emission amounts and units
  • Check if the sub-compartment is appropriate
  • Compare with similar ecoinvent activities

Next Steps