Concepts astrologiques

Système de coordonnées

Longitude écliptique

La longitude écliptique est la position d’un corps céleste mesurée le long de l’écliptique (plan orbital de la Terre autour du Soleil), exprimée en degrés de 0° à 360°.

  • 0° = Point vernal (0° Bélier)

  • 90° = Solstice d’été (0° Cancer)

  • 180° = Équinoxe d’automne (0° Balance)

  • 270° = Solstice d’hiver (0° Capricorne)

Latitude écliptique

La latitude écliptique mesure la distance angulaire d’un corps au-dessus (+) ou en-dessous (-) du plan de l’écliptique.

Distance en UA

L’Unité Astronomique (UA) est la distance moyenne Terre-Soleil, environ 149,6 millions de km.

Temps astronomique

Temps Universel Coordonné (UTC)

Le UTC est le standard de temps de référence, basé sur le temps atomique international.

Jour Julien

Le Jour Julien (JD) est un système de datation continue utilisé en astronomie. Le JD commence à midi UTC le 1er janvier 4713 av. J.-C. du calendrier julien proleptique.

# Conversion in Ketu
from ketu.ephemeris.time import utc_to_julian
jday = utc_to_julian(datetime_utc)

Corps célestes

Ketu calcule les positions de 14 corps célestes (body IDs 0–13) :

Planètes classiques

  • Soleil ☉ (body_id=0)

  • Lune ☽ (body_id=1)

  • Mercure ☿ (body_id=2)

  • Vénus ♀ (body_id=3)

  • Mars ♂ (body_id=4)

  • Jupiter ♃ (body_id=5)

  • Saturne ♄ (body_id=6)

Planètes modernes

  • Uranus ♅ (body_id=7)

  • Neptune ♆ (body_id=8)

  • Pluton ♇ (body_id=9)

Points fictifs

  • Rahu ☊ (body_id=10) : Nœud moyen Nord

  • Ketu ☋ (body_id=11) : Nœud moyen Sud

  • Lilith ⚸ (body_id=12) : Lune noire (Apogée moyen)

Corps centaure (Nouveau dans v1.3)

  • Chiron ⚷ (body_id=13) : Corps centaure entre Saturne et Uranus. Calculé via des coefficients de polynômes de Chebyshev embarqués ; plage valide 1900–2100 (étendue en v1.4). Toute entrée hors plage est silencieusement clampée à la limite de segment la plus proche. Voir Chiron pour les détails.

Aspects

Théorie des harmoniques

Les aspects reposent sur la géométrie du cercle du zodiaque. Un harmonique divise un angle de base en n parties égales, et les fractions résultantes servent de repères pour les principaux types de rencontres planétaires.

Le cadrage par défaut utilise la base demi-cercle (180°, la distance entre la conjonction et l’opposition) : les harmoniques 1, 2, 3, 6 produisent les 7 aspects classiques-ptolémaïques (Conjonction, Semi-sextile, Sextile, Carré, Trigone, Quinconce, Opposition). C’est le preset TRADITIONAL, la valeur par défaut de la bibliothèque.

Les harmoniques plein-cercle (5, 9, 10 — quintiles, noviles, déciles) utilisent une base de 360° et sont disponibles comme presets opt-in ; ils ne font pas partie de l’ensemble par défaut.

Harmonique 1 (180°/1 = 180°)

  • Conjonction (0°) : même point

  • Opposition (180°) : point opposé

Harmonique 2 (180°/2 = 90°)

  • Carré (90°) : quart de cercle

Harmonique 3 (180°/3 = 60°)

  • Sextile (60°) : 1/3 du demi-cercle

  • Trigone (120°) : 2/3 du demi-cercle

Harmonique 6 (180°/6 = 30°)

  • Semi-sextile (30°) : 1/6 du demi-cercle

  • Quinconce (150°) : 5/6 du demi-cercle

Les harmoniques mineurs plein-cercle — H5 (quintiles), H9 (noviles), H10 (déciles) — sont disponibles dans le code mais ne font pas partie du cadrage par défaut. Ils sont opt-in via le preset EXTENDED ou aspects_for_harmonics([5, 9, 10]) (voir Ensembles d’aspects configurables ci-dessous).

Tableau récapitulatif

Harmonique

Division

