Example #1
0
 def normalized_lat (cls, latitude) :
     result = Angle (latitude)
     if result.degrees > 270 :
         result -= 360
     if result.degrees > 90 :
         raise ValueError \
             ("Latitude must be in (-90, +90); got %s" % (latitude))
     return result
Example #2
0
    def __init__(self, ephs, loc, h0=Angle_D(-0.5667)):
        """Arguments:

           * ephs : triple of positions for UT=0:0 for (day-1, day, day+1)

           * loc  : SKY.Location instance

           * h0   : "standard" altitude, i.e., the geometric altitude of the
                    center of the body at the time of apparent rising or
                    setting

                    + 0.5667 degrees for stars and planets
                    + 0.8333 degrees for the sun

        """
        rts = self
        self.ephs = ephs
        self.loc = loc
        self.lat = lat = loc.latitude
        self.lon = lon = loc.longitude_meuss
        self.h0 = h0 = Angle(h0)
        self.day = day = ephs[1].day
        self.alpha = alpha = ephs[1].ra
        self.delta = delta = ephs[1].decl
        self.time = time = ephs[1].time
        self.sid = sid = Angle_D.normalized(time.sidereal_deg)
        ### H0: local hour angle corresponding to the time of rise or set of a
        ###     celestial body. J. Meeus, eq. (15.1), p. 102
        self.H0 = H0 = self.local_hour_angle(h0, lat, delta)
        self.vars = vars = locals()
        ### m0, m1, m2
        ### transit, rise, set times, on `day`, expressed as fractions of a day
        ### J. Meeus, eq. (15.2), p. 102
        self.m0 = m0 = ((alpha + lon - sid).degrees / 360.) % 1.0
        if H0 is not None:
            self.m1 = m1 = (m0 - H0.degrees / 360.) % 1.0
            self.m2 = m2 = (m0 + H0.degrees / 360.) % 1.0
            self.rise = self._Rise_(m1, **vars)
            self.set = self._Set_(m2, **vars)
        self.transit = self._Transit_(m0, **vars)
Example #3
0
 def normalized_lon (cls, longitude) :
     result = Angle (longitude)
     if result.degrees > 180 :
         result -= 360.
     return result
Example #4
0
 def __init__(self, angle):
     self.angle = Angle(angle)
Example #5
0
 def __init__(self, angle, cx=0, cy=0):
     self.angle = Angle(angle)
     self.cx = cx
     self.cy = cy
Example #6
0
 def __init__(self, r=0.0, phi=0.0):
     if isinstance(phi, pyk.int_types):
         phi = float(phi)
     self._r = abs(float(r))
     self._phi = Angle(phi)