Adding moon and sun phases

This commit is contained in:
2025-07-10 23:53:16 +00:00
parent 3d7354481b
commit 6747c731c6
7 changed files with 161 additions and 22 deletions

View File

@@ -1,8 +1,29 @@
import pytz
import ephem
import requests
import datetime
from geopy.geocoders import Nominatim
def get_sun_and_moon_phase(lat, long, date_str):
date_str = f"{date_str[:4]}/{date_str[4:6]}/{date_str[6:8]}"
observer = ephem.Observer()
observer.lat = str(lat)
observer.lon = str(long)
observer.date = date_str
sun = ephem.Sun()
sun.compute(observer)
sunrise_time = int(observer.next_rising(sun).datetime().strftime('%Y%m%d'))
sunset_time = int(observer.next_setting(sun).datetime().strftime('%Y%m%d'))
date = ephem.Date(date_str)
moon = ephem.Moon()
moon.compute(date)
return (sunrise_time, sunset_time, moon.phase)
def get_timezone(latitude: float, longitude: float):
geolocator = Nominatim()
location = geolocator.reverse(f"{latitude}, {longitude}")