def __init__( self, n_households: int, data='Germany', initial_active_occupancy: np.ndarray = None, initial_irradiance: float = None, **kwargs, ) -> None: """Initialize a Fisher lighting simulator. Args: n_households: data: Defaults to 'Germany'. initial_active_occupancy: Defaults to None. initial_irradiance: Defaults to None. """ if data == 'Germany': from demod.datasets.Germany.loader import GermanDataHerus data = GermanDataHerus() super().__init__(n_households, **kwargs) lighting_dict = data.load_fisher_lighting() self.global_irradiation_min_switch = lighting_dict[ 'irradiation_threshold_min' ] self.global_irradiation_max_switch = lighting_dict[ 'irradiation_threshold_max' ] self.individual_light_use = lighting_dict[ 'individual_light_use' ] self.initialize_starting_state( initial_active_occupancy, initial_irradiance )
import numpy as np sys.path.insert(1, os.path.join(sys.path[0], '..')) from demod.utils.plotters import FIGSIZE, plot_household_activities from demod.utils.appliances import merge_appliance_dict from demod.simulators.util import sample_population from demod.simulators.appliance_simulators import ActivityApplianceSimulator, ProbabiliticActivityAppliancesSimulator, OccupancyApplianceSimulator from demod.simulators.base_simulators import SimLogger from demod.datasets.Germany.loader import GermanDataHerus from demod.simulators.activity_simulators import SubgroupsIndividualsActivitySimulator, SemiMarkovSimulator, MarkovChain1rstOrder # %% n_households = 5 data = GermanDataHerus(version='vBottaccioli') hh_subgroups, probs, _ = data.load_population_subgroups() n_hh_list = sample_population(n_households, probs) sim = SubgroupsIndividualsActivitySimulator(hh_subgroups, n_hh_list, logger=SimLogger( 'get_activity_states', 'current_time', aggregated=False), subsimulator=SemiMarkovSimulator, data=data, use_week_ends_days=True)
def test_german_data(self): data = GermanDataHerus() app_dic = data.load_appliance_dict()
def test_sampling_algo(self): self.kwargs['bulbs_sampling_algo'] = 'randn' self.kwargs['data'] = GermanDataHerus() self.run_base_tests() self.kwargs.pop('bulbs_sampling_algo') self.kwargs.pop('data')
def test_german_data(self): data = GermanDataHerus() light_dic = data.load_crest_lighting() bulbs = data.load_bulbs() print(data.load_installed_bulbs_stats())
def test_german_data_herus(self): data = GermanDataHerus() data.load_buildings_dict() data.load_heating_system_dict() data.load_thermostat_dict()
from demod.simulators.base_simulators import SimLogger from demod.datasets.GermanTOU.loader import GTOU from demod.datasets.OpenPowerSystems.loader import OpenPowerSystemClimate from demod.datasets.Germany.loader import GermanDataHerus from demod.simulators.sparse_simulators import SparseTransitStatesSimulator from demod.simulators.weather_simulators import RealClimate from demod.simulators.lighting_simulators import CrestLightingSimulator from demod.simulators.heating_simulators import FiveModulesHeatingSimulator from demod.simulators.appliance_simulators import SubgroupApplianceSimulator from demod.simulators.weather_simulators import RealInterpolatedClimate #%% INITIALIZATION # Inputs data = GermanDataHerus(version='v0.1') time_ = datetime.datetime(2018, 1, 1, 0, 0, 0) # starting time of simulation days = 3 # number of days to be simulated n_households = 1 # number of households to be simulated subgroup = { 'n_residents': 5, 'household_type': 4, } # n° residents should be consisten with the household type # Here the available household types: # 1 = One person household # 2 = Couple without kids # 3 = Single Parent with at least one kid under 18 and the other under 27 # 4 = Couple with at least one kid under 18 and the other under 27 # 5 = Others # Occupancy
sys.path.insert(1, os.path.join(sys.path[0], '..')) from demod.utils.plotters import FIGSIZE from demod.utils.appliances import merge_appliance_dict from demod.simulators.util import sample_population from demod.simulators.appliance_simulators import ActivityApplianceSimulator, ProbabiliticActivityAppliancesSimulator, OccupancyApplianceSimulator from demod.simulators.base_simulators import SimLogger from demod.datasets.Germany.loader import GermanDataHerus from demod.simulators.activity_simulators import SubgroupsIndividualsActivitySimulator, SemiMarkovSimulator, MarkovChain1rstOrder # %% n_households = 2000 data = GermanDataHerus(version='vBottaccioli') hh_subgroups, probs, _ = data.load_population_subgroups() n_hh_list = sample_population(n_households, probs) sim = SubgroupsIndividualsActivitySimulator( hh_subgroups, n_hh_list, logger=SimLogger('get_activity_states', 'current_time'), subsimulator=SemiMarkovSimulator, data=data, use_week_ends_days=True ) # Simulates appliances using the CREST method
def __init__(self, n_households, start_datetime=datetime.datetime(2014, 1, 1, 4, 0, 0), include_heating=True, include_climate=True, initial_outside_temperature=5.0, data=GermanDataHerus(), **kwargs): super().__init__(n_households=n_households, start_datetime=start_datetime, **kwargs) # sample the population subgroups, pdf, _ = data.load_population_subgroups() counts = sample_population(self.n_households, pdf) # initialize all simulators in the correct order with warnings.catch_warnings(): warnings.filterwarnings("ignore") self.activity_simulator = _instantiate_activity_simulator( data, subgroups, counts, start_datetime, ) active_occupancy = self.activity_simulator.get_active_occupancy() self.appliance_simulator = OccupancyApplianceSimulator( subgroups, counts, initial_active_occupancy=active_occupancy, start_datetime=start_datetime, data=data) if include_climate: with warnings.catch_warnings(): warnings.filterwarnings("ignore") self.climate = _instantiate_climate( data, start_datetime, self.step_size, ) initial_outside_temperature = ( self.climate.get_outside_temperature()) else: self.climate = None self.include_climate = include_climate self.light_sim = CrestLightingSimulator(self.n_households, data=data, bulbs_sampling_algo='randn') if include_heating: self.heating = FiveModulesHeatingSimulator( self.n_households, initial_outside_temperature, data=data, ) self.include_heating = include_heating super().initialize_starting_state(initialization_time=start_datetime)
def test_with_herus_data(self): data = GermanDataHerus() data.load_historical_climate_data(datetime.datetime(2014, 1, 1))