def calc_solar_times(p_pyhouse_obj, p_date=datetime.date.today()): """ @param p_date: is the datetime.date that we want sunrise and sunset for """ l_a = astral.Location(info=(p_pyhouse_obj.House.Name, p_pyhouse_obj.House.Location.Region, p_pyhouse_obj.House.Location.Latitude, p_pyhouse_obj.House.Location.Longitude, p_pyhouse_obj.House.Location.TimeZoneName, p_pyhouse_obj.House.Location.Elevation)) l_a.solar_depression = "civil" if (isinstance(p_date, datetime.datetime)): l_date = p_date.date( ) # convert datetime.datetime to datetime.date else: l_date = p_date # print(PrettyFormatAny.form('{}'.format(l_a), 'AA')) l_sun = l_a.sun(date=l_date, local=True) l_ret = RiseSetData() l_ret.Dawn = l_sun['dawn'] l_ret.SunRise = l_sun['sunrise'] l_ret.Noon = l_sun['noon'] l_ret.SunSet = l_sun['sunset'] l_ret.Dusk = l_sun['dusk'] p_pyhouse_obj.House.Location.RiseSet = l_ret LOG.info('Sunrise/Sunset Calculation') return l_ret
def RiseSet(): l_ret = RiseSetData() l_ret.Dawn = 0 l_ret.SunRise = 0 l_ret.Noon = 0 l_ret.SunSet = 0 l_ret.Dusk = 0 return l_ret