12. Changelog

All notable changes to this project will be documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.9.0] - 2026 / 05 / 18

Added

  • Add the firebench command line interface for benchmark discovery, data download, and benchmark execution:

    • firebench list lists available benchmark cases.

    • firebench data versions lists available data versions for a benchmark case.

    • firebench data get downloads benchmark data.

    • firebench run runs a benchmark case against a model output in FireBench standard HDF5 format.

  • Add regression tests covering import, CLI, benchmark discovery, and deprecated environment-variable behavior without requiring local environment configuration.

  • Added official PyPI/TestPyPI packaging and distribution support for firebench.

  • Python 3.14 support

Benchmarks

  • Add the FB001 2021 Caldor Fire benchmark to the benchmark registry.

  • Add Caldor benchmark data version metadata for CLI downloads.

Documentation

  • Add a CLI tutorial showing how to download the Caldor Fire case and run it.

  • Update setup instructions to describe default FireBench data and local database paths instead of requiring environment variables.

Changed

  • Remove the mandatory dependency on FIREBENCH_DATA_PATH and FIREBENCH_LOCAL_DB for import, installation, CLI usage, tests, and benchmark discovery.

  • Use default paths when legacy environment variables are not set:

    • FireBench data is resolved from the package or repository data directory.

    • The local database defaults to ~/.firebench/local_db.

  • Add explicit data_path and local_db_path arguments where local paths are needed.

  • Stop using Git LFS for repository-managed files.

Deprecated

  • Deprecate FIREBENCH_DATA_PATH. Use the FireBench data configuration or pass data_path explicitly instead.

  • Deprecate FIREBENCH_LOCAL_DB. Use the FireBench local database configuration or pass local_db_path explicitly instead.

  • Legacy environment-variable support remains available temporarily and now emits DeprecationWarning.

[0.8.1] - 2026 / 03 / 15

Fixes

  • bias metric: computes x1 mean only where x2 is not Nan

Miscellaneous

  • FireBench Standard file format 1.0

  • litting

  • add tests for metrics

  • fix security warnings

[0.8.0] - 2026 / 01 / 14

Added

  • 2021 Caldor case FB001 documentation and benchmarks (See Zenodo FireBench for release)

  • package metrics: contains kpi functions, metrics functions for perimeters, 1D datasets, confusion matrix.

  • package standardize: contains standardization functions for landfire, mtbs, ravg, synoptic, geotiff.

  • package signing: contains functions for certification (hardware encryption) and verification of certificates (verify_certificate_in_dict, verify_certificates_in_h5). Verification functions require gpg (not needed for benchmarking functions).

  • Public Key for certificates verification

Documentation

  • FireBench Standard file format

  • Add Key Performance Indicators, Metrics, Score and Normalization information

[0.7.0] - 2025 / 08 / 09

Added

  • anderson_2015_stats: Plot statistics from the Anderson 2015 dataset.

  • array_to_geopolygons: Convert an array field into geospatial polygons at a given iso-value, preserving holes.

  • auto_bins: Automatically generate histogram bin edges for plotting, based on data range.

  • CS505_cl: Compute the half-width of the confidence interval for measurement error of the Campbell Scientific CS505 Fuel Moisture Sensor.

  • CS506_cl: Compute the half-width of the confidence interval for measurement error of the Campbell Scientific CS506 Fuel Moisture Sensor.

  • current_datetime_iso8601: Get the current datetime as an ISO 8601 formatted string (YYYY-MM-DDTHH:MM[:SS]±HH:MM).

  • datetime_to_iso8601: Convert a given datetime to an ISO 8601 formatted string (YYYY-MM-DDTHH:MM[:SS]±HH:MM).

  • jaccard_binary: Compute the IoU, i.e. Jaccard Index, between two fire perimeters described as 2D binary masks.

  • jaccard_polygon: Compute the Intersection over Union (IoU), i.e. Jaccard Index, between two fire perimeters described as geospatial polygons.

  • sorensen_dice_binary: Compute the Sorensen-Dice index between two fire perimeters described as 2D binary masks.

  • sorensen_dice_polygon: Compute the Sorensen-Dice index between two fire perimeters described as geospatial polygons.

  • read_quantity_from_fb_dataset: Read a dataset from an HDF5 file, group, or dataset node and return it as a Pint Quantity according to the FireBench I/O standard.

  • rmse: Compute the Root Mean Square Error (RMSE) between two arrays, ignoring NaNs.

  • nmse_range: Compute the Normalized Mean Square Error (NMSE) between two arrays, using the range of the reference signal as normalization.

  • nmse_power: Compute the Normalized Mean Square Error (NMSE) between two arrays, using the product of their mean values as normalization.

Documentation

  • Updated developer documentation

  • Refactoring of Benchmarks page. Benchmarks are now sorted by model context instead of metric context.

  • Tags have a colorful badge.

  • Add documentation for FireBench standard file format version 0.1.

Benchmarks

  • Improve Anderson 2015 Validation benchmark document.

  • Refactoring of ROS validation using Anderson 2015 dataset to use the FireBench I/O standard.

Miscellaneous

  • Support Python 3.13

  • Support numpy version >= 2.0

  • Dependency to matplotlib > 3.8

Fix

  • Comma missing in two row of Anderson 2015 dataset.

[0.6.1] - 2025 / 05 / 20

Added

  • Add citation metadata in CITATION.cff file

[0.6.0] - 2025 / 05 / 08

