Source code for aqua_fetch.rr._rrluleasweden


import os
from typing import Union, Dict

import pandas as pd

from .._datasets import Datasets
from ..utils import check_st_en

from ._map import (
    catchment_area,
    gauge_latitude,
    gauge_longitude,
    slope
    )


[docs] class RRLuleaSweden(Datasets): """ Rainfall runoff data for an urban catchment from 2016-2019 following the work of `Broekhuizen et al., 2020 <https://doi.org/10.5194/hess-24-869-2020>`_ . """ url = "https://zenodo.org/record/3931582"
[docs] def __init__(self, path=None, **kwargs): super().__init__(path=path, **kwargs) self.path = path self._download()
[docs] def fetch( self, st: Union[str, int, pd.DatetimeIndex] = None, en: Union[str, int, pd.DatetimeIndex] = None ): """fetches rainfall runoff data Parameters ---------- st : optional start of data to be fetched. By default the data starts from 2016-06-16 20:50:00 en : optional end of data to be fetched. By default the end is 2019-09-15 18:41 """ flow = self.fetch_flow(st,en) pcp = self.fetch_pcp(st, en) return flow, pcp
[docs] def fetch_flow( self, st: Union[str, int, pd.DatetimeIndex] = None, en: Union[str, int, pd.DatetimeIndex] = None )->pd.DataFrame: """fetches flow data Parameters ---------- st : optional start of data to be fetched. By default the data starts from 2016-06-16 20:50:00 en : optional end of data to be fetched. By default the end is 2019-09-15 18:35:00 Returns ------- pd.DataFrame a dataframe of shape (37_618, 3) where the columns are velocity, level and flow rate Examples -------- >>> from aqua_fetch import RRLuleaSweden >>> dataset = RRLuleaSweden() >>> flow = dataset.fetch_flow() >>> flow.shape (37618, 3) """ fname = os.path.join(self.path, "flow_2016_2019.csv") df = pd.read_csv(fname, sep=";") df.index = pd.to_datetime(df.pop("time")) return check_st_en(df, st, en)
[docs] def fetch_pcp( self, st: Union[str, int, pd.DatetimeIndex] = None, en: Union[str, int, pd.DatetimeIndex] = None )->pd.DataFrame: """fetches precipitation data Parameters ---------- st : optional start of data to be fetched. By default the data starts from 2016-06-16 19:48:00 en : optional end of data to be fetched. By default the end is 2019-10-26 23:59:00 Returns ------- pd.DataFrame a dataframe of shape (967_080, 1) Examples -------- >>> from aqua_fetch import RRLuleaSweden >>> dataset = RRLuleaSweden() >>> pcp = dataset.fetch_pcp() >>> pcp.shape (967080, 1) """ fname = os.path.join(self.path, "prec_2016_2019.csv") df = pd.read_csv(fname, sep=";") df.index = pd.to_datetime(df.pop("time")) return check_st_en(df, st, en)