Fix: Regen letzter Monatstag fehlt (kumulativer Zähler)
Query um +1 Tag erweitert, damit der erste Wert des Folgetags als Abschlusswert für den letzten Tag verfügbar ist. Ohne diesen Wert liefert max-min = 0 wenn der Zähler nur einmal pro Tag aktualisiert wird. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+12
-3
@@ -85,8 +85,11 @@ def _data_temp_hourly(start: datetime, end: datetime):
|
||||
|
||||
|
||||
def _data_rain_daily(start: datetime, end: datetime):
|
||||
# +1 Tag extra damit der Abschlusswert des letzten Tages (kum. Zähler) enthalten ist
|
||||
data = fetch("/weather/range", {
|
||||
"start": start.isoformat(), "end": end.isoformat(), "limit": 50000,
|
||||
"start": start.isoformat(),
|
||||
"end": (end + timedelta(days=1)).isoformat(),
|
||||
"limit": 50000,
|
||||
})
|
||||
by_day: dict[str, list[float]] = defaultdict(list)
|
||||
for d in data:
|
||||
@@ -95,11 +98,17 @@ def _data_rain_daily(start: datetime, end: datetime):
|
||||
|
||||
dates, rain = [], []
|
||||
for day_key in sorted(by_day):
|
||||
vals = by_day[day_key]
|
||||
day_dt = datetime.fromisoformat(day_key).replace(tzinfo=timezone.utc)
|
||||
if day_dt >= end:
|
||||
break
|
||||
vals = list(by_day[day_key])
|
||||
next_key = (day_dt + timedelta(days=1)).strftime("%Y-%m-%d")
|
||||
if next_key in by_day:
|
||||
vals.append(by_day[next_key][0])
|
||||
daily = max(vals) - min(vals)
|
||||
if daily < 0:
|
||||
daily = max(vals)
|
||||
dates.append(datetime.fromisoformat(day_key).replace(tzinfo=timezone.utc))
|
||||
dates.append(day_dt)
|
||||
rain.append(round(daily, 1))
|
||||
return dates, rain
|
||||
|
||||
|
||||
Reference in New Issue
Block a user