示例#1
0
    def load_building(self, root_directory, building_name):
        ''' Loads electrical data for specified building
        '''

        # Each building has a week worth data
        # Files are named as follows:
        # Home 01_1min_2012-0903.xlsx to Home 01_1min_2012-0909.xlsx
        # Pattern building_name + "_1min_2012-09" + ['03'-'09'].xlsx

        building_folder = os.path.join(root_directory, '1_min', building_name)
        df = pd.DataFrame()
        for day in ["03", "04", "05", "06", "07", "08", "09"]:
            spreadsheet = pd.ExcelFile(
                os.path.join(building_folder,
                             "%s_1min_2012-09%s.xlsx" % (building_name, day)))
            temp_df = spreadsheet.parse('Sheet1',
                                        index_col=0,
                                        date_parser=True)
            df = df.append(temp_df)
        df = self.standardize(df)

        # Create a new building
        building = Building()

        # Add mains
        building = self.add_mains(building, df)

        # Add appliances
        building = self.add_appliances(building, df)

        # Adding this building to dict of buildings
        building_name = building_name.replace(" ", "_")
        self.buildings[building_name] = building
示例#2
0
    def load_building(self, root_directory, building_name):
        # Construct new Building and set known attributes
        building = Building()
        # MIT's coorindates
        building.geographic_coordinates = (42.360091, -71.09416)

        # Load labels
        building_dir = os.path.join(root_directory, building_name)
        labels = load_labels(building_dir)

        # Load mains
        mains_chans = [chan for chan, label in labels.iteritems()
                       if label == 'mains']
        mains_chan_dict = {}
        for mains_chan in mains_chans:
            col_name = 'mains_{:d}_meter_1_active'.format(mains_chan)
            mains_chan_dict[col_name] = load_chan(building_dir, mains_chan)

        # Make a DataFrame containing all mains channels
        df = pd.DataFrame(mains_chan_dict)
        df = df.tz_localize('UTC')
        df = df.tz_convert('US/Eastern')  # MIT is on the east coast!
        building.electric.mains = df

        # Load sub metered channels
        # TODO
        # Convert from REDD channel names to standardised names
        # Set up wiring

        self.buildings[building_name] = building
示例#3
0
 def __init__(self):
     super(AMPDS, self).__init__()
     self.urls = ['http://ampds.org/']
     self.citations = [
         'Stephen Makonin, Fred Popowich, Lyn Bartram, '
         'Bob Gill, and Ivan V. Bajic,'
         'AMPds: A Public Dataset for Load Disaggregation and'
         'Eco-Feedback Research, in Electrical Power and Energy'
         'Conference (EPEC), 2013 IEEE, pp. 1-6, 2013.'
     ]
     self.building = Building()
     self.buildings['Home_01'] = self.building
     self.nominal_voltage = 230
示例#4
0
    def load_building(self, root_directory, building_name):
        spreadsheet = pd.ExcelFile(
            os.path.join(root_directory,
                         "15_min/Homes 01-10_15min_2012-0819-0825 .xlsx"))
        df = spreadsheet.parse(building_name, index_col=0, date_parser=True)
        df = self.standardize(df)

        # Create a new building
        building = Building()

        # Add mains
        building = self.add_mains(building, df)

        # Add appliances
        building = self.add_appliances(building, df)

        # Adding this building to dict of buildings
        building_name = building_name.replace(" ", "_")
        self.buildings[building_name] = building