Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 13 additions & 14 deletions docs/data.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,20 +57,19 @@ harmonized = xarray.open_zarr("<scratch-root>/<cache-key>.zarr", consolidated=Fa

Written by the `emit` stage; a pipeline output, not a published artifact (see [Access](#access)).

The crop-agnostic, per-pixel, per-span LUC emissions produced by the `emit` stage. A conversion is dated to the year its source class ended, and charged to the span containing that year; the spans are `2000-2005`, `2005-2010`, `2010-2015` and `2015-2020`.

| Variable | Type | Units | Description |
| ---------------------------------------------------- | ------- | --------------- | -------------------------------------------------------------------------------------------------------- |
| `conversion` | float32 | Conversion code | Which of the five conversions fired on the pixel, or none |
| `conversion-year` | float32 | year | The year the pixel's source class ended — its tree-cover loss year, or its last departure from grassland |
| `destination-dataset` | float32 | Dataset bitmask | Which layers claimed the pixel at the assessment year — one bit each, so a contested pixel keeps both |
| `vegetation-emissions:tco2e-per-ha:{before}-{after}` | float32 | t CO₂e/ha | Per-span vegetation-carbon loss (above-ground, below-ground, dead organic matter, grassland) |
| `soil-emissions:tco2e-per-ha:{before}-{after}` | float32 | t CO₂e/ha | Per-span soil-carbon loss (mineral stock change + peatland drainage pulse) |
| `cropland-peatland-occupation:tco2e-per-ha` | float32 | t CO₂e/ha | Current-year annual peatland-occupation emissions under cropland |
| `pastureland-peatland-occupation:tco2e-per-ha` | float32 | t CO₂e/ha | The same under pasture, split from cropland on the 30 m grid |
| `dropped-emissions:tco2e-per-ha` | float32 | t CO₂e/ha | Source carbon no destination claimed, reported beside the total rather than inside it |
| `emissions-per-hectare:tco2e-per-ha` | float32 | t CO₂e/ha | 20-year linearly-discounted LUC emissions + peatland occupation — the headline per-hectare layer |
| `hectares-per-pixel:ha` | float32 | ha | Pixel area (varies with latitude) |
The crop-agnostic, per-pixel LUC emissions produced by the `emit` stage, undiscounted. A conversion is dated to the year its source class ended, `conversion-year`, and each allocation leg discounts the emissions by that year (see [`methodology.md`](methodology.md)).

| Variable | Type | Units | Description |
| ---------------------------------------------- | ------- | --------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `conversion` | float32 | Conversion code | Which of the five conversions fired on the pixel, or none |
| `conversion-year` | float32 | year | The year the pixel's source class ended — its tree-cover loss year, or its last departure from grassland |
| `destination-dataset` | float32 | Dataset bitmask | Which layers claimed the pixel at the assessment year — one bit each, so a contested pixel keeps both |
| `vegetation-emissions:tco2e-per-ha` | float32 | t CO₂e/ha | Vegetation-carbon loss of the pixel's conversion (above-ground, below-ground, dead organic matter, grassland), undiscounted |
| `soil-emissions:tco2e-per-ha` | float32 | t CO₂e/ha | Soil-carbon loss of the pixel's conversion (mineral stock change + peatland drainage pulse), undiscounted |
| `cropland-peatland-occupation:tco2e-per-ha` | float32 | t CO₂e/ha | Current-year annual peatland-occupation emissions under cropland |
| `pastureland-peatland-occupation:tco2e-per-ha` | float32 | t CO₂e/ha | The same under pasture, split from cropland on the 30 m grid |
| `dropped-emissions:tco2e-per-ha` | float32 | t CO₂e/ha | Source carbon no destination claimed, undiscounted; reported beside the charged emissions rather than inside them |
| `hectares-per-pixel:ha` | float32 | ha | Pixel area (varies with latitude) |

```python
import xarray
Expand Down
2 changes: 1 addition & 1 deletion docs/executive_summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ This document is aimed at readers assessing how the methodology maps to the LSRS
| LSRS requirement | How this methodology addresses it | Status |
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| **Land-use-change emissions in scope** | Detects conversions out of forest, rangeland and pasture per ~30 m pixel from annual layers spanning 2000–2020, and quantifies the carbon lost. | Met |
| **20-year assessment period, linearly discounted (§7.2.1)** | All fluxes are allocated over a 20-year linearly-discounted lookback; more recent conversions are weighted more heavily. A conversion is dated to the year its source class ended and charged to the five-year span holding that year, which carries one aggregated discount weight. | Met |
| **20-year assessment period, linearly discounted (§7.2.1)** | All fluxes are allocated over a 20-year linearly-discounted lookback; more recent conversions are weighted more heavily. A conversion is dated to the year its source class ended and takes that year's linear amortization factor. | Met |
| **Carbon pools (vegetation + soil)** | Includes key carbon pools described on the LSRS as follows: Above-ground biomass (Harris 2021), below-ground/root biomass (Huang 2021), dead organic matter (CDM AR-TOOL-12, forest only), mineral soil organic carbon (IPCC 2019 Tier 1 stock-change, 0–30 cm) and complements with peatland emissions (newly drained + long term drained). | Met |
| **Jurisdictional direct vs. statistical land use change** | Two legs share one emissions core: jdLUC via spatial intersection with high-resolution crop maps (USDA CDL), and sLUC via each crop's share of local cropland expansion (IFPRI MapSPAM). | Met |
| **Allocation to commodities** | Product expansion approach is used for sLUC calculation; pasture's share is divided among livestock commodities by grazing pressure. | Met |
Expand Down
2 changes: 1 addition & 1 deletion docs/further_research.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ It is not a lag between clearing and grass: in Boquerón, 38–56% of forest cle

## sLUC grassland attribution (expansion-share over-attribution)

**Issue**: The statistical (sLUC) leg attributes each coarse cell's conversion emissions to crops by their share of crop *expansion* within the cell (`statistical.py`; see §3, Statistical). A post-refactor validation found this hands corn/soy/wheat substantially more grassland conversion than the per-pixel jurisdictional-direct (jdLUC) leg does on the *same* emissions layer (grassland EF: corn 0.032 vs 0.012, soy 0.126 vs 0.054 kg CO₂e/kg), driving the US corn+soy+wheat total to ~76 MtCO₂e — the highest of the satellite EF models and above jdLUC (61). Grassland (30.9 Mt) is the largest single US source and the biggest change from the refactor, yet it has **no reliable external anchor** since WRI is forest-only. The one weak reference — EPA's whole-cropland Grassland→Cropland, **10.6 Mt for 2020** — sits *below* the sLUC corn+soy+wheat *subset* (30.9): a three-crop subset nearly **tripling** the whole-cropland total. Both sides are annual, so this is not muddied by a temporal basis. The GHGP per-year weights integrate to exactly 1.0 across the 20-year window, so `SPAN_TO_LINEAR_DISCOUNT_WEIGHT` allocates each conversion's emissions to a *single sourcing year* rather than accumulating twenty of them, and the production denominator is a weighted mean over the same spans — an annual numerator over an annual denominator. The one real mismatch is scope, and it runs against us: widening sLUC from three crops to all cropland can only raise 30.9. Whether expansion-share allocation over-attributes grassland — or the per-pixel CDL leg under-attributes it — is unresolved.
**Issue**: The statistical (sLUC) leg attributes each coarse cell's conversion emissions to crops by their share of crop *expansion* within the cell (`statistical.py`; see §3, Statistical). A post-refactor validation found this hands corn/soy/wheat substantially more grassland conversion than the per-pixel jurisdictional-direct (jdLUC) leg does on the *same* emissions layer (grassland EF: corn 0.032 vs 0.012, soy 0.126 vs 0.054 kg CO₂e/kg), driving the US corn+soy+wheat total to ~76 MtCO₂e — the highest of the satellite EF models and above jdLUC (61). Grassland (30.9 Mt) is the largest single US source and the biggest change from the refactor, yet it has **no reliable external anchor** since WRI is forest-only. The one weak reference — EPA's whole-cropland Grassland→Cropland, **10.6 Mt for 2020** — sits *below* the sLUC corn+soy+wheat *subset* (30.9): a three-crop subset nearly **tripling** the whole-cropland total. Both sides are annual, so this is not muddied by a temporal basis. The GHGP per-year weights integrate to exactly 1.0 across the 20-year window, so `YEAR_TO_LINEAR_DISCOUNT_WEIGHT` allocates each conversion's emissions to a *single sourcing year* rather than accumulating twenty of them, and the production denominator is a weighted mean over the same window — an annual numerator over an annual denominator. The one real mismatch is scope, and it runs against us: widening sLUC from three crops to all cropland can only raise 30.9. Whether expansion-share allocation over-attributes grassland — or the per-pixel CDL leg under-attributes it — is unresolved.

**Not the denominator of the expansion share.** That denominator is the obvious suspect and is not the cause: removing it leaves the US ratio of the statistical leg's total factor to the jurisdictional-direct leg's at 1.15–1.75×, and the same ratio for grassland at 0.97–2.34×. The figures quoted above reproduce from the current parquets (corn 0.0317 vs 0.0131, soy 0.1255 vs 0.0576), so the gap is stable and unexplained. All of these figures were measured with destination layers other than GACED30 and Global Pasture Watch, and need measuring again on the current pipeline.

Expand Down
Loading
Loading