Aspects

1

180°/1

Conjonction (0°), Opposition (180°)

2

180°/2

Carré (90°)

3

180°/3

Sextile (60°), Trigone (120°)

6

180°/6

Semi-sextile (30°), Quinconce (150°)

Le tableau ci-dessus liste les 7 aspects demi-cercle par défaut (preset TRADITIONAL). Les aspects mineurs plein-cercle (H5/H9/H10) sont disponibles dans le code ; voir la note ci-dessus et Ensembles d’aspects configurables.

Ensemble d’aspects par défaut (v1.3+) : la valeur par défaut de la bibliothèque est l’ensemble des 7 aspects du demi-cercle (harmoniques 1, 2, 3, 6 — preset TRADITIONAL) : Conjonction, Semi-sextile, Sextile, Carré, Trigone, Quinconce, Opposition. Les harmoniques mineurs du cercle complet (H5/H9/H10) sont opt-in et ne sont pas inclus par défaut.

Ensembles d’aspects configurables (Nouveau dans v1.1, mis à jour dans v1.3)

Plutôt que de toujours calculer les 14 aspects, vous pouvez sélectionner un preset ou passer un masque personnalisé :

  • TRADITIONAL (valeur par défaut de la bibliothèque) : les 7 aspects du demi-cercle — Conjonction, Semi-sextile, Sextile, Carré, Trigone, Quinconce, Opposition (harmoniques 1, 2, 3, 6)

  • CLASSICAL : Conjonction, Sextile, Carré, Trigone, Opposition (5 aspects majeurs ; l’ancien défaut de v1.2 — toujours disponible comme preset opt-in « 5 majeurs »)

  • EXTENDED : les 14 aspects

from ketu.aspects import calculate_aspects, CLASSICAL, TRADITIONAL, EXTENDED

# New library default (7 half-circle aspects):
aspects = calculate_aspects(jday)                        # uses TRADITIONAL

# Old 5-major default (restore v1.2 behavior):
aspects = calculate_aspects(jday, aspects=CLASSICAL)     # 5 aspects

# All 14 aspects:
aspects = calculate_aspects(jday, aspects=EXTENDED)      # 14 aspects

Composition harmonique avec aspects_for_harmonics (Nouveau dans v1.3) : construisez un ensemble d’aspects personnalisé à partir de toute combinaison des harmoniques pris en charge. C’est la fonction sœur de sélection harmonique des presets nommés :

from ketu.aspects import aspects_for_harmonics

# Compose the library default explicitly (7 half-circle):
mask = aspects_for_harmonics([1, 2, 3, 6])

# Opt into the full-circle minor aspects:
minors = aspects_for_harmonics([5, 9, 10])

# Just the Sextile and Trine (harmonic 3):
h3_only = aspects_for_harmonics([3])

# All 14:
all14 = aspects_for_harmonics([1, 2, 3, 5, 6, 9, 10])

aspects_for_harmonics retourne un masque numpy.bool_ figé de longueur 14, qui peut être passé directement comme argument aspects= à toute fonction Ketu. Harmoniques valides : {1, 2, 3, 5, 6, 9, 10}.

Générateur d’harmoniques dynamiques (generate_harmonic_aspects)

generate_harmonic_aspects(h) construit des spécifications d’aspects à la volée pour tout harmonique entier h (2 ≤ h ≤ 64), pas seulement les harmoniques des presets nommés. Il utilise la convention plein-cercle 360° repliée sur 0–180°, et le tableau retourné possède le même dtype que core.aspects, ce qui en fait un substitut direct pour tout consommateur.

from ketu.aspects import generate_harmonic_aspects

# Harmonic 7: 3 unique folded angles (septile family)
specs = generate_harmonic_aspects(7)
print(len(specs))          # 3
print(specs['name'])       # [b'H7-1', b'H7-2', b'H7-3']
print(specs['angle'])      # [51.43, 102.86, 154.29]
print(specs['coef'])       # [0.1429, 0.2857, 0.4286]

# Pass to calculate_aspects via dynamic_specs:
from ketu.aspects import calculate_aspects
jd = 2451545.0  # J2000
result = calculate_aspects(jd, dynamic_specs=generate_harmonic_aspects(7))

