Exemplo n.º 1
0
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)
Exemplo n.º 2
0
    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