Esempio n. 1
0
    def compute(self, by, bm, bd, chrt, trlon):
        for i in range(13):
            trans = transits.Transits()
            trans.month(by, bm, chrt, astrology.SE_SUN, trlon)

            if len(trans.transits) > 0:
                if not (i == 0 and bd > trans.transits[0].day):
                    self.createTransit(by, bm, trans)
                    return True

            by, bm = self.incrMonth(by, bm)

        return False
Esempio n. 2
0
#chrt.printAspMatrix();
# read places DB to get NY place
#pdb = placedb.PlaceDB()
#pdb.read()
#pdb.searchPlace('New York, USA')
#trans.extraPlace(pdb.search_result)

header = "Date\tHour\tPT\tAS\tPR\tHR\tHT\tSI\tLON\tLAT\tSP\tPRLON\tS\t" \
        "SU\tSUR\tSULO\tSULA\tSUSP\tSUD\tSURD\tSUS\tSUT\t" \
        "MO\tMOR\tMOLO\tMOLA\tMOSP\tMOD\tMORD\tMOS\tMOT\t" \
        "ME\tMER\tMELO\tMELA\tMESP\tMED\tMERD\tMES\tMET\t" \
        "VE\tVER\tVELO\tVELA\tVESP\tVED\tVERD\tVES\tVET\t" \
        "MA\tMAR\tMALO\tMALA\tMASP\tMAD\tMARD\tMAS\tMAT\t" \
        "JU\tJUR\tJULO\tJULA\tJUSP\tJUD\tJURD\tJUS\tJUT\t" \
        "SA\tSAR\tSALO\tSALA\tSASP\tSAD\tSARD\tSAS\tSAT\t" \
        "UR\tURR\tURLO\tURLA\tURSP\tURD\tURRD\tURS\tURT\t" \
        "NE\tNER\tNELO\tNELA\tNESP\tNED\tNERD\tNES\tNET\t" \
        "PL\tPLR\tPLLO\tPLLA\tPLSP\tPLD\tPLRD\tPLS\tPLT"
fh.write(header + '\n')

for year in range(1997, 2014):
    print("Processing Year -> %d" % (year))
    for month in range(1, 13):
        print("\t\tMonth - %d" % (month))
        trans = transits.Transits()
        trans.month(year, month, chrt)
        printTransits(trans.transits, fh)

fh.close()
print(datetime.now() - startTime)
Esempio n. 3
0
    def calcTrueSolarArcRegressive(self, arc):
        LIM = 120.0  #arbitrary value
        y = self.chart.time.year
        m = self.chart.time.month
        d = self.chart.time.day

        h, mi, s = util.decToDeg(self.chart.time.time)
        tt = 0.0

        #Subtract arc from Suns's pos (long or ra)
        prSunPos = self.chart.planets.planets[astrology.SE_SUN].dataEqu[
            planets.Planet.RAEQU]
        if self.options.pdkeyd == primdirs.PrimDirs.TRUESOLARECLIPTICALARC:
            prSunPos = self.chart.planets.planets[astrology.SE_SUN].data[
                planets.Planet.LONG]

        prSunPosEnd = prSunPos - arc
        transition = False  #Pisces-Aries
        if prSunPosEnd < 0.0:
            prSunPos += 360.0
            prSunPosEnd += 360.0
            transition = True

#		Find day in ephemeris
        while (prSunPos >= prSunPosEnd):
            y, m, d = util.decrDay(y, m, d)
            ti = chart.Time(y, m, d, 0, 0, 0, False, self.chart.time.cal,
                            chart.Time.GREENWICH, True, 0, 0, False,
                            self.chart.place, False)
            sun = planets.Planet(ti.jd, astrology.SE_SUN,
                                 astrology.SEFLG_SWIEPH)

            pos = sun.dataEqu[planets.Planet.RAEQU]
            if self.options.pdkeyd == primdirs.PrimDirs.TRUESOLARECLIPTICALARC:
                pos = sun.data[planets.Planet.LONG]
            if transition and pos < LIM:
                pos += 360.0
            prSunPos = pos

        if (prSunPos != prSunPosEnd):
            if transition:
                prSunPosEnd -= 360.0

            trlon = 0.0
            if self.options.pdkeyd == primdirs.PrimDirs.TRUESOLARECLIPTICALARC:
                trlon = prSunPosEnd
            else:
                #to Longitude...
                trlon = util.ra2ecl(prSunPosEnd, self.chart.obl[0])

            trans = transits.Transits()
            trans.day(y, m, d, self.chart, astrology.SE_SUN, trlon)

            if len(trans.transits) > 0:
                tt = trans.transits[0].time
        else:
            #the time is midnight
            tt = 0.0

        #difference
        th, tm, ts = util.decToDeg(tt)
        d1 = datetime.datetime(y, m, d, th, tm, ts)  #in GMT
        d2 = datetime.datetime(self.chart.time.year, self.chart.time.month,
                               self.chart.time.day, h, mi, s)  #in GMT
        diff = d2 - d1
        ddays = diff.days
        dtime = diff.seconds / 3600.0
        #dtime to days
        dtimeindays = dtime / 24.0

        tt = ddays + dtimeindays

        return tt