Le tableau retourné est un substitut direct pour core.aspects (même dtype) et se passe comme argument dynamic_specs= à calculate_aspects, find_aspects_between_dates et calculate_synastry.

Note sur les orbes : Les orbes des harmoniques dynamiques utilisent coef = k / h (convention plein-cercle). Pour les harmoniques élevés, cela donne des orbes environ deux fois plus petits que l’aspect demi-cercle équivalent — ex. un septile (H7-1, coef ≈ 0,143) donne un orbe plus petit qu’un sextile (coef ≈ 0,333) pour la même paire de corps. C’est un comportement accepté : les deux conventions coexistent sans unification (voir les notes de version v1.4).

Nommage harmonique synthétique (H{h}-{k})

Ketu utilise deux canaux distincts pour les aspects harmoniques, et ils suivent des règles de nommage différentes.

Canal GÉNÉRATEURgenerate_harmonic_aspects(h) émet toujours des noms H{h}-{k} (k = 1…h//2), uniformes et mécaniques, sans substitution par un nom traditionnel. Les octets name émis sont toujours b'H{h}-{k}' (dtype S16), figés pour toutes les versions mineures et correctives v1.5+.

Canal DÉTECTION — lorsque calculate_aspects ou find_aspects_between_dates détecte un angle en collision avec un aspect de la table canonique, il rapporte le nom canonique avec priorité statique. Par exemple, un angle de 120° est rapporté comme Trine (i_asp=9), et non H3-1 (i_asp=-2). Le label H{h}-{k} n’apparaît dans les résultats que pour les angles véritablement hors table (sentinelle i_asp=-2).

Table de référence des noms traditionnels (documentation uniquement — jamais émis par le générateur) :

Nom synthétique

Nom traditionnel

H5-1

Quintile

H5-2

Biquintile

H7-1

Septile

H9-1

Novile

H9-2

Binovile

H9-4

Quadnovile

Ces noms traditionnels sont fournis ici uniquement comme référence humaine. Ils n’apparaissent jamais dans les octets name du tableau structuré émis par generate_harmonic_aspects.

--harmonics h7 — harmoniques arbitraires en ligne de commande (Nouveau en v1.5)

La CLI accepte la forme h<N> pour --harmonics afin de sélectionner une famille d’harmoniques arbitraire en ligne de commande, sans écrire de code Python.

Syntaxe : --harmonics h<N> (préfixe h, insensible à la casse ; ex. h7, H7). N doit être un entier dans [2, 64]. Le jeton sélectionne uniquement la famille d’harmoniques choisie via le canal dynamic_specs= (voir Nommage harmonique synthétique (H{h}-{k}) pour l’explication des deux canaux). Le masque de la table d’aspects statique est vide — seuls les aspects dynamiques H{N}-{k} sont détectés.

Sémantique : l’en-tête de configuration résolue sur stderr indique # Aspect set: h7 (...). Le bloc de positions et le bloc final “Aspect Timing Example” sont toujours émis inchangés (l’exemple de timing utilise les aspects classiques Soleil-Lune indépendamment de la sélection --harmonics).

Limite de la grammaire stricte — ce qui est supporté vs. reporté :

Forme

Statut

Exemple

h<N> seul

Supporté (v1.5+)

--harmonics h7

Liste d’indices séparés par des virgules

Supporté (pré-existant)

--harmonics 0,4,9

Préréglage nommé

Supporté (pré-existant)

--harmonics classical

Mélange multi-harmonique (h7,h11)

PAS ENCORE SUPPORTÉ (HARMF-01)

rejeté avec une erreur

Mélange préréglage+harmonique (traditional,h7)

PAS ENCORE SUPPORTÉ (HARMF-01)

rejeté avec une erreur

Les formes mixtes (h7,h11, traditional,h7) sont reportées à HARMF-01 et sont actuellement rejetées avec une erreur argparse. Ne pas les utiliser en v1.5.

Exemple pratique (J2000, famille des septiles) :

python -m ketu --harmonics h7 aspects --date 2000-01-01T12:00:00Z

Cela émet les aspects de la famille des septiles (H7-1 ≈51.43°, H7-2 ≈102.86°, H7-3 ≈154.29°) pour toutes les paires de corps en orbe à J2000, suivi du bloc classique “Aspect Timing Example”. L’en-tête stderr confirme la sélection résolue : # Aspect set: h7 (3 aspects: H7-1 51°, H7-2 103°, H7-3 154°).

Orbes

Principe des orbes

Dans la tradition arabe, chaque planète possède un orbe (zone d’influence) qui lui est propre. L’orbe d’un aspect entre deux planètes est calculé comme la demi-somme des orbes des deux planètes, multipliée par le coefficient harmonique.

# Orb calculation in Ketu
orb = [(orb_planet1 + orb_planet2) / 2] * harmonic_coefficient

Orbes par défaut des planètes

Corps

Orbe

Soleil, Lune

12°

Vénus, Jupiter, Saturne

10°

Mercure, Mars

Uranus, Neptune

Pluton, Chiron

Rahu, Lilith

Types d’aspects et coefficients harmoniques

Les 7 aspects demi-cercle par défaut (preset TRADITIONAL, harmoniques 1, 2, 3, 6) :

Aspect

Angle

Symbole

Harmonique

Coefficient

Conjonction

1

1

Semi-sextile

30°

6

1/6

Sextile

60°

3

1/3

Carré

90°

2

1/2

Trigone

120°

3

2/3

Quinconce

150°

6

5/6

Opposition

180°

1

1

Les 7 aspects mineurs plein-cercle (H5/H9/H10) restent disponibles via EXTENDED / aspects_for_harmonics([5, 9, 10]) et sont listés dans le tableau complet des 14 aspects dans la référence API.

Exemples de calcul

Aspect Soleil-Lune (Conjonction)

  • Orbe du Soleil : 12°

  • Orbe de la Lune : 12°

  • Coefficient : 1 (conjonction)

  • Orbe final : (12 + 12) / 2 × 1 = 12°

Aspect Mercure-Mars (Carré)

  • Orbe de Mercure : 8°

  • Orbe de Mars : 8°

  • Coefficient : 1/2 (carré)

  • Orbe final : (8 + 8) / 2 × 0.5 =

Aspect Vénus-Jupiter (Sextile)

  • Orbe de Vénus : 10°

  • Orbe de Jupiter : 10°

  • Coefficient : 1/3 (sextile)

  • Orbe final : (10 + 10) / 2 × 0.333 = 3.33°

Systèmes de maisons

Que sont les maisons ?

Les maisons astrologiques divisent le ciel local en douze secteurs selon la position géographique de l’observateur et l’heure de naissance. Contrairement aux signes du zodiaque (fixes le long de l’écliptique), les maisons tournent avec la rotation quotidienne de la Terre et dépendent de l’horizon et du méridien locaux.

Ketu prend en charge six systèmes de maisons (Nouveau dans v1.1/v1.2) :

  • Placidus ("placidus") : Le système le plus utilisé en astrologie occidentale. Divise chaque quadrant par le temps plutôt que par l’espace.

  • Koch ("koch") : Similaire à Placidus mais avec une formule de division temporelle différente ; sensible aux hautes latitudes.

  • Porphyre ("porphyry") : Divise chaque quadrant en trois parties égales par longitude. Plus simple et fonctionne à toutes les latitudes.

  • Maisons entières ("whole_sign") : Chaque maison correspond à un signe entier du zodiaque, en commençant par le signe ascendant.

  • Maisons égales ("equal") : Les maisons sont de 30° chacune, en partant du degré de l’Ascendant.

  • Régiomontanus ("regiomontanus") : Divise l’équateur céleste en parties égales ; populaire en astrologie médiévale.

Comportement aux hautes latitudes

Placidus et Koch peuvent échouer à calculer les cuspides aux très hautes latitudes (au-dessus d’environ 66°). Utilisez polar_fallback="porphyry" pour un repli gracieux, ou polar_fallback="raise" (défaut) pour recevoir une HighLatitudeError.

from ketu.houses import calculate_houses, HighLatitudeError

jd = 2451545.0  # J2000
try:
    h = calculate_houses(jd, lat=70.0, lon=25.0, system="placidus")
except HighLatitudeError:
    h = calculate_houses(jd, lat=70.0, lon=25.0, system="porphyry")

Voir Maisons pour la référence API complète et les exemples.

Sect (Thème diurne vs. nocturne)

Qu’est-ce que la Sect ?

La Sect est une doctrine classique distinguant les thèmes diurnes (Soleil au-dessus de l’horizon à la naissance) des thèmes nocturnes (Soleil sous l’horizon). Cette distinction affecte le calcul de certaines Parties arabes comme la Part de Fortune et la Part d’Esprit, qui inversent leurs formules entre les thèmes diurnes et nocturnes.

Dans Ketu, is_day_chart(jd, lat, lon) retourne True lorsque le Soleil est au-dessus de l’horizon au moment et à l’emplacement donnés. Cette fonction utilitaire est utilisée en interne par calculate_part pour les lots sensibles à la sect.

from ketu.charts import is_day_chart

jd = 2451545.0       # J2000
lat, lon = 48.8566, 2.3522  # Paris
print(is_day_chart(jd, lat, lon))

Voir Parties arabes pour l’influence de la sect sur les formules de Fortune et d’Esprit.

Déclinaison équatoriale — Nouveau dans v1.5

Déclinaison δ vs. latitude écliptique β

Ketu suit deux grandeurs nord/sud distinctes pour chaque corps :

  • Latitude écliptique β — distance angulaire au-dessus/en-dessous du plan écliptique. Retournée par lat(jd, body). La fonction is_ascending suit si β est croissante.

  • Déclinaison équatoriale δ — distance angulaire au nord/sud de l’équateur céleste. Retournée par declination(jd, body). La fonction is_ascending_declination suit si δ est croissante (montante/descendante).

Ce sont des grandeurs différentes qui divergent à des jours différents. « Lune montante » est ambigu sans préciser le système de coordonnées :

Fonction

Suit

Concept

is_ascending(jd, 1)

β croissante (latitude écliptique)

Mouvement de latitude traditionnel

is_ascending_declination(jd, 1)

δ croissante (déclinaison)

Montant/descendant biodynamique

Preuve de l’indépendance β-vs-δ : au 2025-03-07 (JD=2460742,0), Lune près d’un pic de grand arrêt (δ≈+28,66°), is_ascending_declination=True (dδ/dt=+0,30°/jour) tandis que is_ascending=False (β décroissante). Elles basculent à des jours différents.

Montant / Descendant (cadrage biodynamique)

En biodynamie, le cycle montant/descendant désigne la trajectoire de la déclinaison équatoriale δ propre à la Lune — et non aux conventions des signes zodiacaux ou à la latitude écliptique.

  • Montante (croissante en δ) : dδ/dt > 0, Lune se déplaçant vers le nord. is_ascending_declination retourne True.

  • Descendante (décroissante en δ) : dδ/dt < 0, Lune se déplaçant vers le sud. is_ascending_declination retourne False.

La période du cycle δ de la Lune est d’environ 27,21 jours (mois draconique/nodal) — le temps entre deux passages successifs vers le nord de l’équateur céleste. C’est proche du mois tropical (27,32 j) mais s’en distingue.

from ketu.calculations import (
    declination,
    declination_velocity,
    is_ascending_declination,
)

jd = 2451545.0  # J2000

delta = declination(jd, 1)
vel   = declination_velocity(jd, 1)

print(f"Moon δ: {delta:.4f}°")
print(f"Moon dδ/dt: {vel:.4f}°/day")
print("Montante" if is_ascending_declination(jd, 1) else "Descendante")

Hors limites (OOB)

Un corps est hors limites (out-of-bounds) quand sa déclinaison dépasse l’obliquité instantanée de l’écliptique : |δ| > ε(jd).

Dans des conditions normales, aucune planète ne peut dépasser l’obliquité — la déclinaison du Soleil définit les bornes de l’obliquité (±ε ≈ ±23,4°). La Lune fait exception : parce que son plan orbital est incliné d’~5° par rapport à l’écliptique, elle peut dépasser les déclinaisons extrêmes du Soleil lors du grand arrêt lunaire (~18,6 ans de cycle nodal). En 2024–2025, la Lune atteint |δ| ≈ 28,7°.

Le seuil hors limites utilise l’obliquité vraie instantanée ε(jd) — et non l’obliquité moyenne — car la nutation décale ε de ±17 secondes d’arc au maximum.

from ketu.calculations import is_out_of_bounds

jd_standstill = 2460742.0   # 2025-03-07, near major standstill peak

print(f"Moon OOB: {is_out_of_bounds(jd_standstill, 1)}")   # True

CHART_DTYPE — champ body_decl (Nouveau dans v1.5)

CHART_DTYPE gagne un champ additif body_decl (float64[14]) contenant la déclinaison équatoriale δ pour chacun des 14 corps. Il s’agit d’un changement de dtype additif : le nombre de corps (14) est inchangé, mais le code aval utilisant l’accès positionnel ou .view() sur CHART_DTYPE doit s’adapter (impact Kala documenté, pas de migration automatique).

from ketu.charts import compute_chart

chart = compute_chart(jd, 48.8566, 2.3522)
moon_decl = chart["body_decl"][1]   # Moon δ in degrees

Aspects de déclinaison — Nouveau dans v1.6

Les aspects de déclinaison comparent deux corps sur l’axe de la déclinaison équatoriale (δ), indépendamment de la longitude écliptique. Le détecteur réside dans le sous-paquet additif ketu.declinationCHART_DTYPE est inchangé. Il consomme chart["body_decl"] (le champ (14,) livré en v1.5).

Parallèle et contre-parallèle

  • Parallèle (P) : deux corps partagent la même déclinaison δ ET sont du même côté de l’équateur céleste (tous deux au nord OU tous deux au sud). Règle sur δ signé : sign(δ₁) == sign(δ₂) 0  AND  |δ₁ δ₂| orb. La règle du même hémisphère est stricte — la convention dominante chez Sepharial, Carter, Cafe Astrology, Lunarium, McAfee, Kerykeion et astro.com.

  • Contre-parallèle (CP) : magnitude de δ égale mais de côtés opposés de l’équateur céleste. Règle sur δ signé : sign(δ₁) sign(δ₂)  AND  both 0  AND  |δ₁ + δ₂| orb.

  • Piège du signe nul : un corps exactement sur l’équateur céleste (δ = 0, np.sign → 0) ne forme ni parallèle ni contre-parallèle. Deux corps exactement à δ = 0 ont une séparation de 0° mais ne sont pas signalés.

import numpy as np
from ketu.declination import find_declination_aspects

decl = np.zeros(14)
decl[0] = 20.0   # Sun  δ = +20.0°
decl[1] = 20.5   # Moon δ = +20.5°  → same hemisphere, gap 0.5° ≤ 1.0° orb

aspects = find_declination_aspects(decl)
print(aspects)   # [(0, 1, 'P', 0.5, 1.0)] — Sun/Moon parallel

La formule d’orbe (dérivée des corps)

L’orbe par paire sur l’axe de la déclinaison est :

δ_orb(b1, b2) = max((bodies['orb'][b1] + bodies['orb'][b2]) / 2 × DECLA_COEF, MIN_DECL_ORB)

avec DECLA_COEF = 1/12 0.0833 et MIN_DECL_ORB = 0.5°.

Exemple détaillé Soleil/Lune : orbe Soleil 12° + orbe Lune 12° → moyenne 12° → × 1/12 → exactement 1.0°. Le coefficient 1/12 est l’inverse de l’orbe de corps maximale (Soleil/Lune tous deux à 12°) — une fraction exacte justifiée, pas un nombre magique — choisie pour que Soleil/Lune tombe sur le consensus natal publié de 1° (Carter, Cafe Astrology, astro.com).

Exemple de plancher : les corps à orbe nulle (Rahu, Ketu, Lilith — orbe 0) → la formule donne 0° → plancher à 0.5° pour qu’ils restent détectables.

Paire

Orbe δ

Soleil / Lune

1,0°

Soleil / Mars

0,833°

Jupiter / Saturne

0,833°

Uranus / Neptune

0,5°

Rahu / Lilith

0,5° (plancher)

Cadrage biodynamique

Parallèle ≈ conjonction par déclinaison ; contre-parallèle ≈ opposition par déclinaison (Sepharial : « ils agissent comme en conjonction » ; Carter associe le parallèle à la conjonction). Ce sont des ANGLES/relations entre corps sur l’axe δ — le même cadrage biodynamique centré sur les aspects que le reste de Ketu, pas des conventions de signes zodiacaux.

Parallèle ≠ conjonction en longitude (la distinction clé)

Deux corps peuvent être parallèles en déclinaison sans être conjoints en longitude écliptique, et inversement. La déclinaison δ (équatoriale) et la longitude (écliptique) sont des mesures indépendantes. Un « double whammy » (à la fois conjoint ET parallèle) est nettement plus fort, mais les chemins de détection sont entièrement séparés — find_declination_aspects ne consomme que body_decl, jamais les longitudes.

Symboles et abréviations

Aspect

Symbole

Abrév. texte

Notes

Parallèle

// (U+2BDD proposé)

P

/ comme replis texte

Contre-parallèle

# (U+2BDE proposé)

CP

Dominant dans les tables imprimées

Les glyphes // et # sont des propositions de David Faulks (Unicode L2/16-174, 2016) — pas encore dans le standard Unicode. Les abréviations texte P / CP suivent les conventions de Solar Fire et Astrodienst et servent de valeurs du champ kind dans DECLA_ASPECT_DTYPE.

Interaction avec les corps hors limites

Les corps hors limites (|δ| > ε, suivis via is_out_of_bounds depuis v1.5) participent à la détection P/CP de manière mécaniquement identique — la formule ne change pas. « Tous deux hors limites » est une annotation interprétative que l’appelant compose (par ex. en combinant les résultats de is_out_of_bounds avec la sortie d’aspects), pas un drapeau de détection. Certains auteurs (Boehrer, McAfee) considèrent les parallèles à deux corps hors limites comme particulièrement intenses — une simple note de délination.

Mouvements planétaires

Rétrogradation

La rétrogradation est le mouvement apparent d’une planète qui semble reculer dans le zodiaque. C’est une illusion optique due aux différences de vitesse orbitale entre la Terre et la planète observée.

from ketu.calculations import is_retrograde

if is_retrograde(jday, planet_id):
    print("Planet retrograde")

Vitesses moyennes

Planète

Vitesse moyenne

Cycle complet

Lune

13,18°/jour

27,3 jours

Mercure

1,38°/jour

88 jours

Vénus

1,20°/jour

225 jours

Soleil

0,99°/jour

365,25 jours

Mars

0,52°/jour

687 jours

Jupiter

0,08°/jour

11,9 ans

Saturne

0,03°/jour

29,5 ans

Uranus

0,01°/jour

84 ans

Neptune

0,01°/jour

165 ans

Pluton

0,00°/jour

248 ans

Signes du zodiaque

Signe

Symbole

Degré de début

Degré de fin

1

Bélier

30°

2

Taureau

30°

60°

3

Gémeaux

60°

90°

4

Cancer

90°

120°

5

Lion

120°

150°

6

Vierge

150°

180°

7

Balance

180°

210°

8

Scorpion

210°

240°

9

Sagittaire

240°

270°

10

Capricorne

270°

300°

11

Verseau

300°

330°

12

Poissons

330°

360°

from ketu.calculations import body_sign
import ketu

# Get a planet's sign
sign_data = body_sign(longitude)
sign_index = sign_data[0]  # 0-11
degrees = sign_data[1]      # 0-29
minutes = sign_data[2]      # 0-59
seconds = sign_data[3]      # 0-59

sign_name = ketu.signs[sign_index]

Configurations planétaires

Grand Trigone

Trois planètes formant des trigones entre elles (triangle équilatéral de 120°).

T-Carré

Deux planètes en opposition (180°), toutes deux en carré (90°) à une troisième planète (apex).

Yod (Doigt de Dieu)

Deux planètes en sextile (60°), toutes deux en quinconce (150°) à une troisième planète (apex).

Grand Carré

Quatre planètes formant quatre carrés (90°) et deux oppositions (180°), créant un carré dans le thème.

Cycles et retours

Retours planétaires

Un retour planétaire se produit quand une planète revient à sa position natale (même longitude écliptique).

Principaux retours :

  • Retour solaire : Anniversaire astrologique (365,25 jours)

  • Retour lunaire : Environ tous les 27,3 jours

  • Retour de Jupiter : Environ tous les 12 ans

  • Retour de Saturne : Environ à 29-30 ans et 58-60 ans

Ketu fournit des fonctions dédiées pour les retours solaires et lunaires dans ketu.returns. Voir Thèmes prédictifs pour les détails.

Prochaines étapes