From 6501652e8367cc8fe7aeacec4369c637310b21f2 Mon Sep 17 00:00:00 2001 From: Kemal Yaylali Date: Wed, 19 Aug 2026 19:16:57 +0100 Subject: [PATCH] Match the simulator's barometer noise to a real LPS25HB The generator added 0.05 hPa of measurement noise where a real board shows 0.0224 hPa as the sd of the change between 30 s samples. Twice the noise flatters any smoother tested against it and understates the skill available at short lead, which is where the pressure heads were already weakest. Correcting my own earlier claim: I reported the simulator's pressure as 60x too noisy. That figure came from comparing the old local database, whose rows are hourly-tier aggregates spanning 251 days, against 30 s rows from the station. Generated like for like at matched cadence the gap is 1.9x, not 60x, and the simulator was never the blocker on pressure work that I described. A gap remains after this change: press_slp still steps 0.0415 hPa per 30 s against the station's 0.0224. That residue is the synoptic OU process moving faster than Cambridge did over these four days, which is a weather-realism question rather than a sensor one. Four days of one room is not enough to retune a synoptic model against, so it is left alone and recorded here. Co-Authored-By: Claude Opus 5 --- scripts/simulate.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/simulate.py b/scripts/simulate.py index 2106356..2d5c70b 100644 --- a/scripts/simulate.py +++ b/scripts/simulate.py @@ -156,7 +156,11 @@ def generate(days: float, step_s: int, lat: float, lon: float, rh_sensor = rh press_station = press_slp / (1.0 + 0.0) - 1.8 # nominal 15 m offset - press_station += 0.05 * rng.normal(size=n) + # 0.02 hPa, measured on a real LPS25HB as the sd of the change between + # 30 s samples. The 0.05 this used to carry made simulated pressure about + # twice as noisy as the real thing, which flatters any smoother tested + # against it and understates the skill available at short lead. + press_station += 0.02 * rng.normal(size=n) return { "ts": ts, "temp": temp, "temp_raw": temp_raw,