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
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)
def normalized_lon (cls, longitude) : result = Angle (longitude) if result.degrees > 180 : result -= 360. return result
def __init__(self, angle): self.angle = Angle(angle)
def __init__(self, angle, cx=0, cy=0): self.angle = Angle(angle) self.cx = cx self.cy = cy
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)