70 Years of Temperature Data in Offenbach

1 minute read

Published:

Almost 70 years of temperature data from Offenbach (1957–2025), based on over 20,000 daily measurements from the German Weather Service (DWD).

The first chart shows average daily maximum temperature in June. The GAM trend line confirms what you’d expect: it’s getting warmer.

June average max temperature trend

The second chart counts hot days (daily max >= 30°C) per year. Record: 40 hot days in 2018. The year 1958 had just 2.

Hot days per year

There’s a data gap from roughly 1995 to 2005 – no measurements are available for that period. The analysis combines records from three DWD stations in Offenbach (IDs 03776, 03775, 07341).

Code

DWD daily climate files (Offenbach stations 03776, 03775, 07341) are loaded, then:

June temperature trend — GAM via pygam for a smooth non-linear fit:

from pygam import LinearGAM, s
import pandas as pd
import numpy as np

# df from DWD produkt_klima_tag_*.txt, columns: MESS_DATUM, MONAT, JAHR, TXK (max temp)
df_monthly = df[df["MONAT"] == 6].groupby("JAHR")["TXK"].mean()
x = df_monthly.index.values.reshape(-1, 1)
y = df_monthly.values

gam = LinearGAM(s(0, n_splines=5)).fit(x, y)
y_pred = gam.predict(np.sort(x, axis=0))
# conf_interval = gam.confidence_intervals(x_sorted, width=0.95)

Hot days per year (≥30°C):

df_hot = df[df["TXK"] >= 30].groupby("JAHR").size()

Data: DWD Climate Data Center. Full script: hot_days.py.