Coverage for mlair/helpers/data_sources/toar_data.py: 50%
18 statements
« prev ^ index » next coverage.py v6.4.2, created at 2023-12-18 17:51 +0000
« prev ^ index » next coverage.py v6.4.2, created at 2023-12-18 17:51 +0000
1__author__ = "Lukas Leufen"
2__date__ = "2022-07-05"
4from . import join, toar_data_v2
6import requests
7import pandas as pd
8from .data_loader import EmptyQueryResult
9import xarray as xr
12def download_toar(station, toar_stats, sampling, data_origin, window_dim, time_dim, target_dim):
13 try:
14 # load data from toar-data (v2)
15 df_toar, meta_toar = toar_data_v2.download_toar(station, toar_stats, sampling=sampling, data_origin=data_origin)
16 except (AttributeError, EmptyQueryResult, KeyError, requests.ConnectionError, ValueError, IndexError):
17 df_toar, meta_toar = None, None
19 df_toar_xr = xr.DataArray(df_toar, dims=[time_dim, target_dim])
20 df_toar_xr = df_toar_xr.expand_dims({window_dim: [0]})
21 return df_toar_xr, meta_toar
24def merge_toar_join(df_toar, df_join, sampling):
25 start_date = min([df_toar.index.min(), df_join.index.min()])
26 end_date = max([df_toar.index.max(), df_join.index.max()])
27 freq = {"hourly": "1H", "daily": "1d"}.get(sampling)
28 full_time = pd.date_range(start_date, end_date, freq=freq)
29 full_data = df_toar.reindex(full_time)
30 full_data.update(df_join, overwrite=False)
31 return full_data