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        
Esempio n. 2
0
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
##
Esempio n. 4
0
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