Files
jardin/calendrier_lunaire/deep_search1.md
2026-02-22 15:05:40 +01:00

21 KiB
Raw Permalink Blame History

Calendrier lunaire de jardinage Guide complet

Résumé exécutif

Le calendrier lunaire de jardinage exploite la position et le cycle de la Lune (phases, déclinaison, périgée/apogée, nœuds) pour rythmer semis, plantations et récoltes. Cette approche traditionnelle, popularisée depuis le b.a.-ba de lagriculture biodynamique, associe chaque jour lunaire à un type de culture (racine/feuille/fleur/fruit) et tient compte de la Lune montante ou descendante. Attention toutefois: la science moderne ne confirme aucune influence directe significative de la Lune sur la croissance des plantes【6†L373-L381】【5†L108-L116】. Néanmoins, beaucoup de jardiniers lutilisent comme repère complémentaire. Ce document explique les notions astronomiques (phases, illumination, déclinaison, signes zodiacaux, périgée/apogée, nœuds), leur calcul en Python, les règles de jardinage associées, ainsi que le fonctionnement du script fourni (algorithme, limites, sortie). Des exemples de configuration (JSON/CSV) et des conseils damélioration (CLI, API, base, front-end) sont détaillés, ainsi quune section sur les dictons français du jardinage et les « saints de glace ».

