Skip to content
Snippets Groups Projects

Resolve "load era5 data from toar db"

Merged Ghost User requested to merge lukas_issue449_refac_load-era5-data-from-toar-db into develop
1 file
+ 19
19
Compare changes
  • Side-by-side
  • Inline
@@ -375,37 +375,37 @@ class DataHandlerSingleStation(AbstractDataHandler):
:return: downloaded data and its meta data
"""
df_all = {}
df_era5, df_toar = None, None
meta_era5, meta_toar = None, None
df_era5_local, df_toar = None, None
meta_era5_local, meta_toar = None, None
if data_origin is not None:
era5_origin = filter_dict_by_value(data_origin, "era5", True)
era5_stats = select_from_dict(statistics_per_var, era5_origin.keys())
toar_origin = filter_dict_by_value(data_origin, "era5", False)
toar_stats = select_from_dict(statistics_per_var, era5_origin.keys(), filter_cond=False)
assert len(era5_origin) + len(toar_origin) == len(data_origin)
assert len(era5_stats) + len(toar_stats) == len(statistics_per_var)
era5_local_origin = filter_dict_by_value(data_origin, "era5_local", True)
era5_local_stats = select_from_dict(statistics_per_var, era5_local_origin.keys())
toar_origin = filter_dict_by_value(data_origin, "era5_local", False)
toar_stats = select_from_dict(statistics_per_var, era5_local_origin.keys(), filter_cond=False)
assert len(era5_local_origin) + len(toar_origin) == len(data_origin)
assert len(era5_local_stats) + len(toar_stats) == len(statistics_per_var)
else:
era5_origin, toar_origin = None, None
era5_stats, toar_stats = statistics_per_var, statistics_per_var
era5_local_origin, toar_origin = None, None
era5_local_stats, toar_stats = statistics_per_var, statistics_per_var
# load data
if era5_origin is not None and len(era5_stats) > 0:
if era5_local_origin is not None and len(era5_local_stats) > 0:
# load era5 data
df_era5, meta_era5 = data_sources.era5.load_era5(station_name=station, stat_var=era5_stats,
sampling=sampling, data_origin=era5_origin)
df_era5_local, meta_era5_local = data_sources.era5.load_era5(
station_name=station, stat_var=era5_local_stats, sampling=sampling, data_origin=era5_local_origin)
if toar_origin is None or len(toar_stats) > 0:
# load combined data from toar-data (v2 & v1)
df_toar, meta_toar = data_sources.toar_data.download_toar(station=station, toar_stats=toar_stats,
sampling=sampling, data_origin=toar_origin)
if df_era5 is None and df_toar is None:
raise data_sources.toar_data.EmptyQueryResult(f"No data available for era5 and toar-data")
if df_era5_local is None and df_toar is None:
raise data_sources.toar_data.EmptyQueryResult(f"No data available for era5_local and toar-data")
df = pd.concat([df_era5, df_toar], axis=1, sort=True)
if meta_era5 is not None and meta_toar is not None:
meta = meta_era5.combine_first(meta_toar)
df = pd.concat([df_era5_local, df_toar], axis=1, sort=True)
if meta_era5_local is not None and meta_toar is not None:
meta = meta_era5_local.combine_first(meta_toar)
else:
meta = meta_era5 if meta_era5 is not None else meta_toar
meta = meta_era5_local if meta_era5_local is not None else meta_toar
meta.loc["data_origin"] = str(data_origin)
meta.loc["statistics_per_var"] = str(statistics_per_var)
Loading