diff --git a/bpeng/mv/measurementVerification.py b/bpeng/mv/measurementVerification.py index 1854370a8d11ce022625d20d28318101f73ffbdd..4d43b24f40b351ea19df92f431321fff4370aa01 100644 --- a/bpeng/mv/measurementVerification.py +++ b/bpeng/mv/measurementVerification.py @@ -57,6 +57,7 @@ class MeasurementVerification(): self.first_year_saving = None self.projection_baseline_bill = None self.setpoints = {} + self.missingBillsPreRetrofit = False #self.non_weather_related_end_uses = {'Miscellanous': 1} @@ -404,40 +405,41 @@ class MeasurementVerification(): # raw bill of pre-retrofit period self.pre_bill = pre_bill - assert sum(pre_bill['Days In Bill']) > 365, 'Utility Data is less than 12 months pre-retrofit.' - - # baseline bill - self.baseline = self.baseline_bill(pre_bill) - - # post_retrofit_bill - simple breakdown the post retrofit bill incase it is too long - self.post_bill = BreakdownLongBill(post_bill, self.weather).long_bill_breakdown() - - # calcuate the all prejected baseline for all the post retrofit billing period - post = projection_baseline(self.baseline, self.post_bill, self.weather) - self.projection_post_bill = post.projection() - - self.setpoints = {'heating': post.hp, - 'cooling': post.cp} - - if self.setpoints['cooling'] is np.NaN: - self.setpoints['cooling'] = None - if self.setpoints['heating'] is np.NaN: - self.setpoints['heating'] = None - - # calculate the projected baseline for baseline period - baseline_usage_baseline_period = projection_baseline(self.baseline, self.baseline, self.weather) - self.projection_baseline_bill = baseline_usage_baseline_period.projection() - - # calculate the projected baseline for reporting period - self.reporting = self.reporting_bill(self.post_bill) - report = projection_baseline(self.baseline, self.reporting, self.weather) - self.projection_reporting_bill = report.projection() - self.regression_stat = report.regression_stat - self.first_year_saving = MeasurementVerification.energy_savings(self.projection_reporting_bill) - self.first_year_saving['baseline_metered_energy_usage'] = sum(self.baseline['Usage']) - self.first_year_saving['baseline_from_date'] = self.baseline['Bill From Date'].iloc[0] - self.first_year_saving['baseline_end_date'] = self.baseline['Bill To Date'].iloc[-1] - # xx = self.plot_result(self.projection_baseline_bill, self.projection_reporting_bill) + if sum(pre_bill['Days In Bill']) < 365: + self.missingBillsPreRetrofit = True + else: + # baseline bill + self.baseline = self.baseline_bill(pre_bill) + + # post_retrofit_bill - simple breakdown the post retrofit bill incase it is too long + self.post_bill = BreakdownLongBill(post_bill, self.weather).long_bill_breakdown() + + # calcuate the all prejected baseline for all the post retrofit billing period + post = projection_baseline(self.baseline, self.post_bill, self.weather) + self.projection_post_bill = post.projection() + + self.setpoints = {'heating': post.hp, + 'cooling': post.cp} + + if self.setpoints['cooling'] is np.NaN: + self.setpoints['cooling'] = None + if self.setpoints['heating'] is np.NaN: + self.setpoints['heating'] = None + + # calculate the projected baseline for baseline period + baseline_usage_baseline_period = projection_baseline(self.baseline, self.baseline, self.weather) + self.projection_baseline_bill = baseline_usage_baseline_period.projection() + + # calculate the projected baseline for reporting period + self.reporting = self.reporting_bill(self.post_bill) + report = projection_baseline(self.baseline, self.reporting, self.weather) + self.projection_reporting_bill = report.projection() + self.regression_stat = report.regression_stat + self.first_year_saving = MeasurementVerification.energy_savings(self.projection_reporting_bill) + self.first_year_saving['baseline_metered_energy_usage'] = sum(self.baseline['Usage']) + self.first_year_saving['baseline_from_date'] = self.baseline['Bill From Date'].iloc[0] + self.first_year_saving['baseline_end_date'] = self.baseline['Bill To Date'].iloc[-1] + # xx = self.plot_result(self.projection_baseline_bill, self.projection_reporting_bill) @staticmethod def energy_savings(bill_with_baseline):