diff --git a/apps/daylight_adjuster.py b/apps/daylight_adjuster.py index 987bfb7..c3a348c 100755 --- a/apps/daylight_adjuster.py +++ b/apps/daylight_adjuster.py @@ -57,8 +57,8 @@ def parse_periods(observer: Observer, periods: Dict): datetime.strptime(period['time'], '%I:%M:%S%p').time() ).astimezone() - # res = {'time': time.replace(tzinfo=None)} - res = {'time': time.replace(tzinfo=HOME_TZ)} + res = {'time': time.replace(tzinfo=None)} + # res = {'time': time.replace(tzinfo=HOME_TZ)} # res = {'time': time} res.update({k: period[k] for k in ['brightness', 'color_temp'] if k in period}) yield res @@ -76,30 +76,28 @@ class DaylightAdjuster: def __post_init__(self, periods: Dict, resolution: int): self.logger: logging.Logger = logging.getLogger(type(self).__name__) today = self.datetime.date() - self.times = pd.date_range( + times = pd.date_range( today, today + timedelta(days=1), periods=resolution, tz=HOME_TZ ) - # self.logger.info( - # f'{type(self.times).__name__}:\n' + - # '\n'.join(f' {dt}' for dt in self.times[:5]) + - # '\n ...\n' + - # '\n'.join(f' {dt}' for dt in self.times[-5:]) - # ) - with suppress(UserWarning): - self.elevation = pd.Series( - (elevation(self.observer, dt.to_pydatetime()) for dt in self.times), - self.times, - name='elevation' - ) - self.elevation.index = self.elevation.index.tz_convert(HOME_TZ) + pytimes = [dt.to_pydatetime() for dt in times] - self.df = pd.concat([ - pd.DataFrame(parse_periods(self.observer, periods)).set_index('time'), - self.elevation - ], axis=1).sort_index().interpolate().bfill().ffill() + el = pd.Series( + (elevation(self.observer, dt) for dt in pytimes), + times, name='elevation' + ) + + # el.index = el.index.tz_convert(HOME_TZ) + # el.index = el.index.tz_convert(None) + + self.df = pd.DataFrame(el) + + # self.df = pd.concat([ + # pd.DataFrame(parse_periods(self.observer, periods)).set_index('time'), + # el + # ], axis=1).sort_index().interpolate().bfill().ffill() # self.df.index = self.df.index.to_series().dt.tz_localize(None) @@ -115,12 +113,12 @@ class DaylightAdjuster: def elevation_fig(self): fig, ax = plt.subplots(figsize=(10, 7)) - handles = ax.plot(self.elevation) + handles = ax.plot(self.df['elevation']) ax.set_ylabel('Elevation') ax.set_ylim(-100, 100) format_x_axis(fig) - ax.set_xlim(self.elevation.index[0], self.elevation.index[-1]) + ax.set_xlim(self.df.index[0], self.df.index[-1]) ax2 = ax.twinx() # handles.extend(ax2.plot(normalize(self.df['brightness'], 1, 255), 'tab:orange'))