occupancy — Occupancy & Electricity Profiles
- Source:
buem/occupancy/
Purpose
Generate stochastic annual occupancy schedules and realistic hourly electricity-consumption profiles for residential buildings.
OccupancyProfile
- File:
occupancy_profile.py
Produces an 8760-row DataFrame with per-hour:
n_home— number of persons at homen_active— number awake and activeactivity— categorical state (not_home/at_home_inactive/at_home_active)
Behaviour:
Weekday vs weekend probability tables (e.g. 10 % home at 3 AM weekday, 20 % weekend)
Per-person binomial draw: \(\text{persons\_home} \sim \text{Binomial}(n,\, p_{\text{home}}(\text{hour}, \text{day type}))\)
Reproducible via a NumPy RNG seed
ElectricityConsumptionProfile
- File:
electricity_consumption.py
Implements the Richardson et al. (2010) behavioural appliance model.
For each hour:
Evaluate occupancy-dependent activation probabilities per appliance (cooking, TV, laundry, cleaning, ironing, fridge, background loads).
Modulate by a weekday/weekend × hour-of-day behaviour table.
Stochastically switch appliances on/off.
Weight by rated power (e.g. cooking 3–4 kW, fridge 0.1 kW).
Sum → total electricity load (kWh/h).
Typical output for a four-person dwelling: 0.5–1.5 kW.
Integration
When the API payload does not supply an elecLoad series,
cfg_attribute.py auto-generates one via the pipeline:
OccupancyProfile → ElectricityConsumptionProfile → elecLoad series