def year_37_month_1(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] # Sîn (Moon) appeared behind the Bull of Heaven (Taurus) if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.LUNAR_ONLY: res.append(AngularSeparationQuery(self.db, MOON, TAURUS.central_star, 0, TAURUS.radius, EclipticPosition.BEHIND, SearchRange.for_night(month, 1))) # Kajjamānu (Saturn) was in front of the Swallow (Pisces). if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.PLANET_ONLY: res.append(AngularSeparationQuery(self.db, SATURN, PISCES.central_star, 0, PISCES.radius, EclipticPosition.AHEAD, SearchRange.for_night(month, 1))) # the 9th, beginning of the night, Sîn (Moon) stood 1 cubit in front of the Rear Foot of the Lion (β Virginis). if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.LUNAR_ONLY: res.append(AngularSeparationQuery(self.db, MOON, BETA_VIRGINIS, 1 * CUBIT, 6 * FINGER, EclipticPosition.AHEAD, SearchRange.for_night(month, 9))) # The 11th] or the 12th Sagmegar (Jupiter) ‘rose to daylight’ (AR). if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.PLANET_ONLY: res.append(PlanetaryEventQuery(self.db, JUPITER, OuterPlanetPhenomena.AR, SearchRange.range_of_nights(month, 11, 12))) # NA (sunrise to moonset) was 4. if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.LUNAR_SIX_ONLY: res.append(LunarSixQuery(self.db, month, 14, LunarSix.NA, 4.0)) return res
def year_37_month_2(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] # Sîn (Moon) appeared below the Rear Bright Star of the Large Twins (β Geminorum) if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.LUNAR_ONLY: res.append(AngularSeparationQuery(self.db, MOON, BETA_GEMINORUM, 0, 15, EclipticPosition.BELOW, SearchRange.for_night(month, 1))) # Kajjamānu (Saturn) was in front of the Swallow (Pisces). if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.PLANET_ONLY: res.append(AngularSeparationQuery(self.db, SATURN, PISCES.central_star, 0, PISCES.radius, EclipticPosition.AHEAD, SearchRange.for_night(month, 1))) # The 3rd, Ṣalbaṭānu (Mars) entered the Crab (Praesepe), the 5th it emerged. if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.PLANET_ONLY: res.append(AngularSeparationQuery(self.db, MARS, FORTY_TWO_CANCRI, 0, 5, None, SearchRange.range_of_nights(month, 3, 5))) # The 10th, Šiḫṭu (Mercury) [rose] in the west behind the [Little] Twins [...] (Gemini) if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.PLANET_ONLY: res.append(PlanetaryEventQuery(self.db, MERCURY, InnerPlanetPhenomena.EF, SearchRange.for_night_and_day(month, 10))) res.append(AngularSeparationQuery(self.db, MERCURY, GEMINI.central_star, 0, GEMINI.radius, None, SearchRange.for_night_and_day(month, 10))) # The 18th, Dilbat (Venus) was ‘balanced’ 1 cubit 4 fingers above the King (Regulus). if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.PLANET_ONLY: res.append(AngularSeparationQuery(self.db, VENUS, REGULUS, (1 * CUBIT) + (4 * FINGER), 8 * CUBIT, EclipticPosition.ABOVE, SearchRange.for_night(month, 18))) # The 26th (KUR) (moonrise to sunrise) was 23, I did not observe Sîn. if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.LUNAR_SIX_ONLY: res.append(LunarSixQuery(self.db, month, 26, LunarSix.KUR, 23, low_precision=True)) return res
def month_a(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] day14 = SearchRange.for_night(month, 14) # Mercury's last appearance in the east behind Pisces res.append( PlanetaryEventQuery(self.db, MERCURY, InnerPlanetPhenomena.ML, day14)) res.append( AngularSeparationQuery(self.db, MERCURY, PISCES.central_star, 0, PISCES.radius, None, day14)) # Saturn's last appearance behind Pisces res.append( PlanetaryEventQuery(self.db, SATURN, OuterPlanetPhenomena.LA, day14)) res.append( AngularSeparationQuery(self.db, SATURN, PISCES.central_star, 0, PISCES.radius, EclipticPosition.BEHIND, day14)) day17 = SearchRange.for_night(month, 17) # Mars became stationary res.append( PlanetaryEventQuery(self.db, MARS, OuterPlanetPhenomena.ST, day17)) # it came close to the bright star of the Scorpion's head res.append( AngularSeparationQuery(self.db, MARS, ANTARES, 0, 10, None, day17)) return res
def year_7_month_6(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.LUNAR_SIX_ONLY: res.append(LunarSixQuery(self.db, month, 1, LunarSix.NA1, 15 + 2/3)) res.append(LunarSixQuery(self.db, month, 13, LunarSix.SU2, 11)) res.append(LunarSixQuery(self.db, month, 14, LunarSix.NA, 4)) res.append(LunarSixQuery(self.db, month, 15, LunarSix.ME, 1 + 1/3)) res.append(LunarSixQuery(self.db, month, 16, LunarSix.GI6, 8 + 2/3)) res.append(LunarSixQuery(self.db, month, 28, LunarSix.KUR, 15)) if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.PLANET_ONLY: res.append(PlanetaryEventQuery(self.db, JUPITER, OuterPlanetPhenomena.FA, SearchRange.for_night(month, 22))) res.append(AngularSeparationQuery(self.db, JUPITER, VIRGO.central_star, 0, VIRGO.radius, EclipticPosition.BEHIND, SearchRange.for_night(month, 22))) res.append(PlanetaryEventQuery(self.db, SATURN, OuterPlanetPhenomena.LA, SearchRange.for_night(month, 3))) res.append(AngularSeparationQuery(self.db, SATURN, VIRGO.central_star, 0, VIRGO.radius, None, SearchRange.for_night(month, 3))) res.append(PlanetaryEventQuery(self.db, MARS, OuterPlanetPhenomena.FA, SearchRange.for_night(month, 13))) res.append(AngularSeparationQuery(self.db, MARS, LEO.central_star, 0, LEO.radius, None, SearchRange.for_night(month, 13))) # Month VI, the 24th, Venus was 1 +[x cubits?] above Mars. res.append(AngularSeparationQuery(self.db, VENUS, MARS, 1 * CUBIT, 5 * CUBIT, EclipticPosition.ABOVE, SearchRange.for_night(month, 24))) return res
def year_7_month_7(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.LUNAR_SIX_ONLY: res.append(LunarSixQuery(self.db, month, 1, LunarSix.NA1, 16 + 2/3)) res.append(LunarSixQuery(self.db, month, 13, LunarSix.SU2, 6.5)) res.append(LunarSixQuery(self.db, month, 14, LunarSix.ME, 7.5)) res.append(LunarSixQuery(self.db, month, 14, LunarSix.NA, 12)) res.append(LunarSixQuery(self.db, month, 15, LunarSix.GI6, 3)) res.append(LunarSixQuery(self.db, month, 26, LunarSix.KUR, 22)) if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.PLANET_ONLY: res.append(PlanetaryEventQuery(self.db, SATURN, OuterPlanetPhenomena.FA, SearchRange.for_night(month, 13))) res.append(AngularSeparationQuery(self.db, SATURN, VIRGO.central_star, 0, VIRGO.radius, EclipticPosition.BEHIND, SearchRange.for_night(month, 13))) # Month VII, the 23rd, last part of the night, Jupiter was 3 cubits above the moon. res.append(AngularSeparationQuery(self.db, JUPITER, MOON, 3 * CUBIT, 1 * CUBIT, EclipticPosition.ABOVE, SearchRange.for_night(month, 23))) # Month VII, the 29th, last part of the night, Venus on the north side [came near?] 2 fingers to Ju[piter]. res.append(AngularSeparationQuery(self.db, VENUS, JUPITER, 2 * FINGER, 4 * FINGER, None, SearchRange.for_night(month, 29))) # Month VII, the 12th, Saturn was 1 cubit in front of Jupiter. res.append(AngularSeparationQuery(self.db, SATURN, JUPITER, 1 * CUBIT, 6 * FINGER, EclipticPosition.AHEAD, SearchRange.for_night(month, 12))) # Month VII, the 11th, Mars came near to Jupiter 2 fingers. res.append(AngularSeparationQuery(self.db, MARS, JUPITER, 2 * FINGER, 2 * FINGER, None, SearchRange.for_night(month, 11))) return res
def year_31_month_unknown( self, month: List[BabylonianDay]) -> List[AbstractQuery]: # 1' [Month XII, ....] # 2' [....] .... # 3' it cleared [from] east to north. # 4' The south wind blew. I cubit # 5' in front of Libra it was eclipsed. # 6' Saturn rose in Capricorn; Mars # 7' was 2 cubits in front of α Scorpii. # 8' At 1,30° after sunset. t = (1 * 60) + 30 range = SearchRange.any_day(month) eclipse_pos = EclipsePosition(LIBRA.central_star, 0, LIBRA.radius, EclipticPosition.AHEAD) eclipse_time = FirstContactTime(t, FirstContactRelative.AFTER_SUNSET) eclipse = LunarEclipseQuery(self.db, eclipse_time, ExpectedEclipseType.PARTIAL_OR_TOTAL, None, eclipse_pos, range) if eclipse.best is not None: eclipse_time = eclipse.best['closest_approach_time'] range = SearchRange(eclipse_time - 1, eclipse_time + 1, "Within a day of the eclipse") mars = AngularSeparationQuery(self.db, MARS, ANTARES, 2 * CUBIT, 1 * CUBIT, EclipticPosition.AHEAD, range) saturn = AngularSeparationQuery(self.db, SATURN, CAPRICORNUS.central_star, 0, CAPRICORNUS.radius, None, range) return [eclipse, mars, saturn]
def month_b(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] day5 = SearchRange.for_night(month, 5) # Mercury's first appearance in the east in Pisces res.append( PlanetaryEventQuery(self.db, MERCURY, InnerPlanetPhenomena.MF, day5)) res.append( AngularSeparationQuery(self.db, MERCURY, PISCES.central_star, 0, PISCES.radius, None, day5)) day19 = SearchRange.for_night(month, 19) # Venus stood in the region of Aries, 10 fingers behind Mars res.append( AngularSeparationQuery(self.db, VENUS, MARS, 10 * FINGER, 10 * FINGER, EclipticPosition.BEHIND, day19)) res.append( AngularSeparationQuery(self.db, MARS, ARIES.central_star, 0, ARIES.radius, None, day19)) day20 = SearchRange.for_night(month, 20) # Mars was 1 finger to the left of the front? of Aries res.append( AngularSeparationQuery(self.db, MARS, ARIES.central_star, 0, ARIES.radius, None, day20)) return res
def shamash_17_ii(self, month: List[BabylonianDay]) -> List[AbstractQuery]: day19 = SearchRange.for_night(month, 19) # mars was in [the area?] of the Old Man res1 = AngularSeparationQuery(self.db, MARS, PERSEUS.central_star, 0, PERSEUS.radius, None, day19) # to the right of Mercury res2 = AngularSeparationQuery(self.db, MARS, MERCURY, 0, 30, EclipticPosition.AHEAD, day19) return [res1, res2]
def kand_1_iii(self, month: List[BabylonianDay]) -> List[AbstractQuery]: day28 = SearchRange.for_night(month, 28) # Mercury was in the back of Mars? res1 = AngularSeparationQuery(self.db, MERCURY, MARS, 0, 30, EclipticPosition.BEHIND, day28) day29 = SearchRange.for_night(month, 29) # Mercury in the area of the Lion res2 = AngularSeparationQuery(self.db, MERCURY, LEO.central_star, 0, LEO.radius, None, day29) return [res1, res2]
def kand_12_i(self, month: List[BabylonianDay]) -> List[AbstractQuery]: day8 = SearchRange.for_night(month, 8) # Mercury, in the area of Pleiades res1 = AngularSeparationQuery(self.db, MERCURY, ALCYONE, 0, 10, None, day8) # Mercury was 2 ⅔ cubits above? Mars? res2 = AngularSeparationQuery(self.db, MERCURY, MARS, (2 + 2 / 3) * CUBIT, 2 * CUBIT, EclipticPosition.ABOVE, day8) return [res1, res2]
def year_37_month_10(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] # The 19th, Dilbat (Venus) was below the Middle Star of the Horn of the Goat [...] (β Capricorni) if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.PLANET_ONLY: res.append(AngularSeparationQuery(self.db, VENUS, BETA_CAPRICORNI, 0, 15, EclipticPosition.BELOW, SearchRange.for_night(month, 19))) return res
def plot_separation_score(angle: float, tolerance: float, dest: str): range = (angle + tolerance) * 1.5 xs = np.arange(0, range, 0.01) ys = list( map( lambda x: AngularSeparationQuery.separation_score( target_angle=angle, tolerance=tolerance, target_position=None, actual=x, actual_position=EclipticPosition.BEHIND.value, ), xs)) f, ax1 = plt.subplots() ax1.set_xlabel('Angular Separation°') ax1.set_ylabel('Score') ax1.plot(xs, ys) if angle != 0: ax1.axvline(x=angle, color='r', label="Target Angle") ax1.axvline(x=angle + tolerance, color='g', label="Upper Bound") if angle - tolerance > 0: ax1.axvline(x=angle - tolerance, color='b', label="Lower Bound") ax1.legend() plt.savefig(dest)
def kand_16_iii(self, month: List[BabylonianDay]) -> List[AbstractQuery]: day20 = SearchRange.for_night(month, 20) # Mercury stood 1 cubit 4 fingers behind Mars. res1 = AngularSeparationQuery(self.db, MERCURY, MARS, (1 * CUBIT + 4 * FINGER), 1 * CUBIT, EclipticPosition.BEHIND, day20) return [res1]
def shamash_19_vii(self, month: List[BabylonianDay]) -> List[AbstractQuery]: day4 = SearchRange.for_night(month, 4) # Mercury stood for ⅔ cubit above? Mars res1 = AngularSeparationQuery(self.db, MERCURY, MARS, (2 / 3 * CUBIT), 1 * CUBIT, EclipticPosition.ABOVE, day4) return [res1]
def score_eclipse(eclipse: Dict, first_contact: Union[None, FirstContactTime], type: ExpectedEclipseType, phase_timing: Union[None, PhaseTiming], location: Union[None, EclipsePosition]) -> float: scores = [LunarEclipseQuery.eclipse_core_score(eclipse, type)] weights = [0.5] if location is not None: assert eclipse['angle'] is not None scores.append(AngularSeparationQuery.separation_score(location.target_angle, location.tolerance, location.target_position, eclipse['angle'], eclipse['position'])) weights.append(0.25) if first_contact is not None: if type == ExpectedEclipseType.UNKNOWN: # If the eclipse is a prediction then allow a higher time tolerance scores.append(LunarEclipseQuery.eclipse_time_of_day_score(eclipse, first_contact, HIGH_TIME_TOLERANCE)) else: scores.append(LunarEclipseQuery.eclipse_time_of_day_score(eclipse, first_contact, REGULAR_TIME_TOLERANCE)) weights.append(0.25) if phase_timing is not None: scores.append(LunarEclipseQuery.eclipse_phase_length_score(eclipse, phase_timing)) weights.append(0.25) score = np.average(scores, weights=weights) assert 0 <= score <= 1 return score
def nabo_7_unknown(self, month: List[BabylonianDay]) -> List[AbstractQuery]: # Mercury was balanced 6 fingers above Mars. res1 = AngularSeparationQuery(self.db, MERCURY, MARS, 6 * FINGER, 6 * FINGER, EclipticPosition.ABOVE, SearchRange.any_day(month)) return [res1]
def year_3_month_5(self, month: List[BabylonianDay]) -> List[AbstractQuery]: range = SearchRange.for_night(month, 16) res1 = PlanetaryEventQuery(self.db, SATURN, OuterPlanetPhenomena.FA, range) res2 = AngularSeparationQuery(self.db, SATURN, REGULUS, 0, 20, EclipticPosition.BEHIND, range) return [res1, res2]
def year_11_month_unknown( self, month: List[BabylonianDay]) -> List[AbstractQuery]: range = SearchRange.any_day(month) res1 = PlanetaryEventQuery(self.db, SATURN, OuterPlanetPhenomena.FA, range) res2 = AngularSeparationQuery(self.db, SATURN, ANTARES, 0, 20, EclipticPosition.ABOVE, range) return [res1, res2]
def year_4_month_unknown( self, month: List[BabylonianDay]) -> List[AbstractQuery]: range = SearchRange.any_day(month) res1 = PlanetaryEventQuery(self.db, SATURN, OuterPlanetPhenomena.FA, range) res2 = AngularSeparationQuery(self.db, SATURN, LEO.central_star, 0, LEO.radius, None, range) return [res1, res2]
def year_10_month_a(self, month: List[BabylonianDay]) -> List[AbstractQuery]: range = SearchRange.for_night(month, 20) res1 = PlanetaryEventQuery(self.db, SATURN, OuterPlanetPhenomena.LA, range) res2 = AngularSeparationQuery(self.db, SATURN, LIBRA.central_star, 0, LIBRA.radius, None, range) return [res1, res2]
def year_10_month_b(self, month: List[BabylonianDay]) -> List[AbstractQuery]: range = SearchRange.for_night(month, 23) res1 = PlanetaryEventQuery(self.db, SATURN, OuterPlanetPhenomena.FA, range) res2 = AngularSeparationQuery(self.db, SATURN, ANTARES, 0, 20, EclipticPosition.AHEAD, range) return [res1, res2]
def year_2_month_5(self, month: List[BabylonianDay]) -> List[AbstractQuery]: any_day = SearchRange.any_day(month) res1 = PlanetaryEventQuery(self.db, SATURN, OuterPlanetPhenomena.FA, any_day) res2 = AngularSeparationQuery(self.db, SATURN, EPSILON_LEONIS, 0, 20, None, any_day) return [res1, res2]
def year_9_month_2(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.PLANET_ONLY: res.append(PlanetaryEventQuery(self.db, MARS, OuterPlanetPhenomena.LA, SearchRange.for_night(month, 9))) res.append(AngularSeparationQuery(self.db, MARS, REGULUS, 0, 15, EclipticPosition.BEHIND, SearchRange.for_night(month, 9))) return res
def year_8_month_6(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.PLANET_ONLY: res.append(PlanetaryEventQuery(self.db, JUPITER, OuterPlanetPhenomena.LA, SearchRange.for_night(month, 4))) res.append(AngularSeparationQuery(self.db, JUPITER, LIBRA.central_star, 0, LIBRA.radius, EclipticPosition.BEHIND, SearchRange.for_night(month, 4))) return res
def year_8_month_2(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.PLANET_ONLY: res.append(PlanetaryEventQuery(self.db, JUPITER, OuterPlanetPhenomena.ST, SearchRange.for_night(month, 25))) res.append(AngularSeparationQuery(self.db, JUPITER, VIRGO.central_star, 0, VIRGO.radius, None, SearchRange.for_night(month, 25))) return res
def year_8_month_1(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.PLANET_ONLY: res.append(PlanetaryEventQuery(self.db, VENUS, InnerPlanetPhenomena.EF, SearchRange.for_night(month, 13))) res.append(AngularSeparationQuery(self.db, VENUS, AURIGA.central_star, 0, AURIGA.radius, None, SearchRange.for_night(month, 13))) return res
def year_7_month_10(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.ECLIPSE_ONLY: t = (2 + 1 / 2) * 30 res.append(LunarEclipseQuery(self.db, FirstContactTime(t, FirstContactRelative.BEFORE_SUNRISE), ExpectedEclipseType.TOTAL, None, None, SearchRange.for_night(month, 14))) if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.PLANET_ONLY: res.append(PlanetaryEventQuery(self.db, JUPITER, OuterPlanetPhenomena.ST, SearchRange.for_night(month, 27))) res.append(AngularSeparationQuery(self.db, JUPITER, LIBRA.central_star, 0, LIBRA.radius, EclipticPosition.AHEAD, SearchRange.for_night(month, 27))) # Month X, the 5th, Mercury was ½ cubit behind Venus. res.append(AngularSeparationQuery(self.db, MERCURY, VENUS, 0.5 * CUBIT, 0.5 * CUBIT, EclipticPosition.BEHIND, SearchRange.for_night(month, 5))) return res
def shamash_14_xii(self, month: List[BabylonianDay]) -> List[AbstractQuery]: day4 = SearchRange.for_night(month, 4) # Mercury's first appearance in the west res1 = PlanetaryEventQuery(self.db, MERCURY, InnerPlanetPhenomena.EF, day4) # in the area of the Swallow. res2 = AngularSeparationQuery(self.db, MERCURY, PISCES.central_star, 0, PISCES.radius, None, day4) return [res1, res2]
def year_7_month_3(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.LUNAR_SIX_ONLY: res.append(LunarSixQuery(self.db, month, 1, LunarSix.NA1, 18.5)) res.append(LunarSixQuery(self.db, month, 14, LunarSix.ME, 9.5)) res.append(LunarSixQuery(self.db, month, 14, LunarSix.SU2, 4)) res.append(LunarSixQuery(self.db, month, 15, LunarSix.GI6, 5)) res.append(LunarSixQuery(self.db, month, 15, LunarSix.NA, 8.5)) res.append(LunarSixQuery(self.db, month, 27, LunarSix.KUR, 15)) if self.mode == BM33066Mode.ALL or self.mode == BM33066Mode.PLANET_ONLY: res.append(PlanetaryEventQuery(self.db, VENUS, InnerPlanetPhenomena.EL, SearchRange.for_night(month, 10))) res.append(AngularSeparationQuery(self.db, VENUS, LEO.central_star, 0, LEO.radius, None, SearchRange.for_night(month, 10))) res.append(PlanetaryEventQuery(self.db, VENUS, InnerPlanetPhenomena.MF, SearchRange.for_night(month, 27))) res.append(AngularSeparationQuery(self.db, VENUS, CANCER.central_star, 0, CANCER.radius, None, SearchRange.for_night(month, 27))) return res
def year_37_month_11(self, month: List[BabylonianDay]) -> List[AbstractQuery]: res = [] # Sîn (Moon) appeared in the Swallow (Pisces) if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.LUNAR_ONLY: res.append(AngularSeparationQuery(self.db, MOON, PISCES.central_star, 0, PISCES.radius, None, SearchRange.for_night(month, 1))) # NA (sunset to moonset) was 14;30 if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.LUNAR_SIX_ONLY: res.append(LunarSixQuery(self.db, month, 1, LunarSix.NA1, 14.5)) # At that time, Sagmegar (Jupiter) was behind the Elbow of Pabi[lsag by ... cubits ...] (Sagittarius) if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.PLANET_ONLY: res.append(AngularSeparationQuery(self.db, JUPITER, SAGITTARIUS.central_star, 0, SAGITTARIUS.radius, EclipticPosition.BEHIND, SearchRange.for_night(month, 1))) # The 4th, Dilbat (Venus) was ‘balanced’ 1/2 cubit below the Goat-Fish. (Capricorn) if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.PLANET_ONLY: res.append(AngularSeparationQuery(self.db, VENUS, CAPRICORNUS.central_star, 0, CAPRICORNUS.radius, EclipticPosition.BELOW, SearchRange.for_night(month, 4))) # Night of the 6th, evening watch, Sîn (Moon) was surrounded by a ‘fold’ (Halo), the Bristle (Pleiades), # the Bull of Heaven (Taurus), the Chariot (Auriga) [stood within the ‘fold’ ...] if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.LUNAR_ONLY: res.append(AngularSeparationQuery(self.db, MOON, ALCYONE, 0, HALO, None, SearchRange.for_night(month, 6))) res.append(AngularSeparationQuery(self.db, MOON, TAURUS.central_star, 0, TAURUS.radius, None, SearchRange.for_night(month, 6))) res.append(AngularSeparationQuery(self.db, MOON, AURIGA.central_star, 0, AURIGA.radius, None, SearchRange.for_night(month, 6))) # Sîn (Moon) was surrounded by a ‘fold’ (Halo); the Lion (Leo) and the Crab (Cancer) were inside the ‘fold’. if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.LUNAR_ONLY: res.append(AngularSeparationQuery(self.db, MOON, LEO.central_star, 0, LEO.radius, None, SearchRange.range_of_nights(month, 7, 15))) res.append(AngularSeparationQuery(self.db, MOON, CANCER.central_star, 0, CANCER.radius, None, SearchRange.range_of_nights(month, 7, 15))) # The King (Regulus) was ‘balanced’ 1 cubit below Sîn (Moon). if self.mode == VAT4956Mode.ALL or self.mode == VAT4956Mode.LUNAR_ONLY: res.append(AngularSeparationQuery(self.db, REGULUS, MOON, 1 * CUBIT, 6 * FINGER, EclipticPosition.BELOW, SearchRange.range_of_nights(month, 7, 15))) return res