eduaguilera / eduaguilera/whep
LPJmL 6.x moves natural grass productivity from boreal to tropics (feed availability geography shifts)
- Dominant language
- R
- Stars
- 1
- Forks
- 5
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 186
Description
## What was seen
Regenerating `lpjml-grass-productivity` from the 6.1.1 production run changes its
distribution *shape*, not its scale: over 2000–2010 the **mean rises 26%
(147.3 → 185.7) while the median falls 4%** (108.6 → 104.2). 55% of cell-years
go **down**, 45% up, and the per-cell ratio spans 0.029 (1st pct) to 28.2 (99th).
Investigated before publishing the regenerated pins. **It is not a defect** — the
generation is correct. Filing because the downstream consequence is real and
someone will otherwise rediscover this the hard way.
## The mechanism: grass loses to woody PFTs at high latitude
By latitude band, mean ratio 6.1.1 / 5.9.7:
| band | grass NPP ratio | median ratio |
|---|---|---|
| S. temperate | 1.35 | 1.13 |
| tropics | **1.87** | 1.35 |
| N. temperate | 1.12 | 0.87 |
| **boreal** | **0.57** | 0.49 |
| arctic | 1.12 | 1.27 |
And monotone in magnitude — the lowest productivity decile rises 2.4×, the
highest falls to 0.93. Low-productivity cells gain, high-productivity cells lose.
Boreal grass halving looks alarming next to the fact that 6.x's **boreal total
GPP rises ~73%** (254 → 439 gC/m²/yr, its single strongest improvement, #400).
Both are true, and the resolution is competition:
| pin | what it reads | boreal ratio |
|---|---|---|
| `lpjml-grass-productivity` | natural grass PFTs (`Tropical C4 grass`, `Temperate C3 grass`, `Polar C3 grass`) | **0.57** |
| `lpjml-grass-natural-net-c`, `land_use = natural` | the whole natural stand | **1.45** |
| `lpjml-grass-availability` | managed CFTs (`rainfed`/`irrigated grassland`) | **1.06** |
The boreal natural stand gains 45% while its grass component loses 43% — **woody
PFTs are taking the share**. Managed grassland, which has no tree competition,
simply rises. Three independent layers, one coherent mechanism, which is what
says this is behaviour rather than breakage.
Consistent with the 6.x parameter changes recorded in #400: `alphaa` 0.5 → 0.7,
`f_LAI` no longer scaling `vmax`, `nfixpot` 0.01 → 0.5, BoNE turnover, and the
boreal boundary moving −2 °C → −5 °C.
## Why it matters downstream
`lpjml-grass-productivity` feeds `R/feed_lpjml.R`, so this is a change in the
**geography of natural grazing availability**: boreal down ~43%, tropics up ~87%.
National feed balances for high-latitude countries will move in the opposite
direction to tropical ones. Anything that *averages* this layer moves with the
mean (+26%); anything keyed on a representative cell moves with the median (−4%).
## What would be worth checking
- Whether the boreal grass loss is defensible against observed high-latitude
grassland/tundra productivity, or whether 6.x now over-favours woody PFTs
there. The GPP total being *better* against observations does not settle how
the total is split between PFTs.
- Whether `feed_lpjml.R` consumers are mean-like or median-like, since the two
give opposite signs.
## Reproduce
Dry run, no upload:
```r
regenerate_whep_lpjml_pins() # in ~/whep_inputs; prints per-pin mean and median ratio
```
Contributor guide
Research direction
Start by running regenerate_whep_lpjml_pins() in ~/whep_inputs as a dry run and review R/feed_lpjml.R. Compare the boreal grass and total-natural-stand changes with observed high-latitude productivity, then trace whether feed consumers use mean-like or median-like summaries. Done means documenting whether the shift is defensible and how downstream feed balances should be interpreted.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- r
- Domain
- data
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100