def gen_fit_df(ts_start, ts_end, varnames, timeshifts, pointcode=71699): """ timeshifts must be integer number of hours. Posetive values only, dataframe contains columns with the variables minus their value 'timeshift' hours before. """ df = pd.DataFrame() df['prod'] = sq.fetch_production(ts_start, ts_end) for timeshift in timeshifts: df['prod%ihbefore'%timeshift] = sq.fetch_production(h_hoursbefore(ts_start, timeshift),\ h_hoursbefore(ts_end, timeshift)) for v in varnames: ens_mean = ens.load_ens_mean_avail_at10_series(v, ts_start, ts_end, pointcode=71699) ens_mean_before = ens.load_ens_mean_avail_at10_series(v,\ h_hoursbefore(ts_start, timeshift),\ h_hoursbefore(ts_end, timeshift),\ pointcode=71699) df['%s%ihdiff'%(v,timeshift)] = ens_mean - ens_mean_before return df
def gen_fit_df(ts_start, ts_end, varnames, timeshifts, pointcode=71699): """ timeshifts must be integer number of hours. Posetive values only, dataframe contains columns with the variables minus their value 'timeshift' hours before. """ df = pd.DataFrame() df['prod'] = sq.fetch_production(ts_start, ts_end) for timeshift in timeshifts: df['prod%ihbefore'%timeshift] = sq.fetch_production(h_hoursbefore(ts_start, timeshift),\ h_hoursbefore(ts_end, timeshift)) for v in varnames: ens_mean = ens.load_ens_mean_avail_at10_series(v, ts_start, ts_end, pointcode=71699) ens_mean_before = ens.load_ens_mean_avail_at10_series(v,\ h_hoursbefore(ts_start, timeshift),\ h_hoursbefore(ts_end, timeshift),\ pointcode=71699) df['%s%ihdiff' % (v, timeshift)] = ens_mean - ens_mean_before return df
from model_selection import gen_all_combinations, rmse, mae, mape import sql_tools as sq import ensemble_tools as ens #%% SVR experinment ts = ens.gen_hourly_timesteps(dt.datetime(2016,1,26,1), dt.datetime(2016,4,1,0)) X = pd.read_pickle('48h60h168h_lagged_X.pkl') # run model_selection_ext_horizon to generate these files y = pd.read_pickle('prod_to_gowith.pkl') # add more predictor data: for v in ['Tout', 'vWind', 'hum', 'sunRad']: X[v] = ens.load_ens_mean_avail_at10_series(v, ts[0], ts[-1], pointcode=71699) #X['weekdays'] = [t.weekday() for t in ts] def h_hoursbefore(timestamp, h): return timestamp + dt.timedelta(hours=-h) most_recent_avail_prod = sq.fetch_production(h_hoursbefore(ts[0], 24),\ h_hoursbefore(ts[-1], 24)) for i, t, p48 in zip(range(len(most_recent_avail_prod)), ts, X['prod48hbefore']): if t.hour > 8 or t.hour == 0: most_recent_avail_prod[i] = p48 X['prod24or48hbefore'] = most_recent_avail_prod ##
from model_selection import gen_all_combinations, rmse, mae, mape import sql_tools as sq import ensemble_tools as ens #%% SVR experinment ts = ens.gen_hourly_timesteps(dt.datetime(2016, 1, 26, 1), dt.datetime(2016, 4, 1, 0)) X = pd.read_pickle('48h60h168h_lagged_X.pkl' ) # run model_selection_ext_horizon to generate these files y = pd.read_pickle('prod_to_gowith.pkl') # add more predictor data: for v in ['Tout', 'vWind', 'hum', 'sunRad']: X[v] = ens.load_ens_mean_avail_at10_series(v, ts[0], ts[-1], pointcode=71699) #X['weekdays'] = [t.weekday() for t in ts] def h_hoursbefore(timestamp, h): return timestamp + dt.timedelta(hours=-h) most_recent_avail_prod = sq.fetch_production(h_hoursbefore(ts[0], 24),\ h_hoursbefore(ts[-1], 24)) for i, t, p48 in zip(range(len(most_recent_avail_prod)), ts, X['prod48hbefore']): if t.hour > 8 or t.hour == 0: most_recent_avail_prod[i] = p48 X['prod24or48hbefore'] = most_recent_avail_prod