Thèmes prédictifs : retours solaires et lunaires
Les thèmes de retour marquent le moment où une planète revient à la même longitude écliptique qu’elle occupait à la naissance. Ketu fournit deux fonctions de retour — solar_return pour le retour annuel du Soleil, et lunar_return pour le retour mensuel de la Lune.
Les deux fonctions retournent un tableau structuré CHART_DTYPE complet (identique à compute_chart), avec le système de maisons natal complet, les positions des corps et la matrice d’aspects calculés pour le moment exact du retour.
Asymétrie importante de l’API
Fonction |
Paramètre cible |
Type |
Signification |
|---|---|---|---|
|
|
|
Année calendaire dans laquelle trouver le retour |
|
|
|
Jour Julien à partir duquel commencer la recherche |
Cette distinction est importante : solar_return(natal_jd, ..., target_year=2026) trouve le retour qui tombe dans l’année 2026 (il y en a exactement un). lunar_return(natal_jd, ..., target_jd=jd_now) trouve le prochain retour lunaire à partir de target_jd ou après (il y en a ~13 par an).
solar_return
solar_return(
natal_jd,
natal_lat,
natal_lon,
target_year,
return_lat=None,
return_lon=None,
system="placidus",
)
Paramètres :
natal_jd— Jour Julien du thème natalnatal_lat,natal_lon— emplacement natal (utilisé comme emplacement de retour par défaut)target_year— année calendaire (int) dans laquelle trouver le retour solairereturn_lat,return_lon— coordonnées de relocalisation (voir ci-dessous) ; défautNone= emplacement natalsystem— système de maisons pour le thème de retour (défaut"placidus")
Exemple — retour solaire pour 2026, emplacement natal
from ketu.returns import solar_return
natal_jd = 2451545.0 # natal chart: J2000 (2000-01-01 12:00 UTC)
natal_lat = 48.8566 # Paris
natal_lon = 2.3522
sr = solar_return(natal_jd, natal_lat, natal_lon, target_year=2026)
print(f"Solar return JD: {sr['jd']:.4f}")
print(f"Solar return ASC: {sr['asc']:.2f} deg")
print(f"Sun longitude: {sr['body_lons'][0]:.4f} deg") # Should match natal Sun
lunar_return
lunar_return(
natal_jd,
natal_lat,
natal_lon,
target_jd,
return_lat=None,
return_lon=None,
system="placidus",
)
Paramètres :
natal_jd— Jour Julien du thème natalnatal_lat,natal_lon— emplacement nataltarget_jd— Jour Julien à partir duquel commencer la recherche (float) ; la fonction retourne le premier retour lunaire à ce JD ou aprèsreturn_lat,return_lon— coordonnées de relocalisation ; défautNone= emplacement natalsystem— système de maisons pour le thème de retour
Exemple — prochain retour lunaire depuis J2000
from ketu.returns import lunar_return
natal_jd = 2451545.0 # natal chart: J2000
natal_lat = 48.8566 # Paris
natal_lon = 2.3522
# Find the lunar return starting from approximately the same date
lr = lunar_return(natal_jd, natal_lat, natal_lon, target_jd=natal_jd)
print(f"Lunar return JD: {lr['jd']:.4f}")
print(f"Lunar return ASC: {lr['asc']:.2f} deg")
print(f"Moon longitude: {lr['body_lons'][1]:.4f} deg") # Should match natal Moon
Relocalisation
Les deux fonctions acceptent des paramètres optionnels return_lat / return_lon. Lorsqu’ils sont fournis, les cuspides de maisons et les angles dans le thème de retour sont calculés pour les coordonnées de relocalisation plutôt que pour l’emplacement natal. C’est utilisé dans l’analyse des thèmes de retour relocalisés.
from ketu.returns import solar_return
natal_jd = 2451545.0
natal_lat = 48.8566 # natal: Paris
natal_lon = 2.3522
# Relocated solar return: body positions are for the exact return moment,
# but houses are cast for New York
sr_relocated = solar_return(
natal_jd, natal_lat, natal_lon,
target_year=2026,
return_lat=40.7128, # New York
return_lon=-74.0060,
)
print(f"Relocated ASC: {sr_relocated['asc']:.2f} deg")
Lorsque return_lat=None et return_lon=None (les défauts), les coordonnées natales sont utilisées à la fois pour la recherche du moment de retour et le calcul des maisons.
Contrat UTC
Toutes les valeurs de Jour Julien (natal_jd, target_jd) doivent être en UTC. Les fonctions n’effectuent aucune conversion de fuseau horaire en interne.
from ketu.ephemeris.time import utc_to_julian
from datetime import datetime, timezone
natal_dt = datetime(2000, 1, 1, 12, 0, 0, tzinfo=timezone.utc)
natal_jd = utc_to_julian(natal_dt)
Prochaines étapes
Thèmes relationnels — thèmes de synastrie et composites
Référence API — signatures complètes pour
ketu.returns