Skip to content

AcadianGY 12.3.9: ops\$CSI_SCALE knob for climate weighting#42

Merged
holoros merged 1 commit into
mainfrom
acadgy-12.3.9-csi-scale-2026-05-28
May 28, 2026
Merged

AcadianGY 12.3.9: ops\$CSI_SCALE knob for climate weighting#42
holoros merged 1 commit into
mainfrom
acadgy-12.3.9-csi-scale-2026-05-28

Conversation

@holoros
Copy link
Copy Markdown
Owner

@holoros holoros commented May 28, 2026

Adds one optional knob to AcadianGYOneStand: `ops$CSI_SCALE`. When set, multiplies the resolved Climate Site Index by the provided factor before anything downstream uses it. Default unset; 12.3.9 with no CSI_SCALE in ops is byte-identical to 12.3.8.

The change

In AcadianGYOneStand, immediately after the CSI resolution line:

```r
CSI = if (is.null(stand) || is.null(stand$CSI) || is.na(stand$CSI)) 12 else stand$CSI
if (!is.null(ops$CSI_SCALE) && is.finite(ops$CSI_SCALE) && ops$CSI_SCALE > 0) {
CSI <- CSI * ops$CSI_SCALE
}
```

Version tag: AcadianV12.3.9.

v28 validation (100 ME FIA plots, 10 yr, MORTCAL + ingrowth on)

CSI_SCALE BA bias R^2 TPA (obs 1029) QMD (obs 4.97)
1.0 (unset, = v24) +11.05% 0.4232 1043 4.92
0.7 (production recommendation) +9.96% 0.4325 1035 4.94
0.5 (aggressive) +9.04% 0.4411 1029 4.95

CSI_SCALE unset reproduces v24 exactly. CSI_SCALE=0.7 matches the v25 sensitivity interpolation. CSI_SCALE=0.5 lands TPA at observed and pulls BA bias below +10% for the first time.

Recommendations

  • Customrun bridge default: CSI_SCALE=0.7 — ~1 pp BA closure, +0.01 R^2, low risk
  • Optional aggressive: CSI_SCALE=0.5 — ~2 pp closure, watch for over-tuning
  • Canadian MAGPlot: leave unset — no residual climate signal to close on NB CFI

Deployed to fvsOL/inst/extdata/AcadianGY.R with 12.3.8 backed up alongside the earlier 12.3.5/12.3.6/12.3.7 backups.

Adds one optional parameter to AcadianGYOneStand: ops$CSI_SCALE. When
set, multiplies the resolved Climate Site Index right after parsing,
before anything downstream uses it. Default unset (no scaling); 12.3.9
with no CSI_SCALE in ops is byte-identical to 12.3.8.

The change is one block of 3 R lines right after the CSI resolution.
Version tag bumped to AcadianV12.3.9.

v28 validation (100 ME FIA plots, 10 yr, MORTCAL + ingrowth on):

  CSI_SCALE  BA bias  R^2     TPA   QMD
  1.0 (=v24) +11.05%  0.4232  1043  4.92
  0.7 (rec)  +9.96%   0.4325  1035  4.94
  0.5 (agg)  +9.04%   0.4411  1029  4.95

CSI_SCALE not set reproduces v24 exactly (backward compat verified).
CSI_SCALE=0.7 matches the v25 sensitivity interpolation; CSI_SCALE=0.5
lands TPA at observed and pulls BA bias below +10% for the first time.

Production recommendations:
  - Customrun bridge default: CSI_SCALE=0.7 (~1 pp BA closure)
  - Optional aggressive: CSI_SCALE=0.5 (~2 pp, watch over-tuning)
  - Canadian MAGPlot: leave unset (no residual climate signal there)

Deployed to fvsOL/inst/extdata/AcadianGY.R with 12.3.8 backed up. The
+15% BA residual is now down to ~+9% at CSI_SCALE=0.5; the remainder
sits in dDBH base-rate coefficients, mortality functional form, or a
true Acadian-variant ceiling. All paper-sized.
@holoros holoros merged commit 560c739 into main May 28, 2026
5 checks passed
@holoros holoros deleted the acadgy-12.3.9-csi-scale-2026-05-28 branch May 28, 2026 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant