Try Astrologer API

Subscribe to support and grow the project.

Mundane Aspect Factory #

MundaneAspectFactory produces an aspectarian: exact aspects between two moving bodies over a range. Aspect times are zodiac-independent because the same ayanamsha shifts both longitudes; reported longitudes and signs use the requested tropical or sidereal zodiac.

Basic Usage #

from kerykeion import MundaneAspectFactory

result = MundaneAspectFactory.from_iso_range(
    "2020-12-01", "2020-12-31",
    points=["Jupiter", "Saturn"],
    aspects=["conjunction"],
)
for event in result.aspects:
    print(event.iso_utc, event.point_a, event.aspect, event.point_b)

Methods #

from_iso_range #

from_iso_range(start_date, end_date, points=None, aspects=None, zodiac_type="Tropical", sidereal_mode=None) -> MundaneAspectsCollectionModel

Naive ISO inputs are treated as UTC; an offset-aware input is converted to UTC before the scan. A date-only end includes the entire final day. A malformed ISO string raises KerykeionException.

from_julian_day #

from_julian_day(start_jd, end_jd, points=None, aspects=None, zodiac_type="Tropical", sidereal_mode=None) -> MundaneAspectsCollectionModel

Both Julian bounds must be finite. Unknown point/aspect names and over-large ranges raise ValueError; zodiac configuration and backend failures raise KerykeionException.

By default the factory scans Sun through Pluto (Moon excluded) and the five Ptolemaic aspects. Pass the Moon explicitly for lunar aspectarian events. An explicit empty points or aspects list returns an empty collection.

Accepted Names #

points accepts these bodies, listed here in the canonical fast-to-slow order that also fixes which member of a pair becomes point_a:

Moon, Mercury, Venus, Sun, Mars, Jupiter, Saturn, Chiron, Uranus, Neptune, Pluto, Mean_North_Lunar_Node, True_North_Lunar_Node.

aspects accepts the longitude aspects of DEFAULT_CHART_ASPECTS_SETTINGS: conjunction, semi-sextile, semi-square, sextile, quintile, square, trine, sesquiquadrate, biquintile, quincunx, opposition. Declination aspects (parallel, contra-parallel) are not longitude events and are rejected with ValueError, as is any other unknown name.

Models #

MundaneAspectsCollectionModel #

Field Type Description
start_jd float Requested Julian Day (UT) range start.
end_jd float Requested Julian Day (UT) range end.
aspects list[MundaneAspectModel] Chronologically ordered exact aspects.

MundaneAspectModel #

Body ordering is canonical and independent of caller order.

Field Type Description
point_a str First body (canonical fast-to-slow order).
point_b str Second body.
aspect str Aspect name, e.g. "square".
aspect_degrees float The aspect’s exact angle in degrees.
julian_day float Julian Day (UT) of the exact perfection.
iso_utc str ISO 8601 UTC datetime of the exact perfection.
point_a_longitude float Ecliptic longitude of point_a at the event (requested zodiac).
point_b_longitude float Ecliptic longitude of point_b at the event (requested zodiac).
point_a_sign Sign Sign of point_a at the event.
point_b_sign Sign Sign of point_b at the event.
point_a_retrograde bool True if point_a is retrograde at the event.
point_b_retrograde bool True if point_b is retrograde at the event.