def reporting_model_hourly(il_electricity_cdd_hdd_hourly): meter_data = il_electricity_cdd_hdd_hourly["meter_data"] temperature_data = il_electricity_cdd_hdd_hourly["temperature_data"] blackout_end_date = il_electricity_cdd_hdd_hourly["blackout_end_date"] reporting_meter_data, warnings = get_reporting_data( meter_data, start=blackout_end_date) preliminary_hourly_design_matrix = create_caltrack_hourly_preliminary_design_matrix( reporting_meter_data, temperature_data) segmentation = segment_time_series(preliminary_hourly_design_matrix.index, "three_month_weighted") occupancy_lookup = estimate_hour_of_week_occupancy( preliminary_hourly_design_matrix, segmentation=segmentation) occupied_temperature_bins, unoccupied_temperature_bins = fit_temperature_bins( preliminary_hourly_design_matrix, segmentation=segmentation, occupancy_lookup=occupancy_lookup, ) design_matrices = create_caltrack_hourly_segmented_design_matrices( preliminary_hourly_design_matrix, segmentation, occupancy_lookup, occupied_temperature_bins, unoccupied_temperature_bins, ) segmented_model = fit_caltrack_hourly_model( design_matrices, occupancy_lookup, occupied_temperature_bins, unoccupied_temperature_bins, ) return segmented_model
def test_estimate_hour_of_week_occupancy_one_month_segmentation( occupancy_precursor, one_month_segmentation): occupancy = estimate_hour_of_week_occupancy( occupancy_precursor, segmentation=one_month_segmentation) assert list(occupancy.columns) == [ "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec", ] assert occupancy.shape == (168, 12) assert occupancy.sum().sum() == 84.0
def occupancy_lookup(preliminary_hourly_design_matrix, segmentation): return estimate_hour_of_week_occupancy(preliminary_hourly_design_matrix, segmentation=segmentation)
def test_estimate_hour_of_week_occupancy_no_segmentation(occupancy_precursor): occupancy = estimate_hour_of_week_occupancy(occupancy_precursor) assert list(occupancy.columns) == ["occupancy"] assert occupancy.shape == (168, 1) assert occupancy.sum().sum() == 0
def test_estimate_hour_of_week_occupancy_segmentation_only_nan( occupancy_precursor_only_nan, segmentation_only_nan): occupancy = estimate_hour_of_week_occupancy( occupancy_precursor_only_nan, segmentation=segmentation_only_nan)
def occupancy_lookup_one_month_segmentation(occupancy_precursor, one_month_segmentation): occupancy_lookup = estimate_hour_of_week_occupancy( occupancy_precursor, segmentation=one_month_segmentation) return occupancy_lookup
def occupancy_lookup_no_segmentation(occupancy_precursor): occupancy = estimate_hour_of_week_occupancy(occupancy_precursor) return occupancy