Esempio n. 4
0
	def compute(self, typ, by, bm, bd, chrt):
		if typ == Revolutions.SOLAR:
			year = by
			if bm > chrt.time.month or (bm == chrt.time.month and bd > chrt.time.day):
				year+= 1

			month = chrt.time.month
			day = chrt.time.day

			trans = transits.Transits()
			trans.month(year, month, chrt, astrology.SE_SUN)

#			if not found => checking previous or next month
			if len(trans.transits) == 0:
				if day < 4:
					year, month = util.decrMonth(year, month)
				else:
					year, month = util.incrMonth(year, month)

				trans = transits.Transits()
				trans.month(year, month, chrt, astrology.SE_SUN)

			if len(trans.transits) > 0:
				self.createRevolution(year, month, trans)
				return True

			return False
		elif typ == Revolutions.LUNAR:
			trans = transits.Transits()
			trans.month(by, bm, chrt, astrology.SE_MOON)

			if len(trans.transits) > 0:
				second = False

				if bd > trans.transits[0].day:
					# There can be more than one lunar in a month!!
					if len(trans.transits) > 1:
						if bd > trans.transits[1].day:
							by, bm = util.incrMonth(by, bm)

							trans = transits.Transits()
							trans.month(by, bm, chrt, astrology.SE_MOON)
						else:
							second = True
					else:
						by, bm = util.incrMonth(by, bm)

						trans = transits.Transits()
						trans.month(by, bm, chrt, astrology.SE_MOON)

				if len(trans.transits) > 0:
					if second:
						self.createRevolution(by, bm, trans, 1)
					else:
						self.createRevolution(by, bm, trans)
					return True

			return False
		elif typ == Revolutions.MERCURY:
			for i in range(14):
				trans = transits.Transits()
				trans.month(by, bm, chrt, astrology.SE_MERCURY)

				if len(trans.transits) > 0:
					if not (i == 0 and bd > trans.transits[0].day):
						self.createRevolution(by, bm, trans)
						return True

				by, bm = util.incrMonth(by, bm)

			return False
		elif typ == Revolutions.VENUS:
			for i in range(16):
				trans = transits.Transits()
				trans.month(by, bm, chrt, astrology.SE_VENUS)

				if len(trans.transits) > 0:
					if not (i == 0 and bd > trans.transits[0].day):
						self.createRevolution(by, bm, trans)
						return True

				by, bm = util.incrMonth(by, bm)

			return False
		elif typ == Revolutions.MARS:
			for i in range(26):
				trans = transits.Transits()
				trans.month(by, bm, chrt, astrology.SE_MARS)

				if len(trans.transits) > 0:
					if not (i == 0 and bd > trans.transits[0].day):
						self.createRevolution(by, bm, trans)
						return True

				by, bm = util.incrMonth(by, bm)

			return False
		elif typ == Revolutions.JUPITER:
			for i in range(12*12):
				trans = transits.Transits()
				trans.month(by, bm, chrt, astrology.SE_JUPITER)

				if len(trans.transits) > 0:
					if not (i == 0 and bd > trans.transits[0].day):
						self.createRevolution(by, bm, trans)
						return True

				by, bm = util.incrMonth(by, bm)

			return False
		elif typ == Revolutions.SATURN:
			for i in range(30*12):
				trans = transits.Transits()
				trans.month(by, bm, chrt, astrology.SE_SATURN)

				if len(trans.transits) > 0:
					if not (i == 0 and bd > trans.transits[0].day):
						self.createRevolution(by, bm, trans)
						return True

				by, bm = util.incrMonth(by, bm)

			return False

		return False