update for 4 hour rain forecast

This commit is contained in:
2026-04-06 18:32:33 +10:00
parent fb50c8ed71
commit 3a7309b2cf
20 changed files with 716 additions and 132 deletions
+16 -3
View File
@@ -179,16 +179,29 @@ func (s *webServer) handleDashboard(w http.ResponseWriter, r *http.Request) {
return
}
const rainModelName = "rain_next_1h"
const rainModelName = "rain_next_4h"
const rainModelHorizonHours = 4
latestRainPrediction, err := s.db.LatestRainPrediction(r.Context(), s.site.Name, rainModelName)
latestRainPrediction, err := s.db.LatestRainPrediction(
r.Context(),
s.site.Name,
rainModelName,
rainModelHorizonHours,
)
if err != nil {
http.Error(w, "failed to query latest rain prediction", http.StatusInternalServerError)
log.Printf("web dashboard latest rain prediction error: %v", err)
return
}
rainPredictionRange, err := s.db.RainPredictionSeriesRange(r.Context(), s.site.Name, rainModelName, start, end)
rainPredictionRange, err := s.db.RainPredictionSeriesRange(
r.Context(),
s.site.Name,
rainModelName,
rainModelHorizonHours,
start,
end,
)
if err != nil {
http.Error(w, "failed to query rain predictions", http.StatusInternalServerError)
log.Printf("web dashboard rain prediction range error: %v", err)
+1 -1
View File
@@ -979,7 +979,7 @@ function renderDashboard(data) {
data: {
datasets: [
{
label: rainPredictions.length ? "model rain probability (%)" : "heuristic rain probability (%)",
label: rainPredictions.length ? "model rain probability next 4h (%)" : "heuristic rain probability (%)",
data: rainPredictions.length ? buildRainProbabilitySeriesFromPredictions(rainPredictions) : buildRainProbabilitySeries(obsFiltered),
borderColor: colors.rain,
backgroundColor: "rgba(78, 168, 222, 0.18)",
+1 -1
View File
@@ -70,7 +70,7 @@
<div class="value" id="live-pressure">--</div>
</div>
<div class="metric">
<div class="label">Rain 1h %</div>
<div class="label">Rain 4h %</div>
<div class="value" id="live-rain-prob">--</div>
</div>
<div class="metric">