Reproduce the Figures
The default pipeline produces the corrected v2 figures
under figures/v2/, with statistics in analysis/v2/. The five current panels
follow the manuscript argument: encode the observed pathway,
map continuous developmental gradients, add weather as an external layer, test
weather conditional on current state, and use matched differences to generate
hypotheses. See the
v2 technical manuscript
for the corrected quantitative interpretation.
Use manuscript_figures/00_run_all.py --generation v2; --render-only requires
existing corrected statistics. The material below is retained as a historical
v1 gallery and reproduction reference, selected with --generation legacy.
The manuscript figures are generated by numbered scripts in
manuscript_figures/.
Each script reads from the Fire VASE data lake and writes its outputs back into
that folder.
Historical V1 Manuscript Figures
These are superseded climate-revision figures, not the current scientific results.
The source publication files are tracked under figures/climate_revision_main/
and figures/climate_revision_supplement/; the copies below live under
docs/assets/figures/ so the website can display them.

Figure 1. Fire VASE preserves developmental differences hidden by final outcomes. Four observed FIRED events show why final burned area and duration are insufficient descriptions of wildfire development.

Figure 2. Wildfire histories vary along recurring developmental gradients. Observed fires occupy a continuous Fire VASE morphospace rather than isolated types.

Figure 3. Climate shifts the probability of developmental forms. Climate variables are projected onto the geometry-first Fire VASE morphospace after the axes are estimated from fire histories alone.

Figure 4. Developmental state changes how climate is expressed through growth. The historical model shifted adjacent observations without enforcing calendar spacing and used final-event centroids. V2 replaces this interpretation.

Figure 5. Climate organizes opportunity without uniquely determining outcome. Matched examples and blocked validation define the boundary of the current centroid-climate interpretation.
Supplementary Figures

Supplementary Figure 1. Event-level model summaries.

Supplementary Figure 2. State-dependent model summaries.

Supplementary Figure 3. Perimeter and active-area climate-exposure pilot.
Inputs
Use either a restored repository-style data root or the data-lake package:
data_lake/fire-vase-data-lake-v0.1
The figure scripts expect the lake to contain:
scratch/fire_vase_run_full/tables/scratch/fire_vase_developmental_morphology/repository/figures/main/derived_stats/repository/analysis/claim_audit_stats/
Run All Figures
uv run python manuscript_figures/00_run_all.py \
--data-lake data_lake/fire-vase-data-lake-v0.1
Outputs are written as PDF, PNG, and SVG files in manuscript_figures/.
Run One Figure
uv run python manuscript_figures/03_figure_3.py \
--data-lake data_lake/fire-vase-data-lake-v0.1
Figure Entry Points
- 00_run_all.py
- 01_figure_1.py
- 02_figure_2.py
- 03_figure_3.py
- 04_figure_4.py
- 05_figure_5.py
- 06_supplementary_figure_1.py
Shared plotting code lives in
scripts/figures/.
Recompute Validation Tables
By default, the scripts seed cached derived statistics from the data lake. To recompute those validation tables from the lakehouse inputs:
uv run python manuscript_figures/00_run_all.py \
--data-lake data_lake/fire-vase-data-lake-v0.1 \
--force-validation
Check Reproducibility
Compare generated figures and derived statistics against the checked-in reference artifacts:
uv run python scripts/check_reproducibility.py --skip-data-lake
Save a JSON report:
uv run python scripts/check_reproducibility.py \
--skip-data-lake \
--json-output analysis/reproducibility_check_latest.json
The checker reports byte-level file hashes and pixel-level PNG comparisons. Pixel identity is the stricter visual check for the manuscript figures.