from pda.channel import indicies_of_periods import numpy as np from matplotlib.ticker import MultipleLocator import pandas as pd """ Plots a large bitmap showing activity for all channels over entire duration of dataset. """ PWR_ON_THRESHOLD = 4 # watts MIN_DAYS_PER_CHAN = 10 DATA_DIR = '/data/mine/vadeec/jack-merged/' #DATA_DIR = '/data/mine/vadeec/jack/137' print("Loading dataset...") dataset = ds.load_dataset(DATA_DIR) # create pd.DataFrame of all channels print("Creating DataFrame...") chans = [] for channel in dataset: chans.append((channel.name, channel.series)) df = pd.DataFrame.from_items(chans) print("Creating bitmap...") day_range, day_boundaries = indicies_of_periods(df.index, 'D') N_DAYS = day_range.size - 1 N_CHANNELS = df.columns.size MINS_PER_DAY = 24 * 60 WIDTH = MINS_PER_DAY # 1 pixel per minute HEIGHT = N_DAYS * N_CHANNELS
import numpy as np from matplotlib.ticker import MultipleLocator import pandas as pd """ Plots a large bitmap showing activity for all channels over entire duration of dataset. """ PWR_ON_THRESHOLD = 4 # watts MIN_DAYS_PER_CHAN = 10 DATA_DIR = '/data/mine/vadeec/jack-merged/' #DATA_DIR = '/data/mine/vadeec/jack/137' print("Loading dataset...") dataset = ds.load_dataset(DATA_DIR) # create pd.DataFrame of all channels print("Creating DataFrame...") chans = [] for channel in dataset: chans.append((channel.name, channel.series)) df = pd.DataFrame.from_items(chans) print("Creating bitmap...") day_range, day_boundaries = indicies_of_periods(df.index, 'D') N_DAYS = day_range.size - 1 N_CHANNELS = df.columns.size MINS_PER_DAY = 24 * 60 WIDTH = MINS_PER_DAY # 1 pixel per minute HEIGHT = N_DAYS * N_CHANNELS
import pda.dataset as ds import pandas as pd import matplotlib.pyplot as plt import numpy as np DATASET_DIR = '/data/mine/vadeec/jack-merged' TOP_N = 20 # how many clusters to display? dataset = ds.load_dataset(DATASET_DIR) period_range = pd.period_range(dataset[0].series.index[0], dataset[0].series.index[-1], freq='D') freqs = ds.cluster_appliances( dataset, ignore_chans=[1, 2, 3, 5, 12, 16, 18, 25, 32, 38, 43], period_range=period_range[5:]) # remove "clusters" of a single appliance and remove repeats filtered_freqs = [] for f in freqs: if len(f[0]) > 1: if f not in filtered_freqs: filtered_freqs.append(f) # trim filtered_freqs = filtered_freqs[:TOP_N] # extract set counts counts = [f[1] for f in filtered_freqs]
def test_load_dataset(self): dataset = ds.load_dataset(SMALL_TEST_DATA_PATH) i = 1 for channel in dataset: self.assertEqual(channel.name, correct_answers.labels[i]) i += 1
import pda.dataset as ds import pandas as pd import matplotlib.pyplot as plt import numpy as np DATASET_DIR = '/data/mine/vadeec/jack-merged' TOP_N = 20 # how many clusters to display? dataset = ds.load_dataset(DATASET_DIR) period_range = pd.period_range(dataset[0].series.index[0], dataset[0].series.index[-1], freq='D') freqs = ds.cluster_appliances(dataset, ignore_chans=[1, 2, 3, 5, 12, 16, 18, 25, 32, 38, 43], period_range=period_range[5:]) # remove "clusters" of a single appliance and remove repeats filtered_freqs = [] for f in freqs: if len(f[0]) > 1: if f not in filtered_freqs: filtered_freqs.append(f) # trim filtered_freqs = filtered_freqs[:TOP_N] # extract set counts counts = [f[1] for f in filtered_freqs] # plotting