A small, standalone FireFinder+ implementation with the same core logic used in at Geocene, plus lightweight preprocessing helpers.
From PyPI:
pip install firefinderLocal editable install while developing:
pip install -e .import pandas as pd
from firefinder import prepare_timeseries, fire_detector_v2, group_events
df = pd.read_csv("metrics.csv")
df = prepare_timeseries(df, correction="false")
df = fire_detector_v2(df)
events = group_events(df)
print(events.head())If your timestamps are epoch milliseconds:
import pandas as pd
from firefinder import prepare_timeseries, fire_detector_v2, group_events
df = pd.read_json("data.json")
df["timestamp"] = pd.to_datetime(df["timestamp"], unit="ms", utc=True, errors="coerce")
df = prepare_timeseries(df, correction="false")
df = fire_detector_v2(df)
events = group_events(df)
print(events.head())pip install -e .[test]
python -m pytesttimestampvaluesensor_type_id(required ifcorrection="true")
prepare_timeseriesmirrors the cleaning behavior from the original lambda processor.correction="true"uses ambientsensor_type_id=9and stovesensor_type_id=1when computing ambient-corrected values.- You can pass a custom
sensorsmapping intoprepare_timeseriesto support additional stove sensor IDs.
