Forest CarbonCBM-CFS3 · northwestern Ontario

Trout Lake and Wabigoon forests · Ontario · 2000–2010

The Boreal Ledger

A decade of carbon in two northwestern Ontario forests: what the stands held, what harvest and fire took out, and what growth put back, counted stand by stand with the Carbon Budget Model of the Canadian Forest Sector.

Forest modelled
1.03 Mhaof inventory forest
Stands
61,600inventory polygons
Period
10 yrs2000 to 2010, annual
Disturbed area
91k haharvest, fire, blowdown
Carbon budget, 2001–2010 average · t C/ha/yrTrout LakeWabigoon

Net primary production is growth after the trees' own respiration. A negative total means the forest lost carbon over the decade: harvest and slash burning took out slightly more than growth put back.

Biomass carbon, 2010 UTM 15N · 250 m cells from stand polygons
Map of Trout Lake Forest in the north and Wabigoon Forest in the south, shaded by biomass carbon per hectare in 2010. Harvest blocks show as pale patches in Wabigoon; part of Trout Lake is grey because it was not in the disturbance run.
Data and model
DatasetProviderYearUnitUsed for
Forest Resource Inventory, Wabigoon Forest (130)Ontario MNRF2010stand polygonsStands, species, age, disturbance history
Forest Resource Inventory, Trout Lake Forest (120)Ontario MNRF2013stand polygonsStands, species, age, disturbance history
Forest management unit boundariesOntario MNRFWabigoon 2010 · Trout Lake 2025vectorStudy areas
Operational-Scale CBM-CFS3, driven with cbm3_pythonNatural Resources Canada · Canadian Forest Servicetoolbox build 1.0.8956t CCarbon pools and fluxes, Boreal Shield West parameters
Growth curvesThis analysis—m³/ha by ageOne softwood and one hardwood curve

The model

How CBM-CFS3 keeps the books

The Carbon Budget Model of the Canadian Forest Sector (CBM-CFS3) is the Canadian Forest Service's model of forest carbon, and the core of the system Canada uses to report forest emissions and removals in its national greenhouse gas inventory. It does not simulate photosynthesis. It reads merchantable volume from a yield curve, converts it to biomass with national volume-to-biomass equations, and every year moves carbon between 25 pools using turnover rates set for the ecozone and decay rates adjusted for its climate.

Harvest, fire and other events are disturbance matrices. In the year they happen, each one moves a fixed share of every pool to other pools, to the atmosphere, or out of the forest as wood, and resets the stand's age. Before the first year, a spin-up cycles each stand through its historical disturbance until the slow soil pools settle, then grows it to its inventory age.

One hectare of Wabigoon Forest t C/ha/yr
What happens to the hectare
Forest
1Seven input tables
sit_inventory.csv
sit_classifiers.csv
sit_yield.csv
sit_events.csv
sit_transitions.csv
sit_age_classes.csv
sit_disturbance_types.csv

Built from the inventory: one row per stand and species group, its growth curve, and the events that hit it. A mapping file ties them to CBM's default species, disturbance types and the Boreal Shield West spatial unit.

→ CSV tables + mapping.json
2Standard Import Tool
sit_helper.csv_import(
  csv_dir="sit_directory",
  imported_project_path=
    "sit_trial_stack1.mdb")

Checks the tables against each other and writes them into a CBM-CFS3 project, an Access database.

→ project database
3Makelist and simulation
projectsimulator.run(
  project_path=
    "sit_trial_stack1.mdb",
  results_database_path=
    "..._result.mdb",
  n_timesteps=30,
  skip_makelist=False)

Makelist turns each yield curve into biomass curves and builds the simulation list; CBM then spins every stand up and steps the inventory forward one year at a time.

→ results database, one per stack
4Read the results
cbm3_results.load_pool_indicators(
  results_path,
  classifier_set_grouping=True)

Pools, fluxes, stock changes and disturbed area come back from tables such as tblPoolIndicators and tblDistIndicators, for every stand and year. This page reads 2000 to 2010.

→ the charts and maps below

Forest by forest

What goes into each forest, and what comes out

A forest management unit is the area one licence holder plans harvest for under Ontario's forest management plans. Its Forest Resource Inventory maps every stand as a polygon with its species mix, age and any recorded harvest, fire or blowdown. Each forest stand becomes a CBM record; the results come back per stand, so they can be mapped the same way.

Forest management unit 130

Wabigoon

Wabigoon · Leading species
Inventory inputs
Model results
Wabigoon inventory at a glance productive forest only · hover for values

Forest area by stand age in 2000

thousand ha · age in years

Leading species

share of forest area

Disturbed area by year

thousand ha · from the inventory

Method

From inventory polygons to carbon pools

The inventory is turned into the seven tables CBM-CFS3's Standard Import Tool reads, the model steps each forest forward one year at a time from 2000, and the pool and flux indicators are read back from the results databases for every stand. The runs continue past 2010, but the inventories record no harvest or fire after that, so this page stops at 2010. Each stage is a notebook on GitHub: preprocessing, running CBM-CFS3 and post-processing.

Processing chaininputs sit under the step they feed
STEP 1Forest standsKeep productive forest polygons
  • Forest Resource InventoryPOLYTYPE = FOR
STEP 2Species groupSoftwood or hardwood; mixed stands split when the other group is ≥ 40%
  • Species compositionOSPCOMP
