Skip to content

powerLaw link: gamma and p_c bounds calibrated per ELF; powerLaw and penaliseRunaways = FALSE are the defaults - #84

Merged
eliotmcintire merged 2 commits into
developmentfrom
feat/powerlaw-auto-gamma
Oct 19, 2026
Merged

eliotmcintire merged 2 commits into
developmentfrom
feat/powerlaw-auto-gamma

Conversation

@eliotmcintire

Copy link
Copy Markdown
Collaborator

The spread fit now uses the "powerLaw" link by default and sets its shape number and the upper limit of its threshold from a quick simulation on each ELF's own landscape, so fits no longer waste time trying thresholds far above what that ELF can have. The simulated-size scoring of runaway fires is also switched off by default, because it shrank the year-to-year spread effect 3-4 times (Eliot, 2026-10-17).

Affects: the defaults of spreadLink ("powerLaw", was "ceiling") and penaliseRunaways (FALSE, was TRUE) change, so new fits differ from earlier ones; "ceiling" and "climateOutside" still work with unchanged fits, cache keys and ledger rows.

Depends-on: PredictiveEcology/fireSenseUtils#168

Technical details

powerLawGamma was a fixed 1.9 (fireSense_spreadFit.R parameter) and p_c was bounded by the global 0.35 (R/fitSpread.R maxAsymptoteBoundsOf()). With spreadLink = "powerLaw", spreadFitPrep() now runs fireSenseUtils::calibratePowerLaw() once per ELF (R/powerLawCalibration.R) on flammableRTM (new input, latest vegetation year), with the fit's own escapeSizeHa, jumpTries, jumpMeanDist, inside Cache() keyed on the map, the arguments and the function bodies (not cores); the result is sim$powerLawCalibration. The calibration always runs: p_c's bounds are floor + 0.01 to p_c50 + powerLawPcMargin (0.005). powerLawGamma = NA (default) uses the calibrated gamma and a number overrides gamma only. The ledger row also gets p_c50, the regression R2 and the margin. New parameters powerLawPcMargin, powerLawFires (400), powerLawPGrid. Floor fireSenseUtils (>= 0.2.3.9108). Existing tests set spreadLink = "ceiling" and penaliseRunaways = TRUE in toySim(); new tests cover the new defaults, calibration reaching the ledger row, DEoptim's p_c bounds coming from it, a numeric gamma still calibrating, and no calibration with the other links. Module suite (convertToPackage + test_local, fireSenseUtils 0.2.3.9108 from the PR branch): 904 passed, 0 failed; base 878 passed, 0 failed. README.md, generated from the Rmd, was not regenerated.

🤖 Generated with Claude Code

https://claude.ai/code/session_014G18Mik3fH4z5M5CyMSUS6

eliotmcintire and others added 2 commits October 18, 2026 19:15
…w and penaliseRunaways=FALSE are the defaults

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014G18Mik3fH4z5M5CyMSUS6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014G18Mik3fH4z5M5CyMSUS6
@eliotmcintire eliotmcintire added enhancement New feature or request major change Changes behaviour or results in a way users will notice labels Oct 19, 2026
@eliotmcintire
eliotmcintire merged commit 1569e8d into development Oct 19, 2026
9 checks passed
@eliotmcintire
eliotmcintire deleted the feat/powerlaw-auto-gamma branch October 19, 2026 02:51
eliotmcintire added a commit that referenced this pull request Oct 19, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014G18Mik3fH4z5M5CyMSUS6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request major change Changes behaviour or results in a way users will notice

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant