improve rain chart rounding
This commit is contained in:
@@ -101,6 +101,7 @@ function computeRainIncrements(points) {
|
||||
if (prev !== null) {
|
||||
delta = p.rain_mm - prev;
|
||||
if (delta < 0) delta = 0;
|
||||
if (delta < 0.1) delta = 0;
|
||||
}
|
||||
prev = p.rain_mm;
|
||||
out.push({ x: t, y: delta });
|
||||
@@ -118,7 +119,17 @@ function computeHourlySums(points, tz) {
|
||||
}
|
||||
return Array.from(buckets.entries())
|
||||
.sort((a, b) => a[0] - b[0])
|
||||
.map(([x, y]) => ({ x, y }));
|
||||
.map(([x, y]) => ({ x, y: y < 0.1 ? 0 : y }));
|
||||
}
|
||||
|
||||
function clampRainSeries(points, key) {
|
||||
return points.map((p) => {
|
||||
const v = p[key];
|
||||
if (v == null) {
|
||||
return { ...p };
|
||||
}
|
||||
return { ...p, [key]: v < 0.1 ? 0 : v };
|
||||
});
|
||||
}
|
||||
|
||||
function startOfDay(date, tz) {
|
||||
@@ -754,11 +765,14 @@ function renderDashboard(data) {
|
||||
|
||||
const rainIncs = computeRainIncrements(obsFiltered);
|
||||
const rainHourly = computeHourlySums(rainIncs, state.tz);
|
||||
const latestRainHour = rainHourly.length ? rainHourly[rainHourly.length - 1].y : null;
|
||||
updateText("live-rain-hour", latestRainHour == null ? "--" : `${formatNumber(latestRainHour, 2)} mm`);
|
||||
const rainTitle = document.getElementById("chart-rain-title");
|
||||
if (rainTitle) {
|
||||
rainTitle.textContent = "Rain (obs hourly sum vs forecast)";
|
||||
}
|
||||
|
||||
const forecastRain = clampRainSeries(forecastLine, "precip_mm");
|
||||
const rainChart = {
|
||||
data: {
|
||||
datasets: [
|
||||
@@ -772,7 +786,7 @@ function renderDashboard(data) {
|
||||
{
|
||||
type: "bar",
|
||||
label: "forecast precip (mm)",
|
||||
data: series(forecast, "precip_mm"),
|
||||
data: series(forecastRain, "precip_mm"),
|
||||
backgroundColor: colors.forecast,
|
||||
yAxisID: "y",
|
||||
},
|
||||
|
||||
@@ -66,6 +66,10 @@
|
||||
<div class="label">Rain 1h %</div>
|
||||
<div class="value" id="live-rain-prob">--</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="label">Rain hour mm</div>
|
||||
<div class="value" id="live-rain-hour">--</div>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<div class="label">Wind m/s</div>
|
||||
<div class="value" id="live-wind">--</div>
|
||||
|
||||
Reference in New Issue
Block a user