Implemented Non Autorgressive Quantile Regression
This commit is contained in:
@@ -9,11 +9,24 @@ import pytz
|
||||
|
||||
history_data_path = "../../data/history-quarter-hour-data.csv"
|
||||
forecast_data_path = "../../data/load_forecast.csv"
|
||||
pv_forecast_data_path = "../../data/pv_gen_forecast.csv"
|
||||
wind_forecast_data_path = "../../data/wind_gen_forecast.csv"
|
||||
|
||||
class DataConfig:
|
||||
NRV_HISTORY: bool = True
|
||||
LOAD_FORECAST: bool = True
|
||||
LOAD_HISTORY: bool = False
|
||||
def __init__(self):
|
||||
self.NRV_HISTORY: bool = True
|
||||
|
||||
### LOAD ###
|
||||
self.LOAD_FORECAST: bool = True
|
||||
self.LOAD_HISTORY: bool = False
|
||||
|
||||
### PV ###
|
||||
self.PV_FORECAST: bool = False
|
||||
self.PV_HISTORY: bool = False
|
||||
|
||||
### WIND ###
|
||||
self.WIND_FORECAST: bool = False
|
||||
self.WIND_HISTORY: bool = False
|
||||
|
||||
class DataProcessor:
|
||||
def __init__(self, data_config: DataConfig):
|
||||
@@ -26,8 +39,12 @@ class DataProcessor:
|
||||
|
||||
self.history_features = self.get_nrv_history()
|
||||
self.future_features = self.get_load_forecast()
|
||||
self.pv_forecast = self.get_pv_forecast()
|
||||
self.wind_forecast = self.get_wind_forecast()
|
||||
|
||||
self.all_features = self.history_features.merge(self.future_features, on='datetime', how='left')
|
||||
self.all_features = self.all_features.merge(self.pv_forecast, on='datetime', how='left')
|
||||
self.all_features = self.all_features.merge(self.wind_forecast, on='datetime', how='left')
|
||||
|
||||
self.data_config = data_config
|
||||
|
||||
@@ -69,6 +86,31 @@ class DataProcessor:
|
||||
df.sort_values(by="datetime", inplace=True)
|
||||
return df
|
||||
|
||||
def get_pv_forecast(self):
|
||||
df = pd.read_csv(pv_forecast_data_path, delimiter=';')
|
||||
|
||||
df = df.rename(columns={'dayahead11hforecast': 'pv_forecast', 'Datetime': 'datetime'})
|
||||
df = df[['datetime', 'pv_forecast']]
|
||||
|
||||
df = df.groupby('datetime').mean().reset_index()
|
||||
df['datetime'] = pd.to_datetime(df['datetime'], utc=True)
|
||||
df.sort_values(by="datetime", inplace=True)
|
||||
return df
|
||||
|
||||
def get_wind_forecast(self):
|
||||
df = pd.read_csv(wind_forecast_data_path, delimiter=';')
|
||||
|
||||
df = df.rename(columns={'dayaheadforecast': 'wind_forecast', 'datetime': 'datetime'})
|
||||
df = df[['datetime', 'wind_forecast']]
|
||||
|
||||
# remove nan rows
|
||||
df = df[~df['wind_forecast'].isnull()]
|
||||
|
||||
df = df.groupby('datetime').mean().reset_index()
|
||||
df['datetime'] = pd.to_datetime(df['datetime'], utc=True)
|
||||
df.sort_values(by="datetime", inplace=True)
|
||||
return df
|
||||
|
||||
def set_batch_size(self, batch_size: int):
|
||||
self.batch_size = batch_size
|
||||
|
||||
|
||||
Reference in New Issue
Block a user