Documentation

  • Add benchmark proposal and run templates

  • Add Call for Benchmarks section in the main page

[0.5.0] - 2025 / 04 / 10

Documentation

  • Remove legacy GitHub Pages & Jekyll documentation.

  • Move the documentation to ReadTheDocs.

  • Add API documentation using Sphinx

[0.4.0] - 2025 / 04 / 03

Added

  • Urban canyon vertical wind interpolation Masson_canyon

  • Fuel load per element size in Anderson Fuel Model (1h, 10h, 100h, live)

  • Implementation of the Santoni_2011 rate of spread model

[0.3.2] - 2024 / 12 / 16

Added

  • import_scott_burgan_40_fuel_model wrapper function to simplify import of Scott and Burgan fuel model

  • import_anderson_13_fuel_model wrapper function to simplify import of Anderson fuel model

  • import_wudapt_fuel_model wrapper function to simplify import of WUDAPT urban fuel model

  • Sensitivity workflow scripts for rate of spread models using WUDAPT urban fuel model.

Fixed

  • Fuel moisture of extinction unit is dimensionless instead of percent in Anderson13.json

Documentation

  • Add benchmark results for:

    • Rate of spread model sensitivity using WUDAPT urban fuel model:

      • Hamada 1

      • Hamada 2

    • Rate of spread model sensitivity using Scott and Burgan 40 fuel model:

      • Rothermel_SFIRE

      • Balbi 2022

    • Rate of spread model execution time:

      • Hamada 1

      • Hamada 2

  • Update benchmark results for:

    • Rate of spread model sensitivity using Anderson 13 fuel model:

      • Rothermel_SFIRE

[0.3.1] - 2024 / 12 / 03

Added

  • Efficiency workflow scripts for rate of spread model performance evaluation using Anderson fuel model.

Documentation

  • Add benchmark results for:

    • Rate of spread model execution time:

      • Rothermel_SFIRE

      • Balbi 2022

[0.3.0] - 2024 / 11 / 24

Added

  • ScottandBurgan40 fuel model

  • Scott and Burgan utility function

    • add_scott_and_burgan_total_fuel_load: aggregate the fuel load per element size to the total fuel load

    • add_scott_and_burgan_total_savr: calculate the total surface area to volume ratio as weighted average of the savr of the fuel elements described in SB40.

  • Fuel model utility functions:

    • find_closest_fuel_class_by_properties: retrieve the fuel class having the closest properties to a target set of properties.

  • Wind reduction factor functions

    • use_wind_reduction_factor from value, fuel model dictionary, or list

    • Baughman_20ft_wind_reduction_factor_unsheltered from Baughman, R. G., & Albini, F. A. (1980)

    • Baughman_generalized_wind_reduction_factor_unsheltered: Generalized wind reduction factor derived from Albini (1979)

  • Add hash of file when copying to record

  • Modify the date in report automatically with copying to record

Changed

  • External management of wind reduction factor (no more present in rate of spread models)

  • Management of units for rate of spread model simplified using compute_ros_with_units

  • Record management to save workflow

Documentation

  • Add Fire Models information and Dataset and fire experiment information sections

  • Add pages for:

    • Rothermel_SFIRE

    • Balbi_2022_fixed_SFIRE

    • Hamada 1

    • Hamada 2

    • Anderson13

    • ScottandBurgan40

    • WUDAPT_urban

    • Wind reduction factor methods

  • Add benchmark results for:

    • Validation Anderson 2015:

      • Rotherme_SFIRE

      • Balbi 2022

    • Sensitivity to environmental variable for Anderson 13 fuel model:

      • Rotherme_SFIRE

      • Balbi 2022

[0.2.0] - 2024 / 10 / 17

Added

  • Hamada_1 urban rate of spread

  • Hamada_2 urban rate of spread

  • Balbi 2022 vegetation rate of spread model

  • WUDAPT_urban fuel database

Changed

  • License APACHE 2.0 is used instead of MIT

Documentation

  • Add dependencies, developers guide, and license pages

  • minor fixes to fuel models tutorial

[0.1.0] - 2024 / 07 / 09

Added

  • Documentation for the rate of spread sensitivity workflow

  • Add changelog to documentation

  • Archive for the rate of spread sensitivity workflow with the Rothermel_SFIRE model

  • Change output filename for the rate of spread sensitivity workflow

Fixes

  • unit issues in the rate of spread sensitivity workflow

[0.0.1] - 2024 / 07 / 08

Added

  • Initial release of the FireBench library.

  • Implementation of the Rothermel_SFIRE rate of spread model.

  • Fuel model Anderson13 corresponding to Anderson 13 fuel categories

  • Basic tools and utilities for fire modeling.

  • Sensitivity analysis workflow for environmental variables.

    • Workflow scripts 03_01_sensitivity_env_var for performing sensitivity analysis.

  • Integration with GitHub Actions for continuous integration.

  • Documentation setup using GitHub Pages.

  • Initial implementation of unit tests using pytest.

Features

  • Support for default and custom fuel models.

  • Functionality for reading and validating fuel model data.

  • Utilities for converting units and checking input data quality.

  • Calculation of Sobol sensitivity indices for rate of spread models.

  • Saving workflow results and data to HDF5 files.

  • Plotting of Sobol sensitivity indices for different fuel classes.

Documentation

  • Overview of the FireBench project.

  • Tutorials for using default and custom fuel models.

  • How-to guides for sensitivity analysis workflows.

  • Setup instructions for the development environment.

  • Contribution guidelines and code of conduct.