diff --git a/docs/api.rst b/docs/api.rst index d9e7223..59d944b 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -13,6 +13,7 @@ API Reference fetchers/canada fetchers/chile fetchers/czech + fetchers/estonia fetchers/france fetchers/germany_berlin fetchers/japan diff --git a/docs/fetchers/estonia.rst b/docs/fetchers/estonia.rst new file mode 100644 index 0000000..6a158f9 --- /dev/null +++ b/docs/fetchers/estonia.rst @@ -0,0 +1,5 @@ +Estonia Fetcher +=============== + +.. automodule:: rivretrieve.estonia + :members: diff --git a/examples/test_estonia_fetcher.py b/examples/test_estonia_fetcher.py new file mode 100644 index 0000000..3135592 --- /dev/null +++ b/examples/test_estonia_fetcher.py @@ -0,0 +1,58 @@ +import logging + +import matplotlib.pyplot as plt + +from rivretrieve import EstoniaFetcher, constants + +logging.basicConfig(level=logging.INFO) + +# Example EstModel gauge ID +gauge_ids = ["SJA8821000"] + +# Variable to test +variable = constants.DISCHARGE_DAILY_MEAN + +# Period to fetch +start_date = "2024-01-01" +end_date = "2024-03-31" + +plt.figure(figsize=(12, 6)) + +fetcher = EstoniaFetcher() + +for gauge_id in gauge_ids: + print(f"Fetching data for {gauge_id} from {start_date} to {end_date}...") + + data = fetcher.get_data( + gauge_id=gauge_id, + variable=variable, + start_date=start_date, + end_date=end_date, + ) + + if not data.empty: + print(f"\nData retrieved for gauge {gauge_id}") + print(data.head()) + print(f"Time series from {data.index.min()} to {data.index.max()}") + + plt.plot( + data.index, + data[variable], + label=gauge_id, + marker="o", + ) + else: + print(f"\nNo data found for {gauge_id}") + +plt.xlabel(constants.TIME_INDEX) +plt.ylabel(f"{variable} (m³/s)") +plt.title(f"Estonia ({gauge_ids[0]}) — {variable} time series") +plt.legend() +plt.grid(True) +plt.tight_layout() + +plot_path = "estonia_fetcher_plot.png" +plt.savefig(plot_path) +print(f"Plot saved to {plot_path}") + +# print(fetcher.get_metadata().head()) diff --git a/pyproject.toml b/pyproject.toml index 2c484ab..eb3a2da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,4 +19,9 @@ select = [ [tool.ruff.lint.per-file-ignores] "rivretrieve/__init__.py" = ["F401"] "rivretrieve/chile.py" = ["E501"] # The url is too long but can't be splitted. -"docs/conf.py" = ["E402"] # rivretrieve can't be imported before path is added. \ No newline at end of file +"docs/conf.py" = ["E402"] # rivretrieve can't be imported before path is added. + +[tool.pytest.ini_options] +testpaths = [ + "tests", +] diff --git a/rivretrieve/__init__.py b/rivretrieve/__init__.py index ae2e150..fca6a63 100644 --- a/rivretrieve/__init__.py +++ b/rivretrieve/__init__.py @@ -6,6 +6,7 @@ from .canada import CanadaFetcher from .chile import ChileFetcher from .czech import CzechFetcher +from .estonia import EstoniaFetcher from .france import FranceFetcher from .germany_berlin import GermanyBerlinFetcher from .japan import JapanFetcher diff --git a/rivretrieve/cached_site_data/estonia_sites.csv b/rivretrieve/cached_site_data/estonia_sites.csv new file mode 100644 index 0000000..4412a0d --- /dev/null +++ b/rivretrieve/cached_site_data/estonia_sites.csv @@ -0,0 +1,60 @@ +gauge_id,station_name,area,overlapArea,countryArea,calculationArea,distance,type,river,location,latitude,longitude,altitude,country,source +SJA0234000,Pärnu jõgi: Tahkuse,2047.12,0.0,2047.37,2047.12,41.39,HYDROLOGICAL,Pärnu jõgi,Tahkuse,58.5184912,24.9157694,,Estonia,EstModel JSON + GeoJSON +SJA1098000,Kunda jõgi: Sämi,420.81,0.0,420.82,420.81,24.59,HYDROLOGICAL,Kunda jõgi,Sämi,59.3730778,26.5827816,,Estonia,EstModel JSON + GeoJSON +SJA1133000,Vodja jõgi: Vodja,71.47,0.0,71.48,71.47,7.03,HYDROLOGICAL,Vodja jõgi,Vodja,58.9389825,25.6444588,,Estonia,EstModel JSON + GeoJSON +SJA1582000,Leivajõgi: Pajupea,84.37,0.0,84.37,84.37,2.36,HYDROLOGICAL,Leivajõgi,Pajupea,59.3809086,24.9689147,,Estonia,EstModel JSON + GeoJSON +SJA1593000,Esna jõgi: Põhjaka I,196.12,0.0,196.14,196.12,8.39,HYDROLOGICAL,Esna jõgi,Põhjaka I,58.8922222,25.6695539,,Estonia,EstModel JSON + GeoJSON +SJA2072000,Vääna jõgi: Hüüru,202.07,0.0,202.08,202.07,28.85,HYDROLOGICAL,Vääna jõgi,Hüüru,59.3802651,24.5349324,,Estonia,EstModel JSON + GeoJSON +SJA2129000,Purtse jõgi: Lüganuse,784.97,0.0,784.98,784.97,8.15,HYDROLOGICAL,Purtse jõgi,Lüganuse,59.3838602,27.0390659,,Estonia,EstModel JSON + GeoJSON +SJA2259000,Kääpa jõgi: Kääpa,263.73,0.0,263.76,263.73,11.33,HYDROLOGICAL,Kääpa jõgi,Kääpa,58.7006869,26.8490114,,Estonia,EstModel JSON + GeoJSON +SJA2401000,Avijõgi: Separa,388.36,0.0,388.39,388.36,4.05,HYDROLOGICAL,Avijõgi,Separa,58.9661517,27.0366758,,Estonia,EstModel JSON + GeoJSON +SJA2558000,Rannapungerja jõgi: Roostoja,318.64,0.0,318.66,318.64,12.7,HYDROLOGICAL,Rannapungerja jõgi,Roostoja,59.0237441,27.1056794,,Estonia,EstModel JSON + GeoJSON +SJA2718000,Narva jõgi: Vasknarva,47806.99,0.0,16290.23,47806.99,72.11,HYDROLOGICAL,Narva jõgi,Vasknarva,59.0010026,27.7403866,,Estonia,EstModel JSON + GeoJSON +SJA2731000,Pärnu jõgi: Oore,5130.72,0.0,5121.01,5130.72,25.82,HYDROLOGICAL,Pärnu jõgi,Oore,58.4632528,24.7676674,,Estonia,EstModel JSON + GeoJSON +SJA2835000,Õhne jõgi: Tõrva,272.25,0.0,261.32,272.25,39.21,HYDROLOGICAL,Õhne jõgi,Tõrva,58.0038061,25.9211191,,Estonia,EstModel JSON + GeoJSON +SJA3204000,Pedja jõgi: Tõrve,738.89,0.0,738.97,738.89,46.57,HYDROLOGICAL,Pedja jõgi,Tõrve,58.6024865,26.3748957,,Estonia,EstModel JSON + GeoJSON +SJA3413000,Väike Emajõgi: Tõlliste,1044.84,0.0,974.93,1044.84,37.39,HYDROLOGICAL,Väike Emajõgi,Tõlliste,57.8510685,26.1325177,,Estonia,EstModel JSON + GeoJSON +SJA3814000,Jägala jõgi: Kehra,1150.75,0.0,1150.75,866.07,26.23,HYDROLOGICAL,Jägala jõgi,Kehra,59.3443609,25.3404184,,Estonia,EstModel JSON + GeoJSON +SJA3959000,Vihterpalu jõgi: Vihterpalu,478.32,0.0,478.36,478.32,2.61,HYDROLOGICAL,Vihterpalu jõgi,Vihterpalu,59.2521098,23.8665502,,Estonia,EstModel JSON + GeoJSON +SJA4084000,Prandi jõgi: Tori,283.84,0.0,283.88,283.84,5.04,HYDROLOGICAL,Prandi jõgi,Tori,58.7994165,25.4764901,,Estonia,EstModel JSON + GeoJSON +SJA4331000,Sargvere peakraav: Põhjaka II,7.67,0.0,7.67,7.67,0.97,HYDROLOGICAL,Sargvere peakraav,Põhjaka II,58.8891385,25.6766976,,Estonia,EstModel JSON + GeoJSON +SJA4385000,Halliste jõgi: Riisa,1880.61,0.0,1870.5,1880.61,5.19,HYDROLOGICAL,Halliste jõgi,Riisa,58.4797269,24.9944344,,Estonia,EstModel JSON + GeoJSON +SJA4401000,Pärlijõgi / Pudisoo jõgi: Pudisoo,124.34,0.0,124.33,124.34,6.66,HYDROLOGICAL,Pärlijõgi / Pudisoo jõgi,Pudisoo,59.5087001,25.5947537,,Estonia,EstModel JSON + GeoJSON +SJA4444000,Keila jõgi: Keila,635.7,0.0,635.74,635.7,17.73,HYDROLOGICAL,Keila jõgi,Keila,59.3087907,24.4347064,,Estonia,EstModel JSON + GeoJSON +SJA4456000,Võhandu jõgi: Räpina,1132.34,0.0,1132.29,1118.16,12.16,HYDROLOGICAL,Võhandu jõgi,Räpina,58.0955844,27.4545805,,Estonia,EstModel JSON + GeoJSON +SJA4515000,Narva jõgi: Narva linn,56047.31,0.0,17148.92,56047.31,14.08,HYDROLOGICAL,Narva jõgi,Narva linn,59.3827528,28.2066506,,Estonia,EstModel JSON + GeoJSON +SJA4907000,Sauga jõgi: Nurme,550.07,0.0,550.14,550.07,10.14,HYDROLOGICAL,Sauga jõgi,Nurme,58.4463192,24.4977151,,Estonia,EstModel JSON + GeoJSON +SJA5230000,Võhandu jõgi: Kirumpää,584.78,0.0,584.75,584.78,91.11,HYDROLOGICAL,Võhandu jõgi,Kirumpää,57.8660219,26.9932844,,Estonia,EstModel JSON + GeoJSON +SJA5432000,Narva jõgi: Kuningaküla,47981.83,0.0,16409.06,47981.83,56.17,HYDROLOGICAL,Narva jõgi,Kuningaküla,59.1244541,27.8039372,,Estonia,EstModel JSON + GeoJSON +SJA5524000,Emajõgi: Rannu-Jõesuu,3366.41,0.0,3272.3,3366.41,99.36,HYDROLOGICAL,Emajõgi,Rannu-Jõesuu,58.3854623,26.1340336,,Estonia,EstModel JSON + GeoJSON +SJA5604000,Pühajõgi: Toila-Oru,215.23,0.0,215.23,215.23,0.77,HYDROLOGICAL,Pühajõgi,Toila-Oru,59.4231125,27.5300216,,Estonia,EstModel JSON + GeoJSON +SJA5928000,Piusa jõgi: Korela,743.82,0.0,521.79,741.32,14.37,HYDROLOGICAL,Piusa jõgi,Korela,57.8853395,27.7262554,,Estonia,EstModel JSON + GeoJSON +SJA6159000,Lõve jõgi: Uue-Lõve,142.52,0.0,142.54,142.52,2.89,HYDROLOGICAL,Lõve jõgi,Uue-Lõve,58.3565439,22.8340819,,Estonia,EstModel JSON + GeoJSON +SJA6279000,Pirita jõgi: Kloostrimetsa,1970.01,0.0,1970.01,843.12,5.07,HYDROLOGICAL,Pirita jõgi,Kloostrimetsa,59.4662913,24.8795184,,Estonia,EstModel JSON + GeoJSON +SJA6334000,Navesti jõgi: Aesoo,1048.86,0.0,1049.0,1048.86,13.95,HYDROLOGICAL,Navesti jõgi,Aesoo,58.5153039,25.0618244,,Estonia,EstModel JSON + GeoJSON +SJA6683000,Mustjõgi: Taheva,1765.68,0.0,978.23,1765.68,4.51,HYDROLOGICAL,Mustjõgi,Taheva,57.598463,26.3493756,,Estonia,EstModel JSON + GeoJSON +SJA6842000,Tänassilma jõgi: Tänassilma,306.5,0.0,306.53,306.5,17.49,HYDROLOGICAL,Tänassilma jõgi,Tänassilma,58.3949017,25.8221168,,Estonia,EstModel JSON + GeoJSON +SJA7196000,Elva jõgi: Elva,230.68,0.0,230.69,230.68,32.66,HYDROLOGICAL,Elva jõgi,Elva,58.2116205,26.434672,,Estonia,EstModel JSON + GeoJSON +SJA7233000,Luguse jõgi: Luguse,98.19,0.0,98.2,98.19,1.97,HYDROLOGICAL,Luguse jõgi,Luguse,58.8102604,22.712465,,Estonia,EstModel JSON + GeoJSON +SJA7331000,Emajõgi: Tartu,7849.21,0.0,7755.61,7849.21,41.5,HYDROLOGICAL,Emajõgi,Tartu,58.3800219,26.7261801,,Estonia,EstModel JSON + GeoJSON +SJA7595000,Saarjõgi: Kaansoo,177.86,0.0,177.89,177.86,1.0,HYDROLOGICAL,Saarjõgi,Kaansoo,58.5772033,25.2216984,,Estonia,EstModel JSON + GeoJSON +SJA7746000,Mustajõgi: Narva karjääri,293.52,0.0,293.53,293.52,6.8,HYDROLOGICAL,Mustajõgi,Narva karjääri,59.267274,27.857163,,Estonia,EstModel JSON + GeoJSON +SJA7798000,Loobu jõgi: Arbavere,245.55,0.0,245.55,245.55,32.83,HYDROLOGICAL,Loobu jõgi,Arbavere,59.4400408,25.963537,,Estonia,EstModel JSON + GeoJSON +SJA8056000,Tagajõgi: Tudulinna,240.17,0.0,240.19,240.17,3.76,HYDROLOGICAL,Tagajõgi,Tudulinna,59.0361091,27.0888724,,Estonia,EstModel JSON + GeoJSON +SJA8256000,Põltsamaa jõgi: Pajusi,1082.14,0.0,1082.25,1082.14,47.7,HYDROLOGICAL,Põltsamaa jõgi,Pajusi,58.7032473,25.9277924,,Estonia,EstModel JSON + GeoJSON +SJA8764000,Valgejõgi: Vanaküla,307.94,0.0,307.94,307.94,27.23,HYDROLOGICAL,Valgejõgi,Vanaküla,59.4677818,25.7892425,,Estonia,EstModel JSON + GeoJSON +SJA8796000,Porijõgi / Reola jõgi: Reola,240.5,0.0,240.52,240.5,10.16,HYDROLOGICAL,Porijõgi / Reola jõgi,Reola,58.273392,26.7421148,,Estonia,EstModel JSON + GeoJSON +SJA8799000,Velise jõgi: Valgu,121.48,0.0,121.5,121.48,42.02,HYDROLOGICAL,Velise jõgi,Valgu,58.8178888,24.6450127,,Estonia,EstModel JSON + GeoJSON +SJA8821000,Ahja jõgi: Ahja,896.51,0.0,896.54,896.51,25.55,HYDROLOGICAL,Ahja jõgi,Ahja,58.2094013,27.1125992,,Estonia,EstModel JSON + GeoJSON +SJA8903000,Tarvastu jõgi: Tarvastu,83.34,0.0,83.35,83.34,8.68,HYDROLOGICAL,Tarvastu jõgi,Tarvastu,58.2287415,25.8843678,,Estonia,EstModel JSON + GeoJSON +SJA8909000,Selja jõgi: Varangu,376.19,0.0,376.19,376.19,18.19,HYDROLOGICAL,Selja jõgi,Varangu,59.4722208,26.351557,,Estonia,EstModel JSON + GeoJSON +SJA9057000,Reiu jõgi: Laadi,543.83,0.0,536.07,543.83,14.57,HYDROLOGICAL,Reiu jõgi,Laadi,58.2674458,24.646769,,Estonia,EstModel JSON + GeoJSON +SJA9179000,Kasari jõgi: Kasari,2642.45,0.0,2642.76,2642.45,19.62,HYDROLOGICAL,Kasari jõgi,Kasari,58.7266338,23.9969306,,Estonia,EstModel JSON + GeoJSON +SJA9204000,Vigala jõgi: Konuvere,584.49,0.0,584.56,584.49,28.28,HYDROLOGICAL,Vigala jõgi,Konuvere,58.8077828,24.4128838,,Estonia,EstModel JSON + GeoJSON +SJA9683000,Audru jõgi: Audru,321.83,0.0,321.87,321.83,11.69,HYDROLOGICAL,Audru jõgi,Audru,58.4234552,24.3188628,,Estonia,EstModel JSON + GeoJSON +SJA9946000,Alajõgi: Alajõe,137.03,0.0,137.04,137.03,6.59,HYDROLOGICAL,Alajõgi,Alajõe,59.0308954,27.3929578,,Estonia,EstModel JSON + GeoJSON +SJB3766000,Pärnu jõgi: Särevere,572.14,0.0,572.2,553.17,101.81,HYDROLOGICAL,Pärnu jõgi,Särevere,58.7889981,25.4211102,,Estonia,EstModel JSON + GeoJSON +SJB4152000,Pärnu jõgi: Türi-Alliku,560.4,0.0,560.46,541.43,108.66,HYDROLOGICAL,Pärnu jõgi,Türi-Alliku,58.8302558,25.4730234,,Estonia,EstModel JSON + GeoJSON +SJB4324000,Leisi jõgi: Elu,52.58,0.0,52.58,52.58,8.68,HYDROLOGICAL,Leisi jõgi,Elu,58.5129301,22.6973784,,Estonia,EstModel JSON + GeoJSON +SJB4487000,Mustjõgi: Tulijärve,19.44,0.0,19.44,19.44,0.0,HYDROLOGICAL,Mustjõgi,Tulijärve,58.8845822,26.2397623,,Estonia,EstModel JSON + GeoJSON +SJB4488000,Linnussaare oja: Linnusaare,2.32,0.0,2.32,2.32,0.0,HYDROLOGICAL,Linnussaare oja,Linnusaare,58.8708136,26.1977787,,Estonia,EstModel JSON + GeoJSON diff --git a/rivretrieve/estonia.py b/rivretrieve/estonia.py new file mode 100644 index 0000000..e328979 --- /dev/null +++ b/rivretrieve/estonia.py @@ -0,0 +1,338 @@ +"""Fetcher for Estonian river gauge data from EstModel.""" + +import logging +from typing import Any, Optional + +import numpy as np +import pandas as pd +import requests + +from . import base, constants, utils + +logger = logging.getLogger(__name__) + + +class EstoniaFetcher(base.RiverDataFetcher): + """Fetches river gauge data from EstModel. + + Data source: + - https://estmodel.envir.ee/ + - https://estmodel.app/ + + Supported variables: + - ``constants.DISCHARGE_DAILY_MEAN`` (m³/s) + - ``constants.DISCHARGE_DAILY_MAX`` (m³/s) + - ``constants.DISCHARGE_DAILY_MIN`` (m³/s) + - ``constants.STAGE_DAILY_MEAN`` (m) + - ``constants.STAGE_DAILY_MAX`` (m) + - ``constants.STAGE_DAILY_MIN`` (m) + - ``constants.WATER_TEMPERATURE_DAILY_MEAN`` (°C) + - ``constants.WATER_TEMPERATURE_DAILY_MAX`` (°C) + - ``constants.WATER_TEMPERATURE_DAILY_MIN`` (°C) + + Data description and API: + - see https://keskkonnaportaal.ee/et/avaandmed/hudroloogilise-seire-andmestik + - see https://keskkonnaportaal.ee/et/avaandmed/keskkonna-ja-ilma-valdkonna-andmeteenused + + Terms of use: + - see https://keskkonnaportaal.ee/et/avaandmed/hudroloogilise-seire-andmestik + """ + + BASE_URL = "https://estmodel.envir.ee" + STATIONS_URL = f"{BASE_URL}/countries/EE/stations" + GEOJSON_URL = "https://estmodel.app/countries/EE/stations.geojson" + MEASUREMENTS_URL = BASE_URL + "/stations/{gauge_id}/measurements" + COUNTRY = "Estonia" + SOURCE = "EstModel JSON + GeoJSON" + VAR_MAP = { + constants.DISCHARGE_DAILY_MEAN: ("Q", "MEAN"), + constants.DISCHARGE_DAILY_MAX: ("Q", "MAXIMUM"), + constants.DISCHARGE_DAILY_MIN: ("Q", "MINIMUM"), + constants.STAGE_DAILY_MEAN: ("H", "MEAN"), + constants.STAGE_DAILY_MAX: ("H", "MAXIMUM"), + constants.STAGE_DAILY_MIN: ("H", "MINIMUM"), + constants.WATER_TEMPERATURE_DAILY_MEAN: ("T", "MEAN"), + constants.WATER_TEMPERATURE_DAILY_MAX: ("T", "MAXIMUM"), + constants.WATER_TEMPERATURE_DAILY_MIN: ("T", "MINIMUM"), + } + SUPPORTED_VARIABLES = tuple(VAR_MAP.keys()) + + @staticmethod + def _empty_result(variable: str) -> pd.DataFrame: + """Returns a standardized empty time series result.""" + return pd.DataFrame(columns=[variable], index=pd.DatetimeIndex([], name=constants.TIME_INDEX)) + + @staticmethod + def _empty_metadata_frame() -> pd.DataFrame: + """Returns a standardized empty metadata result.""" + columns = [ + constants.GAUGE_ID, + constants.STATION_NAME, + constants.RIVER, + constants.LATITUDE, + constants.LONGITUDE, + constants.ALTITUDE, + constants.AREA, + constants.COUNTRY, + constants.SOURCE, + ] + return pd.DataFrame(columns=columns).set_index(constants.GAUGE_ID) + + @staticmethod + def _split_station_name(name: Any) -> tuple[str | None, str]: + """Splits provider names like ``River: Station`` into river and location.""" + if not isinstance(name, str): + return None, "" + if ":" not in name: + stripped_name = name.strip() + return None, stripped_name + river, location = name.split(":", 1) + return river.strip() or None, location.strip() + + @staticmethod + def _year_windows(start_date: str, end_date: str) -> list[int]: + """Builds inclusive request years for the EstModel measurements endpoint.""" + start = pd.Timestamp(start_date) + end = pd.Timestamp(end_date) + if pd.isna(start) or pd.isna(end) or start > end: + return [] + return list(range(start.year, end.year + 1)) + + @classmethod + def _parse_station_metadata(cls, payload: Any) -> pd.DataFrame: + """Parses station metadata from the EstModel JSON catalogue.""" + if not isinstance(payload, list) or not payload: + return cls._empty_metadata_frame() + + df = pd.json_normalize(payload) + if df.empty: + return cls._empty_metadata_frame() + + df = df.rename(columns={"code": constants.GAUGE_ID, "name": constants.STATION_NAME}) + if constants.GAUGE_ID not in df.columns: + return cls._empty_metadata_frame() + + if "type" in df.columns: + df = df[df["type"] == "HYDROLOGICAL"].copy() + if df.empty: + return cls._empty_metadata_frame() + + if constants.STATION_NAME not in df.columns: + df[constants.STATION_NAME] = np.nan + + split_names = df[constants.STATION_NAME].apply(cls._split_station_name) + df[constants.RIVER] = [item[0] for item in split_names] + df["location"] = [item[1] for item in split_names] + + for column in [ + constants.RIVER, + constants.LATITUDE, + constants.LONGITUDE, + constants.ALTITUDE, + constants.AREA, + constants.COUNTRY, + constants.SOURCE, + ]: + if column not in df.columns: + df[column] = np.nan + + for column in [ + constants.AREA, + "overlapArea", + "countryArea", + "calculationArea", + "distance", + constants.ALTITUDE, + ]: + if column in df.columns: + df[column] = pd.to_numeric(df[column], errors="coerce") + + df[constants.GAUGE_ID] = df[constants.GAUGE_ID].astype(str).str.strip() + df[constants.COUNTRY] = cls.COUNTRY + df[constants.SOURCE] = cls.SOURCE + return df + + @staticmethod + def _parse_geojson_metadata(payload: Any) -> pd.DataFrame: + """Parses station coordinates from the EstModel GeoJSON layer.""" + if not isinstance(payload, dict): + return pd.DataFrame(columns=[constants.GAUGE_ID, constants.LATITUDE, constants.LONGITUDE]) + + rows = [] + for feature in payload.get("features", []): + properties = feature.get("properties") or {} + geometry = feature.get("geometry") or {} + coordinates = geometry.get("coordinates") or [] + gauge_id = str(properties.get("code") or properties.get("id") or "").strip() + if not gauge_id: + continue + + lon = pd.to_numeric(coordinates[0], errors="coerce") if len(coordinates) >= 2 else np.nan + lat = pd.to_numeric(coordinates[1], errors="coerce") if len(coordinates) >= 2 else np.nan + rows.append( + { + constants.GAUGE_ID: gauge_id, + constants.LATITUDE: lat, + constants.LONGITUDE: lon, + } + ) + + if not rows: + return pd.DataFrame(columns=[constants.GAUGE_ID, constants.LATITUDE, constants.LONGITUDE]) + + return pd.DataFrame(rows).drop_duplicates(subset=[constants.GAUGE_ID]).reset_index(drop=True) + + @staticmethod + def get_cached_metadata() -> pd.DataFrame: + """Retrieves cached metadata (if available).""" + df = utils.load_cached_metadata_csv("estonia") + if constants.SOURCE in df.columns: + df[constants.SOURCE] = EstoniaFetcher.SOURCE + return df.sort_index() + + def get_metadata(self) -> pd.DataFrame: + """Downloads and merges hydrological station metadata from EstModel.""" + session = utils.requests_retry_session() + + try: + stations_response = session.get(self.STATIONS_URL, timeout=30) + stations_response.raise_for_status() + metadata_df = self._parse_station_metadata(stations_response.json()) + except (requests.exceptions.RequestException, ValueError) as exc: + logger.error(f"Failed to fetch Estonian station metadata: {exc}") + return self._empty_metadata_frame() + + try: + geojson_response = session.get(self.GEOJSON_URL, timeout=30) + geojson_response.raise_for_status() + geojson_df = self._parse_geojson_metadata(geojson_response.json()) + except (requests.exceptions.RequestException, ValueError) as exc: + logger.warning(f"Failed to fetch Estonian station coordinates; continuing without GeoJSON merge: {exc}") + geojson_df = pd.DataFrame(columns=[constants.GAUGE_ID, constants.LATITUDE, constants.LONGITUDE]) + + if geojson_df.empty: + metadata_df[constants.LATITUDE] = pd.to_numeric(metadata_df[constants.LATITUDE], errors="coerce") + metadata_df[constants.LONGITUDE] = pd.to_numeric(metadata_df[constants.LONGITUDE], errors="coerce") + else: + metadata_df = metadata_df.drop(columns=[constants.LATITUDE, constants.LONGITUDE], errors="ignore") + metadata_df = metadata_df.merge(geojson_df, on=constants.GAUGE_ID, how="left") + + metadata_df[constants.ALTITUDE] = pd.to_numeric(metadata_df[constants.ALTITUDE], errors="coerce") + metadata_df = metadata_df.dropna(subset=[constants.GAUGE_ID]) + metadata_df = metadata_df.drop_duplicates(subset=[constants.GAUGE_ID]) + return metadata_df.set_index(constants.GAUGE_ID).sort_index() + + @staticmethod + def get_available_variables() -> tuple[str, ...]: + """Returns a tuple of supported variables.""" + return EstoniaFetcher.SUPPORTED_VARIABLES + + def _download_data(self, gauge_id: str, variable: str, start_date: str, end_date: str) -> list[dict[str, Any]]: + """Downloads raw JSON data for a gauge and variable.""" + if variable not in self.VAR_MAP: + raise ValueError(f"Unsupported variable: {variable}") + + parameter_code, aggregation_code = self.VAR_MAP[variable] + request_years = self._year_windows(start_date, end_date) + if not request_years: + return [] + + session = utils.requests_retry_session() + url = self.MEASUREMENTS_URL.format(gauge_id=gauge_id) + records: list[dict[str, Any]] = [] + + for year in request_years: + params = { + "parameter": parameter_code, + "type": aggregation_code, + "start-year": year, + "end-year": year, + } + logger.info(f"Fetching EstModel data for {gauge_id}: {params}") + response = session.get(url, params=params, timeout=40) + response.raise_for_status() + + payload = response.json() + if isinstance(payload, list): + records.extend(payload) + + return records + + def _parse_data(self, gauge_id: str, raw_data: list[dict[str, Any]], variable: str) -> pd.DataFrame: + """Parses EstModel JSON into a standardized DataFrame.""" + if not isinstance(raw_data, list) or not raw_data: + return self._empty_result(variable) + + df = pd.DataFrame(raw_data) + if "startDate" not in df.columns or "value" not in df.columns: + logger.warning(f"Unexpected EstModel payload for {gauge_id}/{variable}.") + return self._empty_result(variable) + + df = df.rename(columns={"startDate": constants.TIME_INDEX, "value": variable}) + df[constants.TIME_INDEX] = pd.to_datetime(df[constants.TIME_INDEX], errors="coerce") + df[variable] = pd.to_numeric(df[variable], errors="coerce") + + df = ( + df[[constants.TIME_INDEX, variable]] + .dropna() + .drop_duplicates(subset=[constants.TIME_INDEX]) + .sort_values(constants.TIME_INDEX) + .set_index(constants.TIME_INDEX) + ) + df.index.name = constants.TIME_INDEX + return df + + def get_data( + self, + gauge_id: str, + variable: str, + start_date: Optional[str] = None, + end_date: Optional[str] = None, + ) -> pd.DataFrame: + """Fetches and parses time series data for a specific gauge and variable. + + This method retrieves the requested data from the provider's API or data source, + parses it, and returns it in a standardized pandas DataFrame format. + + Args: + gauge_id: The site-specific identifier for the gauge. + variable: The variable to fetch. Must be one of the strings listed + in the fetcher's ``get_available_variables()`` output. + These are typically defined in ``rivretrieve.constants``. + start_date: Optional start date for the data retrieval in 'YYYY-MM-DD' format. + If None, data is fetched from the earliest available date. + end_date: Optional end date for the data retrieval in 'YYYY-MM-DD' format. + If None, data is fetched up to the latest available date. + + Returns: + pd.DataFrame: A pandas DataFrame indexed by datetime objects (``constants.TIME_INDEX``) + with a single column named after the requested ``variable``. The DataFrame + will be empty if no data is found for the given parameters. + + Raises: + ValueError: If the requested ``variable`` is not supported by this fetcher. + requests.exceptions.RequestException: If a network error occurs during data download. + Exception: For other unexpected errors during data fetching or parsing. + """ + start_date = utils.format_start_date(start_date) + end_date = utils.format_end_date(end_date) + + if variable not in self.get_available_variables(): + raise ValueError(f"Unsupported variable: {variable}") + + start_date_dt = pd.Timestamp(start_date) + end_date_dt = pd.Timestamp(end_date) + + try: + raw_data = self._download_data(gauge_id, variable, start_date, end_date) + df = self._parse_data(gauge_id, raw_data, variable) + except requests.exceptions.RequestException as exc: + logger.error(f"Failed to fetch EstModel data for {gauge_id}/{variable}: {exc}") + return self._empty_result(variable) + except ValueError: + raise + except Exception as exc: + logger.error(f"Failed to parse EstModel data for {gauge_id}/{variable}: {exc}") + return self._empty_result(variable) + + return df.loc[(df.index >= start_date_dt) & (df.index <= end_date_dt)] diff --git a/tests/test_data/estonia_SJA8821000_discharge_daily_mean_2024.json b/tests/test_data/estonia_SJA8821000_discharge_daily_mean_2024.json new file mode 100644 index 0000000..aba7cec --- /dev/null +++ b/tests/test_data/estonia_SJA8821000_discharge_daily_mean_2024.json @@ -0,0 +1,2564 @@ +[ + { + "parameter": "Q", + "startDate": "2024-01-01", + "endDate": "2024-01-01", + "value": 6.89, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-02", + "endDate": "2024-01-02", + "value": 6.77, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-03", + "endDate": "2024-01-03", + "value": 6.65, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-04", + "endDate": "2024-01-04", + "value": 6.53, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-05", + "endDate": "2024-01-05", + "value": 6.41, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-06", + "endDate": "2024-01-06", + "value": 6.28, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-07", + "endDate": "2024-01-07", + "value": 6.16, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-08", + "endDate": "2024-01-08", + "value": 6.04, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-09", + "endDate": "2024-01-09", + "value": 5.92, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-10", + "endDate": "2024-01-10", + "value": 5.79, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-11", + "endDate": "2024-01-11", + "value": 5.67, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-12", + "endDate": "2024-01-12", + "value": 5.55, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-13", + "endDate": "2024-01-13", + "value": 5.42, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-14", + "endDate": "2024-01-14", + "value": 5.3, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-15", + "endDate": "2024-01-15", + "value": 5.17, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-16", + "endDate": "2024-01-16", + "value": 5.05, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-17", + "endDate": "2024-01-17", + "value": 4.96, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-18", + "endDate": "2024-01-18", + "value": 5.12, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-19", + "endDate": "2024-01-19", + "value": 5.38, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-20", + "endDate": "2024-01-20", + "value": 5.54, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-21", + "endDate": "2024-01-21", + "value": 5.66, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-22", + "endDate": "2024-01-22", + "value": 5.63, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-23", + "endDate": "2024-01-23", + "value": 5.85, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-24", + "endDate": "2024-01-24", + "value": 6.4, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-25", + "endDate": "2024-01-25", + "value": 7.45, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-26", + "endDate": "2024-01-26", + "value": 8.03, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-27", + "endDate": "2024-01-27", + "value": 8.2, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-28", + "endDate": "2024-01-28", + "value": 8.05, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-29", + "endDate": "2024-01-29", + "value": 8.02, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-30", + "endDate": "2024-01-30", + "value": 8.16, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-01-31", + "endDate": "2024-01-31", + "value": 8.57, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-01", + "endDate": "2024-02-01", + "value": 9.78, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-02", + "endDate": "2024-02-02", + "value": 10.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-03", + "endDate": "2024-02-03", + "value": 10.5, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-04", + "endDate": "2024-02-04", + "value": 10.2, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-05", + "endDate": "2024-02-05", + "value": 9.54, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-06", + "endDate": "2024-02-06", + "value": 9.08, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-07", + "endDate": "2024-02-07", + "value": 8.55, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-08", + "endDate": "2024-02-08", + "value": 8.43, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-09", + "endDate": "2024-02-09", + "value": 8.54, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-10", + "endDate": "2024-02-10", + "value": 8.64, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-11", + "endDate": "2024-02-11", + "value": 8.74, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-12", + "endDate": "2024-02-12", + "value": 8.84, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-13", + "endDate": "2024-02-13", + "value": 8.94, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-14", + "endDate": "2024-02-14", + "value": 9.04, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-15", + "endDate": "2024-02-15", + "value": 9.14, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-16", + "endDate": "2024-02-16", + "value": 9.23, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-17", + "endDate": "2024-02-17", + "value": 9.78, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-18", + "endDate": "2024-02-18", + "value": 11.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-19", + "endDate": "2024-02-19", + "value": 11.1, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-20", + "endDate": "2024-02-20", + "value": 10.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-21", + "endDate": "2024-02-21", + "value": 10.4, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-22", + "endDate": "2024-02-22", + "value": 10.1, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-23", + "endDate": "2024-02-23", + "value": 10.1, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-24", + "endDate": "2024-02-24", + "value": 14.4, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-25", + "endDate": "2024-02-25", + "value": 19.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-26", + "endDate": "2024-02-26", + "value": 21.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-27", + "endDate": "2024-02-27", + "value": 23.5, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-28", + "endDate": "2024-02-28", + "value": 24.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-02-29", + "endDate": "2024-02-29", + "value": 25.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-01", + "endDate": "2024-03-01", + "value": 24.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-02", + "endDate": "2024-03-02", + "value": 22.9, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-03", + "endDate": "2024-03-03", + "value": 20.5, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-04", + "endDate": "2024-03-04", + "value": 17.5, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-05", + "endDate": "2024-03-05", + "value": 15.1, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-06", + "endDate": "2024-03-06", + "value": 13.5, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-07", + "endDate": "2024-03-07", + "value": 12.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-08", + "endDate": "2024-03-08", + "value": 11.9, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-09", + "endDate": "2024-03-09", + "value": 11.2, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-10", + "endDate": "2024-03-10", + "value": 10.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-11", + "endDate": "2024-03-11", + "value": 10.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-12", + "endDate": "2024-03-12", + "value": 9.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-13", + "endDate": "2024-03-13", + "value": 9.48, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-14", + "endDate": "2024-03-14", + "value": 9.24, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-15", + "endDate": "2024-03-15", + "value": 9.58, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-16", + "endDate": "2024-03-16", + "value": 10.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-17", + "endDate": "2024-03-17", + "value": 12.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-18", + "endDate": "2024-03-18", + "value": 14.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-19", + "endDate": "2024-03-19", + "value": 14.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-20", + "endDate": "2024-03-20", + "value": 13.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-21", + "endDate": "2024-03-21", + "value": 12.4, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-22", + "endDate": "2024-03-22", + "value": 12.3, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-23", + "endDate": "2024-03-23", + "value": 12.5, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-24", + "endDate": "2024-03-24", + "value": 12.9, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-25", + "endDate": "2024-03-25", + "value": 12.9, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-26", + "endDate": "2024-03-26", + "value": 12.3, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-27", + "endDate": "2024-03-27", + "value": 11.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-28", + "endDate": "2024-03-28", + "value": 11.5, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-29", + "endDate": "2024-03-29", + "value": 11.2, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-30", + "endDate": "2024-03-30", + "value": 11.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-03-31", + "endDate": "2024-03-31", + "value": 10.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-01", + "endDate": "2024-04-01", + "value": 10.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-02", + "endDate": "2024-04-02", + "value": 10.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-03", + "endDate": "2024-04-03", + "value": 11.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-04", + "endDate": "2024-04-04", + "value": 12.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-05", + "endDate": "2024-04-05", + "value": 12.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-06", + "endDate": "2024-04-06", + "value": 13.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-07", + "endDate": "2024-04-07", + "value": 13.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-08", + "endDate": "2024-04-08", + "value": 12.9, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-09", + "endDate": "2024-04-09", + "value": 12.3, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-10", + "endDate": "2024-04-10", + "value": 11.3, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-11", + "endDate": "2024-04-11", + "value": 10.2, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-12", + "endDate": "2024-04-12", + "value": 9.62, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-13", + "endDate": "2024-04-13", + "value": 9.37, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-14", + "endDate": "2024-04-14", + "value": 8.97, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-15", + "endDate": "2024-04-15", + "value": 9.11, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-16", + "endDate": "2024-04-16", + "value": 9.17, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-17", + "endDate": "2024-04-17", + "value": 9.4, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-18", + "endDate": "2024-04-18", + "value": 9.21, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-19", + "endDate": "2024-04-19", + "value": 9.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-20", + "endDate": "2024-04-20", + "value": 8.07, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-21", + "endDate": "2024-04-21", + "value": 8.21, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-22", + "endDate": "2024-04-22", + "value": 8.67, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-23", + "endDate": "2024-04-23", + "value": 7.97, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-24", + "endDate": "2024-04-24", + "value": 8.19, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-25", + "endDate": "2024-04-25", + "value": 8.56, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-26", + "endDate": "2024-04-26", + "value": 8.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-27", + "endDate": "2024-04-27", + "value": 8.68, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-28", + "endDate": "2024-04-28", + "value": 8.5, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-29", + "endDate": "2024-04-29", + "value": 8.11, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-04-30", + "endDate": "2024-04-30", + "value": 7.82, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-01", + "endDate": "2024-05-01", + "value": 7.81, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-02", + "endDate": "2024-05-02", + "value": 7.47, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-03", + "endDate": "2024-05-03", + "value": 7.27, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-04", + "endDate": "2024-05-04", + "value": 6.95, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-05", + "endDate": "2024-05-05", + "value": 6.97, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-06", + "endDate": "2024-05-06", + "value": 6.81, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-07", + "endDate": "2024-05-07", + "value": 6.77, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-08", + "endDate": "2024-05-08", + "value": 6.47, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-09", + "endDate": "2024-05-09", + "value": 5.92, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-10", + "endDate": "2024-05-10", + "value": 5.94, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-11", + "endDate": "2024-05-11", + "value": 5.92, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-12", + "endDate": "2024-05-12", + "value": 5.62, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-13", + "endDate": "2024-05-13", + "value": 5.53, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-14", + "endDate": "2024-05-14", + "value": 5.39, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-15", + "endDate": "2024-05-15", + "value": 5.22, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-16", + "endDate": "2024-05-16", + "value": 5.09, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-17", + "endDate": "2024-05-17", + "value": 4.96, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-18", + "endDate": "2024-05-18", + "value": 4.89, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-19", + "endDate": "2024-05-19", + "value": 4.66, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-20", + "endDate": "2024-05-20", + "value": 4.71, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-21", + "endDate": "2024-05-21", + "value": 4.58, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-22", + "endDate": "2024-05-22", + "value": 4.51, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-23", + "endDate": "2024-05-23", + "value": 4.35, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-24", + "endDate": "2024-05-24", + "value": 4.23, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-25", + "endDate": "2024-05-25", + "value": 4.15, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-26", + "endDate": "2024-05-26", + "value": 4.16, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-27", + "endDate": "2024-05-27", + "value": 4.1, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-28", + "endDate": "2024-05-28", + "value": 3.94, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-29", + "endDate": "2024-05-29", + "value": 3.94, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-30", + "endDate": "2024-05-30", + "value": 3.81, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-05-31", + "endDate": "2024-05-31", + "value": 3.86, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-01", + "endDate": "2024-06-01", + "value": 3.94, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-02", + "endDate": "2024-06-02", + "value": 4.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-03", + "endDate": "2024-06-03", + "value": 4.03, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-04", + "endDate": "2024-06-04", + "value": 4.33, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-05", + "endDate": "2024-06-05", + "value": 4.44, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-06", + "endDate": "2024-06-06", + "value": 4.26, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-07", + "endDate": "2024-06-07", + "value": 4.13, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-08", + "endDate": "2024-06-08", + "value": 4.1, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-09", + "endDate": "2024-06-09", + "value": 4.11, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-10", + "endDate": "2024-06-10", + "value": 4.17, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-11", + "endDate": "2024-06-11", + "value": 4.12, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-12", + "endDate": "2024-06-12", + "value": 4.06, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-13", + "endDate": "2024-06-13", + "value": 4.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-14", + "endDate": "2024-06-14", + "value": 3.88, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-15", + "endDate": "2024-06-15", + "value": 3.94, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-16", + "endDate": "2024-06-16", + "value": 3.9, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-17", + "endDate": "2024-06-17", + "value": 3.88, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-18", + "endDate": "2024-06-18", + "value": 3.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-19", + "endDate": "2024-06-19", + "value": 3.72, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-20", + "endDate": "2024-06-20", + "value": 3.81, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-21", + "endDate": "2024-06-21", + "value": 3.72, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-22", + "endDate": "2024-06-22", + "value": 3.65, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-23", + "endDate": "2024-06-23", + "value": 3.57, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-24", + "endDate": "2024-06-24", + "value": 3.5, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-25", + "endDate": "2024-06-25", + "value": 3.43, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-26", + "endDate": "2024-06-26", + "value": 3.31, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-27", + "endDate": "2024-06-27", + "value": 3.29, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-28", + "endDate": "2024-06-28", + "value": 3.24, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-29", + "endDate": "2024-06-29", + "value": 3.19, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-06-30", + "endDate": "2024-06-30", + "value": 3.15, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-01", + "endDate": "2024-07-01", + "value": 3.2, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-02", + "endDate": "2024-07-02", + "value": 3.62, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-03", + "endDate": "2024-07-03", + "value": 3.74, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-04", + "endDate": "2024-07-04", + "value": 3.76, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-05", + "endDate": "2024-07-05", + "value": 3.84, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-06", + "endDate": "2024-07-06", + "value": 3.93, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-07", + "endDate": "2024-07-07", + "value": 3.97, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-08", + "endDate": "2024-07-08", + "value": 3.92, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-09", + "endDate": "2024-07-09", + "value": 3.85, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-10", + "endDate": "2024-07-10", + "value": 3.81, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-11", + "endDate": "2024-07-11", + "value": 3.76, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-12", + "endDate": "2024-07-12", + "value": 3.72, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-13", + "endDate": "2024-07-13", + "value": 3.75, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-14", + "endDate": "2024-07-14", + "value": 3.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-15", + "endDate": "2024-07-15", + "value": 3.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-16", + "endDate": "2024-07-16", + "value": 3.84, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-17", + "endDate": "2024-07-17", + "value": 3.85, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-18", + "endDate": "2024-07-18", + "value": 3.92, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-19", + "endDate": "2024-07-19", + "value": 3.98, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-20", + "endDate": "2024-07-20", + "value": 4.06, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-21", + "endDate": "2024-07-21", + "value": 4.17, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-22", + "endDate": "2024-07-22", + "value": 4.27, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-23", + "endDate": "2024-07-23", + "value": 4.35, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-24", + "endDate": "2024-07-24", + "value": 4.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-25", + "endDate": "2024-07-25", + "value": 4.67, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-26", + "endDate": "2024-07-26", + "value": 4.75, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-27", + "endDate": "2024-07-27", + "value": 4.94, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-28", + "endDate": "2024-07-28", + "value": 5.23, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-29", + "endDate": "2024-07-29", + "value": 6.25, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-30", + "endDate": "2024-07-30", + "value": 8.61, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-07-31", + "endDate": "2024-07-31", + "value": 11.1, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-01", + "endDate": "2024-08-01", + "value": 15.5, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-02", + "endDate": "2024-08-02", + "value": 20.9, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-03", + "endDate": "2024-08-03", + "value": 23.3, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-04", + "endDate": "2024-08-04", + "value": 23.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-05", + "endDate": "2024-08-05", + "value": 22.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-06", + "endDate": "2024-08-06", + "value": 20.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-07", + "endDate": "2024-08-07", + "value": 19.4, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-08", + "endDate": "2024-08-08", + "value": 18.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-09", + "endDate": "2024-08-09", + "value": 19.2, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-10", + "endDate": "2024-08-10", + "value": 18.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-11", + "endDate": "2024-08-11", + "value": 15.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-12", + "endDate": "2024-08-12", + "value": 13.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-13", + "endDate": "2024-08-13", + "value": 12.4, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-14", + "endDate": "2024-08-14", + "value": 11.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-15", + "endDate": "2024-08-15", + "value": 11.4, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-16", + "endDate": "2024-08-16", + "value": 10.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-17", + "endDate": "2024-08-17", + "value": 9.95, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-18", + "endDate": "2024-08-18", + "value": 8.66, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-19", + "endDate": "2024-08-19", + "value": 7.33, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-20", + "endDate": "2024-08-20", + "value": 6.73, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-21", + "endDate": "2024-08-21", + "value": 6.32, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-22", + "endDate": "2024-08-22", + "value": 6.08, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-23", + "endDate": "2024-08-23", + "value": 5.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-24", + "endDate": "2024-08-24", + "value": 5.88, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-25", + "endDate": "2024-08-25", + "value": 5.62, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-26", + "endDate": "2024-08-26", + "value": 5.28, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-27", + "endDate": "2024-08-27", + "value": 5.11, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-28", + "endDate": "2024-08-28", + "value": 4.93, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-29", + "endDate": "2024-08-29", + "value": 4.84, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-30", + "endDate": "2024-08-30", + "value": 4.78, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-08-31", + "endDate": "2024-08-31", + "value": 4.76, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-01", + "endDate": "2024-09-01", + "value": 4.63, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-02", + "endDate": "2024-09-02", + "value": 4.73, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-03", + "endDate": "2024-09-03", + "value": 4.64, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-04", + "endDate": "2024-09-04", + "value": 4.59, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-05", + "endDate": "2024-09-05", + "value": 4.51, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-06", + "endDate": "2024-09-06", + "value": 4.42, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-07", + "endDate": "2024-09-07", + "value": 4.33, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-08", + "endDate": "2024-09-08", + "value": 4.26, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-09", + "endDate": "2024-09-09", + "value": 4.23, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-10", + "endDate": "2024-09-10", + "value": 4.14, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-11", + "endDate": "2024-09-11", + "value": 4.15, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-12", + "endDate": "2024-09-12", + "value": 4.15, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-13", + "endDate": "2024-09-13", + "value": 4.22, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-14", + "endDate": "2024-09-14", + "value": 4.24, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-15", + "endDate": "2024-09-15", + "value": 4.24, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-16", + "endDate": "2024-09-16", + "value": 4.19, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-17", + "endDate": "2024-09-17", + "value": 4.05, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-18", + "endDate": "2024-09-18", + "value": 3.96, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-19", + "endDate": "2024-09-19", + "value": 3.91, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-20", + "endDate": "2024-09-20", + "value": 3.84, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-21", + "endDate": "2024-09-21", + "value": 3.82, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-22", + "endDate": "2024-09-22", + "value": 3.82, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-23", + "endDate": "2024-09-23", + "value": 3.76, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-24", + "endDate": "2024-09-24", + "value": 3.71, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-25", + "endDate": "2024-09-25", + "value": 3.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-26", + "endDate": "2024-09-26", + "value": 3.79, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-27", + "endDate": "2024-09-27", + "value": 4.1, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-28", + "endDate": "2024-09-28", + "value": 4.31, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-29", + "endDate": "2024-09-29", + "value": 4.47, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-09-30", + "endDate": "2024-09-30", + "value": 4.47, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-01", + "endDate": "2024-10-01", + "value": 4.52, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-02", + "endDate": "2024-10-02", + "value": 4.18, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-03", + "endDate": "2024-10-03", + "value": 4.21, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-04", + "endDate": "2024-10-04", + "value": 4.52, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-05", + "endDate": "2024-10-05", + "value": 4.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-06", + "endDate": "2024-10-06", + "value": 4.73, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-07", + "endDate": "2024-10-07", + "value": 4.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-08", + "endDate": "2024-10-08", + "value": 4.56, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-09", + "endDate": "2024-10-09", + "value": 4.39, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-10", + "endDate": "2024-10-10", + "value": 4.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-11", + "endDate": "2024-10-11", + "value": 4.85, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-12", + "endDate": "2024-10-12", + "value": 4.98, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-13", + "endDate": "2024-10-13", + "value": 4.93, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-14", + "endDate": "2024-10-14", + "value": 4.78, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-15", + "endDate": "2024-10-15", + "value": 4.77, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-16", + "endDate": "2024-10-16", + "value": 4.75, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-17", + "endDate": "2024-10-17", + "value": 4.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-18", + "endDate": "2024-10-18", + "value": 4.62, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-19", + "endDate": "2024-10-19", + "value": 4.46, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-20", + "endDate": "2024-10-20", + "value": 4.53, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-21", + "endDate": "2024-10-21", + "value": 4.56, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-22", + "endDate": "2024-10-22", + "value": 4.59, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-23", + "endDate": "2024-10-23", + "value": 4.91, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-24", + "endDate": "2024-10-24", + "value": 5.14, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-25", + "endDate": "2024-10-25", + "value": 5.04, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-26", + "endDate": "2024-10-26", + "value": 4.94, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-27", + "endDate": "2024-10-27", + "value": 4.94, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-28", + "endDate": "2024-10-28", + "value": 4.78, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-29", + "endDate": "2024-10-29", + "value": 4.83, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-30", + "endDate": "2024-10-30", + "value": 4.63, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-10-31", + "endDate": "2024-10-31", + "value": 4.63, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-01", + "endDate": "2024-11-01", + "value": 5.04, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-02", + "endDate": "2024-11-02", + "value": 5.94, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-03", + "endDate": "2024-11-03", + "value": 6.3, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-04", + "endDate": "2024-11-04", + "value": 7.04, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-05", + "endDate": "2024-11-05", + "value": 6.64, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-06", + "endDate": "2024-11-06", + "value": 6.76, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-07", + "endDate": "2024-11-07", + "value": 6.53, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-08", + "endDate": "2024-11-08", + "value": 6.27, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-09", + "endDate": "2024-11-09", + "value": 6.05, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-10", + "endDate": "2024-11-10", + "value": 5.77, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-11", + "endDate": "2024-11-11", + "value": 5.66, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-12", + "endDate": "2024-11-12", + "value": 5.3, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-13", + "endDate": "2024-11-13", + "value": 5.38, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-14", + "endDate": "2024-11-14", + "value": 5.31, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-15", + "endDate": "2024-11-15", + "value": 5.6, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-16", + "endDate": "2024-11-16", + "value": 5.45, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-17", + "endDate": "2024-11-17", + "value": 5.86, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-18", + "endDate": "2024-11-18", + "value": 6.59, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-19", + "endDate": "2024-11-19", + "value": 6.68, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-20", + "endDate": "2024-11-20", + "value": 7.15, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-21", + "endDate": "2024-11-21", + "value": 8.14, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-22", + "endDate": "2024-11-22", + "value": 8.19, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-23", + "endDate": "2024-11-23", + "value": 7.81, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-24", + "endDate": "2024-11-24", + "value": 7.11, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-25", + "endDate": "2024-11-25", + "value": 6.74, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-26", + "endDate": "2024-11-26", + "value": 7.35, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-27", + "endDate": "2024-11-27", + "value": 8.75, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-28", + "endDate": "2024-11-28", + "value": 9.59, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-29", + "endDate": "2024-11-29", + "value": 9.42, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-11-30", + "endDate": "2024-11-30", + "value": 8.64, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-01", + "endDate": "2024-12-01", + "value": 7.86, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-02", + "endDate": "2024-12-02", + "value": 7.37, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-03", + "endDate": "2024-12-03", + "value": 7.12, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-04", + "endDate": "2024-12-04", + "value": 6.88, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-05", + "endDate": "2024-12-05", + "value": 6.45, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-06", + "endDate": "2024-12-06", + "value": 6.18, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-07", + "endDate": "2024-12-07", + "value": 6.1, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-08", + "endDate": "2024-12-08", + "value": 5.98, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-09", + "endDate": "2024-12-09", + "value": 5.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-10", + "endDate": "2024-12-10", + "value": 5.57, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-11", + "endDate": "2024-12-11", + "value": 5.61, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-12", + "endDate": "2024-12-12", + "value": 5.51, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-13", + "endDate": "2024-12-13", + "value": 5.47, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-14", + "endDate": "2024-12-14", + "value": 5.54, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-15", + "endDate": "2024-12-15", + "value": 5.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-16", + "endDate": "2024-12-16", + "value": 5.71, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-17", + "endDate": "2024-12-17", + "value": 5.85, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-18", + "endDate": "2024-12-18", + "value": 5.88, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-19", + "endDate": "2024-12-19", + "value": 6.17, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-20", + "endDate": "2024-12-20", + "value": 8.06, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-21", + "endDate": "2024-12-21", + "value": 10.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-22", + "endDate": "2024-12-22", + "value": 10.8, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-23", + "endDate": "2024-12-23", + "value": 11.1, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-24", + "endDate": "2024-12-24", + "value": 10.7, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-25", + "endDate": "2024-12-25", + "value": 10.0, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-26", + "endDate": "2024-12-26", + "value": 9.66, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-27", + "endDate": "2024-12-27", + "value": 9.32, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-28", + "endDate": "2024-12-28", + "value": 9.07, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-29", + "endDate": "2024-12-29", + "value": 8.56, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-30", + "endDate": "2024-12-30", + "value": 8.64, + "unit": "m³/s" + }, + { + "parameter": "Q", + "startDate": "2024-12-31", + "endDate": "2024-12-31", + "value": 9.26, + "unit": "m³/s" + } +] \ No newline at end of file diff --git a/tests/test_data/estonia_SJA8821000_stage_daily_max_2024.json b/tests/test_data/estonia_SJA8821000_stage_daily_max_2024.json new file mode 100644 index 0000000..e194706 --- /dev/null +++ b/tests/test_data/estonia_SJA8821000_stage_daily_max_2024.json @@ -0,0 +1,2564 @@ +[ + { + "parameter": "H", + "startDate": "2024-01-01", + "endDate": "2024-01-01", + "value": 1.45, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-02", + "endDate": "2024-01-02", + "value": 1.45, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-03", + "endDate": "2024-01-03", + "value": 1.43, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-04", + "endDate": "2024-01-04", + "value": 1.43, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-05", + "endDate": "2024-01-05", + "value": 1.34, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-06", + "endDate": "2024-01-06", + "value": 1.3, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-07", + "endDate": "2024-01-07", + "value": 1.25, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-08", + "endDate": "2024-01-08", + "value": 1.1500000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-09", + "endDate": "2024-01-09", + "value": 1.07, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-10", + "endDate": "2024-01-10", + "value": 1.01, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-11", + "endDate": "2024-01-11", + "value": 0.96, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-12", + "endDate": "2024-01-12", + "value": 0.91, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-13", + "endDate": "2024-01-13", + "value": 0.88, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-14", + "endDate": "2024-01-14", + "value": 0.8300000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-15", + "endDate": "2024-01-15", + "value": 0.8200000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-16", + "endDate": "2024-01-16", + "value": 0.81, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-17", + "endDate": "2024-01-17", + "value": 0.81, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-18", + "endDate": "2024-01-18", + "value": 0.8, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-19", + "endDate": "2024-01-19", + "value": 0.8200000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-20", + "endDate": "2024-01-20", + "value": 0.8200000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-21", + "endDate": "2024-01-21", + "value": 0.8200000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-22", + "endDate": "2024-01-22", + "value": 0.81, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-23", + "endDate": "2024-01-23", + "value": 0.84, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-24", + "endDate": "2024-01-24", + "value": 0.91, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-25", + "endDate": "2024-01-25", + "value": 1.01, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-26", + "endDate": "2024-01-26", + "value": 1.02, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-27", + "endDate": "2024-01-27", + "value": 1.02, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-28", + "endDate": "2024-01-28", + "value": 1.0, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-29", + "endDate": "2024-01-29", + "value": 0.98, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-30", + "endDate": "2024-01-30", + "value": 0.99, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-01-31", + "endDate": "2024-01-31", + "value": 1.04, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-01", + "endDate": "2024-02-01", + "value": 1.1500000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-02", + "endDate": "2024-02-02", + "value": 1.16, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-03", + "endDate": "2024-02-03", + "value": 1.1400000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-04", + "endDate": "2024-02-04", + "value": 1.12, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-05", + "endDate": "2024-02-05", + "value": 1.05, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-06", + "endDate": "2024-02-06", + "value": 0.99, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-07", + "endDate": "2024-02-07", + "value": 0.9500000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-08", + "endDate": "2024-02-08", + "value": 1.03, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-09", + "endDate": "2024-02-09", + "value": 1.03, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-10", + "endDate": "2024-02-10", + "value": 1.02, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-11", + "endDate": "2024-02-11", + "value": 1.01, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-12", + "endDate": "2024-02-12", + "value": 1.01, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-13", + "endDate": "2024-02-13", + "value": 0.99, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-14", + "endDate": "2024-02-14", + "value": 0.9400000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-15", + "endDate": "2024-02-15", + "value": 0.92, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-16", + "endDate": "2024-02-16", + "value": 0.91, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-17", + "endDate": "2024-02-17", + "value": 0.96, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-18", + "endDate": "2024-02-18", + "value": 0.99, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-19", + "endDate": "2024-02-19", + "value": 0.99, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-20", + "endDate": "2024-02-20", + "value": 0.96, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-21", + "endDate": "2024-02-21", + "value": 0.91, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-22", + "endDate": "2024-02-22", + "value": 0.88, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-23", + "endDate": "2024-02-23", + "value": 1.0, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-24", + "endDate": "2024-02-24", + "value": 1.35, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-25", + "endDate": "2024-02-25", + "value": 1.5, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-26", + "endDate": "2024-02-26", + "value": 1.6, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-27", + "endDate": "2024-02-27", + "value": 1.69, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-28", + "endDate": "2024-02-28", + "value": 1.72, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-02-29", + "endDate": "2024-02-29", + "value": 1.74, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-01", + "endDate": "2024-03-01", + "value": 1.74, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-02", + "endDate": "2024-03-02", + "value": 1.68, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-03", + "endDate": "2024-03-03", + "value": 1.57, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-04", + "endDate": "2024-03-04", + "value": 1.41, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-05", + "endDate": "2024-03-05", + "value": 1.26, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-06", + "endDate": "2024-03-06", + "value": 1.1500000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-07", + "endDate": "2024-03-07", + "value": 1.09, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-08", + "endDate": "2024-03-08", + "value": 1.0, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-09", + "endDate": "2024-03-09", + "value": 1.0, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-10", + "endDate": "2024-03-10", + "value": 0.97, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-11", + "endDate": "2024-03-11", + "value": 0.93, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-12", + "endDate": "2024-03-12", + "value": 0.9, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-13", + "endDate": "2024-03-13", + "value": 0.9, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-14", + "endDate": "2024-03-14", + "value": 0.89, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-15", + "endDate": "2024-03-15", + "value": 0.98, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-16", + "endDate": "2024-03-16", + "value": 1.12, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-17", + "endDate": "2024-03-17", + "value": 1.26, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-18", + "endDate": "2024-03-18", + "value": 1.31, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-19", + "endDate": "2024-03-19", + "value": 1.32, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-20", + "endDate": "2024-03-20", + "value": 1.26, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-21", + "endDate": "2024-03-21", + "value": 1.21, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-22", + "endDate": "2024-03-22", + "value": 1.22, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-23", + "endDate": "2024-03-23", + "value": 1.26, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-24", + "endDate": "2024-03-24", + "value": 1.29, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-25", + "endDate": "2024-03-25", + "value": 1.28, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-26", + "endDate": "2024-03-26", + "value": 1.26, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-27", + "endDate": "2024-03-27", + "value": 1.21, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-28", + "endDate": "2024-03-28", + "value": 1.2, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-29", + "endDate": "2024-03-29", + "value": 1.19, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-30", + "endDate": "2024-03-30", + "value": 1.16, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-03-31", + "endDate": "2024-03-31", + "value": 1.16, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-01", + "endDate": "2024-04-01", + "value": 1.16, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-02", + "endDate": "2024-04-02", + "value": 1.17, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-03", + "endDate": "2024-04-03", + "value": 1.36, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-04", + "endDate": "2024-04-04", + "value": 1.35, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-05", + "endDate": "2024-04-05", + "value": 1.36, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-06", + "endDate": "2024-04-06", + "value": 1.3800000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-07", + "endDate": "2024-04-07", + "value": 1.3800000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-08", + "endDate": "2024-04-08", + "value": 1.3900000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-09", + "endDate": "2024-04-09", + "value": 1.36, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-10", + "endDate": "2024-04-10", + "value": 1.32, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-11", + "endDate": "2024-04-11", + "value": 1.22, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-12", + "endDate": "2024-04-12", + "value": 1.16, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-13", + "endDate": "2024-04-13", + "value": 1.1500000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-14", + "endDate": "2024-04-14", + "value": 1.12, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-15", + "endDate": "2024-04-15", + "value": 1.16, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-16", + "endDate": "2024-04-16", + "value": 1.19, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-17", + "endDate": "2024-04-17", + "value": 1.2, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-18", + "endDate": "2024-04-18", + "value": 1.19, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-19", + "endDate": "2024-04-19", + "value": 1.19, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-20", + "endDate": "2024-04-20", + "value": 1.1300000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-21", + "endDate": "2024-04-21", + "value": 1.1500000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-22", + "endDate": "2024-04-22", + "value": 1.21, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-23", + "endDate": "2024-04-23", + "value": 1.1500000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-24", + "endDate": "2024-04-24", + "value": 1.19, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-25", + "endDate": "2024-04-25", + "value": 1.23, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-26", + "endDate": "2024-04-26", + "value": 1.25, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-27", + "endDate": "2024-04-27", + "value": 1.26, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-28", + "endDate": "2024-04-28", + "value": 1.26, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-29", + "endDate": "2024-04-29", + "value": 1.24, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-04-30", + "endDate": "2024-04-30", + "value": 1.22, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-01", + "endDate": "2024-05-01", + "value": 1.23, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-02", + "endDate": "2024-05-02", + "value": 1.2, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-03", + "endDate": "2024-05-03", + "value": 1.2, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-04", + "endDate": "2024-05-04", + "value": 1.19, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-05", + "endDate": "2024-05-05", + "value": 1.18, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-06", + "endDate": "2024-05-06", + "value": 1.19, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-07", + "endDate": "2024-05-07", + "value": 1.2, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-08", + "endDate": "2024-05-08", + "value": 1.17, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-09", + "endDate": "2024-05-09", + "value": 1.11, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-10", + "endDate": "2024-05-10", + "value": 1.1400000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-11", + "endDate": "2024-05-11", + "value": 1.17, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-12", + "endDate": "2024-05-12", + "value": 1.11, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-13", + "endDate": "2024-05-13", + "value": 1.11, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-14", + "endDate": "2024-05-14", + "value": 1.11, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-15", + "endDate": "2024-05-15", + "value": 1.1, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-16", + "endDate": "2024-05-16", + "value": 1.1, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-17", + "endDate": "2024-05-17", + "value": 1.1, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-18", + "endDate": "2024-05-18", + "value": 1.1, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-19", + "endDate": "2024-05-19", + "value": 1.07, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-20", + "endDate": "2024-05-20", + "value": 1.11, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-21", + "endDate": "2024-05-21", + "value": 1.11, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-22", + "endDate": "2024-05-22", + "value": 1.1, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-23", + "endDate": "2024-05-23", + "value": 1.08, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-24", + "endDate": "2024-05-24", + "value": 1.08, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-25", + "endDate": "2024-05-25", + "value": 1.09, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-26", + "endDate": "2024-05-26", + "value": 1.09, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-27", + "endDate": "2024-05-27", + "value": 1.1, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-28", + "endDate": "2024-05-28", + "value": 1.09, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-29", + "endDate": "2024-05-29", + "value": 1.08, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-30", + "endDate": "2024-05-30", + "value": 1.07, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-05-31", + "endDate": "2024-05-31", + "value": 1.1300000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-01", + "endDate": "2024-06-01", + "value": 1.1500000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-02", + "endDate": "2024-06-02", + "value": 1.16, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-03", + "endDate": "2024-06-03", + "value": 1.21, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-04", + "endDate": "2024-06-04", + "value": 1.29, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-05", + "endDate": "2024-06-05", + "value": 1.3, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-06", + "endDate": "2024-06-06", + "value": 1.28, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-07", + "endDate": "2024-06-07", + "value": 1.27, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-08", + "endDate": "2024-06-08", + "value": 1.28, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-09", + "endDate": "2024-06-09", + "value": 1.32, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-10", + "endDate": "2024-06-10", + "value": 1.32, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-11", + "endDate": "2024-06-11", + "value": 1.32, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-12", + "endDate": "2024-06-12", + "value": 1.33, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-13", + "endDate": "2024-06-13", + "value": 1.33, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-14", + "endDate": "2024-06-14", + "value": 1.33, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-15", + "endDate": "2024-06-15", + "value": 1.35, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-16", + "endDate": "2024-06-16", + "value": 1.36, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-17", + "endDate": "2024-06-17", + "value": 1.37, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-18", + "endDate": "2024-06-18", + "value": 1.37, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-19", + "endDate": "2024-06-19", + "value": 1.3900000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-20", + "endDate": "2024-06-20", + "value": 1.41, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-21", + "endDate": "2024-06-21", + "value": 1.41, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-22", + "endDate": "2024-06-22", + "value": 1.41, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-23", + "endDate": "2024-06-23", + "value": 1.4000000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-24", + "endDate": "2024-06-24", + "value": 1.4000000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-25", + "endDate": "2024-06-25", + "value": 1.41, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-26", + "endDate": "2024-06-26", + "value": 1.4000000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-27", + "endDate": "2024-06-27", + "value": 1.4000000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-28", + "endDate": "2024-06-28", + "value": 1.3900000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-29", + "endDate": "2024-06-29", + "value": 1.3900000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-06-30", + "endDate": "2024-06-30", + "value": 1.3800000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-01", + "endDate": "2024-07-01", + "value": 1.44, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-02", + "endDate": "2024-07-02", + "value": 1.52, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-03", + "endDate": "2024-07-03", + "value": 1.53, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-04", + "endDate": "2024-07-04", + "value": 1.54, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-05", + "endDate": "2024-07-05", + "value": 1.57, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-06", + "endDate": "2024-07-06", + "value": 1.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-07", + "endDate": "2024-07-07", + "value": 1.59, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-08", + "endDate": "2024-07-08", + "value": 1.59, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-09", + "endDate": "2024-07-09", + "value": 1.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-10", + "endDate": "2024-07-10", + "value": 1.57, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-11", + "endDate": "2024-07-11", + "value": 1.57, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-12", + "endDate": "2024-07-12", + "value": 1.57, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-13", + "endDate": "2024-07-13", + "value": 1.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-14", + "endDate": "2024-07-14", + "value": 1.59, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-15", + "endDate": "2024-07-15", + "value": 1.59, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-16", + "endDate": "2024-07-16", + "value": 1.59, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-17", + "endDate": "2024-07-17", + "value": 1.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-18", + "endDate": "2024-07-18", + "value": 1.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-19", + "endDate": "2024-07-19", + "value": 1.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-20", + "endDate": "2024-07-20", + "value": 1.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-21", + "endDate": "2024-07-21", + "value": 1.59, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-22", + "endDate": "2024-07-22", + "value": 1.59, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-23", + "endDate": "2024-07-23", + "value": 1.62, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-24", + "endDate": "2024-07-24", + "value": 1.6300000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-25", + "endDate": "2024-07-25", + "value": 1.6300000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-26", + "endDate": "2024-07-26", + "value": 1.6300000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-27", + "endDate": "2024-07-27", + "value": 1.67, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-28", + "endDate": "2024-07-28", + "value": 1.7, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-29", + "endDate": "2024-07-29", + "value": 1.96, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-30", + "endDate": "2024-07-30", + "value": 2.16, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-07-31", + "endDate": "2024-07-31", + "value": 2.33, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-01", + "endDate": "2024-08-01", + "value": 2.59, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-02", + "endDate": "2024-08-02", + "value": 2.7, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-03", + "endDate": "2024-08-03", + "value": 2.7, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-04", + "endDate": "2024-08-04", + "value": 2.69, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-05", + "endDate": "2024-08-05", + "value": 2.65, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-06", + "endDate": "2024-08-06", + "value": 2.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-07", + "endDate": "2024-08-07", + "value": 2.5, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-08", + "endDate": "2024-08-08", + "value": 2.44, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-09", + "endDate": "2024-08-09", + "value": 2.45, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-10", + "endDate": "2024-08-10", + "value": 2.41, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-11", + "endDate": "2024-08-11", + "value": 2.2800000000000002, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-12", + "endDate": "2024-08-12", + "value": 2.12, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-13", + "endDate": "2024-08-13", + "value": 1.99, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-14", + "endDate": "2024-08-14", + "value": 1.9100000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-15", + "endDate": "2024-08-15", + "value": 1.86, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-16", + "endDate": "2024-08-16", + "value": 1.82, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-17", + "endDate": "2024-08-17", + "value": 1.74, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-18", + "endDate": "2024-08-18", + "value": 1.61, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-19", + "endDate": "2024-08-19", + "value": 1.42, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-20", + "endDate": "2024-08-20", + "value": 1.31, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-21", + "endDate": "2024-08-21", + "value": 1.24, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-22", + "endDate": "2024-08-22", + "value": 1.2, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-23", + "endDate": "2024-08-23", + "value": 1.1500000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-24", + "endDate": "2024-08-24", + "value": 1.21, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-25", + "endDate": "2024-08-25", + "value": 1.1500000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-26", + "endDate": "2024-08-26", + "value": 1.04, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-27", + "endDate": "2024-08-27", + "value": 1.01, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-28", + "endDate": "2024-08-28", + "value": 0.98, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-29", + "endDate": "2024-08-29", + "value": 0.9500000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-30", + "endDate": "2024-08-30", + "value": 0.93, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-08-31", + "endDate": "2024-08-31", + "value": 0.92, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-01", + "endDate": "2024-09-01", + "value": 0.91, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-02", + "endDate": "2024-09-02", + "value": 0.91, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-03", + "endDate": "2024-09-03", + "value": 0.88, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-04", + "endDate": "2024-09-04", + "value": 0.87, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-05", + "endDate": "2024-09-05", + "value": 0.85, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-06", + "endDate": "2024-09-06", + "value": 0.8300000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-07", + "endDate": "2024-09-07", + "value": 0.81, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-08", + "endDate": "2024-09-08", + "value": 0.8, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-09", + "endDate": "2024-09-09", + "value": 0.78, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-10", + "endDate": "2024-09-10", + "value": 0.77, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-11", + "endDate": "2024-09-11", + "value": 0.76, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-12", + "endDate": "2024-09-12", + "value": 0.76, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-13", + "endDate": "2024-09-13", + "value": 0.76, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-14", + "endDate": "2024-09-14", + "value": 0.75, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-15", + "endDate": "2024-09-15", + "value": 0.75, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-16", + "endDate": "2024-09-16", + "value": 0.75, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-17", + "endDate": "2024-09-17", + "value": 0.71, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-18", + "endDate": "2024-09-18", + "value": 0.6900000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-19", + "endDate": "2024-09-19", + "value": 0.67, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-20", + "endDate": "2024-09-20", + "value": 0.66, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-21", + "endDate": "2024-09-21", + "value": 0.66, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-22", + "endDate": "2024-09-22", + "value": 0.65, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-23", + "endDate": "2024-09-23", + "value": 0.63, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-24", + "endDate": "2024-09-24", + "value": 0.61, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-25", + "endDate": "2024-09-25", + "value": 0.6, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-26", + "endDate": "2024-09-26", + "value": 0.6, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-27", + "endDate": "2024-09-27", + "value": 0.64, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-28", + "endDate": "2024-09-28", + "value": 0.65, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-29", + "endDate": "2024-09-29", + "value": 0.65, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-09-30", + "endDate": "2024-09-30", + "value": 0.64, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-01", + "endDate": "2024-10-01", + "value": 0.64, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-02", + "endDate": "2024-10-02", + "value": 0.6, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-03", + "endDate": "2024-10-03", + "value": 0.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-04", + "endDate": "2024-10-04", + "value": 0.6, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-05", + "endDate": "2024-10-05", + "value": 0.61, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-06", + "endDate": "2024-10-06", + "value": 0.6, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-07", + "endDate": "2024-10-07", + "value": 0.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-08", + "endDate": "2024-10-08", + "value": 0.5700000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-09", + "endDate": "2024-10-09", + "value": 0.54, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-10", + "endDate": "2024-10-10", + "value": 0.56, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-11", + "endDate": "2024-10-11", + "value": 0.5700000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-12", + "endDate": "2024-10-12", + "value": 0.5700000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-13", + "endDate": "2024-10-13", + "value": 0.56, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-14", + "endDate": "2024-10-14", + "value": 0.55, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-15", + "endDate": "2024-10-15", + "value": 0.53, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-16", + "endDate": "2024-10-16", + "value": 0.52, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-17", + "endDate": "2024-10-17", + "value": 0.51, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-18", + "endDate": "2024-10-18", + "value": 0.5, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-19", + "endDate": "2024-10-19", + "value": 0.49, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-20", + "endDate": "2024-10-20", + "value": 0.49, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-21", + "endDate": "2024-10-21", + "value": 0.49, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-22", + "endDate": "2024-10-22", + "value": 0.48, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-23", + "endDate": "2024-10-23", + "value": 0.51, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-24", + "endDate": "2024-10-24", + "value": 0.52, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-25", + "endDate": "2024-10-25", + "value": 0.51, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-26", + "endDate": "2024-10-26", + "value": 0.52, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-27", + "endDate": "2024-10-27", + "value": 0.52, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-28", + "endDate": "2024-10-28", + "value": 0.49, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-29", + "endDate": "2024-10-29", + "value": 0.49, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-30", + "endDate": "2024-10-30", + "value": 0.47000000000000003, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-10-31", + "endDate": "2024-10-31", + "value": 0.47000000000000003, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-01", + "endDate": "2024-11-01", + "value": 0.54, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-02", + "endDate": "2024-11-02", + "value": 0.6, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-03", + "endDate": "2024-11-03", + "value": 0.7000000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-04", + "endDate": "2024-11-04", + "value": 0.6900000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-05", + "endDate": "2024-11-05", + "value": 0.63, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-06", + "endDate": "2024-11-06", + "value": 0.63, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-07", + "endDate": "2024-11-07", + "value": 0.62, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-08", + "endDate": "2024-11-08", + "value": 0.59, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-09", + "endDate": "2024-11-09", + "value": 0.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-10", + "endDate": "2024-11-10", + "value": 0.56, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-11", + "endDate": "2024-11-11", + "value": 0.55, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-12", + "endDate": "2024-11-12", + "value": 0.52, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-13", + "endDate": "2024-11-13", + "value": 0.54, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-14", + "endDate": "2024-11-14", + "value": 0.54, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-15", + "endDate": "2024-11-15", + "value": 0.54, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-16", + "endDate": "2024-11-16", + "value": 0.53, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-17", + "endDate": "2024-11-17", + "value": 0.58, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-18", + "endDate": "2024-11-18", + "value": 0.62, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-19", + "endDate": "2024-11-19", + "value": 0.62, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-20", + "endDate": "2024-11-20", + "value": 0.6900000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-21", + "endDate": "2024-11-21", + "value": 0.73, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-22", + "endDate": "2024-11-22", + "value": 0.74, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-23", + "endDate": "2024-11-23", + "value": 0.7000000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-24", + "endDate": "2024-11-24", + "value": 0.66, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-25", + "endDate": "2024-11-25", + "value": 0.65, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-26", + "endDate": "2024-11-26", + "value": 0.7000000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-27", + "endDate": "2024-11-27", + "value": 0.8, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-28", + "endDate": "2024-11-28", + "value": 0.8300000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-29", + "endDate": "2024-11-29", + "value": 0.8200000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-11-30", + "endDate": "2024-11-30", + "value": 0.77, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-01", + "endDate": "2024-12-01", + "value": 0.71, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-02", + "endDate": "2024-12-02", + "value": 0.67, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-03", + "endDate": "2024-12-03", + "value": 0.65, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-04", + "endDate": "2024-12-04", + "value": 0.64, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-05", + "endDate": "2024-12-05", + "value": 0.6, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-06", + "endDate": "2024-12-06", + "value": 0.5700000000000001, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-07", + "endDate": "2024-12-07", + "value": 0.56, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-08", + "endDate": "2024-12-08", + "value": 0.55, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-09", + "endDate": "2024-12-09", + "value": 0.55, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-10", + "endDate": "2024-12-10", + "value": 0.53, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-11", + "endDate": "2024-12-11", + "value": 0.53, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-12", + "endDate": "2024-12-12", + "value": 0.55, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-13", + "endDate": "2024-12-13", + "value": 0.8, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-14", + "endDate": "2024-12-14", + "value": 0.79, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-15", + "endDate": "2024-12-15", + "value": 0.54, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-16", + "endDate": "2024-12-16", + "value": 0.54, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-17", + "endDate": "2024-12-17", + "value": 0.56, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-18", + "endDate": "2024-12-18", + "value": 0.56, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-19", + "endDate": "2024-12-19", + "value": 0.59, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-20", + "endDate": "2024-12-20", + "value": 0.78, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-21", + "endDate": "2024-12-21", + "value": 0.86, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-22", + "endDate": "2024-12-22", + "value": 0.89, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-23", + "endDate": "2024-12-23", + "value": 0.9, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-24", + "endDate": "2024-12-24", + "value": 0.89, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-25", + "endDate": "2024-12-25", + "value": 0.84, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-26", + "endDate": "2024-12-26", + "value": 0.8, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-27", + "endDate": "2024-12-27", + "value": 0.79, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-28", + "endDate": "2024-12-28", + "value": 0.77, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-29", + "endDate": "2024-12-29", + "value": 0.73, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-30", + "endDate": "2024-12-30", + "value": 0.75, + "unit": "m" + }, + { + "parameter": "H", + "startDate": "2024-12-31", + "endDate": "2024-12-31", + "value": 0.77, + "unit": "m" + } +] \ No newline at end of file diff --git a/tests/test_data/estonia_SJA8821000_water_temperature_daily_mean_2024.json b/tests/test_data/estonia_SJA8821000_water_temperature_daily_mean_2024.json new file mode 100644 index 0000000..0a82a11 --- /dev/null +++ b/tests/test_data/estonia_SJA8821000_water_temperature_daily_mean_2024.json @@ -0,0 +1,2564 @@ +[ + { + "parameter": "T", + "startDate": "2024-01-01", + "endDate": "2024-01-01", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-02", + "endDate": "2024-01-02", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-03", + "endDate": "2024-01-03", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-04", + "endDate": "2024-01-04", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-05", + "endDate": "2024-01-05", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-06", + "endDate": "2024-01-06", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-07", + "endDate": "2024-01-07", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-08", + "endDate": "2024-01-08", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-09", + "endDate": "2024-01-09", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-10", + "endDate": "2024-01-10", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-11", + "endDate": "2024-01-11", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-12", + "endDate": "2024-01-12", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-13", + "endDate": "2024-01-13", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-14", + "endDate": "2024-01-14", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-15", + "endDate": "2024-01-15", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-16", + "endDate": "2024-01-16", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-17", + "endDate": "2024-01-17", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-18", + "endDate": "2024-01-18", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-19", + "endDate": "2024-01-19", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-20", + "endDate": "2024-01-20", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-21", + "endDate": "2024-01-21", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-22", + "endDate": "2024-01-22", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-23", + "endDate": "2024-01-23", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-24", + "endDate": "2024-01-24", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-25", + "endDate": "2024-01-25", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-26", + "endDate": "2024-01-26", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-27", + "endDate": "2024-01-27", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-28", + "endDate": "2024-01-28", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-29", + "endDate": "2024-01-29", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-30", + "endDate": "2024-01-30", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-01-31", + "endDate": "2024-01-31", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-01", + "endDate": "2024-02-01", + "value": 0.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-02", + "endDate": "2024-02-02", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-03", + "endDate": "2024-02-03", + "value": 0.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-04", + "endDate": "2024-02-04", + "value": 0.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-05", + "endDate": "2024-02-05", + "value": 0.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-06", + "endDate": "2024-02-06", + "value": 0.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-07", + "endDate": "2024-02-07", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-08", + "endDate": "2024-02-08", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-09", + "endDate": "2024-02-09", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-10", + "endDate": "2024-02-10", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-11", + "endDate": "2024-02-11", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-12", + "endDate": "2024-02-12", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-13", + "endDate": "2024-02-13", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-14", + "endDate": "2024-02-14", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-15", + "endDate": "2024-02-15", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-16", + "endDate": "2024-02-16", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-17", + "endDate": "2024-02-17", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-18", + "endDate": "2024-02-18", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-19", + "endDate": "2024-02-19", + "value": 0.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-20", + "endDate": "2024-02-20", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-21", + "endDate": "2024-02-21", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-22", + "endDate": "2024-02-22", + "value": 0.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-23", + "endDate": "2024-02-23", + "value": 1.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-24", + "endDate": "2024-02-24", + "value": 1.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-25", + "endDate": "2024-02-25", + "value": 0.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-26", + "endDate": "2024-02-26", + "value": 0.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-27", + "endDate": "2024-02-27", + "value": 0.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-28", + "endDate": "2024-02-28", + "value": 0.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-02-29", + "endDate": "2024-02-29", + "value": 0.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-01", + "endDate": "2024-03-01", + "value": 0.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-02", + "endDate": "2024-03-02", + "value": 0.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-03", + "endDate": "2024-03-03", + "value": 1.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-04", + "endDate": "2024-03-04", + "value": 1.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-05", + "endDate": "2024-03-05", + "value": 1.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-06", + "endDate": "2024-03-06", + "value": 0.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-07", + "endDate": "2024-03-07", + "value": 0.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-08", + "endDate": "2024-03-08", + "value": 0.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-09", + "endDate": "2024-03-09", + "value": 0.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-10", + "endDate": "2024-03-10", + "value": 0.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-11", + "endDate": "2024-03-11", + "value": 0.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-12", + "endDate": "2024-03-12", + "value": 0.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-13", + "endDate": "2024-03-13", + "value": 1.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-14", + "endDate": "2024-03-14", + "value": 2.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-15", + "endDate": "2024-03-15", + "value": 2.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-16", + "endDate": "2024-03-16", + "value": 2.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-17", + "endDate": "2024-03-17", + "value": 3.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-18", + "endDate": "2024-03-18", + "value": 2.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-19", + "endDate": "2024-03-19", + "value": 2.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-20", + "endDate": "2024-03-20", + "value": 2.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-21", + "endDate": "2024-03-21", + "value": 2.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-22", + "endDate": "2024-03-22", + "value": 3.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-23", + "endDate": "2024-03-23", + "value": 3.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-24", + "endDate": "2024-03-24", + "value": 3.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-25", + "endDate": "2024-03-25", + "value": 4.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-26", + "endDate": "2024-03-26", + "value": 3.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-27", + "endDate": "2024-03-27", + "value": 4.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-28", + "endDate": "2024-03-28", + "value": 5.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-29", + "endDate": "2024-03-29", + "value": 5.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-30", + "endDate": "2024-03-30", + "value": 5.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-03-31", + "endDate": "2024-03-31", + "value": 5.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-01", + "endDate": "2024-04-01", + "value": 7.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-02", + "endDate": "2024-04-02", + "value": 7.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-03", + "endDate": "2024-04-03", + "value": 6.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-04", + "endDate": "2024-04-04", + "value": 4.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-05", + "endDate": "2024-04-05", + "value": 4.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-06", + "endDate": "2024-04-06", + "value": 5.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-07", + "endDate": "2024-04-07", + "value": 5.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-08", + "endDate": "2024-04-08", + "value": 6.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-09", + "endDate": "2024-04-09", + "value": 7.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-10", + "endDate": "2024-04-10", + "value": 9.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-11", + "endDate": "2024-04-11", + "value": 9.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-12", + "endDate": "2024-04-12", + "value": 10.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-13", + "endDate": "2024-04-13", + "value": 10.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-14", + "endDate": "2024-04-14", + "value": 10.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-15", + "endDate": "2024-04-15", + "value": 9.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-16", + "endDate": "2024-04-16", + "value": 8.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-17", + "endDate": "2024-04-17", + "value": 8.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-18", + "endDate": "2024-04-18", + "value": 8.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-19", + "endDate": "2024-04-19", + "value": 6.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-20", + "endDate": "2024-04-20", + "value": 5.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-21", + "endDate": "2024-04-21", + "value": 6.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-22", + "endDate": "2024-04-22", + "value": 6.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-23", + "endDate": "2024-04-23", + "value": 5.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-24", + "endDate": "2024-04-24", + "value": 5.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-25", + "endDate": "2024-04-25", + "value": 6.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-26", + "endDate": "2024-04-26", + "value": 7.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-27", + "endDate": "2024-04-27", + "value": 7.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-28", + "endDate": "2024-04-28", + "value": 9.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-29", + "endDate": "2024-04-29", + "value": 10.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-04-30", + "endDate": "2024-04-30", + "value": 11.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-01", + "endDate": "2024-05-01", + "value": 12.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-02", + "endDate": "2024-05-02", + "value": 12.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-03", + "endDate": "2024-05-03", + "value": 12.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-04", + "endDate": "2024-05-04", + "value": 13.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-05", + "endDate": "2024-05-05", + "value": 13.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-06", + "endDate": "2024-05-06", + "value": 12.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-07", + "endDate": "2024-05-07", + "value": 11.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-08", + "endDate": "2024-05-08", + "value": 10.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-09", + "endDate": "2024-05-09", + "value": 10.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-10", + "endDate": "2024-05-10", + "value": 10.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-11", + "endDate": "2024-05-11", + "value": 9.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-12", + "endDate": "2024-05-12", + "value": 10.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-13", + "endDate": "2024-05-13", + "value": 11.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-14", + "endDate": "2024-05-14", + "value": 12.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-15", + "endDate": "2024-05-15", + "value": 13.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-16", + "endDate": "2024-05-16", + "value": 14.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-17", + "endDate": "2024-05-17", + "value": 16.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-18", + "endDate": "2024-05-18", + "value": 16.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-19", + "endDate": "2024-05-19", + "value": 16.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-20", + "endDate": "2024-05-20", + "value": 17.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-21", + "endDate": "2024-05-21", + "value": 17.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-22", + "endDate": "2024-05-22", + "value": 17.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-23", + "endDate": "2024-05-23", + "value": 17.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-24", + "endDate": "2024-05-24", + "value": 18.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-25", + "endDate": "2024-05-25", + "value": 19.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-26", + "endDate": "2024-05-26", + "value": 19.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-27", + "endDate": "2024-05-27", + "value": 20.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-28", + "endDate": "2024-05-28", + "value": 20.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-29", + "endDate": "2024-05-29", + "value": 20.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-30", + "endDate": "2024-05-30", + "value": 20.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-05-31", + "endDate": "2024-05-31", + "value": 21.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-01", + "endDate": "2024-06-01", + "value": 21.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-02", + "endDate": "2024-06-02", + "value": 20.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-03", + "endDate": "2024-06-03", + "value": 19.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-04", + "endDate": "2024-06-04", + "value": 19.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-05", + "endDate": "2024-06-05", + "value": 19.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-06", + "endDate": "2024-06-06", + "value": 20.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-07", + "endDate": "2024-06-07", + "value": 19.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-08", + "endDate": "2024-06-08", + "value": 18.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-09", + "endDate": "2024-06-09", + "value": 16.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-10", + "endDate": "2024-06-10", + "value": 15.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-11", + "endDate": "2024-06-11", + "value": 16.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-12", + "endDate": "2024-06-12", + "value": 17.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-13", + "endDate": "2024-06-13", + "value": 17.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-14", + "endDate": "2024-06-14", + "value": 16.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-15", + "endDate": "2024-06-15", + "value": 17.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-16", + "endDate": "2024-06-16", + "value": 17.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-17", + "endDate": "2024-06-17", + "value": 18.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-18", + "endDate": "2024-06-18", + "value": 18.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-19", + "endDate": "2024-06-19", + "value": 18.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-20", + "endDate": "2024-06-20", + "value": 18.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-21", + "endDate": "2024-06-21", + "value": 18.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-22", + "endDate": "2024-06-22", + "value": 18.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-23", + "endDate": "2024-06-23", + "value": 18.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-24", + "endDate": "2024-06-24", + "value": 18.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-25", + "endDate": "2024-06-25", + "value": 19.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-26", + "endDate": "2024-06-26", + "value": 20.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-27", + "endDate": "2024-06-27", + "value": 21.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-28", + "endDate": "2024-06-28", + "value": 22.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-29", + "endDate": "2024-06-29", + "value": 22.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-06-30", + "endDate": "2024-06-30", + "value": 22.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-01", + "endDate": "2024-07-01", + "value": 21.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-02", + "endDate": "2024-07-02", + "value": 21.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-03", + "endDate": "2024-07-03", + "value": 20.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-04", + "endDate": "2024-07-04", + "value": 19.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-05", + "endDate": "2024-07-05", + "value": 18.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-06", + "endDate": "2024-07-06", + "value": 18.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-07", + "endDate": "2024-07-07", + "value": 18.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-08", + "endDate": "2024-07-08", + "value": 18.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-09", + "endDate": "2024-07-09", + "value": 18.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-10", + "endDate": "2024-07-10", + "value": 19.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-11", + "endDate": "2024-07-11", + "value": 20.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-12", + "endDate": "2024-07-12", + "value": 20.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-13", + "endDate": "2024-07-13", + "value": 20.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-14", + "endDate": "2024-07-14", + "value": 20.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-15", + "endDate": "2024-07-15", + "value": 20.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-16", + "endDate": "2024-07-16", + "value": 20.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-17", + "endDate": "2024-07-17", + "value": 20.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-18", + "endDate": "2024-07-18", + "value": 20.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-19", + "endDate": "2024-07-19", + "value": 20.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-20", + "endDate": "2024-07-20", + "value": 20.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-21", + "endDate": "2024-07-21", + "value": 20.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-22", + "endDate": "2024-07-22", + "value": 20.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-23", + "endDate": "2024-07-23", + "value": 21.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-24", + "endDate": "2024-07-24", + "value": 21.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-25", + "endDate": "2024-07-25", + "value": 21.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-26", + "endDate": "2024-07-26", + "value": 21.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-27", + "endDate": "2024-07-27", + "value": 21.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-28", + "endDate": "2024-07-28", + "value": 20.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-29", + "endDate": "2024-07-29", + "value": 19.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-30", + "endDate": "2024-07-30", + "value": 18.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-07-31", + "endDate": "2024-07-31", + "value": 18.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-01", + "endDate": "2024-08-01", + "value": 18.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-02", + "endDate": "2024-08-02", + "value": 18.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-03", + "endDate": "2024-08-03", + "value": 19.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-04", + "endDate": "2024-08-04", + "value": 19.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-05", + "endDate": "2024-08-05", + "value": 19.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-06", + "endDate": "2024-08-06", + "value": 19.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-07", + "endDate": "2024-08-07", + "value": 19.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-08", + "endDate": "2024-08-08", + "value": 19.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-09", + "endDate": "2024-08-09", + "value": 19.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-10", + "endDate": "2024-08-10", + "value": 19.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-11", + "endDate": "2024-08-11", + "value": 18.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-12", + "endDate": "2024-08-12", + "value": 17.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-13", + "endDate": "2024-08-13", + "value": 17.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-14", + "endDate": "2024-08-14", + "value": 17.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-15", + "endDate": "2024-08-15", + "value": 18.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-16", + "endDate": "2024-08-16", + "value": 18.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-17", + "endDate": "2024-08-17", + "value": 18.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-18", + "endDate": "2024-08-18", + "value": 18.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-19", + "endDate": "2024-08-19", + "value": 17.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-20", + "endDate": "2024-08-20", + "value": 17.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-21", + "endDate": "2024-08-21", + "value": 17.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-22", + "endDate": "2024-08-22", + "value": 17.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-23", + "endDate": "2024-08-23", + "value": 17.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-24", + "endDate": "2024-08-24", + "value": 17.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-25", + "endDate": "2024-08-25", + "value": 17.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-26", + "endDate": "2024-08-26", + "value": 18.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-27", + "endDate": "2024-08-27", + "value": 17.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-28", + "endDate": "2024-08-28", + "value": 17.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-29", + "endDate": "2024-08-29", + "value": 17.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-30", + "endDate": "2024-08-30", + "value": 17.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-08-31", + "endDate": "2024-08-31", + "value": 17.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-01", + "endDate": "2024-09-01", + "value": 16.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-02", + "endDate": "2024-09-02", + "value": 16.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-03", + "endDate": "2024-09-03", + "value": 17.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-04", + "endDate": "2024-09-04", + "value": 17.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-05", + "endDate": "2024-09-05", + "value": 17.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-06", + "endDate": "2024-09-06", + "value": 16.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-07", + "endDate": "2024-09-07", + "value": 15.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-08", + "endDate": "2024-09-08", + "value": 15.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-09", + "endDate": "2024-09-09", + "value": 15.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-10", + "endDate": "2024-09-10", + "value": 15.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-11", + "endDate": "2024-09-11", + "value": 14.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-12", + "endDate": "2024-09-12", + "value": 14.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-13", + "endDate": "2024-09-13", + "value": 15.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-14", + "endDate": "2024-09-14", + "value": 16.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-15", + "endDate": "2024-09-15", + "value": 16.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-16", + "endDate": "2024-09-16", + "value": 16.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-17", + "endDate": "2024-09-17", + "value": 16.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-18", + "endDate": "2024-09-18", + "value": 15.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-19", + "endDate": "2024-09-19", + "value": 15.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-20", + "endDate": "2024-09-20", + "value": 14.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-21", + "endDate": "2024-09-21", + "value": 14.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-22", + "endDate": "2024-09-22", + "value": 13.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-23", + "endDate": "2024-09-23", + "value": 12.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-24", + "endDate": "2024-09-24", + "value": 12.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-25", + "endDate": "2024-09-25", + "value": 12.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-26", + "endDate": "2024-09-26", + "value": 13.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-27", + "endDate": "2024-09-27", + "value": 13.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-28", + "endDate": "2024-09-28", + "value": 13.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-29", + "endDate": "2024-09-29", + "value": 12.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-09-30", + "endDate": "2024-09-30", + "value": 10.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-01", + "endDate": "2024-10-01", + "value": 9.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-02", + "endDate": "2024-10-02", + "value": 9.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-03", + "endDate": "2024-10-03", + "value": 10.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-04", + "endDate": "2024-10-04", + "value": 10.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-05", + "endDate": "2024-10-05", + "value": 9.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-06", + "endDate": "2024-10-06", + "value": 8.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-07", + "endDate": "2024-10-07", + "value": 8.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-08", + "endDate": "2024-10-08", + "value": 8.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-09", + "endDate": "2024-10-09", + "value": 8.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-10", + "endDate": "2024-10-10", + "value": 9.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-11", + "endDate": "2024-10-11", + "value": 10.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-12", + "endDate": "2024-10-12", + "value": 9.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-13", + "endDate": "2024-10-13", + "value": 8.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-14", + "endDate": "2024-10-14", + "value": 8.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-15", + "endDate": "2024-10-15", + "value": 8.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-16", + "endDate": "2024-10-16", + "value": 7.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-17", + "endDate": "2024-10-17", + "value": 6.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-18", + "endDate": "2024-10-18", + "value": 6.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-19", + "endDate": "2024-10-19", + "value": 5.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-20", + "endDate": "2024-10-20", + "value": 5.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-21", + "endDate": "2024-10-21", + "value": 5.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-22", + "endDate": "2024-10-22", + "value": 7.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-23", + "endDate": "2024-10-23", + "value": 7.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-24", + "endDate": "2024-10-24", + "value": 7.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-25", + "endDate": "2024-10-25", + "value": 7.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-26", + "endDate": "2024-10-26", + "value": 7.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-27", + "endDate": "2024-10-27", + "value": 7.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-28", + "endDate": "2024-10-28", + "value": 7.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-29", + "endDate": "2024-10-29", + "value": 6.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-30", + "endDate": "2024-10-30", + "value": 6.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-10-31", + "endDate": "2024-10-31", + "value": 6.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-01", + "endDate": "2024-11-01", + "value": 6.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-02", + "endDate": "2024-11-02", + "value": 6.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-03", + "endDate": "2024-11-03", + "value": 5.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-04", + "endDate": "2024-11-04", + "value": 4.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-05", + "endDate": "2024-11-05", + "value": 4.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-06", + "endDate": "2024-11-06", + "value": 5.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-07", + "endDate": "2024-11-07", + "value": 6.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-08", + "endDate": "2024-11-08", + "value": 6.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-09", + "endDate": "2024-11-09", + "value": 6.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-10", + "endDate": "2024-11-10", + "value": 6.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-11", + "endDate": "2024-11-11", + "value": 5.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-12", + "endDate": "2024-11-12", + "value": 5.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-13", + "endDate": "2024-11-13", + "value": 5.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-14", + "endDate": "2024-11-14", + "value": 5.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-15", + "endDate": "2024-11-15", + "value": 4.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-16", + "endDate": "2024-11-16", + "value": 5.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-17", + "endDate": "2024-11-17", + "value": 5.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-18", + "endDate": "2024-11-18", + "value": 5.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-19", + "endDate": "2024-11-19", + "value": 4.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-20", + "endDate": "2024-11-20", + "value": 3.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-21", + "endDate": "2024-11-21", + "value": 3.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-22", + "endDate": "2024-11-22", + "value": 2.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-23", + "endDate": "2024-11-23", + "value": 2.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-24", + "endDate": "2024-11-24", + "value": 1.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-25", + "endDate": "2024-11-25", + "value": 1.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-26", + "endDate": "2024-11-26", + "value": 2.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-27", + "endDate": "2024-11-27", + "value": 3.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-28", + "endDate": "2024-11-28", + "value": 3.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-29", + "endDate": "2024-11-29", + "value": 2.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-11-30", + "endDate": "2024-11-30", + "value": 3.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-01", + "endDate": "2024-12-01", + "value": 3.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-02", + "endDate": "2024-12-02", + "value": 3.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-03", + "endDate": "2024-12-03", + "value": 3.5, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-04", + "endDate": "2024-12-04", + "value": 2.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-05", + "endDate": "2024-12-05", + "value": 1.1, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-06", + "endDate": "2024-12-06", + "value": 1.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-07", + "endDate": "2024-12-07", + "value": 2.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-08", + "endDate": "2024-12-08", + "value": 1.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-09", + "endDate": "2024-12-09", + "value": 1.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-10", + "endDate": "2024-12-10", + "value": 1.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-11", + "endDate": "2024-12-11", + "value": 1.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-12", + "endDate": "2024-12-12", + "value": 0.6, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-13", + "endDate": "2024-12-13", + "value": 0.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-14", + "endDate": "2024-12-14", + "value": 0.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-15", + "endDate": "2024-12-15", + "value": 1.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-16", + "endDate": "2024-12-16", + "value": 0.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-17", + "endDate": "2024-12-17", + "value": 0.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-18", + "endDate": "2024-12-18", + "value": 0.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-19", + "endDate": "2024-12-19", + "value": 0.8, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-20", + "endDate": "2024-12-20", + "value": 2.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-21", + "endDate": "2024-12-21", + "value": 1.4, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-22", + "endDate": "2024-12-22", + "value": 1.7, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-23", + "endDate": "2024-12-23", + "value": 2.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-24", + "endDate": "2024-12-24", + "value": 1.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-25", + "endDate": "2024-12-25", + "value": 2.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-26", + "endDate": "2024-12-26", + "value": 2.9, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-27", + "endDate": "2024-12-27", + "value": 3.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-28", + "endDate": "2024-12-28", + "value": 3.0, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-29", + "endDate": "2024-12-29", + "value": 3.2, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-30", + "endDate": "2024-12-30", + "value": 3.3, + "unit": "°C" + }, + { + "parameter": "T", + "startDate": "2024-12-31", + "endDate": "2024-12-31", + "value": 2.1, + "unit": "°C" + } +] \ No newline at end of file diff --git a/tests/test_data/estonia_metadata_stations.geojson b/tests/test_data/estonia_metadata_stations.geojson new file mode 100644 index 0000000..e09fda2 --- /dev/null +++ b/tests/test_data/estonia_metadata_stations.geojson @@ -0,0 +1,1741 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "code": "SJA8821000", + "name": "Ahja jõgi: Ahja" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.1125992, + 58.2094013 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA0664000", + "name": "Ahja jõgi: Kiidjärve" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.997405, + 58.1582115 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7675000", + "name": "Ahja jõgi: Lääniste sild" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.1309477, + 58.268947 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA9946000", + "name": "Alajõgi: Alajõe" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.3929578, + 59.0308954 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8127000", + "name": "Alajõgi: Griini (Alajõe)" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.4189242, + 59.0163225 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5784000", + "name": "Audru jõgi: Audru" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.3641607, + 58.4130574 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA9683000", + "name": "Audru jõgi: Audru" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.3188628, + 58.4234552 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8211000", + "name": "Avijõgi: Mulgi" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.0499713, + 58.9525393 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2401000", + "name": "Avijõgi: Separa" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.0366758, + 58.9661517 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7196000", + "name": "Elva jõgi: Elva" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.434672, + 58.2116205 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8007000", + "name": "Emajõgi: Kavastu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.0450792, + 58.3769784 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2302000", + "name": "Emajõgi: Rannu-Jõesuu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.1341108, + 58.3849293 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5524000", + "name": "Emajõgi: Rannu-Jõesuu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.1340336, + 58.3854623 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7331000", + "name": "Emajõgi: Tartu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.7261801, + 58.3800219 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7982000", + "name": "Emajõgi: Tartu (Kvissental)" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.6919511, + 58.4041623 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA1593000", + "name": "Esna jõgi: Põhjaka I" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.6695539, + 58.8922222 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4385000", + "name": "Halliste jõgi: Riisa" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.9944344, + 58.4797269 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6180000", + "name": "Jägala jõgi: Jägala juga" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.1790053, + 59.4498423 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA3814000", + "name": "Jägala jõgi: Kehra" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.3404184, + 59.3443609 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2203000", + "name": "Jägala jõgi: Linnamäe (suue)" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.1518327, + 59.4716926 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8358000", + "name": "Jänijõgi: Jäneda" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.6945799, + 59.2331966 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA9179000", + "name": "Kasari jõgi: Kasari" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 23.9969306, + 58.7266338 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4483000", + "name": "Kasari jõgi: Kasari sild" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 23.989444, + 58.733611 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4444000", + "name": "Keila jõgi: Keila" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.4347064, + 59.3087907 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6896000", + "name": "Keila jõgi: Keila linn" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.4346953, + 59.3087697 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5960000", + "name": "Keila jõgi: suue, Keila-Joa" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.2945923, + 59.3952394 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5768000", + "name": "Kullavere jõgi: hüdrokeemia - Tartu-Mustvee mnt sild" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.9002112, + 58.7688448 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA1098000", + "name": "Kunda jõgi: Sämi" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.5827816, + 59.3730778 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA1417000", + "name": "Kunda jõgi: Sämi" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.5827816, + 59.3730778 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8841000", + "name": "Kunda jõgi: suue" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.5368744, + 59.5138634 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2259000", + "name": "Kääpa jõgi: Kääpa" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.8490114, + 58.7006869 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJB4324000", + "name": "Leisi jõgi: Elu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 22.6973784, + 58.5129301 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA1582000", + "name": "Leivajõgi: Pajupea" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.9689147, + 59.3809086 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2115000", + "name": "Linnusaare oja: Linnusaare" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.1977923, + 58.8708197 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJB4488000", + "name": "Linnussaare oja: Linnusaare" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.1977787, + 58.8708136 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7798000", + "name": "Loobu jõgi: Arbavere" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.963537, + 59.4400408 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5258000", + "name": "Loobu jõgi: Jõekääru (Vihasoo)" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.7849657, + 59.5516495 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7233000", + "name": "Luguse jõgi: Luguse" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 22.712465, + 58.8102604 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJB4327000", + "name": "Luguse jõgi: Luguse" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 22.7122665, + 58.8101679 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6159000", + "name": "Lõve jõgi: Uue-Lõve" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 22.8340819, + 58.3565439 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA0680000", + "name": "Lõve jõgi: Uue-Lõve sild" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 22.8344447, + 58.3563881 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7746000", + "name": "Mustajõgi: Narva karjääri" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.857163, + 59.267274 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6683000", + "name": "Mustjõgi: Taheva" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.3493756, + 57.598463 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7631000", + "name": "Mustjõgi: Tsirgumäe" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.3495741, + 57.5986839 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJB4487000", + "name": "Mustjõgi: Tulijärve" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.2397623, + 58.8845822 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5432000", + "name": "Narva jõgi: Kuningaküla" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.8039372, + 59.1244541 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4515000", + "name": "Narva jõgi: Narva linn" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 28.2066506, + 59.3827528 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA9741000", + "name": "Narva jõgi: Narvast allavoolu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 28.1479597, + 59.4146009 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4328000", + "name": "Narva jõgi: Vasknarva" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.7406177, + 59.0009313 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2718000", + "name": "Narva jõgi: Vasknarva" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.7403866, + 59.0010026 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4875000", + "name": "Narva veehoidla: Kulgu sadam" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 28.1726042, + 59.3435762 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6334000", + "name": "Navesti jõgi: Aesoo" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.0618244, + 58.5153039 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2802000", + "name": "Oostriku jõgi: Oostriku" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.0485211, + 58.8871229 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA0301000", + "name": "Pedja jõgi: Jõgeva sordiaretusjaam" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.400278, + 58.763333 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA0430000", + "name": "Pedja jõgi: Tõrve" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.3750688, + 58.6024249 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA3204000", + "name": "Pedja jõgi: Tõrve" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.3748957, + 58.6024865 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5411000", + "name": "Peipsi järv: Mehikoorma" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.4748245, + 58.237748 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5000000", + "name": "Peipsi järv: Mustvee" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.952583, + 58.8469775 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8843000", + "name": "Peipsi järv: Praaga" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.235444, + 58.4362965 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6279000", + "name": "Pirita jõgi: Kloostrimetsa" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.8795184, + 59.4662913 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5140000", + "name": "Pirita jõgi: Lükati sild" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.8557771, + 59.4612002 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5928000", + "name": "Piusa jõgi: Korela" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.7262554, + 57.8853395 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA9977000", + "name": "Piusa jõgi: Värska-Saatse mnt." + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.7361807, + 57.8893381 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8796000", + "name": "Porijõgi / Reola jõgi: Reola" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.7421148, + 58.273392 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA3124000", + "name": "Porijõgi: Reola - Vana-Kuuste tee (Uhti)" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.7421914, + 58.2733904 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4084000", + "name": "Prandi jõgi: Tori" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.4764901, + 58.7994165 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4253000", + "name": "Preedi jõgi: Varangu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.1106086, + 59.0344376 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA9316000", + "name": "Pudisoo jõgi: Pudisoo" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.5559266, + 59.5174736 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2129000", + "name": "Purtse jõgi: Lüganuse" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.0390659, + 59.3838602 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA9900000", + "name": "Purtse jõgi: suue (Tallinn-Narva mnt)" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.9939742, + 59.4314822 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4401000", + "name": "Pärlijõgi / Pudisoo jõgi: Pudisoo" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.5947537, + 59.5087001 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8483000", + "name": "Pärnu jõgi: Oore" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.7635324, + 58.4558223 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2731000", + "name": "Pärnu jõgi: Oore" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.7676674, + 58.4632528 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJB3766000", + "name": "Pärnu jõgi: Särevere" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.4211102, + 58.7889981 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA0234000", + "name": "Pärnu jõgi: Tahkuse" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.9157694, + 58.5184912 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJB4152000", + "name": "Pärnu jõgi: Türi-Alliku" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.4730234, + 58.8302558 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8617000", + "name": "Pärnu jõgi: Türi-Alliku" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.4731678, + 58.8302066 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8256000", + "name": "Põltsamaa jõgi: Pajusi" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.9277924, + 58.7032473 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7946000", + "name": "Põltsamaa jõgi: Rutikvere" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.963511, + 58.7897395 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA0177000", + "name": "Põltsamaa jõgi: Rõika" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.0516382, + 58.4880447 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5604000", + "name": "Pühajõgi: Toila-Oru" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.5300216, + 59.4231125 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA1934000", + "name": "Pühajõgi: suue" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.5298105, + 59.423084 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA1361000", + "name": "Rannapungerja jõgi: Mustvee mnt sild" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.1729456, + 58.9891264 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2558000", + "name": "Rannapungerja jõgi: Roostoja" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.1056794, + 59.0237441 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA9057000", + "name": "Reiu jõgi: Laadi" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.646769, + 58.2674458 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA0088000", + "name": "Reiu jõgi: Laadi koole" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.6316745, + 58.2833307 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8438000", + "name": "Reiu jõgi: Lähkma" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.685266, + 58.263695 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7093000", + "name": "Saarjõgi: Kaansoo" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.2215664, + 58.5772145 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7595000", + "name": "Saarjõgi: Kaansoo" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.2216984, + 58.5772033 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4331000", + "name": "Sargvere peakraav: Põhjaka II" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.6766976, + 58.8891385 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4736000", + "name": "Sauga jõgi: Nurme" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.501252, + 58.4459849 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4907000", + "name": "Sauga jõgi: Nurme" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.4977151, + 58.4463192 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8909000", + "name": "Selja jõgi: Varangu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.351557, + 59.4722208 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA3956000", + "name": "Selja jõgi: suue" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.4047596, + 59.5433815 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6231000", + "name": "Taebla jõgi: Saunja sild" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 23.6768014, + 58.9663122 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5321000", + "name": "Tagajõgi: Tudulinna" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.0750786, + 59.047442 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8056000", + "name": "Tagajõgi: Tudulinna" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.0888724, + 59.0361091 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA3914000", + "name": "Tamula järv: Roosisaare" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.9808458, + 57.8468306 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8903000", + "name": "Tarvastu jõgi: Tarvastu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.8843678, + 58.2287415 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4484000", + "name": "Tänassilma jõgi: Kõrtsi (Oiu)" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.9743438, + 58.3986646 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6842000", + "name": "Tänassilma jõgi: Tänassilma" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.8221168, + 58.3949017 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6880000", + "name": "Valgejõgi: Loksa jalakäijate sild" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.7117271, + 59.583024 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA9895000", + "name": "Valgejõgi: Porkuni, Oruveski talust põhjasuunas" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.1774982, + 59.1950014 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8764000", + "name": "Valgejõgi: Vanaküla" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.7892425, + 59.4677818 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8444000", + "name": "Velise jõgi: Valgu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.5925164, + 58.8169369 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA8799000", + "name": "Velise jõgi: Valgu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.6450127, + 58.8178888 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA9204000", + "name": "Vigala jõgi: Konuvere" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.4128838, + 58.8077828 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2051000", + "name": "Vihterpalu jõgi: Vihterpalu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 23.8733331, + 59.259444 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA3959000", + "name": "Vihterpalu jõgi: Vihterpalu" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 23.8665502, + 59.2521098 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6742000", + "name": "Vodja jõgi: Vodja" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.6444273, + 58.9390862 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA1133000", + "name": "Vodja jõgi: Vodja" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.6444588, + 58.9389825 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6005000", + "name": "Väike Emajõgi: Pikasilla" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.0610045, + 58.0826853 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA3413000", + "name": "Väike Emajõgi: Tõlliste" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.1325177, + 57.8510685 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2072000", + "name": "Vääna jõgi: Hüüru" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.5349324, + 59.3802651 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7837000", + "name": "Vääna jõgi: suue, Vääna-Jõesuu sild" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 24.363892, + 59.4314302 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7548000", + "name": "Võhandu jõgi: Himmiste" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.2081717, + 57.9474276 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA5230000", + "name": "Võhandu jõgi: Kirumpää" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 26.9932844, + 57.8660219 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4456000", + "name": "Võhandu jõgi: Räpina" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.4545805, + 58.0955844 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA7164000", + "name": "Võhandu jõgi: Räpinast allavoolu, Ristipalo küla" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.4761955, + 58.0879449 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA6796000", + "name": "Võhandu jõgi: Süvahavva" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 27.2180761, + 57.9891528 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA0106000", + "name": "Võisiku pkr: enne Võisiku paisjärve" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.9148046, + 58.6277128 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA4377000", + "name": "Õhne jõgi: Sõõriknurme (Suislepast allavoolu)" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.9972528, + 58.1489289 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2835000", + "name": "Õhne jõgi: Tõrva" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.9211191, + 58.0038061 + ] + } + }, + { + "type": "Feature", + "properties": { + "code": "SJA2589000", + "name": "Õhne jõgi: Tõrvast ülesvoolu, Roobe sild" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 25.9302639, + 57.9720018 + ] + } + } + ] +} \ No newline at end of file diff --git a/tests/test_data/estonia_metadata_stations.json b/tests/test_data/estonia_metadata_stations.json new file mode 100644 index 0000000..dc98a0c --- /dev/null +++ b/tests/test_data/estonia_metadata_stations.json @@ -0,0 +1,1192 @@ +[ + { + "code": "SJA8821000", + "name": "Ahja jõgi: Ahja", + "area": 896.51, + "overlapArea": 0.0, + "countryArea": 896.54, + "calculationArea": 896.51, + "distance": 25.55, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA0664000", + "name": "Ahja jõgi: Kiidjärve", + "area": 328.22, + "overlapArea": 0.0, + "countryArea": 328.22, + "calculationArea": 328.22, + "distance": 59.14, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA7675000", + "name": "Ahja jõgi: Lääniste sild", + "area": 933.84, + "overlapArea": 0.0, + "countryArea": 933.84, + "calculationArea": 933.84, + "distance": 17.04, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA9946000", + "name": "Alajõgi: Alajõe", + "area": 137.03, + "overlapArea": 0.0, + "countryArea": 137.04, + "calculationArea": 137.03, + "distance": 6.59, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA8127000", + "name": "Alajõgi: Griini (Alajõe)", + "area": 144.23, + "overlapArea": 0.0, + "countryArea": 144.23, + "calculationArea": 144.23, + "distance": 2.58, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA5784000", + "name": "Audru jõgi: Audru", + "area": 331.76, + "overlapArea": 0.0, + "countryArea": 331.76, + "calculationArea": 331.76, + "distance": 8.24, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA9683000", + "name": "Audru jõgi: Audru", + "area": 321.83, + "overlapArea": 0.0, + "countryArea": 321.87, + "calculationArea": 321.83, + "distance": 11.69, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA8211000", + "name": "Avijõgi: Mulgi", + "area": 396.95, + "overlapArea": 0.0, + "countryArea": 396.95, + "calculationArea": 396.95, + "distance": 1.62, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA2401000", + "name": "Avijõgi: Separa", + "area": 388.36, + "overlapArea": 0.0, + "countryArea": 388.39, + "calculationArea": 388.36, + "distance": 4.05, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA7196000", + "name": "Elva jõgi: Elva", + "area": 230.68, + "overlapArea": 0.0, + "countryArea": 230.69, + "calculationArea": 230.68, + "distance": 32.66, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA8007000", + "name": "Emajõgi: Kavastu", + "area": 8530.75, + "overlapArea": 0.0, + "countryArea": 8436.55, + "calculationArea": 8530.75, + "distance": 16.49, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA2302000", + "name": "Emajõgi: Rannu-Jõesuu", + "area": 3366.4, + "overlapArea": 0.0, + "countryArea": 3272.2, + "calculationArea": 3366.4, + "distance": 99.41, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA5524000", + "name": "Emajõgi: Rannu-Jõesuu", + "area": 3366.41, + "overlapArea": 0.0, + "countryArea": 3272.3, + "calculationArea": 3366.41, + "distance": 99.36, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA7331000", + "name": "Emajõgi: Tartu", + "area": 7849.21, + "overlapArea": 0.0, + "countryArea": 7755.61, + "calculationArea": 7849.21, + "distance": 41.5, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA7982000", + "name": "Emajõgi: Tartu (Kvissental)", + "area": 7837.74, + "overlapArea": 0.0, + "countryArea": 7743.54, + "calculationArea": 7837.74, + "distance": 45.03, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA1593000", + "name": "Esna jõgi: Põhjaka I", + "area": 196.12, + "overlapArea": 0.0, + "countryArea": 196.14, + "calculationArea": 196.12, + "distance": 8.39, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA4385000", + "name": "Halliste jõgi: Riisa", + "area": 1880.61, + "overlapArea": 0.0, + "countryArea": 1870.5, + "calculationArea": 1880.61, + "distance": 5.19, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA6180000", + "name": "Jägala jõgi: Jägala juga", + "area": 1278.04, + "overlapArea": 0.0, + "countryArea": 1278.04, + "calculationArea": 1128.58, + "distance": 4.52, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA3814000", + "name": "Jägala jõgi: Kehra", + "area": 1150.75, + "overlapArea": 0.0, + "countryArea": 1150.75, + "calculationArea": 866.07, + "distance": 26.23, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA2203000", + "name": "Jägala jõgi: Linnamäe (suue)", + "area": 1592.65, + "overlapArea": 0.0, + "countryArea": 1592.65, + "calculationArea": 1443.19, + "distance": 0.57, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA8358000", + "name": "Jänijõgi: Jäneda", + "area": 39.67, + "overlapArea": 0.0, + "countryArea": 39.67, + "calculationArea": 39.67, + "distance": 25.51, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA9179000", + "name": "Kasari jõgi: Kasari", + "area": 2642.45, + "overlapArea": 0.0, + "countryArea": 2642.76, + "calculationArea": 2642.45, + "distance": 19.62, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA4483000", + "name": "Kasari jõgi: Kasari sild", + "area": 2645.85, + "overlapArea": 0.0, + "countryArea": 2645.85, + "calculationArea": 2645.85, + "distance": 18.67, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA4444000", + "name": "Keila jõgi: Keila", + "area": 635.7, + "overlapArea": 0.0, + "countryArea": 635.74, + "calculationArea": 635.7, + "distance": 17.73, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA6896000", + "name": "Keila jõgi: Keila linn", + "area": 635.7, + "overlapArea": 0.0, + "countryArea": 635.7, + "calculationArea": 635.7, + "distance": 17.73, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA5960000", + "name": "Keila jõgi: suue, Keila-Joa", + "area": 673.08, + "overlapArea": 0.0, + "countryArea": 673.08, + "calculationArea": 673.08, + "distance": 1.81, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA5768000", + "name": "Kullavere jõgi: hüdrokeemia - Tartu-Mustvee mnt sild", + "area": 221.52, + "overlapArea": 0.0, + "countryArea": 221.52, + "calculationArea": 221.52, + "distance": 8.26, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA8841000", + "name": "Kunda jõgi: suue", + "area": 532.43, + "overlapArea": 0.0, + "countryArea": 532.43, + "calculationArea": 532.43, + "distance": 0.87, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA1098000", + "name": "Kunda jõgi: Sämi", + "area": 420.81, + "overlapArea": 0.0, + "countryArea": 420.82, + "calculationArea": 420.81, + "distance": 24.59, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA1417000", + "name": "Kunda jõgi: Sämi", + "area": 420.81, + "overlapArea": 0.0, + "countryArea": 420.81, + "calculationArea": 420.81, + "distance": 24.59, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA2259000", + "name": "Kääpa jõgi: Kääpa", + "area": 263.73, + "overlapArea": 0.0, + "countryArea": 263.76, + "calculationArea": 263.73, + "distance": 11.33, + "type": "HYDROLOGICAL" + }, + { + "code": "SJB4324000", + "name": "Leisi jõgi: Elu", + "area": 52.58, + "overlapArea": 0.0, + "countryArea": 52.58, + "calculationArea": 52.58, + "distance": 8.68, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA1582000", + "name": "Leivajõgi: Pajupea", + "area": 84.37, + "overlapArea": 0.0, + "countryArea": 84.37, + "calculationArea": 84.37, + "distance": 2.36, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA2115000", + "name": "Linnusaare oja: Linnusaare", + "area": 2.32, + "overlapArea": 0.0, + "countryArea": 2.32, + "calculationArea": 2.32, + "distance": 0.22, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJB4488000", + "name": "Linnussaare oja: Linnusaare", + "area": 2.32, + "overlapArea": 0.0, + "countryArea": 2.32, + "calculationArea": 2.32, + "distance": 0.0, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA7798000", + "name": "Loobu jõgi: Arbavere", + "area": 245.55, + "overlapArea": 0.0, + "countryArea": 245.55, + "calculationArea": 245.55, + "distance": 32.83, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA5258000", + "name": "Loobu jõgi: Jõekääru (Vihasoo)", + "area": 349.01, + "overlapArea": 0.0, + "countryArea": 349.01, + "calculationArea": 349.01, + "distance": 3.15, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA7233000", + "name": "Luguse jõgi: Luguse", + "area": 98.19, + "overlapArea": 0.0, + "countryArea": 98.2, + "calculationArea": 98.19, + "distance": 1.97, + "type": "HYDROLOGICAL" + }, + { + "code": "SJB4327000", + "name": "Luguse jõgi: Luguse", + "area": 98.19, + "overlapArea": 0.0, + "countryArea": 98.19, + "calculationArea": 98.19, + "distance": 1.97, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA6159000", + "name": "Lõve jõgi: Uue-Lõve", + "area": 142.52, + "overlapArea": 0.0, + "countryArea": 142.54, + "calculationArea": 142.52, + "distance": 2.89, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA0680000", + "name": "Lõve jõgi: Uue-Lõve sild", + "area": 142.52, + "overlapArea": 0.0, + "countryArea": 142.52, + "calculationArea": 142.52, + "distance": 2.86, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA7746000", + "name": "Mustajõgi: Narva karjääri", + "area": 293.52, + "overlapArea": 0.0, + "countryArea": 293.53, + "calculationArea": 293.52, + "distance": 6.8, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA6683000", + "name": "Mustjõgi: Taheva", + "area": 1765.68, + "overlapArea": 0.0, + "countryArea": 978.23, + "calculationArea": 1765.68, + "distance": 4.51, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA7631000", + "name": "Mustjõgi: Tsirgumäe", + "area": 1765.68, + "overlapArea": 0.0, + "countryArea": 978.4, + "calculationArea": 1765.68, + "distance": 4.54, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJB4487000", + "name": "Mustjõgi: Tulijärve", + "area": 19.44, + "overlapArea": 0.0, + "countryArea": 19.44, + "calculationArea": 19.44, + "distance": 0.0, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA5432000", + "name": "Narva jõgi: Kuningaküla", + "area": 47981.83, + "overlapArea": 0.0, + "countryArea": 16409.06, + "calculationArea": 47981.83, + "distance": 56.17, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA4515000", + "name": "Narva jõgi: Narva linn", + "area": 56047.31, + "overlapArea": 0.0, + "countryArea": 17148.92, + "calculationArea": 56047.31, + "distance": 14.08, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA9741000", + "name": "Narva jõgi: Narvast allavoolu", + "area": 56063.94, + "overlapArea": 0.0, + "countryArea": 17154.99, + "calculationArea": 56063.94, + "distance": 8.88, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA2718000", + "name": "Narva jõgi: Vasknarva", + "area": 47806.99, + "overlapArea": 0.0, + "countryArea": 16290.23, + "calculationArea": 47806.99, + "distance": 72.11, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA4328000", + "name": "Narva jõgi: Vasknarva", + "area": 47806.99, + "overlapArea": 0.0, + "countryArea": 16289.15, + "calculationArea": 47806.99, + "distance": 72.12, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA6334000", + "name": "Navesti jõgi: Aesoo", + "area": 1048.86, + "overlapArea": 0.0, + "countryArea": 1049.0, + "calculationArea": 1048.86, + "distance": 13.95, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA2802000", + "name": "Oostriku jõgi: Oostriku", + "area": 80.07, + "overlapArea": 0.0, + "countryArea": 80.07, + "calculationArea": 80.07, + "distance": 6.18, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA0301000", + "name": "Pedja jõgi: Jõgeva sordiaretusjaam", + "area": 631.52, + "overlapArea": 0.0, + "countryArea": 631.52, + "calculationArea": 631.52, + "distance": 70.88, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA0430000", + "name": "Pedja jõgi: Tõrve", + "area": 738.89, + "overlapArea": 0.0, + "countryArea": 738.89, + "calculationArea": 738.89, + "distance": 46.57, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA3204000", + "name": "Pedja jõgi: Tõrve", + "area": 738.89, + "overlapArea": 0.0, + "countryArea": 738.97, + "calculationArea": 738.89, + "distance": 46.57, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA6279000", + "name": "Pirita jõgi: Kloostrimetsa", + "area": 1970.01, + "overlapArea": 0.0, + "countryArea": 1970.01, + "calculationArea": 843.12, + "distance": 5.07, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA5140000", + "name": "Pirita jõgi: Lükati sild", + "area": 1975.95, + "overlapArea": 0.0, + "countryArea": 1975.95, + "calculationArea": 849.06, + "distance": 2.62, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA5928000", + "name": "Piusa jõgi: Korela", + "area": 743.82, + "overlapArea": 0.0, + "countryArea": 521.79, + "calculationArea": 741.32, + "distance": 14.37, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA9977000", + "name": "Piusa jõgi: Värska-Saatse mnt.", + "area": 745.66, + "overlapArea": 0.0, + "countryArea": 523.68, + "calculationArea": 743.16, + "distance": 12.92, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA8796000", + "name": "Porijõgi / Reola jõgi: Reola", + "area": 240.5, + "overlapArea": 0.0, + "countryArea": 240.52, + "calculationArea": 240.5, + "distance": 10.16, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA3124000", + "name": "Porijõgi: Reola - Vana-Kuuste tee (Uhti)", + "area": 240.5, + "overlapArea": 0.0, + "countryArea": 240.5, + "calculationArea": 240.5, + "distance": 10.16, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA4084000", + "name": "Prandi jõgi: Tori", + "area": 283.84, + "overlapArea": 0.0, + "countryArea": 283.88, + "calculationArea": 283.84, + "distance": 5.04, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA4253000", + "name": "Preedi jõgi: Varangu", + "area": 12.52, + "overlapArea": 0.0, + "countryArea": 12.52, + "calculationArea": 12.52, + "distance": 25.03, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA9316000", + "name": "Pudisoo jõgi: Pudisoo", + "area": 135.13, + "overlapArea": 0.0, + "countryArea": 135.13, + "calculationArea": 135.13, + "distance": 1.94, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA2129000", + "name": "Purtse jõgi: Lüganuse", + "area": 784.97, + "overlapArea": 0.0, + "countryArea": 784.98, + "calculationArea": 784.97, + "distance": 8.15, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA9900000", + "name": "Purtse jõgi: suue (Tallinn-Narva mnt)", + "area": 811.29, + "overlapArea": 0.0, + "countryArea": 811.29, + "calculationArea": 811.29, + "distance": 0.58, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA8256000", + "name": "Põltsamaa jõgi: Pajusi", + "area": 1082.14, + "overlapArea": 0.0, + "countryArea": 1082.25, + "calculationArea": 1082.14, + "distance": 47.7, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA7946000", + "name": "Põltsamaa jõgi: Rutikvere", + "area": 909.0, + "overlapArea": 0.0, + "countryArea": 909.0, + "calculationArea": 909.0, + "distance": 60.17, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA0177000", + "name": "Põltsamaa jõgi: Rõika", + "area": 1307.47, + "overlapArea": 0.0, + "countryArea": 1307.47, + "calculationArea": 1307.47, + "distance": 12.94, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA4401000", + "name": "Pärlijõgi / Pudisoo jõgi: Pudisoo", + "area": 124.34, + "overlapArea": 0.0, + "countryArea": 124.33, + "calculationArea": 124.34, + "distance": 6.66, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA2731000", + "name": "Pärnu jõgi: Oore", + "area": 5130.72, + "overlapArea": 0.0, + "countryArea": 5121.01, + "calculationArea": 5130.72, + "distance": 25.82, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA8483000", + "name": "Pärnu jõgi: Oore", + "area": 5132.92, + "overlapArea": 0.0, + "countryArea": 5122.64, + "calculationArea": 5132.92, + "distance": 24.88, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJB3766000", + "name": "Pärnu jõgi: Särevere", + "area": 572.14, + "overlapArea": 0.0, + "countryArea": 572.2, + "calculationArea": 553.17, + "distance": 101.81, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA0234000", + "name": "Pärnu jõgi: Tahkuse", + "area": 2047.12, + "overlapArea": 0.0, + "countryArea": 2047.37, + "calculationArea": 2047.12, + "distance": 41.39, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA8617000", + "name": "Pärnu jõgi: Türi-Alliku", + "area": 560.4, + "overlapArea": 0.0, + "countryArea": 560.4, + "calculationArea": 541.43, + "distance": 108.66, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJB4152000", + "name": "Pärnu jõgi: Türi-Alliku", + "area": 560.4, + "overlapArea": 0.0, + "countryArea": 560.46, + "calculationArea": 541.43, + "distance": 108.66, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA1934000", + "name": "Pühajõgi: suue", + "area": 215.23, + "overlapArea": 0.0, + "countryArea": 215.23, + "calculationArea": 215.23, + "distance": 0.78, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA5604000", + "name": "Pühajõgi: Toila-Oru", + "area": 215.23, + "overlapArea": 0.0, + "countryArea": 215.23, + "calculationArea": 215.23, + "distance": 0.77, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA1361000", + "name": "Rannapungerja jõgi: Mustvee mnt sild", + "area": 591.99, + "overlapArea": 0.0, + "countryArea": 591.99, + "calculationArea": 591.99, + "distance": 1.9, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA2558000", + "name": "Rannapungerja jõgi: Roostoja", + "area": 318.64, + "overlapArea": 0.0, + "countryArea": 318.66, + "calculationArea": 318.64, + "distance": 12.7, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA9057000", + "name": "Reiu jõgi: Laadi", + "area": 543.83, + "overlapArea": 0.0, + "countryArea": 536.07, + "calculationArea": 543.83, + "distance": 14.57, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA0088000", + "name": "Reiu jõgi: Laadi koole", + "area": 704.47, + "overlapArea": 0.0, + "countryArea": 696.68, + "calculationArea": 704.47, + "distance": 11.47, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA8438000", + "name": "Reiu jõgi: Lähkma", + "area": 534.08, + "overlapArea": 0.0, + "countryArea": 526.3, + "calculationArea": 534.08, + "distance": 17.94, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA7093000", + "name": "Saarjõgi: Kaansoo", + "area": 177.86, + "overlapArea": 0.0, + "countryArea": 177.86, + "calculationArea": 177.86, + "distance": 1.01, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA7595000", + "name": "Saarjõgi: Kaansoo", + "area": 177.86, + "overlapArea": 0.0, + "countryArea": 177.89, + "calculationArea": 177.86, + "distance": 1.0, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA4331000", + "name": "Sargvere peakraav: Põhjaka II", + "area": 7.67, + "overlapArea": 0.0, + "countryArea": 7.67, + "calculationArea": 7.67, + "distance": 0.97, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA4736000", + "name": "Sauga jõgi: Nurme", + "area": 546.14, + "overlapArea": 0.0, + "countryArea": 546.14, + "calculationArea": 546.14, + "distance": 10.37, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA4907000", + "name": "Sauga jõgi: Nurme", + "area": 550.07, + "overlapArea": 0.0, + "countryArea": 550.14, + "calculationArea": 550.07, + "distance": 10.14, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA3956000", + "name": "Selja jõgi: suue", + "area": 428.82, + "overlapArea": 0.0, + "countryArea": 428.82, + "calculationArea": 428.82, + "distance": 0.71, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA8909000", + "name": "Selja jõgi: Varangu", + "area": 376.19, + "overlapArea": 0.0, + "countryArea": 376.19, + "calculationArea": 376.19, + "distance": 18.19, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA6231000", + "name": "Taebla jõgi: Saunja sild", + "area": 108.22, + "overlapArea": 0.0, + "countryArea": 108.22, + "calculationArea": 108.22, + "distance": 1.05, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA5321000", + "name": "Tagajõgi: Tudulinna", + "area": 237.8, + "overlapArea": 0.0, + "countryArea": 237.8, + "calculationArea": 237.8, + "distance": 5.69, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA8056000", + "name": "Tagajõgi: Tudulinna", + "area": 240.17, + "overlapArea": 0.0, + "countryArea": 240.19, + "calculationArea": 240.17, + "distance": 3.76, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA8903000", + "name": "Tarvastu jõgi: Tarvastu", + "area": 83.34, + "overlapArea": 0.0, + "countryArea": 83.35, + "calculationArea": 83.34, + "distance": 8.68, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA4484000", + "name": "Tänassilma jõgi: Kõrtsi (Oiu)", + "area": 442.59, + "overlapArea": 0.0, + "countryArea": 442.59, + "calculationArea": 442.59, + "distance": 0.43, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA6842000", + "name": "Tänassilma jõgi: Tänassilma", + "area": 306.5, + "overlapArea": 0.0, + "countryArea": 306.53, + "calculationArea": 306.5, + "distance": 17.49, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA6880000", + "name": "Valgejõgi: Loksa jalakäijate sild", + "area": 354.94, + "overlapArea": 0.0, + "countryArea": 354.94, + "calculationArea": 354.94, + "distance": 0.34, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA9895000", + "name": "Valgejõgi: Porkuni, Oruveski talust põhjasuunas", + "area": 40.59, + "overlapArea": 0.0, + "countryArea": 40.59, + "calculationArea": 40.59, + "distance": 88.85, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA8764000", + "name": "Valgejõgi: Vanaküla", + "area": 307.94, + "overlapArea": 0.0, + "countryArea": 307.94, + "calculationArea": 307.94, + "distance": 27.23, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA8444000", + "name": "Velise jõgi: Valgu", + "area": 155.77, + "overlapArea": 0.0, + "countryArea": 155.77, + "calculationArea": 155.77, + "distance": 37.84, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA8799000", + "name": "Velise jõgi: Valgu", + "area": 121.48, + "overlapArea": 0.0, + "countryArea": 121.5, + "calculationArea": 121.48, + "distance": 42.02, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA9204000", + "name": "Vigala jõgi: Konuvere", + "area": 584.49, + "overlapArea": 0.0, + "countryArea": 584.56, + "calculationArea": 584.49, + "distance": 28.28, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA2051000", + "name": "Vihterpalu jõgi: Vihterpalu", + "area": 480.66, + "overlapArea": 0.0, + "countryArea": 480.66, + "calculationArea": 480.66, + "distance": 1.62, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA3959000", + "name": "Vihterpalu jõgi: Vihterpalu", + "area": 478.32, + "overlapArea": 0.0, + "countryArea": 478.36, + "calculationArea": 478.32, + "distance": 2.61, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA1133000", + "name": "Vodja jõgi: Vodja", + "area": 71.47, + "overlapArea": 0.0, + "countryArea": 71.48, + "calculationArea": 71.47, + "distance": 7.03, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA6742000", + "name": "Vodja jõgi: Vodja", + "area": 71.47, + "overlapArea": 0.0, + "countryArea": 71.47, + "calculationArea": 71.47, + "distance": 7.04, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA7548000", + "name": "Võhandu jõgi: Himmiste", + "area": 843.21, + "overlapArea": 0.0, + "countryArea": 843.21, + "calculationArea": 829.03, + "distance": 60.2, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA5230000", + "name": "Võhandu jõgi: Kirumpää", + "area": 584.78, + "overlapArea": 0.0, + "countryArea": 584.75, + "calculationArea": 584.78, + "distance": 91.11, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA4456000", + "name": "Võhandu jõgi: Räpina", + "area": 1132.34, + "overlapArea": 0.0, + "countryArea": 1132.29, + "calculationArea": 1118.16, + "distance": 12.16, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA7164000", + "name": "Võhandu jõgi: Räpinast allavoolu, Ristipalo küla", + "area": 1135.86, + "overlapArea": 0.0, + "countryArea": 1135.86, + "calculationArea": 1121.68, + "distance": 10.14, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA6796000", + "name": "Võhandu jõgi: Süvahavva", + "area": 915.37, + "overlapArea": 0.0, + "countryArea": 915.37, + "calculationArea": 901.19, + "distance": 51.74, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA0106000", + "name": "Võisiku pkr: enne Võisiku paisjärve", + "area": 26.55, + "overlapArea": 0.0, + "countryArea": 26.55, + "calculationArea": 26.55, + "distance": 3.5, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA6005000", + "name": "Väike Emajõgi: Pikasilla", + "area": 1255.49, + "overlapArea": 0.0, + "countryArea": 1172.22, + "calculationArea": 1255.49, + "distance": 1.71, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA3413000", + "name": "Väike Emajõgi: Tõlliste", + "area": 1044.84, + "overlapArea": 0.0, + "countryArea": 974.93, + "calculationArea": 1044.84, + "distance": 37.39, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA2072000", + "name": "Vääna jõgi: Hüüru", + "area": 202.07, + "overlapArea": 0.0, + "countryArea": 202.08, + "calculationArea": 202.07, + "distance": 28.85, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA7837000", + "name": "Vääna jõgi: suue, Vääna-Jõesuu sild", + "area": 309.6, + "overlapArea": 0.0, + "countryArea": 309.6, + "calculationArea": 309.6, + "distance": 1.93, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA4377000", + "name": "Õhne jõgi: Sõõriknurme (Suislepast allavoolu)", + "area": 576.52, + "overlapArea": 0.0, + "countryArea": 565.59, + "calculationArea": 576.52, + "distance": 6.09, + "type": "HYDROCHEMICAL" + }, + { + "code": "SJA2835000", + "name": "Õhne jõgi: Tõrva", + "area": 272.25, + "overlapArea": 0.0, + "countryArea": 261.32, + "calculationArea": 272.25, + "distance": 39.21, + "type": "HYDROLOGICAL" + }, + { + "code": "SJA2589000", + "name": "Õhne jõgi: Tõrvast ülesvoolu, Roobe sild", + "area": 261.41, + "overlapArea": 0.0, + "countryArea": 250.48, + "calculationArea": 261.41, + "distance": 45.45, + "type": "HYDROCHEMICAL" + } +] \ No newline at end of file diff --git a/tests/test_estonia.py b/tests/test_estonia.py new file mode 100644 index 0000000..43e3e10 --- /dev/null +++ b/tests/test_estonia.py @@ -0,0 +1,153 @@ +import json +import os +import unittest +from pathlib import Path +from unittest.mock import MagicMock, patch + +import pandas as pd +from pandas.testing import assert_frame_equal + +from rivretrieve import EstoniaFetcher, constants + + +class TestEstoniaFetcher(unittest.TestCase): + def setUp(self): + self.fetcher = EstoniaFetcher() + self.test_data_dir = Path(os.path.dirname(__file__)) / "test_data" + + def _load_json(self, filename): + with open(self.test_data_dir / filename, "r", encoding="utf-8") as file_handle: + return json.load(file_handle) + + @patch("rivretrieve.utils.requests_retry_session") + def test_get_metadata_uses_estmodel_json_and_geojson(self, mock_requests_retry_session): + mock_session = MagicMock() + mock_requests_retry_session.return_value = mock_session + + stations_response = MagicMock() + stations_response.json.return_value = self._load_json("estonia_metadata_stations.json") + stations_response.raise_for_status = MagicMock() + + geojson_response = MagicMock() + geojson_response.json.return_value = self._load_json("estonia_metadata_stations.geojson") + geojson_response.raise_for_status = MagicMock() + + mock_session.get.side_effect = [stations_response, geojson_response] + + result_df = self.fetcher.get_metadata() + + self.assertEqual(len(result_df), 59) + self.assertEqual(result_df.index.name, constants.GAUGE_ID) + self.assertIn("SJA8821000", result_df.index) + self.assertEqual(result_df.loc["SJA8821000", constants.STATION_NAME], "Ahja jõgi: Ahja") + self.assertEqual(result_df.loc["SJA8821000", constants.RIVER], "Ahja jõgi") + self.assertEqual(result_df.loc["SJA8821000", "location"], "Ahja") + self.assertAlmostEqual(result_df.loc["SJA8821000", constants.AREA], 896.51) + self.assertAlmostEqual(result_df.loc["SJA8821000", constants.LATITUDE], 58.2094013) + self.assertAlmostEqual(result_df.loc["SJA8821000", constants.LONGITUDE], 27.1125992) + self.assertEqual(result_df.loc["SJA8821000", constants.COUNTRY], self.fetcher.COUNTRY) + self.assertEqual(result_df.loc["SJA8821000", constants.SOURCE], self.fetcher.SOURCE) + self.assertEqual(mock_session.get.call_count, 2) + self.assertEqual(mock_session.get.call_args_list[0].args[0], self.fetcher.STATIONS_URL) + self.assertEqual(mock_session.get.call_args_list[1].args[0], self.fetcher.GEOJSON_URL) + + @patch("rivretrieve.utils.requests_retry_session") + def test_get_data_discharge_daily_mean(self, mock_requests_retry_session): + mock_session = MagicMock() + mock_requests_retry_session.return_value = mock_session + + mock_response = MagicMock() + mock_response.json.return_value = self._load_json("estonia_SJA8821000_discharge_daily_mean_2024.json") + mock_response.raise_for_status = MagicMock() + mock_session.get.return_value = mock_response + + result_df = self.fetcher.get_data( + gauge_id="SJA8821000", + variable=constants.DISCHARGE_DAILY_MEAN, + start_date="2024-01-01", + end_date="2024-01-03", + ) + + expected_df = pd.DataFrame( + { + constants.TIME_INDEX: pd.to_datetime(["2024-01-01", "2024-01-02", "2024-01-03"]), + constants.DISCHARGE_DAILY_MEAN: [6.89, 6.77, 6.65], + } + ).set_index(constants.TIME_INDEX) + + assert_frame_equal(result_df, expected_df) + mock_session.get.assert_called_once() + self.assertEqual( + mock_session.get.call_args.args[0], + self.fetcher.MEASUREMENTS_URL.format(gauge_id="SJA8821000"), + ) + self.assertEqual( + mock_session.get.call_args.kwargs["params"], + {"parameter": "Q", "type": "MEAN", "start-year": 2024, "end-year": 2024}, + ) + + @patch("rivretrieve.utils.requests_retry_session") + def test_get_data_stage_daily_max(self, mock_requests_retry_session): + mock_session = MagicMock() + mock_requests_retry_session.return_value = mock_session + + mock_response = MagicMock() + mock_response.json.return_value = self._load_json("estonia_SJA8821000_stage_daily_max_2024.json") + mock_response.raise_for_status = MagicMock() + mock_session.get.return_value = mock_response + + result_df = self.fetcher.get_data( + gauge_id="SJA8821000", + variable=constants.STAGE_DAILY_MAX, + start_date="2024-01-01", + end_date="2024-01-03", + ) + + expected_df = pd.DataFrame( + { + constants.TIME_INDEX: pd.to_datetime(["2024-01-01", "2024-01-02", "2024-01-03"]), + constants.STAGE_DAILY_MAX: [1.45, 1.45, 1.43], + } + ).set_index(constants.TIME_INDEX) + + assert_frame_equal(result_df, expected_df) + mock_session.get.assert_called_once() + self.assertEqual( + mock_session.get.call_args.kwargs["params"], + {"parameter": "H", "type": "MAXIMUM", "start-year": 2024, "end-year": 2024}, + ) + + @patch("rivretrieve.utils.requests_retry_session") + def test_get_data_water_temperature_daily_mean(self, mock_requests_retry_session): + mock_session = MagicMock() + mock_requests_retry_session.return_value = mock_session + + mock_response = MagicMock() + mock_response.json.return_value = self._load_json("estonia_SJA8821000_water_temperature_daily_mean_2024.json") + mock_response.raise_for_status = MagicMock() + mock_session.get.return_value = mock_response + + result_df = self.fetcher.get_data( + gauge_id="SJA8821000", + variable=constants.WATER_TEMPERATURE_DAILY_MEAN, + start_date="2024-01-01", + end_date="2024-01-03", + ) + + expected_df = pd.DataFrame( + { + constants.TIME_INDEX: pd.to_datetime(["2024-01-01", "2024-01-02", "2024-01-03"]), + constants.WATER_TEMPERATURE_DAILY_MEAN: [0.3, 0.3, 0.3], + } + ).set_index(constants.TIME_INDEX) + + assert_frame_equal(result_df, expected_df) + mock_session.get.assert_called_once() + self.assertEqual( + mock_session.get.call_args.kwargs["params"], + {"parameter": "T", "type": "MEAN", "start-year": 2024, "end-year": 2024}, + ) + + +if __name__ == "__main__": + unittest.main()