def generate(self, weather_source, datetimes, daily_noise_dist=None):
        records = [{"start": start, "end": end, "value": np.nan}
                for start, end in zip(datetimes, datetimes[1:])]
        cd = ConsumptionData(records, self.fuel_type,
                self.consumption_unit_name, record_type="arbitrary")

        periods = cd.periods()
        period_daily_temps = weather_source.daily_temperatures(periods,
                self.temperature_unit_name)

        period_average_daily_usages = self.model.transform(period_daily_temps,self.params)

        for average_daily_usage, period in zip(period_average_daily_usages,periods):
            n_days = period.timedelta.days
            if daily_noise_dist is not None:
                average_daily_usage += np.mean(daily_noise_dist.rvs(n_days))
            cd.data[period.start] = average_daily_usage * n_days

        return cd
Returns a ConsumptionData instance given a particular weather
dataset/ETHPy150Open impactlab/eemeter/eemeter/generator.py/MonthlyBillingConsumptionGenerator.generate