def preprocess_iawe(building, freq): building.utility.electric = building.utility.electric.sum_split_supplies() building = prepb.filter_out_implausible_values( building, Measurement('voltage', ''), 160, 260) building = prepb.filter_datetime(building, '7-13-2013', '8-4-2013') building = prepb.downsample(building, rule=freq) building = prepb.fill_appliance_gaps(building) building = prepb.prepend_append_zeros( building, '7-13-2013', '8-4-2013', freq, 'Asia/Kolkata') building = prepb.drop_missing_mains(building) building = prepb.make_common_index(building) building = prepb.filter_top_k_appliances(building, k=6) return building
COLUMNS[key] = """\textbf{\specialcell[h]{""" + value + """}}""" else: COLUMNS[key] = key stats_df = pd.DataFrame(index=DATASETS.keys(), columns=COLUMNS.values()) for ds_name, ds_path in DATASETS.iteritems(): if LOAD_DATASETS: dataset = DataSet() print("##################################################") print("Loading", ds_path) dataset.load_hdf5(ds_path) if ds_name == "Smart*": building = dataset.buildings[1] building = prepb.filter_out_implausible_values( building, Measurement('power', 'active'), max_threshold=20000) #electric = building.utility.electric #electric.crop('2012-06-05', '2012-06-10') #building = prepb.filter_channels_with_less_than_x_samples( # building, 100) dataset.buildings[1] = building print("Preprocessed!") if ds_name == 'iAWE': print("Pre-processing iAWE...") electric = dataset.buildings[1].utility.electric electric.crop('2013/6/11', '2013/7/31') # elif ds_name == 'UKPD': # electric = dataset.buildings[1].utility.electric # electric.appliances = electric.remove_channels_from_appliances(
import nilmtk.preprocessing.electricity.single as prep from nilmtk.stats.electricity.building import plot_missing_samples_using_bitmap from nilmtk.sensors.electricity import Measurement from nilmtk.dataset import DataSet dataset = DataSet() dataset.load_hdf5("/home/nipun/Dropbox/nilmtk_datasets/iawe") building = dataset.buildings[1] # 1. sum together split mains and DualSupply appliances building.utility.electric = building.utility.electric.sum_split_supplies() # optional. (required for iAWE) remove samples where voltage outside range # Fixing implausible voltage values building = prepb.filter_out_implausible_values( building, Measurement('voltage', ''), 160, 260) # optional. (required for iAWE) Note that this will remove motor as it does not have # any data in this period building = prepb.filter_datetime( building, '7-13-2013', '8-4-2013') # 2. downsample mains, circuits and appliances building = prepb.downsample(building, rule='1T') # 3. Fill large gaps in appliances with zeros and forward-fill small gaps building = prepb.fill_appliance_gaps(building) # optional. (required for iAWE) building = prepb.prepend_append_zeros( building, '7-13-2013', '8-4-2013', '1T', 'Asia/Kolkata')