def __init__(self, year, month, day, hour, minute, second, bc, cal, zt, plus, zh, zm, daylightsaving, place, full = True): #zt is zonetime, zh is zonehour, zm is zoneminute, full means to calculate everything e.g. FixedStars, MidPoints, ... self.year = year self.month = month self.day = day self.origyear = year self.origmonth = month self.origday = day self.hour = hour self.minute = minute self.second = second self.bc = bc self.cal = cal self.zt = zt self.plus = plus self.zh = zh self.zm = zm self.daylightsaving = daylightsaving self.time = hour+minute/60.0+second/3600.0 self.dyear, self.dmonth, self.dday, self.dhour, self.dmin, self.dsec = year, month, day, hour, minute, second if self.daylightsaving: self.time -= 1.0 self.dhour -= 1 #check daylightsaving underflow if self.time < 0.0: self.time += Time.HOURSPERDAY self.year, self.month, self.day = util.decrDay(self.year, self.month, self.day) self.dhour += int(Time.HOURSPERDAY) self.dyear, self.dmonth, self.dday = self.year, self.month, self.day if zt == Time.ZONE:#ZONE ztime = zh+zm/60.0 if self.plus: self.time-=ztime else: self.time+=ztime elif zt == Time.LOCALMEAN:#LMT t = (place.deglon+place.minlon/60.0)*4.0 #long * 4min if place.east: self.time-=t/60.0 else: self.time+=t/60.0 if bc: self.year = 1-self.year #check over/underflow if self.time >= Time.HOURSPERDAY: self.time -= Time.HOURSPERDAY self.year, self.month, self.day = util.incrDay(self.year, self.month, self.day) elif self.time < 0.0: self.time += Time.HOURSPERDAY self.year, self.month, self.day = util.decrDay(self.year, self.month, self.day) calflag = astrology.SE_GREG_CAL if self.cal == Time.JULIAN: calflag = astrology.SE_JUL_CAL self.jd = astrology.swe_julday(self.year, self.month, self.day, self.time, calflag) if zt == Time.LOCALAPPARENT:#LAT ret, te, serr = astrology.swe_time_equ(self.jd) self.jd += te #LMT #Back to h,m,s(self.time) from julianday fromat self.year, self.month, self.day, self.time = astrology.swe_revjul(self.jd, calflag) #To GMT t = (place.deglon+place.minlon/60.0)*4.0 #long * 4min if place.east: self.time-=t/60.0 else: self.time+=t/60.0 #check over/underflow if self.time >= Time.HOURSPERDAY: self.time -= Time.HOURSPERDAY self.year, self.month, self.day = util.incrDay(self.year, self.month, self.day) elif self.time < 0.0: self.time += Time.HOURSPERDAY self.year, self.month, self.day = util.decrDay(self.year, self.month, self.day) #GMT in JD (julianday) self.jd = astrology.swe_julday(self.year, self.month, self.day, self.time, calflag) self.sidTime = astrology.swe_sidtime(self.jd) #GMT self.ph = None if full: self.calcPHs(place) self.profy = None self.profm = None self.profd = None self.profho = None self.profmi = None self.profse = None
def compute(self): y = self.chart.time.year m = self.chart.time.month d = self.chart.time.day hour = self.chart.time.hour minute = self.chart.time.minute second = self.chart.time.second hr = 0.0 #GMT to LocalMean t = (self.chart.place.deglon+self.chart.place.minlon/60.0)*4 #long * 4min meantime = 0.0 if self.chart.place.east: meantime = self.chart.time.time+t/60.0 else: meantime = self.chart.time.time-t/60.0 #check over/underflow HOURSPERDAY = 24.0 if meantime >= HOURSPERDAY: meantime -= HOURSPERDAY y, m, d = util.incrDay(y, m, d) elif meantime < 0.0: meantime += HOURSPERDAY y, m, d = util.decrDay(y, m, d) if self.soltime: calflag = astrology.SE_GREG_CAL if self.chart.time.cal == chart.Time.JULIAN: calflag = astrology.SE_JUL_CAL yt = y if self.chart.time.bc: yt = -y jdmean = astrology.swe_julday(yt, m, d, meantime, calflag) #Get jdapp ret, te, serr = astrology.swe_time_equ(jdmean) jdapp = jdmean-te y, m, d, hr = astrology.swe_revjul(jdapp, calflag) hour,minute,second = util.decToDeg(hr) # print '%d:%02d:%02d' % (hour,minute,second) else: hour,minute,second = util.decToDeg(meantime) for i in range(self.age): if self.direct: y, m, d = util.incrDay(y, m, d) else: y, m, d = util.decrDay(y, m, d) if self.soltime: #Back to meantime on the last day yt = y if self.chart.time.bc: yt = -y calflag = astrology.SE_GREG_CAL if self.chart.time.cal == chart.Time.JULIAN: calflag = astrology.SE_JUL_CAL jdapp = astrology.swe_julday(yt, m, d, hr, calflag) ret, te, serr = astrology.swe_time_equ(jdapp) jdmean = jdapp+te y, m, d, hr = astrology.swe_revjul(jdmean, calflag) hour,minute,second = util.decToDeg(hr) # print '%d:%02d:%02d' % (hour,minute,second) return y, m, d, hour, minute, second
def compute(self): y = self.chart.time.year m = self.chart.time.month d = self.chart.time.day hour = self.chart.time.hour minute = self.chart.time.minute second = self.chart.time.second hr = 0.0 #GMT to LocalMean t = (self.chart.place.deglon + self.chart.place.minlon / 60.0) * 4 #long * 4min meantime = 0.0 if self.chart.place.east: meantime = self.chart.time.time + t / 60.0 else: meantime = self.chart.time.time - t / 60.0 #check over/underflow HOURSPERDAY = 24.0 if meantime >= HOURSPERDAY: meantime -= HOURSPERDAY y, m, d = util.incrDay(y, m, d) elif meantime < 0.0: meantime += HOURSPERDAY y, m, d = util.decrDay(y, m, d) if self.soltime: calflag = astrology.SE_GREG_CAL if self.chart.time.cal == chart.Time.JULIAN: calflag = astrology.SE_JUL_CAL yt = y if self.chart.time.bc: yt = -y jdmean = astrology.swe_julday(yt, m, d, meantime, calflag) #Get jdapp ret, te, serr = astrology.swe_time_equ(jdmean) jdapp = jdmean - te y, m, d, hr = astrology.swe_revjul(jdapp, calflag) hour, minute, second = util.decToDeg(hr) # print '%d:%02d:%02d' % (hour,minute,second) else: hour, minute, second = util.decToDeg(meantime) for i in range(self.age): if self.direct: y, m, d = util.incrDay(y, m, d) else: y, m, d = util.decrDay(y, m, d) if self.soltime: #Back to meantime on the last day yt = y if self.chart.time.bc: yt = -y calflag = astrology.SE_GREG_CAL if self.chart.time.cal == chart.Time.JULIAN: calflag = astrology.SE_JUL_CAL jdapp = astrology.swe_julday(yt, m, d, hr, calflag) ret, te, serr = astrology.swe_time_equ(jdapp) jdmean = jdapp + te y, m, d, hr = astrology.swe_revjul(jdmean, calflag) hour, minute, second = util.decToDeg(hr) # print '%d:%02d:%02d' % (hour,minute,second) return y, m, d, hour, minute, second