Concepts astronomiques du calendrier lunaire

  • Phases lunaires : La phase se définit par langle Lunaire-Solaire autour de la Terre. Concrètement, on calcule la différence de longitude écliptique entre la Lune et le Soleil【14†L123-L131】. Cette différence vaut 0° pour la Nouvelle Lune, 90° pour le Premier Quartier, 180° pour la Pleine Lune, 270° pour le Dernier Quartier (modulo 360°)【14†L123-L131】. En Python (Skyfield), on utilise almanac.find_discrete(ts0,ts1, almanac.moon_phases(eph)) pour trouver les instants précis (UTC) de chaque phase.

  • Illumination de la Lune : Le pourcentage du disque lunaire éclairé se calcule par la géométrie SoleilTerreLune. Si θ est la séparation angulaire (en radians) entre la Lune et le Soleil vue de la Terre, alors la fraction illuminée = (1cosθ)/2. En code, sep = v_sun.separation_from(v_moon).radians; illum = (1 - math.cos(sep))/2. Skyfield offre aussi moon.fraction_illuminated(sun), mais la formule ci-dessus est équivalente. Le script compare lillumination dun jour au lendemain pour déterminer si la Lune croît ou décroît.

  • Lune montante / descendante : On dit «Lune montante» si la déclinaison géocentrique de la Lune (angle par rapport à léquateur céleste) augmente dun jour sur lautre. Sinon elle est «descendante». Dans le script on calcule la déclinaison (v_moon.radec()[1].degrees) à midi un jour et le jour suivant. Exemple :

    dec = v_moon.radec()[1].degrees
    dec2 = v_moon2.radec()[1].degrees
    montante = dec2 >= dec  # True si Lune "montante"
    

    La lune montante est traditionnellement favorable aux travaux aériens (semis, récoltes), la descendante aux travaux racinaires (plantation, taille).

  • Signe zodiacal (longitude écliptique) : La position de la Lune devant le zodiaque sert à définir le type de jour (racine/feuille/fleur/fruit). On calcule la longitude écliptique lunaire (0°360°) via Skyfield (v_moon.ecliptic_latlon()). Le signe astrologique = int(longitude/30) (0=Bélier, 1=Taureau, …). Par convention :

    • Terre (Taureau, Vierge, Capricorne)Jour Racine (légumes-racines)【24†L44-L53】.
    • Eau (Cancer, Scorpion, Poissons)Jour Feuille (plantes feuillues)【24†L44-L53】.
    • Air (Gémeaux, Balance, Verseau)Jour Fleur (fleurs, choux-fleurs)【24†L50-L53】.
    • Feu (Bélier, Lion, Sagittaire)Jour Fruit (légumes-fruits)【24†L52-L55】.
      Ces correspondances sont purement traditionnelles. Le script possède une table Python :
    SIGN_NAMES = ["Bélier","Taureau",,"Poissons"]
    SIGN_TO_TYPE = {
        "Taureau":"Racine","Vierge":"Racine","Capricorne":"Racine",
        "Cancer":"Feuille","Scorpion":"Feuille","Poissons":"Feuille",
        "Gémeaux":"Fleur","Balance":"Fleur","Verseau":"Fleur",
        "Bélier":"Fruit","Lion":"Fruit","Sagittaire":"Fruit"
    }
    signe = SIGN_NAMES[int(lon.degrees//30)]
    type_jour = SIGN_TO_TYPE[signe]
    
  • Périgée / Apogée de la Lune : Lorbite lunaire est elliptique. Périgée = point le plus proche de la Terre, apogée = point le plus éloigné【18†L108-L112】. Chaque lunaison comporte un périgée et un apogée. Skyfield na plus almanac.moon_distance, donc on calcule la distance TerreLune à midi chaque jour :

    dist = earth.at(ts.utc(date)).observe(moon).distance().km
    

    On repère les minima locaux (périgée) et maxima locaux (apogée) dans la liste journalière. Ex.:

    distances = [earth.at(ts.utc(d.year,d.month,d.day,12,0,0)).observe(moon).distance().km for d in days]
    # repérer indices i tels que dist[i] < dist[i±1] → périgée
    

    Traditionnellement, on évite de jardiner durant ces jours (le périgée apporterait «trop dénergie», lapogée «ralentissement de croissance»)【24†L66-L73】.

  • Nœuds lunaires : Ce sont les deux points où lorbite de la Lune coupe lécliptique【16†L155-L163】 (juste avant/après éclipses). On peut utiliser almanac.moon_nodes(eph) et find_discrete pour obtenir ces dates. Dans la pratique, les jours de nœuds sont considérés «perturbés» et déconseillés au jardinage【24†L66-L73】.

gantt
    dateFormat  YYYY-MM-DD
    title Phases lunaires (Mars 2026)
    section Phases
    Nouvelle lune        : 2026-03-03, 1d
    Premier quartier     : 2026-03-10, 1d
    Pleine lune          : 2026-03-18, 1d
    Dernier quartier     : 2026-03-25, 1d

Liens vers les pratiques de jardinage

Les astronomes jardiniers ont formulé ces règles pratiques (purement empiriques)【7†L208-L214】【20†L24-L32】 :

  • Lune croissante (montante) moment daction au-dessus du sol : semis de légumes-fruits, greffage, récolte. Exemple : on sème haricots/tomates le premier quartier【7†L208-L214】.
  • Lune décroissante (descendante) moment daction sur racines/sol : plantations, repiquages, binage, taille. Ex.: planter pommes de terre en lune descendante【7†L208-L214】.
  • Jour “Racine” (signe de Terre) : planter légumes-racines (carottes, betteraves)【24†L44-L53】.
  • Jour “Feuille” (signe dEau) : semer feuilles et aromatiques (laitues, épinards)【24†L44-L53】.
  • Jour “Fleur” (signe dAir) : greffer et soigner fleurs/ornementales (brocolis, roses)【24†L50-L53】.
  • Jour “Fruit” (signe de Feu) : semer/planter légumes-fruits (tomates, courgettes, arbres fruitiers)【24†L52-L55】.

Un tableau synthétique :

Phase / Jour lunaire Action jardin Exemple
Croissante (Nouvelle→Pleine) Développement aérien semis/greffe Semer tomates au premier quartier【7†L208-L214】
Décroissante (Pleine→Nouvelle) Consolidation planter, tailler Planter pommes de terre en lune descendante【7†L208-L214】
Lune montante Semis/engrais/ récoltes Récolter herbes aromatiques【7†L208-L214】
Lune descendante Planter/tailler/travailler le sol Repiquer laitues, tailler rosiers【7†L208-L214】
Jour Racine (Terre) Légumes-racines (oignons, navets) Semer carottes (Lune en Taureau)【24†L44-L53】
Jour Feuille (Eau) Laitues, choux, épinards Semer épinards (Lune en Cancer)【24†L44-L53】
Jour Fleur (Air) Fleurs, brocolis, vivaces Planter choux-fleurs (Lune en Balance)【24†L50-L53】
Jour Fruit (Feu) Tomates, haricots, pois Semer tomates (Lune en Lion)【24†L52-L55】
Nœuds lunaires Éviter tout travail (période déclipse, jours “perturbés”)【24†L66-L73】
Périgée / Apogée Éviter/attention Récoltes précoces, éviter tailes risquées【24†L66-L73】

En pratique, on imprime souvent un calendrier lunaire annuel (papier ou appli mobile) pour suivre ces repères【24†L54-L60】【22†L66-L73】. À titre dexemple, voici la correspondance signes zodiacaux → type de jour, sous forme tabulaire :

Signe zodiacal Élément Type de jour Exemples de cultures
Bélier, Lion, Sagittaire Feu Fruit Tomates, poivrons, arbres fruitiers
Taureau, Vierge, Capricorne Terre Racine Carottes, pommes de terre, oignons
Gémeaux, Balance, Verseau Air Fleur Fleurs, choux-fleurs, aromatiques
Cancer, Scorpion, Poissons Eau Feuille Laitues, épinards, choux, salades

Ces associations sont présentées par exemple dans Semencemag【24†L44-L53】.

Le script Python : description technique

Le script lunar_calendar.py (Python 3.9+) génère un calendrier lunaire sur une période donnée. Points clés du fonctionnement :

  • Dépendances : skyfield (pour lastronomie), pytz (timezones), numpy. de421.bsp est téléchargé automatiquement (éphéméride NASA).

  • Période de calcul : par défaut un an (Jan→Déc). On peut modifier start et end dans la section __main__.

  • Fuseau horaire : Europe/Paris. On prend lheure locale midi pour éviter les transitions de date, puis on convertit en UTC pour Skyfield :

    TZ = pytz.timezone("Europe/Paris")
    local_noon = TZ.localize(datetime(year,month,day,12))
    t = ts.utc(local_noon.astimezone(pytz.utc))
    

    Ceci garantit que chaque date du calendrier correspond bien au jour solaire local.

  • Phases exactes :

    f_phase = almanac.moon_phases(eph)
    phase_times, phase_events = almanac.find_discrete(t0, t1, f_phase)
    phase_by_day = {}
    for t, ev in zip(phase_times, phase_events):
        local_day = t.utc_datetime().astimezone(TZ).date()
        phase_by_day[local_day] = ["Nouvelle Lune","Premier Quartier","Pleine Lune","Dernier Quartier"][int(ev)]
    

    On récupère ainsi les jours (par date locale) où surviennent exactement la NL, PQ, PL, DQ. Ces étiquettes sont stockées dans phase_by_day.

  • Illumination et montante/descendante : Pour chaque jour d, on calcule :

    e = earth.at(t)                      # position de la Terre à midi UTC
    v_sun = e.observe(sun).apparent()
    v_moon = e.observe(moon).apparent()
    sep = v_sun.separation_from(v_moon).radians
    illum = (1 - math.cos(sep)) / 2       # fraction (0..1) éclairée
    

    Puis pour le lendemain, même calcul (illum2, dec2). On définit :

    croissante = "Croissante" if illum2 >= illum else "Décroissante"
    dec = v_moon.radec()[1].degrees
    dec2 = v_moon2.radec()[1].degrees
    montante = "Montante" if dec2 >= dec else "Descendante"
    

    Cest-à-dire la Lune est “montante” si sa déclinaison augmente.

  • Signe zodiacal → type de jour : Toujours à midi, on récupère la longitude écliptique :

    lat, lon, dist = v_moon.ecliptic_latlon()
    signe = SIGN_NAMES[int(lon.degrees // 30) % 12]
    type_jour = SIGN_TO_TYPE[signe]
    

    Ainsi on remplit signe (ex. “Taureau”) et type_jour (“Racine”, etc) pour chaque date.

  • Périgée/Apogée manuel : Après avoir construit une liste quotidienne de distances (voir ci-dessus), on parcourt les valeurs : si dist[i] < dist[i-1] et < dist[i+1], cest un périgée (jour local minimal). Inversement pour un apogée. Ce repérage simple identifie un périgée et un apogée par lunaison. Exemple :

    if distances[i] < distances[i-1] and distances[i] < distances[i+1]:
        perigee_days.add(all_days[i])
    if distances[i] > distances[i-1] and distances[i] > distances[i+1]:
        apogee_days.add(all_days[i])
    

    Ces jours sont marqués dans lexport pour information.

  • Nœuds lunaires : On utilise directement almanac.moon_nodes(eph) et find_discrete entre t0 et t1. On convertit chaque instant en date locale pour obtenir node_days.

Limitations et précision :

  • Le calcul se fait au pas dun jour (midi). Il nest donc pas dune précision horaire au-delà du jour (assez pour un calendrier de plantation).
  • Le passage entre heures dété/hiver est géré par pytz.
  • Les assignations racine/feuille/fleur/fruit reposent sur des conventions astrologiques. Elles sont cohérentes avec la littérature francophone (Semencemag【24†L44-L53】, Rustica, etc.) mais non scientifiques.
  • Les algorithmes Skyfield sont précautionneusement utilisés pour donner des résultats très fiables sur plusieurs décennies.

Installation et tests

  1. Python 3.9+ : Vérifier (python3 --version).
  2. Environnement virtuel (optionnel mais recommandé) :
    cd /path/to/projet
    python3 -m venv .venv
    source .venv/bin/activate  # prompt indique (.venv)
    
  3. Installer les dépendances :
    pip install --upgrade pip
    pip install skyfield numpy pytz
    
    Vérifier : pip list doit lister skyfield, numpy, pytz.
  4. Lancer le script (lunar_calendar.py) :
    python lunar_calendar.py
    
    Au premier lancement, skyfield télécharge automatiquement de421.bsp.
    Un message “Calendrier lunaire généré” doit safficher. Le fichier calendrier_lunaire_2026.json (ou défini dans le script) est créé.
  5. Vérifier le résultat :
    head -n 5 calendrier_lunaire_2026.json
    
    ou
    cat calendrier_lunaire_2026.json | jq .
    
    Exemple de ligne JSON produite :
    {
      "date": "2026-03-14",
      "phase": "",
      "illumination": 67.34,
      "croissante_decroissante": "Croissante",
      "montante_descendante": "Montante",
      "signe": "Taureau",
      "type_jour": "Racine",
      "perigee": false,
      "apogee": false,
      "noeud_lunaire": false
    }
    
    Cette ligne indique quau 14/03/2026, la Lune est en Taureau (Jour Racine), croissante et montante, sans phase particulière ni événement spécial.

Commandes utiles :

  • Tester limport Skyfield : python -c "from skyfield.api import load; print('Skyfield OK')"
  • Debug : ajouter print pour les valeurs (illumination, décli, etc.) si nécessaire.

Exemples dusage et sorties

Le script génère un JSON (tableau dobjets quotidiens). On peut facilement adapter pour un CSV. Par exemple, le module Python csv est prêt à lemploi (démontré dans le code source). Les champs exportés sont : date, phase, « croissante/décroissante », « montante/descendante », signe, type de jour, booleans périgée/apogée/nœud.

Un exemple de format CSV (séparateur ;) :

date;phase_exacte;croissante_décroissante;montante_descendante;signe;type_jour;perigee;apogee;noeud
2026-03-14;;Croissante;Montante;Taureau;Racine;0;0;0
2026-03-15;Dernier Quartier;Décroissante;Descendante;Bélier;Fruit;0;0;0
...

Ce fichier peut être importé en base de données (SQLite) ou servi via une API (FastAPI) pour alimenter une interface web/mobile.

Améliorations possibles et pièges à éviter

  • Arguments en ligne de commande : utiliser argparse pour accepter --start, --end, --format (JSON/CSV).
  • FastAPI ou Flask : créer un endpoint /api/lune/{year} qui lit le JSON pré-calculé ou exécute dynamiquement le calcul. Attention à la latence du calcul si fait à la volée (mieux pré-calculer).
  • Base de données : pré-calculer plusieurs années (510 ans) et stocker en SQLite avec une table indexée sur date. Permet dinterroger rapidement pour une date donnée.
  • Timezones : toujours utiliser pytz et ASTimezone pour éviter les décalages DST erronés. Tester en hiver/été.
  • Précision : le calcul dévénements précis (phase à lheure près) est assuré par Skyfield. Pour le quotidien, on sen tient au repère “jour où lévénement tombe (UTC→local)”.
  • Interface graphique : ajouter un calendrier réactif (HTML/CSS/JS) coloré par type de jour (ex. : orange racine, vert feuille, violet fleur, jaune fruit), marquer les événements spéciaux (noeuds en rouge discret, périgée/apogée en gris). Gruvbox ou autre thème sombre/contrasté pour développeurs.
  • Stockage des données : suggestions JSON/CSV ci-dessus, ou génération de JSON à partir de SQLite. Ex:
    CREATE TABLE lune (
      date TEXT PRIMARY KEY,
      phase TEXT, lumiere REAL,
      croiss_dec TEXT, mont_dec TEXT,
      signe TEXT, type_jour TEXT,
      perigee INTEGER, apogee INTEGER, noeud INTEGER
    );
    
  • Documentation : ajouter des tests unitaires, du logging, et un README (vous êtes ici !).

Dictons et proverbes populaires du jardinage

La tradition française regorge de dictons et proverbes relatifs aux saisons et au jardinage. En voici quelques exemples :

  • « À chaque plante son temps, à chaque temps sa plante» on plante/sème selon la saison appropriée【32†L118-L121】.
  • «Tel est le jardinier, tel est le jardin» létat du potager reflète les soins du jardinier【32†L105-L109】.
  • «En avril, ne te découvre pas dun fil» prudence contre les dernières gelées tardives.
  • «Jamais trop tôt pour semer, jamais trop tard pour récolter» planter semis précoces et récolter tardivement.
  • «La patience est la mère des jardiniers» la réussite vient avec lobservation et le temps【32†L158-L161】.

Ces dictons reflètent lobservation empirique. Aucune librairie Python spécifique aux proverbes français nest connue. On peut les stocker dans un fichier JSON ou CSV pour usage interne. Par exemple, un format JSON possible :

[
  {
    "dicton": "En avril, ne te découvre pas d'un fil",
    "signification": "Ne pas ôter les protections trop tôt car les gelées peuvent revenir tardivement.",
    "source": "Proverbe populaire"
  },
  {
    "dicton": "À chaque plante son temps, à chaque temps sa plante",
    "signification": "Chaque semis/plantation doit se faire en fonction de la saison appropriée.",
    "source": "Santamaria Motoculture【32†L118-L121】"
  }
]

On ajoutera «source» ou «conseil associé» selon besoins. Si besoin de proverbes automatiques, on utilisera plutôt une API publique de citations (ex. «Proverbes français» non automatique) plutôt quune librairie locale.

Calendrier des saints de glace (France)

En France, de nombreux dictons sappuient sur le calendrier des saints. Les plus célèbres pour le jardinage sont les Saints de Glace (traditionnellement 11, 12, 13 mai Mamert, Pancrace, Servais) et les saints qui les prolongent (Yves 19/5, Urbain 25/5). Ces dates marquent la fin présumée des gelées printanières. Exemples de dictons associés【39†L155-L164】【42†L209-L212】 :

  • 11 mai (St Mamert), 12 mai (St Pancrace), 13 mai (St Servais) : « Avant Saint-Servais, point dété; après Saint-Servais, plus de gelée. »【39†L155-L164】 conseille dattendre la mi-mai.
  • Saint-Urbain (25 mai) : « Quand la Saint-Urbain est passée, le vigneron est rassuré. »【42†L209-L212】 (fin définitive du risque de gel).
  • Variante : « Mamert, Pancrace, Servais sont trois saints de glace, mais Saint-Urbain les tient tous dans sa main. »【42†L209-L212】.
  • Saint-Pancrace (12/5), St-Servais (13/5), St-Boniface (14/5) : « Saints Pancrace, Servais et Boniface apportent souvent de la glace. »【42†L209-L212】.

Le calendrier des saints est large : on trouve par région dautres saints réputés «glaçants» en avril (Georges 23/4, Marc 25/4, etc.). Mais pour la France métropolitaine, cest la période mi-mai qui domine ces dictons. En résumé : mieux vaut repousser linstallation des cultures sensibles au froid (tomates, etc.) jusquà fin mai【39†L155-L164】【40†L81-L88】.

Références et lectures suggérées

  • Skyfield API Exemples de calculs astronomiques (phases, positions)【14†L123-L131】.
  • Documentation SO/USNO Éphémérides officielles pour la Lune (phases, illumination)【18†L108-L112】.
  • Journaux et blogs FR Articles de vulgarisation : Semencemag (juin 2025) sur lusage du calendrier lunaire【24†L44-L53】, Rustica, Gerbeaud.
  • Sources historiques Dictons et fêtes des saints : «Les saints de glace» sur le Potager Permacole【42†L209-L212】, revue Science et Vie (SNHF) pour le scepticisme scientifique【6†L373-L381】.
  • Ressources additionnelles : RFC et documentation FastAPI, tutoriels Skyfield (rhodesmill.org), bases de données open (p. ex. base de dictons BotAccess).

Ce README est prêt à être sauvegardé comme document README.md. Il offre un point de départ complet pour un projet de webapp jardinage incorporant un calendrier lunaire.