1
0
Fork 0
mirror of https://github.com/Findus23/suntracking.git synced 2024-08-27 19:52:18 +02:00
suntracking/guess.py
Lukas Winkler 165c69e4c3
init
2018-05-18 21:59:06 +02:00

35 lines
887 B
Python

from datetime import datetime, timedelta, time
midday = time(12)
import astropy.coordinates as coord
from astropy.time import Time
import config
def time2altitude(time: datetime) -> float:
astro_time = Time(time.astimezone())
altaz = coord.AltAz(location=config.loc, obstime=astro_time)
sun = coord.get_sun(astro_time)
return sun.transform_to(altaz).alt.degree
def get_time(altitude, time=False):
lower = datetime.combine(datetime.now().date(), midday)
upper = lower + timedelta(hours=12)
while upper - lower > timedelta(seconds=30):
middle = lower + (upper - lower) / 2
if time2altitude(middle) > altitude:
lower = middle
else:
upper = middle
# print(upper, lower)
return lower + (upper - lower) / 2
if __name__ == "__main__":
target = 14.480046611643763
print(get_time(target))