Limites et propositions
Ce que le moteur ne sait pas encore faire, les écarts connus entre la documentation et le code, et les critères qu’il faudrait encore ajouter.
Cette page rassemble ce que les pages précédentes ont signalé comme faiblesse : d’abord les écarts documentés mais non corrigés, puis les critères déjà dans le moteur, puis les propositions qui attendent encore une donnée ou un calcul.
Écarts et défauts connus
Donnée absente sur un bloquant : « ignoré » ou « incertain »
La spécification des presets (docs/strategies-volabilite.md) écrit, pour le vent à 850 hPa, « absent : ignoré ». Le code (evaluateNumeric dans src/lib/forecast/strategy.ts) renvoie l’état manquant pour tout bloquant sans valeur, ce qui rend l’heure incertaine. Les deux comportements sont défendables : « ignoré » suppose qu’un vent d’altitude inconnu n’est pas une raison de douter ; « incertain » suppose qu’on ne peut pas déclarer une heure adaptée sans l’avoir vérifié. Le code applique le second. La décision est à prendre, et la spécification à aligner.
L’écart de rosée lu comme une force thermique
Le glossaire du compilateur (QUALITATIVE_SCALES dans src/lib/forecast/criteria-glossary.ts) traduit « thermique doux / franc / musclé » en bandes de dew_spread (3–6, 6–10, 10 °C et plus). C’est fidèle au vocabulaire des pilotes, mais la grandeur physique de la force est w*, qui dépend du chauffage et de la profondeur de la couche, pas de l’humidité (Thermique et instabilité). Tant qu’il n’existe pas de critère de force, ce raccourci est le moins mauvais ; il devra être redirigé vers le critère proposé plus bas.
L’écart de direction sans module ni face du site
shear_850 reste dans le catalogue pour qu’un texte libre qui en parle encore se compile. Ce n’est plus le critère des presets : le vent de dos (lee_wind) et le cisaillement vectoriel (vector_shear) le remplacent. L’angle nu, lui, n’a toujours ni module ni face du site. Sous 5 km/h, une direction n’est pas définie ; un écart de 120° entre deux vents faibles ne dit rien (Vent en altitude).
Fenêtre de stabilité des balises
La stabilité de direction et de rafales est calculée sur les relevés des 12 dernières heures (HISTORY_FETCH_HOURS), qui mélangent régime de nuit et de jour. Une fenêtre de 1 à 3 heures décrirait mieux l’heure en cours. Le calcul de direction n’exclut pas non plus les relevés sous 5 km/h, dont la direction n’a pas de sens (Balises).
Fenêtre de moyennage des balises
Le facteur de rafale dépend de la fenêtre de la station (10 min, 1 h) et de la durée de rafale (instantané, 1 s, 3 s). Sciron ne connaît pas ces paramètres par réseau ; les seuils 1,3 / 1,6 supposent une fenêtre de 10 minutes et une rafale de 3 secondes. Il faudrait documenter la fenêtre de chaque réseau publié par balisemeteo et, si elle diffère, convertir avec les tables de Wieringa S5.
Fenêtre horaire fixe
7 h–20 h toute l’année. Les champs sunrise et sunset de l’API permettent une fenêtre par jour.
Désormais dans le moteur
Ces six critères lisent des champs déjà stockés. La physique et les sources restent dans les pages liées. Ici, la clé et la règle retenue.
Vent de dos — lee_wind
Écart angulaire entre le vent à site + 500 m (le même plancher que wind_850) et le secteur publié : 0° dans le secteur, sinon la distance au bord le plus proche. Au-delà de 90° et de 20 km/h : alerte. Au-delà de 90° et de 30 km/h : bloquant, pour tous les profils. Sous 5 km/h, sans secteur ou sans vent d’altitude : ignoré. Détail : Vent en altitude.
Cisaillement vectoriel — vector_shear
|V2 − V1| / Δz en km/h par 100 m, sur 10 m → site + 500 m puis site + 500 m → site + 1 500 m. La couche la plus forte compte. Alerte dès 1,8. Au-delà de 3 : bloquant pour thermique local, crosseur et cross engagé ; alerte seule pour les autres. Le rapport B/S n’est pas calculé. Détail : Vent en altitude.
Étalement — cloud_spread
thermalTopM − cloudBaseM. Plus de 600 m et écart de rosée sous 4 °C : alerte « étalement probable ». Plus de 2 500 m et CAPE au-dessus de 300 J/kg : alerte « congestus ». Base ou plafond absent : ignoré. Ignoré en soaring. Détail : Nuages et pluie.
Tendance — hour_trend
Vent 10 m ou vent à site + 500 m en hausse de plus de 10 km/h entre l’heure jugée et deux heures plus tard, ou CAPE au moins doublé quand le CAPE de l’heure est strictement positif : alerte « renforcement annoncé ». Pas d’heure +2 : ignoré. Alerte sur tous les profils.
Désaccord de modèles — model_disagreement
Pour une heure présente dans AROME et ARPEGE : vent 10 m écarté de plus de 8 km/h, ou direction écartée de plus de 45° si les deux vents font au moins 10 km/h. L’heure devient incertaine, avec un détail qui nomme l’écart. Un seul modèle : ignoré. J+2 et J+3 restent donc jugés quand AROME s’arrête.
Inversion — inversion
Premier intervalle du sondage au-dessus du sol où la température augmente avec la hauteur. Le détail porte la hauteur et le saut (« inversion de 3 °C vers 1 400 m »), y compris quand l’heure passe. Alerte si la base est à moins de 500 m au-dessus du site, pour thermique local, crosseur et cross engagé. Ailleurs : ignoré. La résolution verticale limitée reste celle décrite dans Thermique et instabilité.
Critères encore proposés
Chaque proposition suit le même plan : physique, source, variables, faisabilité. « Déjà collecté » signifie que le champ est dans forecastHourlyFieldList ou calculable depuis le sondage ; « à collecter » signifie qu’il faut ajouter un champ à la requête Open-Meteo et à la table des prévisions.
1. Déclenchement orageux : CIN et indice de soulèvement
Physique. Le CAPE dit ce qu’un orage libérerait ; la CIN dit s’il peut démarrer. La CIN est l’énergie qu’il faut fournir à la bulle pour traverser la couche stable qui la sépare de son niveau de convection libre (aire négative du sondage) S30. Le service météo américain considère le couvercle « cassable » sous 20 à 30 J/kg S31. L’indice de soulèvement (lifted index) compare la température d’une bulle montée à 500 hPa à celle de l’environnement : positif stable, 0 à −2 orages possibles, −2 à −4 probables, sous −4 violents S58.
Règle proposée. CAPE au-dessus de la bande d’alerte et CIN sous 30 J/kg et humidité à 700 hPa élevée ⇒ bloquant. CAPE élevé avec CIN forte ⇒ alerte seulement. CAPE faible ⇒ rien.
Variables. lifted_index et convective_inhibition n’existent pas pour les modèles Météo-France via Open-Meteo S4. Les deux se calculent depuis le sondage déjà collecté (température et point de rosée à 12 niveaux plus la surface) : ascension sèche jusqu’à la base, puis pseudo-adiabatique au-dessus. Alternative immédiate sans calcul : le weather_code d’Open-Meteo (95 à 99 = orage), dérivé du CAPE, des rafales et de la pluie S4, à collecter.
Faisabilité. Moyenne : le calcul pseudo-adiabatique demande une fonction de température le long de l’adiabatique humide, qui n’existe pas encore dans sounding.ts. Le weather_code est immédiat.
2. Force thermique : gradient de basse couche et vitesse convective
Physique. Les thermiques déclenchent quand la couche près du sol est superadiabatique (gradient plus fort que 9,8 °C/km) S40 S49. Leur vitesse caractéristique est w* = ((g / T₀) × Qs × D_BL)^(1/3), avec Qs le flux de chaleur sensible et D_BL la profondeur de la couche S46. Le RASP donne les ordres de grandeur : 1 m/s exploitable, 2 à 3 m/s fort.
Règle proposée. Un gradient (T_2m − T_200m) / 198 m supérieur à 1 °C par 100 m signale le déclenchement. w* estimé avec Qs ≈ β × rayonnement (β fraction de Bowen, 0,2 à 0,4 selon la sécheresse du sol, à calibrer) et D_BL = plafond thermique déjà calculé. Bandes : moins de 1 m/s faible, 1 à 2,5 m/s exploitable, plus de 2,5 m/s fort. Le glossaire « doux / franc / musclé » pointerait vers ce critère.
Variables. temperature_200m et shortwave_radiation à collecter ; plafond déjà calculé. La flottabilité thermalBuoyancyAtAltitude déjà affichée dans la matrice est l’excès de température de la bulle, directement lié à w*.
Faisabilité. Bonne.
3. Ensoleillement
Physique. Sans chauffage, pas de thermique, quelle que soit l’instabilité du profil : un voile de cirrus suffit à éteindre une journée S41 S40. cloud_cover_low ne voit pas les nuages moyens et hauts.
Règle proposée. sunshine_duration sous 20 minutes dans l’heure ⇒ alerte pour les profils thermiques ; cloud_cover_mid + cloud_cover_high au-dessus de 70 % ⇒ alerte.
Variables. sunshine_duration (secondes de rayonnement direct au-dessus de 120 W/m², définition OMM), cloud_cover_mid, cloud_cover_high : à collecter S4.
Faisabilité. Immédiate.
4. Rapport flottabilité / cisaillement
Physique. Le cisaillement qui déchire les thermiques est la variation du vecteur vent avec la hauteur : |V_haut − V_bas| / Δz, en km/h par 100 m, seuil 1,8 (3 kt / 1 000 ft) S35, 2 selon meteoblue S55. Le rapport B/S du RASP compare la production de turbulence par flottabilité et par cisaillement ; sous 5 les thermiques sont trop morcelés, au-dessus de 10 le cisaillement ne gêne pas S46.
Règle proposée. Le cisaillement vectoriel est dans le moteur (vector_shear). Il reste à calculer B/S dès que w* existe.
Variables. Le cisaillement est déjà collecté. B/S dépend de la proposition 2.
Faisabilité. B/S dépend de la force thermique.
5. Brises de vallée
Physique. Les vents thermiques de pente et de vallée montent le jour (1 à 5 m/s, jusqu’à 500 m d’épaisseur dans les Alpes) et descendent la nuit (2 à 6 m/s) S38 S39. Ils dominent le vent de surface des sites de montagne par beau temps et expliquent la plupart des désaccords entre une balise de fond de vallée et le modèle.
Règle proposée. Avec une orientation de vallée par site (métadonnée à ajouter), estimer la brise de vallée attendue à partir de l’heure, du rayonnement et de la saison, et l’afficher dans le brief ; alerter quand la brise de vallée et le vent météo à site + 500 m sont opposés.
Variables. Orientation de vallée par site : à ajouter au modèle de données. Rayonnement à collecter.
Faisabilité. Faible à court terme : demande une donnée par site qui n’existe pas.
Ordre suggéré
Ce qui reste, par bénéfice / coût :
- Ensoleillement (3) et force thermique (2) : deux ou trois champs à collecter, rendent le vocabulaire « doux / franc / musclé » physiquement juste. Le rapport B/S (4) suit la force thermique.
- Déclenchement orageux (1) :
weather_codeimmédiatement, CIN calculée ensuite. - Brises de vallée (5) : quand une orientation de vallée existera par site.
Chaque proposition encore ouverte suppose d’ajouter une clé au catalogue (CRITERION_KEYS), un libellé, une aide, des règles dans les presets, du vocabulaire dans le glossaire du compilateur, et pour certaines un champ dans la collecte Open-Meteo et la table des prévisions.