# use subsample while debugging #circuit_dict_list = circuit_dict_list[:20] # choose method of labeling data method = 'meter' #method = 'pin' # choose date range import datetime as dt date_start = dt.datetime(2012, 1, 1) date_end = dt.datetime(2012, 2, 1) # get list of pins corresponding to meters in meter_list import offline_gateway as og circuit_dict_list = og.get_circuit_dict_list() # place time series for credit of each pin in a dictionary d = {} for i, c in enumerate(circuit_dict_list): if not filter_by_meter_list or c['meter_name'] in meter_list: # generate appropriate dictionary key if method == 'meter': label = c['meter_name'] + '-' + c['ip_address'][-2:] if method == 'pin': label = c['pin'] # query database and append to dictionary print 'querying for', i, 'th circuit =', label
Also includes linear fit to gauge if energy use is increasing over time. ''' import sqlalchemy as sa import matplotlib.pyplot as plt import datetime as dt date_start = dt.datetime(2011, 9, 1) date_end = dt.datetime(2012, 2, 1) if __name__ == '__main__': import offline_gateway as og cdl = og.get_circuit_dict_list(mains=True) #cdl = cdl[:1] for i, c in enumerate(cdl): filename = 'pcde-' + c['meter_name'] + '-' + c['ip_address'][-3:] + '.pdf' print 'querying for ' + filename daily_energy = og.get_daily_energy_for_circuit_id(c['circuit_id'], date_start, date_end) if daily_energy == None: continue # plot each circuit daily energy values for all time f, ax = plt.subplots(2, 1, sharex=True)
from issue #18 for a given date range and circuit, output number of expected observations number of actual observation ratio of actual to expected observations number of days with correct midnight samples number of days with corrupted midnight samples ratio of corrupted midnight samples to total midnight samples ''' # get list of pins corresponding to meters in meter_list import offline_gateway as og circuit_dict_list = og.get_circuit_dict_list() # use subsample while debugging #circuit_dict_list = circuit_dict_list[:1] #circuit_dict_list = [{'circuit_id':294}] # choose date range import datetime as dt date_start = dt.datetime(2012, 1, 1) date_end = dt.datetime(2012, 2, 1) bd = {} for i, c in enumerate(circuit_dict_list): # query database print 'querying for', i, 'th circuit =', c['circuit_id']
# use subsample while debugging #circuit_dict_list = circuit_dict_list[:20] # choose method of labeling data method = 'meter' #method = 'pin' # choose date range import datetime as dt date_start = dt.datetime(2011, 6, 1) date_end = dt.datetime(2012, 2, 1) # get list of pins corresponding to meters in meter_list import offline_gateway as og circuit_dict_list = og.get_circuit_dict_list(mains=False) # restrict list if debugging #debug = True debug = False if debug: circuit_dict_list = circuit_dict_list[:2] # place time series for credit of each pin in a dictionary d = {} for i, c in enumerate(circuit_dict_list): if not filter_by_meter_list or c['meter_name'] in meter_list: # generate appropriate dictionary key if method == 'meter':