Source code for sondera.clients.smhi.hydroobs

# -*- coding: utf-8 -*-
"""
Client for SMHI hydroobs open-data api
Inherits from metobs
"""
# All dates in the JSON answers are in Unix time stamp. Timezone UTC  # FIXME
# Allow for returning data in different timezone ?

import pandas as pd

from .metobs import MetObsClient
from ..parameters import ParametersHydroObs as Parameters
from ...datatypes import Coordinate, DataSeries, StationType, Station


[docs] class HydroObsClient(MetObsClient): _api_url = 'https://opendata-download-hydroobs.smhi.se/api/version/1.0' def __init__(self): super().__init__() self.Parameters = Parameters def _create_data_obj(self, aux_df, obs_s, parameter, station_md, station_name, md_str): pos_coord = Coordinate(y=station_md['latitude'], x=station_md['longitude'], epsg_xy=4326) station_obj = Station(name=station_name, id=int(station_md['key']), agency=station_md.get('owner', 'SMHI'), position=pos_coord, station_type=StationType.HydroStation, active_station=station_md['active'], active_period=[pd.to_datetime(station_md['from'], unit='ms', origin='unix'), pd.to_datetime(station_md['to'], unit='ms', origin='unix')], last_updated=None, station_info={}) data_obj = DataSeries(station=station_obj, data=obs_s, aux_data=aux_df, parameter=parameter, metadata=md_str, start_date=obs_s.index.min(), end_date=obs_s.index.max()) return data_obj