Με τη χρήση RSS feed, συλλέγουμε καθημερινά τα τελευταία δεδομένα της ΕΥΔΑΠ για τα απολήψιμα αποθέματα νερού. Τα στοιχεία οπτικοποιούνται σε γραφήματα που ανανεώνονται αυτόματα, για την παρακολούθηση των αποθεμάτων των τεσσάρων ταμιευτήρων που τροφοδοτούν την Αττική.
Το ζήτημα της λειψυδρίας έχει επανέλθει στο προσκήνιο τα τελευταία χρόνια, λόγω της κλιματικής αλλαγής και της δραματικής πτώσης της στάθμης των ταμιευτήρων που τροφοδοτούν την Αθήνα με νερό. Συγκεκριμένα, κατά τα προηγούμενα δύο καλοκαίρια τα συνολικά απολήψιμα αποθέματα, όπως αυτά καταγράφονται από την ΕΥΔΑΠ, είχαν μειωθεί κατά 50% – από ένα δισ. κυβικά μέτρα σε 500 εκατ. κυβικά μέτρα, μεταξύ της 1ης Αυγούστου 2023 και της 1ης Αυγούστου 2025.
Από την αρχή του 2026, ένα αρκετά πιο βροχερό διάστημα, συγκριτικά με τα προηγούμενα χρόνια, προσέφερε μια σημαντική «ανάσα», ωστόσο το πρόβλημα παραμένει, με τα αποθέματα να βρίσκονται ακόμα σε χαμηλότερα επίπεδα σε σχέση με την προηγούμενη δεκαετία.