STEP 3Age in 2000Inventory age moved to 2000, in 10-year classes
  • Age and inventory yearOAGE, YRSOURCE
STEP 4Growth and eventsYield curve per group; each depletion after 2000 becomes an event in its year
  • Depletion type and yearDEPTYPE, YRDEP
  • Default CBM typesclear-cut with slash-burn, wildfire
STEP 5Run CBM-CFS3Inventory split into stacks, one-year time steps
  • Boreal Shield West, Ontarioecological parameters
STEP 6Pools and fluxesRead back per stand and per year, then summed per forest
25 carbon pools · 12 biomass, 13 dead organic matter Annual fluxes · NPP, decay, harvest, emissions Per-stand maps · 2000, 2005, 2010

Growth curves

Two curves drive every stand

CBM grows biomass from merchantable volume by age. This analysis gives every softwood stand the same curve and every hardwood stand another, rather than curves by species and site class. Stand age decides where on the curve each stand starts in 2000.

Merchantable volume by stand agem³/ha · yield table
Softwood Hardwood
Close-up

An inventory, polygon by polygon

Follow one 24 × 24 km window in Wabigoon Forest, picked because much of it was harvested after 2000. Thin lines are inventory polygon edges: 1,000 polygons, median forest stand 10 ha.

Leading species

Species set the growth curve

The leading species decides whether a stand grows on the softwood or the hardwood curve. Broadleaf here means aspen, poplar and birch.

Age in 2000

Age sets the starting point

Inventory age is moved back to 2000. Stands that originated after 2000 are started at 100 years and then reset by the disturbance that created them.

Disturbance events

Harvest and fire happen in their year

Each depletion recorded after 2000 becomes a CBM event in that year. Harvest is modelled as clear-cut with slash-burn and fire as wildfire; both reset the stand to age zero.

Biomass carbon, 2000

The model's starting stock

CBM spins each stand up to its age in 2000 and fills its biomass and dead organic matter pools.

Mean biomass carbon in the window: 40 t C/ha

Biomass carbon, 2010

Cut blocks empty out, the rest keeps growing

Harvested and burned stands drop to near zero biomass; their carbon leaves as wood products or emissions, or moves into deadwood and soil.

Mean biomass carbon: 40 t C/ha

Change, 2000–2010

Subtract the two years

Stands cut or burned in the decade lose nearly all their biomass carbon; the stands left standing each add a few tonnes per hectare.

Lost more than 20 t C/ha: 1,000 ha · untouched stands gained 3 t C/ha on average

Polygon types Wabigoon Forest · 24 × 24 km · 40 m cells
Close-up window: forest polygons with lakes and muskeg, polygon edges drawn as thin lines. Leading species in the close-up window. Stand age in 2000 in the close-up window. Harvest, fire and blowdown after 2000 in the close-up window. Biomass carbon per hectare in 2000. Biomass carbon per hectare in 2010, with harvested blocks pale. Change in biomass carbon from 2000 to 2010: harvested blocks in plum, growing stands in green.

Results

Where the carbon sits, and where it moves

Carbon stock per hectare by pool, 2000–2010t C/ha · shared scale · hover for a year
Show the numbers
The yearly carbon budgett C/ha/yr · shared scale · hover for a year
Net ecosystem production (growth minus decay) Harvest removals Emissions from slash burning and fire Net change in ecosystem carbon
Show the numbers

A harvested stand

Harvest empties biomass in a year; seven years later it is barely back

Carbon in stands harvested 2001–2003, followed to 2010t C/ha · area-weighted
Biomass Dead organic matter

Wabigoon, 2000 and 2010

A decade of cut blocks, side by side

Wabigoon Forest, biomass carbon in 2000 and 2010t C/ha · drag the slider to compare
Wabigoon Forest biomass carbon in 2000. Wabigoon Forest biomass carbon in 2010, with harvested blocks pale. 2000 2010

Age structure

Ten years older, except the cut blocks

Forest area by age class, 2000 and 2010thousand ha · model age classes
2000 2010

Checks on the run

The books balance

Every number on this page was read straight from the CBM-CFS3 result databases. These checks confirm the runs hold together: area, carbon accounting, events and the per-stand extraction.

    Disturbance requested and appliedha, 2001 onwards · events file vs model results

    Caveats

    Before quoting a number

    Keep in mind

    • Carbon is in tonnes of carbon (t C), not tonnes of biomass; biomass is roughly twice the carbon.
    • Results stop at 2010. The inventories record harvest and fire up to 2009 in Wabigoon and 2010 in Trout Lake, so later years of the runs carry growth and decay only and are left out.
    • Every stand uses one of two generic yield curves, so differences between species and site classes are not modelled.
    • The exported 2010 biomass product stores biomass carbon (t C/ha) under a Mg/ha label. Relabel it, or roughly double the values, before using it as dry biomass.
    • Blowdown, drought and flood map to CBM's "Unknown" disturbance type: they reset stand age but move no carbon in these runs.
    • Harvest is modelled as clear-cut with slash-burn, so every harvest also burns its slash; that burning is most of the disturbance emissions.
    • Stands that originated after 2000 start the run at 100 years old, then reset when their recorded disturbance happens.
    • A few Trout Lake stands share a shortened polygon ID; their carbon is averaged between them on the maps.

    Next steps

    • Replace the two generic yield curves with Ontario growth and yield curves by species and site class.
    • Add harvest and fire after 2010, from the annual reports or national satellite records, to carry the story forward.