meteortools.utils.getRiseSet
1# Copyright (C) 2018-2023 Mark McIntyre 2# 3import ephem 4 5 6def getNextRiseSet(lati, longi, elev, fordate=None): 7 """ Calculate the next rise and set times for a given lat, long, elev 8 9 Paramters: 10 lati: [float] latitude in degrees 11 longi: [float] longitude in degrees (+E) 12 elev: [float] latitude in metres 13 fordate:[datetime] date to calculate for, today if none 14 15 Returns: 16 rise, set: [date tuple] next rise and set as datetimes 17 18 Note that set may be earlier than rise, if you're invoking the function during daytime. 19 20 """ 21 obs = ephem.Observer() 22 obs.lat = float(lati) / 57.3 # convert to radians, close enough for this 23 obs.lon = float(longi) / 57.3 24 obs.elev = float(elev) 25 obs.horizon = -6.0 / 57.3 # degrees below horizon for darkness 26 if fordate is not None: 27 obs.date = fordate 28 29 sun = ephem.Sun() 30 rise = obs.next_rising(sun).datetime() 31 set = obs.next_setting(sun).datetime() 32 return rise, set
def
getNextRiseSet(lati, longi, elev, fordate=None):
7def getNextRiseSet(lati, longi, elev, fordate=None): 8 """ Calculate the next rise and set times for a given lat, long, elev 9 10 Paramters: 11 lati: [float] latitude in degrees 12 longi: [float] longitude in degrees (+E) 13 elev: [float] latitude in metres 14 fordate:[datetime] date to calculate for, today if none 15 16 Returns: 17 rise, set: [date tuple] next rise and set as datetimes 18 19 Note that set may be earlier than rise, if you're invoking the function during daytime. 20 21 """ 22 obs = ephem.Observer() 23 obs.lat = float(lati) / 57.3 # convert to radians, close enough for this 24 obs.lon = float(longi) / 57.3 25 obs.elev = float(elev) 26 obs.horizon = -6.0 / 57.3 # degrees below horizon for darkness 27 if fordate is not None: 28 obs.date = fordate 29 30 sun = ephem.Sun() 31 rise = obs.next_rising(sun).datetime() 32 set = obs.next_setting(sun).datetime() 33 return rise, set
Calculate the next rise and set times for a given lat, long, elev
Paramters:
lati: [float] latitude in degrees
longi: [float] longitude in degrees (+E)
elev: [float] latitude in metres
fordate:[datetime] date to calculate for, today if none
Returns:
rise, set: [date tuple] next rise and set as datetimes
Note that set may be earlier than rise, if you're invoking the function during daytime.