Skip to content

Commit 6b68ab8

Browse files
committed
Add Switzerland fetcher
1 parent 3ece6c9 commit 6b68ab8

12 files changed

Lines changed: 1434 additions & 1 deletion

docs/api.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ API Reference
2323
fetchers/slovenia
2424
fetchers/southafrica
2525
fetchers/spain
26+
fetchers/switzerland
2627
fetchers/uk_ea
2728
fetchers/uk_nrfa
28-
fetchers/usa
29+
fetchers/usa

docs/fetchers/switzerland.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Switzerland Fetcher
2+
===================
3+
4+
.. automodule:: rivretrieve.switzerland
5+
:members:
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import logging
2+
3+
import matplotlib.pyplot as plt
4+
5+
from rivretrieve import SwitzerlandFetcher, constants
6+
7+
logging.basicConfig(level=logging.INFO)
8+
9+
gauge_id = "2016"
10+
variable = constants.DISCHARGE_DAILY_MEAN
11+
start_date = "2020-01-01"
12+
end_date = "2020-01-31"
13+
14+
fetcher = SwitzerlandFetcher()
15+
data = fetcher.get_data(
16+
gauge_id=gauge_id,
17+
variable=variable,
18+
start_date=start_date,
19+
end_date=end_date,
20+
)
21+
22+
if data.empty:
23+
print(f"No data found for gauge {gauge_id}, variable {variable}")
24+
else:
25+
print(data.head())
26+
print(f"Fetched {len(data)} rows from {data.index.min()} to {data.index.max()}")
27+
28+
plt.figure(figsize=(12, 6))
29+
plt.plot(data.index, data[variable], label=f"{gauge_id} - {variable}", linewidth=1.8)
30+
plt.xlabel(constants.TIME_INDEX)
31+
plt.ylabel("Discharge (m3/s)")
32+
plt.title(f"Switzerland historical series for gauge {gauge_id}")
33+
plt.grid(True, alpha=0.3)
34+
plt.legend()
35+
plt.tight_layout()
36+
37+
output_path = "switzerland_historical_plot.png"
38+
plt.savefig(output_path, dpi=150)
39+
print(f"Saved plot to {output_path}")
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import logging
2+
3+
import matplotlib.pyplot as plt
4+
5+
from rivretrieve import SwitzerlandFetcher, constants
6+
7+
logging.basicConfig(level=logging.INFO)
8+
9+
gauge_id = "2016"
10+
variables = [
11+
constants.DISCHARGE_DAILY_MEAN,
12+
constants.WATER_TEMPERATURE_DAILY_MEAN,
13+
]
14+
start_date = "2026-02-01"
15+
end_date = "2026-02-07"
16+
17+
fetcher = SwitzerlandFetcher()
18+
19+
for variable in variables:
20+
data = fetcher.get_data(gauge_id=gauge_id, variable=variable, start_date=start_date, end_date=end_date)
21+
if data.empty:
22+
print(f"No data found for {gauge_id} ({variable})")
23+
continue
24+
25+
print(data.head())
26+
plt.figure(figsize=(12, 6))
27+
plt.plot(data.index, data[variable], label=f"{gauge_id} - {variable}")
28+
plt.xlabel(constants.TIME_INDEX)
29+
plt.ylabel(variable)
30+
plt.title(f"Switzerland River Data ({gauge_id})")
31+
plt.legend()
32+
plt.grid(True)
33+
plt.tight_layout()
34+
plot_path = f"switzerland_{variable}_plot.png"
35+
plt.savefig(plot_path)
36+
print(f"Plot saved to {plot_path}")

rivretrieve/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from .slovenia import SloveniaFetcher
1717
from .southafrica import SouthAfricaFetcher
1818
from .spain import SpainFetcher
19+
from .switzerland import SwitzerlandFetcher
1920
from .uk_ea import UKEAFetcher
2021
from .uk_nrfa import UKNRFAFetcher
2122
from .usa import USAFetcher

rivretrieve/cached_site_data/switzerland_sites.csv

Lines changed: 247 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)