Skip to content
Snippets Groups Projects
Commit b4c6d786 authored by leufen1's avatar leufen1
Browse files

rename stations to station, create helpers module for general functions

parent 24bc55c3
No related branches found
No related tags found
2 merge requests!6updated inception model and data prep class,!4data prep class
......@@ -40,8 +40,9 @@ Thumbs.db
.idea/
/venv/
# check plot folder #
#####################
# don't check data and plot folder #
####################################
/data/
/plots/
# tmp folder #
......
......@@ -6,22 +6,23 @@ import xarray as xr
import pandas as pd
import logging
import os
from src import join
from src import join, helpers
from typing import Union, List
class DataPrep:
def __init__(self, path: str, network: str, stations, variables, **kwargs):
def __init__(self, path: str, network: str, station: Union[str, List[str]], variables, **kwargs):
self.path = path
self.network = network
self.stations = stations
self.station = helpers.to_list(station)
self.variables = variables
self.statistics_per_var = kwargs.get("statistics_per_var", None)
if self.statistics_per_var is not None:
self.load_data()
else:
raise NotImplementedError
# self.data, self.meta = Fkf.read_hourly_data_from_csv_to_xarray(self.path, self.network, self.stations,
# self.data, self.meta = Fkf.read_hourly_data_from_csv_to_xarray(self.path, self.network, self.station,
# self.variables, **kwargs)
self.mean = None
self.std = None
......@@ -33,7 +34,7 @@ class DataPrep:
self.meta = None
def load_data(self):
self.check_path_and_create(self.path)
self.check_path_and_create()
file_name = self._set_file_name()
meta_file = self._set_meta_file_name()
try:
......@@ -42,8 +43,8 @@ class DataPrep:
except FileNotFoundError as e:
logging.warning(e)
df_all = {}
df, self.meta = join.download_join(station_name=self.stations, statvar=self.statistics_per_var)
df_all[self.stations[0]] = df
df, self.meta = join.download_join(station_name=self.station, statvar=self.statistics_per_var)
df_all[self.station[0]] = df
# convert df_all to xarray
xarr = {k: xr.DataArray(v, dims=['datetime', 'variables']) for k, v in df_all.items()}
xarr = xr.Dataset(xarr).to_array(dim='Stations')
......@@ -53,20 +54,19 @@ class DataPrep:
self.meta.to_csv(meta_file)
def _set_file_name(self):
return f"{self.path}{''.join(self.stations)}_{'_'.join(sorted(self.variables))}.nc"
return f"{self.path}{''.join(self.station)}_{'_'.join(sorted(self.variables))}.nc"
def _set_meta_file_name(self):
return f"{self.path}{''.join(self.stations)}_{'_'.join(sorted(self.variables))}_meta.csv"
return f"{self.path}{''.join(self.station)}_{'_'.join(sorted(self.variables))}_meta.csv"
def __repr__(self):
return f"Dataprep(path='{self.path}', network='{self.network}', stations={self.stations}, " \
return f"Dataprep(path='{self.path}', network='{self.network}', station={self.station}, " \
f"variables={self.variables}, **{self.kwargs}"
@staticmethod
def check_path_and_create(path):
def check_path_and_create(self):
try:
os.makedirs(path)
logging.info("Created path: {}".format(path))
os.makedirs(self.path)
logging.info("Created path: {}".format(self.path))
except FileExistsError:
pass
......
__author__ = 'Lukas Leufen'
__date__ = '2019-10-21'
def to_list(arg):
if not isinstance(arg, list):
arg = [arg]
return arg
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment