class Ground(object): """Wrapper class for the pyephem ground observer object""" def __init__(self, longitude, latitude, elevation, offset=0): self.observer = ephem.Observer() deg180 = 180 * ephem.degree deg90 = 90 * ephem.degree if longitude > deg180 or longitude < -1 * deg180: raise ValueError('Invalid longitude') if latitude > deg90 or latitude < -1 * deg90: raise ValueError('Invalid latitude') if elevation < 0 or elevation > 8848: # height of Mt. Everest raise ValueError('Invalid elevation') # Set the SunriseSunset object deg_long = longitude / ephem.degree deg_lat = latitude / ephem.degree self.ssc = SunriseSunset(dt=datetime.datetime.now(), longitude=deg_long, latitude=deg_lat, localOffset=offset) self.observer.long = longitude self.observer.lat = latitude self.observer.elev = elevation # Accessors def longitude(self): return self.observer.long def latitude(self): return self.observer.lat def elevation(self): return self.observer.elev def set_date(self, date): self.observer.date = date def next_pass(self, sat): """Wrapper for next_pass() method""" return self.observer.next_pass(sat) def sunrise_sunset(self, arg=None): """ Wrapper for calculate() method. @param: arg can be passed on to the calculate() method """ if arg is None: return self.ssc.calculate() else: return self.ssc.calculate(arg)
def __init__(self, longitude, latitude, elevation, offset=0): self.observer = ephem.Observer() deg180 = 180 * ephem.degree deg90 = 90 * ephem.degree if longitude > deg180 or longitude < -1 * deg180: raise ValueError('Invalid longitude') if latitude > deg90 or latitude < -1 * deg90: raise ValueError('Invalid latitude') if elevation < 0 or elevation > 8848: # height of Mt. Everest raise ValueError('Invalid elevation') # Set the SunriseSunset object deg_long = longitude / ephem.degree deg_lat = latitude / ephem.degree self.ssc = SunriseSunset(dt=datetime.datetime.now(), longitude=deg_long, latitude=deg_lat, localOffset=offset) self.observer.long = longitude self.observer.lat = latitude self.observer.elev = elevation