Το iMEdD συνέλεξε τα δεδομένα των απολήψιμων αποθεμάτων από το 1985 έως και σήμερα, και δημιούργησε γραφήματα τα οποία ανανεώνονται αυτόματα σε καθημερινή βάση και είναι ελεύθερα για να τα χρησιμοποιήσει η δημοσιογραφική κοινότητα.
Μείωση 50% μέσα σε δύο έτη
Από το 2020 και για τα αμέσως επόμενα χρόνια, τα απολήψιμα αποθέματα νερού της Αθήνας, όπως καταγράφονται από την ΕΥΔΑΠ, παρέμεναν κοντά ή πάνω από 1 δισ. κυβικών μέτρων. Η κατάσταση ξεκίνησε να αλλάζει από το 2023, όταν η χειμερινή αναπλήρωση, από τις βροχοπτώσεις και τις χιονοπτώσεις, δεν ήταν εξίσου επαρκής με τα προηγούμενα έτη, ένα μοτίβο που συνεχίστηκε για τα επόμενα δύο χρόνια, οδηγώντας τα αποθέματα να μειωθούν κατά 50% μεταξύ 2023 και 2025, από 1 δισ. κυβικά μέτρα σε 500 εκατ. κυβικά μέτρα, την 1η Αυγούστου κάθε φορά.
Τα δεδομένα ακολούθησαν καθοδική πορεία έως και το τέλος του 2025. Μετά το έως σήμερα βροχερό 2026, τα αποθέματα έχουν αυξηθεί συγκριτικά με πέρυσι, παραμένοντας ωστόσο χαμηλότερα από τα αντίστοιχα των προηγούμενων ετών.
Η σύγκριση των αποθεμάτων από έτος σε έτος οφείλει κάθε φορά να γίνεται για το ίδιο διάστημα λόγω εποχικότητας: υπάρχει σημαντική μεταβλητότητα ανάμεσα στη θερινή-φθινοπωρινή και τη χειμερινή-ανοιξιάτικη περίοδο, καθώς στην πρώτη υπάρχει περισσότερη εκροή παρά εισροή. Επομένως, στο παρακάτω γράφημα, οπτικοποιείται το απόθεμα την τελευταία ημέρα για την οποία διαθέτουμε στοιχεία κάθε φορά και την ίδια μέρα όλων των προηγούμενων ετών.
Τα δεδομένα της ΕΥΔΑΠ δίνουν την εικόνα για τα αποθέματα νερού, σε βάθος τεσσάρων δεκαετιών, στη μεγαλύτερη αστική περιοχή της χώρας. Εδώ, εξαίρεση αποτελεί ο ταμιευτήρας του Εύηνου, για τον οποίο υπάρχουν δεδομένα από τις 26 Δεκεμβρίου 2001.
Τα ημερήσια απολήψιμα αποθέματα νερού
Στο σύνολο δεδομένων που συγκροτήσαμε, κάθε γραμμή αντιστοιχεί σε μία ημέρα του έτους. Η πρώτη στήλη («date») περιέχει όλες τις ημερομηνίες για τις οποίες έχουν συλλεχθεί στοιχεία. Οι επόμενες τέσσερις στήλες στο dataset με τα αποθέματα νερού («Eyinos», «Marathonas», «Mornos», «Yliki») αντιστοιχούν στους ταμιευτήρες όπου εμφανίζεται το απόθεμα νερού, σε κυβικά μέτρα για κάθε ημερομηνία. Η τελευταία στήλη («Total») αναφέρεται στo συνολικό απόθεμα νερού για κάθε ημέρα.
| Date | Eyinos | Marathonas | Mornos | Yliki | Total |
|---|---|---|---|---|---|
| 1985-01-01 | 0 | 18744148 | 561736000 | 491425000 | 1071905148 |
| 1985-01-02 | 0 | 18288394 | 562060000 | 499340000 | 1079688394 |
| 1985-01-03 | 0 | 17959091 | 564490000 | 503880000 | 1086329091 |
| 1985-01-04 | 0 | 17632916 | 566950000 | 506831000 | 1091413916 |
| 1985-01-05 | 0 | 16956000 | 569260000 | 509555000 | 1095771000 |
| 1985-01-06 | 0 | 17292908 | 571735000 | 511598000 | 1100625908 |
| 1985-01-07 | 0 | 16588728 | 574210000 | 513641000 | 1104439728 |
| 1985-01-08 | 0 | 16208555 | 578335000 | 516138000 | 1110681555 |
| 1985-01-09 | 0 | 15799796 | 585140000 | 518420000 | 1119359796 |
| 1985-01-10 | 0 | 15363628 | 590150000 | 521870000 | 1127383628 |
| 1985-01-11 | 0 | 14900942 | 591486000 | 524860000 | 1131246942 |
| 1985-01-12 | 0 | 14366586 | 592989000 | 526700000 | 1134055586 |
| 1985-01-13 | 0 | 14009997 | 594325000 | 528080000 | 1136414997 |
| 1985-01-14 | 0 | 13581088 | 595828000 | 529460000 | 1138869088 |
| 1985-01-15 | 0 | 13142652 | 596329000 | 530840000 | 1140311652 |
| 1985-01-16 | 0 | 12695322 | 597331000 | 532220000 | 1142246322 |
| 1985-01-17 | 0 | 16888860 | 598333000 | 534060000 | 1149281860 |
| 1985-01-18 | 0 | 16721800 | 599350000 | 540500000 | 1156571800 |
| 1985-01-19 | 0 | 16422964 | 600370000 | 545626000 | 1162418964 |
| 1985-01-20 | 0 | 16159310 | 601220000 | 549820000 | 1167199310 |
| 1985-01-21 | 0 | 15816065 | 602070000 | 552849000 | 1170735065 |
| 1985-01-22 | 0 | 15411760 | 602580000 | 555412000 | 1173403760 |
| 1985-01-23 | 0 | 15012050 | 603260000 | 557276000 | 1175548050 |
| 1985-01-24 | 0 | 14664112 | 604110000 | 558907000 | 1177681112 |
| 1985-01-25 | 0 | 14522830 | 604960000 | 560538000 | 1180020830 |
| 1985-01-26 | 0 | 14335398 | 605980000 | 561936000 | 1182251398 |
| 1985-01-27 | 0 | 14009997 | 607000000 | 563101000 | 1184110997 |
| 1985-01-28 | 0 | 13657268 | 608190000 | 564033000 | 1185880268 |
| 1985-01-29 | 0 | 13429232 | 609550000 | 564499000 | 1187478232 |
| 1985-01-30 | 0 | 13112606 | 610740000 | 564965000 | 1188817606 |
| 1985-01-31 | 0 | 12769387 | 611930000 | 566130000 | 1190829387 |
| 1985-02-01 | 0 | 12341940 | 612950000 | 566829000 | 1192120940 |
| 1985-02-02 | 0 | 11992738 | 613290000 | 566829000 | 1192111738 |
| 1985-02-03 | 0 | 11576051 | 613630000 | 566596000 | 1191802051 |
| 1985-02-04 | 0 | 11165232 | 613970000 | 566130000 | 1191265232 |
| 1985-02-05 | 0 | 10774150 | 614480000 | 565897000 | 1191151150 |
| 1985-02-06 | 0 | 10375039 | 614820000 | 565431000 | 1190626039 |
| 1985-02-07 | 0 | 9954930 | 614990000 | 565198000 | 1190142930 |
| 1985-02-08 | 0 | 9554240 | 615330000 | 564732000 | 1189616240 |
| 1985-02-09 | 0 | 9130952 | 615673000 | 564266000 | 1189069952 |
| 1985-02-10 | 0 | 8737760 | 615846000 | 564033000 | 1188616760 |
| 1985-02-11 | 0 | 8477656 | 616019000 | 563800000 | 1188296656 |
| 1985-02-12 | 0 | 8042118 | 618095000 | 563334000 | 1189471118 |
| 1985-02-13 | 0 | 7715778 | 620171000 | 563101000 | 1190987778 |
| 1985-02-14 | 0 | 7554870 | 622593000 | 563334000 | 1193481870 |
| 1985-02-15 | 0 | 7493250 | 623804000 | 563334000 | 1194631250 |
| 1985-02-16 | 0 | 7370880 | 624323000 | 563101000 | 1194794880 |
| 1985-02-17 | 0 | 7297974 | 625015000 | 563101000 | 1195413974 |
| 1985-02-18 | 0 | 7249370 | 625707000 | 562868000 | 1195824370 |
| 1985-02-19 | 0 | 7407591 | 626053000 | 562635000 | 1196095591 |
| 1985-02-20 | 0 | 7493250 | 626399000 | 562402000 | 1196294250 |
| 1985-02-21 | 0 | 7628901 | 626399000 | 562169000 | 1196196901 |
| 1985-02-22 | 0 | 7803090 | 626399000 | 561936000 | 1196138090 |
| 1985-02-23 | 0 | 7790592 | 626226000 | 561936000 | 1195952592 |
| 1985-02-24 | 0 | 7878165 | 626226000 | 561936000 | 1196040165 |
| 1985-02-25 | 0 | 7941090 | 626226000 | 561936000 | 1196103090 |
| 1985-02-26 | 0 | 8067462 | 626053000 | 561936000 | 1196056462 |
| 1985-02-27 | 0 | 8042118 | 626053000 | 561936000 | 1196031118 |
| 1985-02-28 | 0 | 8156427 | 625880000 | 561936000 | 1195972427 |
| 1985-03-01 | 0 | 8232981 | 624496000 | 561936000 | 1194664981 |
| 1985-03-02 | 0 | 8271432 | 624669000 | 561936000 | 1194876432 |
| 1985-03-03 | 0 | 8646515 | 625015000 | 562169000 | 1195830515 |
| 1985-03-04 | 0 | 8156427 | 625361000 | 562635000 | 1196152427 |
| 1985-03-05 | 0 | 8947036 | 624496000 | 563334000 | 1196777036 |
| 1985-03-06 | 0 | 8816130 | 623804000 | 563800000 | 1196420130 |
| 1985-03-07 | 0 | 8659550 | 625361000 | 564266000 | 1198286550 |
| 1985-03-08 | 0 | 8477656 | 626053000 | 564499000 | 1199029656 |
| 1985-03-09 | 0 | 8194704 | 626053000 | 564499000 | 1198746704 |
| 1985-03-10 | 0 | 7941090 | 626053000 | 564499000 | 1198493090 |
| 1985-03-11 | 0 | 7740600 | 626053000 | 564499000 | 1198292600 |
| 1985-03-12 | 0 | 7591842 | 626226000 | 564499000 | 1198316842 |
| 1985-03-13 | 0 | 7493250 | 626226000 | 564266000 | 1197985250 |
| 1985-03-14 | 0 | 7419828 | 626226000 | 564266000 | 1197911828 |
| 1985-03-15 | 0 | 7493250 | 626572000 | 564033000 | 1198098250 |
| 1985-03-16 | 0 | 7468776 | 627437000 | 564499000 | 1199404776 |
| 1985-03-17 | 0 | 7383117 | 628302000 | 565198000 | 1200883117 |
| 1985-03-18 | 0 | 7370880 | 629167000 | 565431000 | 1201968880 |
| 1985-03-19 | 0 | 7604166 | 631416000 | 565431000 | 1204451166 |
| 1985-03-20 | 0 | 7628901 | 633325000 | 565431000 | 1206384901 |
| 1985-03-21 | 0 | 7728189 | 634025000 | 565431000 | 1207184189 |
| 1985-03-22 | 0 | 7828086 | 634375000 | 565431000 | 1207634086 |
| 1985-03-23 | 0 | 7915920 | 634725000 | 565897000 | 1208537920 |
| 1985-03-24 | 0 | 8004102 | 635075000 | 566363000 | 1209442102 |
| 1985-03-25 | 0 | 8054790 | 635425000 | 566596000 | 1210075790 |
| 1985-03-26 | 0 | 8067462 | 635775000 | 566829000 | 1210671462 |
| 1985-03-27 | 0 | 8042118 | 636475000 | 566829000 | 1211346118 |
| 1985-03-28 | 0 | 8016774 | 637175000 | 566596000 | 1211787774 |
| 1985-03-29 | 0 | 8143668 | 637700000 | 566596000 | 1212439668 |
| 1985-03-30 | 0 | 8425928 | 638225000 | 566596000 | 1213246928 |
| 1985-03-31 | 0 | 8685620 | 638575000 | 566596000 | 1213856620 |
| 1985-04-01 | 0 | 8920808 | 638750000 | 566596000 | 1214266808 |
| 1985-04-02 | 0 | 9183646 | 638925000 | 566596000 | 1214704646 |
| 1985-04-03 | 0 | 9474608 | 638925000 | 566596000 | 1214995608 |
| 1985-04-04 | 0 | 9754114 | 638750000 | 566596000 | 1215100114 |
| 1985-04-05 | 0 | 10062738 | 638750000 | 566363000 | 1215175738 |
| 1985-04-06 | 0 | 10361350 | 638750000 | 566130000 | 1215241350 |
| 1985-04-07 | 0 | 10635850 | 638750000 | 565897000 | 1215282850 |
| 1985-04-08 | 0 | 10885358 | 638575000 | 565664000 | 1215124358 |
| 1985-04-09 | 0 | 11151188 | 638750000 | 565431000 | 1215332188 |
Πώς συλλέξαμε τα δεδομένα
Η συλλογή των δεδομένων γίνεται μέσω προγράμματος, σε γλώσσα Python, που είναι διαθέσιμο στο Github και «τρέχει» μία φορά καθημερινά, μετά την ημερήσια ενημέρωση των στοιχείων από την ΕΥΔΑΠ. Από τον Μάιο 2026 και έπειτα, η πηγή των δεδομένων είναι το RSS feed της ΕΥΔΑΠ, ενώ για τη συλλογή όλων των παλαιότερων στοιχείων χρησιμοποιήθηκε το API (Application Programming Interface) της πλατφόρμας Open Water API, η οποία επιστρέφει το απόθεμα όλων των ταμιευτήρων της Αττικής σε κυβικά μέτρα (m³), για το χρονικό διάστημα που έχει οριστεί στον κώδικα. Σημειωτέον, τα RSS feed της ΕΥΔΑΠ φαίνεται να έχουν ένα μικρό σφάλμα: στην πραγματικότητα, το RSS feed για τα αποθέματα διαθέτει τα στοιχεία παραγωγής πόσιμου νερού στις μονάδες επεξεργασίας, ενώ το RSS feed για την παραγωγή πόσιμου νερού παρουσιάζει τα στοιχεία για τα απολήψιμα αποθέματα.
Εφόσον διαπιστώσαμε αυτήν την «αντίστροφη» διάθεση των στοιχείων, χρησιμοποιήσαμε το RSS feed για την παραγωγή πόσιμου νερού, προκειμένου να οπτικοποιήσουμε τα αποθέματα νερού, τα οποία είναι και αυτά τα οποία παρουσιάζονται στους πίνακες που διαθέτει η ΕΥΔΑΠ για το ευρύ κοινό.
Ο κώδικας για την συγκέντρωση των δεδομένων μπορεί να χρησιμοποιηθεί εύκολα και σε notebook του Google Colab. Παρακάτω παρατίθενται τα δύο code cells που μπορείτε να τρέξετε για να συλλέξετε ιστορικά αλλά και τα τελευταία στοιχεία.
Ο κώδικας για το API
import requests
import pandas as pd
import datetime as dt
import time
BASE_URL = "https://opendata-api-eydap.growthfund.gr/api/Savings/Day"
def parse_int(x):
if x is None:
return None
return int(str(x).replace(".", "").strip())
def fetch_day(date):
url = f"{BASE_URL}/{date.strftime('%d-%m-%Y')}"
r = requests.get(url, timeout=30)
r.raise_for_status()
return r.json()
# Insert the date span
start_date = dt.date(2026, 4, 1)
end_date = dt.date(2026, 5, 20)
records = {}
current = start_date
while current <= end_date:
try:
data = fetch_day(current)
for row in data:
rec_date = dt.datetime.strptime(
row["Date"],
"%d/%m/%Y"
).date()
if rec_date < start_date:
continue
records[rec_date] = {
"date": rec_date,
"eyinos": parse_int(row["Eyinos"]),
"marathonas": parse_int(row["Marathonas"]),
"mornos": parse_int(row["Mornos"]),
"yliko": parse_int(row["Yliko"]),
"total": parse_int(row["Total"]),
}
except Exception as e:
print(f"Failed {current}: {e}")
current += dt.timedelta(days=1)
time.sleep(0.05)
df = (
pd.DataFrame(records.values())
.sort_values("date")
.reset_index(drop=True)
)
Ο αναλυτικός κώδικας για το RSS feed, η αναλυτική μεθοδολογία του, καθώς τα αρχεία .csv που διαθέτουν τα παλαιότερα και νεότερα δεδομένα, βρίσκονται στο repository eydap_water_reserves του iMEdD.
Ο κώδικας για το RSS feed
import requests
import pandas as pd
from xml.etree import ElementTree as ET
from bs4 import BeautifulSoup
def fetch_eydap_reservoir_rss() -> pd.DataFrame:
url = "https://www.eydap.gr/handlers/rss.ashx?collection=WaterProduction&Culture=69"
response = requests.get(url, headers={"User-Agent": "Mozilla/5.0"})
response.raise_for_status()
root = ET.fromstring(response.content)
description_html = root.find(".//item/description").text
soup = BeautifulSoup(description_html, "html.parser")
table = soup.find("table")
headers, rows = None, []
for tr in table.find_all("tr"):
cells = [td.get_text(strip=True) for td in tr.find_all(["th", "td"])]
if headers is None:
headers = cells
else:
rows.append(cells)
df = pd.DataFrame(rows, columns=headers)
df = df.rename(columns={
"ΗΜΕΡΟΜΗΝΙΑ": "Date",
"ΕΥΗΝΟΣ": "Eyinos",
"ΜΑΡΑΘΩΝΑΣ": "Marathonas",
"ΜΟΡΝΟΣ": "Mornos",
"ΥΛΙΚΗ": "Yliki",
"ΣΥΝΟΛΟ": "Synolo",
"TOTAL": "Total",
})
df["Date"] = pd.to_datetime(df["Date"].str.strip(), format="%d/%m/%Y")
numeric_cols = ["Eyinos", "Marathonas", "Mornos", "Yliki", "Synolo", "Total"]
for col in numeric_cols:
if col in df.columns:
df[col] = (
df[col]
.astype(str)
.str.strip()
.str.replace(".", "", regex=False)
.str.replace(",", ".", regex=False)
.astype(float)
.astype(int)
)
if "Total" in df.columns:
df = df.drop(columns=["Total"])
return df.reset_index(drop=True)
df = fetch_eydap_reservoir_rss()
df = df.rename(columns={
"Synolo": "Total"
})
Σε προηγούμενη δημοσίευση του iMEdD τον Ιούλιο 2025 είχαμε αναλύσει τα δεδομένα της ΕΥΔΑΠ από το 1985 έως 10 Ιουλίου 2025 σε στατική μορφή. Για τα στοιχεία του παρόντος, έως και τον Ιούλιο 2025, χρησιμοποιήθηκαν τα δεδομένα από το αντίστοιχο repository στο Github.
