Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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]
Exemple #4
0
 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
Exemple #6
0
 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