1. Pourquoi un score de stabilité ?
Quand on demande "quel temps va-t-il faire demain ?" à une application météo classique, la réponse est toujours la même : les valeurs du dernier run du dernier modèle calculé. Cette approche a une limite fondamentale — elle ne dit rien de la justesse de cette prévision.
Deux prévisions identiques peuvent avoir des niveaux de confiance très différents. Considérons deux scénarios pour demain à 14h :
Dans les deux cas, une application classique afficherait "15 nœuds". Solano vous montrerait 9/10 pour le premier scénario et 3/10 pour le second. C'est le cœur de la méthode Solano : mesurer la cohérence temporelle des prévisions, et non seulement leur valeur ponctuelle.
2. Les runs météo : qu'est-ce que c'est ?
Un modèle numérique de prévision atmosphérique est un programme qui résout les équations de la dynamique des fluides sur une grille tridimensionnelle de l'atmosphère mondiale. Il est initialisé à partir d'un "état initial" — une photographie de l'atmosphère à un instant précis, construite à partir de milliers d'observations : stations météo de surface, radiosondages, satellites, bouées marines, mesures d'avions en vol…
Cette initialisation se fait plusieurs fois par jour, à des heures conventionnelles exprimées en temps universel : 00Z, 06Z, 12Z, 18Z (respectivement 1h, 7h, 13h et 19h en heure française d'hiver). Chaque exécution du modèle à partir d'un état initial est appelée un run.
Quelques exemples de fréquence de publication :
- ARPEGE (Météo-France, Europe) — 4 runs par jour (00Z, 06Z, 12Z, 18Z)
- AROME HD (Météo-France, haute résolution 1,5 km) — jusqu'à 8 runs par jour
- ECMWF IFS HRES (Centre européen) — 2 runs par jour (00Z et 12Z)
- GFS (NOAA, États-Unis) — 4 runs par jour
À chaque run, le modèle "repart de zéro" avec un état initial légèrement différent (les observations les plus récentes y ont été intégrées), et peut produire des prévisions légèrement — ou parfois très — différentes pour une même date cible. Ce sont ces différences entre runs successifs que Solano mesure et quantifie.
3. Les modèles analysés par Solano
Solano s'appuie sur la Single Runs API d'Open-Meteo, qui donne accès aux archives historiques de chaque run des grands centres de prévision mondiaux. Jusqu'à 16 modèles atmosphériques sont disponibles selon la localisation, triés du plus précis au plus large :
| Modèle | Centre | Couverture | Maille | Horizon | Fréquence |
|---|---|---|---|---|---|
| ICON-CH1 | MeteoSuisse | Suisse et Alpes | 1 km | 34 h | 8×/j |
| AROME HD | Météo-France | France | 1,5 km | 3 j | 8×/j |
| ICON-2I | ARPAE (Italie) | Méditerranée | 2 km | 3 j | 2×/j |
| UKMO UK HD | Met Office (UK) | Royaume-Uni | 2 km | 2 j | 24×/j |
| ICON-CH2 | MeteoSuisse | Suisse et Alpes | 2,1 km | 5 j | 8×/j |
| ICON-D2 | DWD (Allemagne) | Allemagne et pourtour | 2,2 km | 2 j | 8×/j |
| GEM HRDPS | Environnement Canada | Canada | 2,5 km | 2 j | 4×/j |
| ICON-EU | DWD (Allemagne) | Europe | 7 km | 5 j | 8×/j |
| ECMWF IFS HRES | ECMWF | Mondial | 9 km | 15 j | 4×/j |
| GEM RDPS | Environnement Canada | Amérique du Nord | 10 km | 3 j | 4×/j |
| UKMO ¹ | Met Office (UK) | Mondial | 10 km | 7 j | 2×/j |
| ARPEGE | Météo-France | Europe | 11 km | 5 j | 4×/j |
| GFS | NOAA (États-Unis) | Mondial | 13 km | 16 j | 4×/j |
| ICON ¹ | DWD (Allemagne) | Mondial | 13 km | 7 j | 4×/j |
| ARPEGE Monde ¹ | Météo-France | Mondial | 25 km | 4 j | 4×/j |
| GEM GDPS ¹ | Environnement Canada | Mondial | 25 km | 10 j | 2×/j |
¹ Modèle de repli mondial — affiché uniquement si la variante régionale haute résolution n'est pas disponible pour ce point (ex : ICON global hors Europe, UKMO global hors Royaume-Uni).
Pour les conditions en mer, Solano analyse également 5 modèles de vagues et courants : ARPEGE-Wave et WAM (Météo-France et ECMWF), GFS-Wave (NCEP), EWAM et le modèle de Courants Météo-France. Les modèles marins ne contribuent pas au score de stabilité atmosphérique — ils sont affichés séparément pour les points en mer.
Chaque modèle couvre des zones géographiques différentes. Lorsqu'un point GPS se trouve hors de la zone de couverture d'un modèle, ce modèle est automatiquement exclu de l'analyse. Pour les familles multi-résolution (ARPEGE, ICON, UKMO, GEM), le modèle régional haute résolution est automatiquement préféré au modèle mondial quand le point est dans sa zone.
4. Le "film des runs" : voir les prévisions évoluer
Pour un point GPS et une date cible données, Solano reconstruit l'ensemble des prévisions émises par chaque modèle pour cette date : depuis le run J-5 jusqu'au run le plus récent. Si la date cible est dans 3 jours, des dizaines de runs ont déjà prévu les conditions de ce jour — depuis différentes distances temporelles.
Ce n'est pas pareil de voir une prévision à 3 jours d'échéance (le modèle tourne aujourd'hui et prédit pour après-demain) et à 1 jour d'échéance (le modèle prédit pour demain avec des données d'initialisation plus récentes et plus précises). En général, plus on est proche du jour cible, plus la prévision est précise — mais pas toujours, et c'est précisément ce que mesure Solano.
Le graphique spaghetti de Solano superpose toutes ces courbes sur un même graphique : chaque ligne représente un run différent, colorée selon son âge. L'interprétation est immédiate :
- Courbes serrées — les runs successifs s'accordent → score de stabilité élevé → haute confiance dans la prévision.
- Courbes dispersées — les runs divergent → score de stabilité bas → situation instable, prévision incertaine.
- Courbes qui convergent — les anciens runs divergeaient mais les récents s'accordent → la situation se stabilise progressivement.
Cette visualisation permet de distinguer une incertitude structurelle (la situation météo est intrinsèquement difficile à prévoir) d'une incertitude transitoire (les modèles avaient du mal à 5 jours mais s'accordent maintenant à 2 jours).
5. Le calcul du score — formule et pondération
Le calcul du score de stabilité suit un algorithme en quatre étapes, appliqué indépendamment pour chaque modèle et chaque date cible.
Étape 1 — Comparaison heure par heure
Pour chaque heure de la date cible, Solano calcule la moyenne pondérée de tous les runs précédents (chaque run est pondéré selon son âge — voir section 6), puis mesure l'écart entre cette moyenne et la valeur du dernier run :
La moyenne pondérée représente le "consensus historique" des prévisions pour cet instant. Si tous les runs anciens avaient dit 15 nœuds et que le dernier annonce 22 nœuds, l'écart est 7 nœuds — et le score va baisser.
Pour la direction du vent, l'écart n'est pas une différence arithmétique mais l'arc angulaire court (différence angulaire minimale entre deux caps, toujours comprise entre 0° et 180°). Cela évite de considérer que 355° et 5° sont très différents — ils ne le sont que de 10°.
Étape 2 — Moyenne sur toutes les heures
Les écarts heure par heure sont moyennés sur l'ensemble de la journée, produisant un écart_moyen par variable. C'est cette valeur unique — l'écart typique sur la journée entière — qui entre dans la formule de score.
Étape 3 — Conversion en score 0–10 par variable
L'écart moyen est converti en score par une décroissance exponentielle, paramétrée par un seuil S propre à chaque variable :
Quelques repères concrets : à écart nul, score = 10 (stabilité parfaite). À écart = S, score ≈ 3,7 — le seuil n'est donc pas le point où le score tombe à 0, mais le point où il a déjà bien chuté. Au-delà de 3×S, le score est inférieur à 0,5 et peut être considéré comme nul. L'exponentielle est délibérément indulgente sur les petits écarts : une divergence de 1 nœud pour des rafales (S = 6) ne fait baisser le score que de 10 à ~8,5.
| Variable | Seuil S | Poids par défaut |
|---|---|---|
| 💨 Rafales de vent | 6 nœuds | 30 % |
| 🌬️ Vent moyen | 4 nœuds | 20 % |
| 🌧️ Précipitations | 1 mm/h | 20 % |
| 🧭 Direction du vent | 45° | 10 % |
| 👁️ Visibilité | 2 000 m | 10 % |
| 🌡️ Température | 3 °C | 5 % |
| ☁️ Couverture nuageuse | 20 % | 5 % |
Étape 4 — Agrégation pondérée
Les scores de toutes les variables sont combinés en une moyenne pondérée. Les poids par défaut reflètent l'importance relative de chaque variable pour les activités marines et outdoor (les rafales sont le critère de sécurité le plus critique, suivies du vent moyen et des précipitations). Ces poids sont entièrement personnalisables dans les préférences de l'application.
Lorsqu'un modèle ne dispose pas d'une variable donnée (par exemple, AROME HD ne couvre pas la visibilité marine), le poids de cette variable est automatiquement redistribué sur les autres variables disponibles, afin que le score reste comparable entre modèles.
6. La décroissance temporelle
Tous les runs passés ne sont pas équivalents dans le calcul du score. Un run émis il y a 5 jours était basé sur des données d'observation bien moins récentes qu'un run émis hier — il est donc moins pertinent pour évaluer la cohérence de la prévision actuelle.
Solano applique une pondération exponentielle décroissante à chaque run selon son âge, paramétrée par une constante de temps τ :
τ est la constante de décroissance : à t = τ, le poids atteint e⁻¹ ≈ 37 % (pas 50 % — la vraie demi-vie serait τ × ln 2 ≈ 1,7 jour). En pratique : un run vieux d'un jour pèse ~67 % d'un run d'aujourd'hui, un run vieux de 4 jours ~20 %, un run vieux de 7 jours moins de 6 %.
Cette décroissance reflète l'intuition météorologique : ce qui était prévu il y a une semaine est moins indicatif de la stabilité actuelle que ce qui était prévu hier ou avant-hier. Un modèle qui "change d'avis" au dernier moment est moins inquiétant qu'un modèle qui oscille depuis plusieurs jours.
7. La vérification ERA5 — prévision vs réalité
Le score de stabilité mesure la cohérence interne des prévisions — il ne dit pas si les prévisions étaient justes. Pour compléter cet indicateur, Solano intègre une comparaison directe entre les prévisions historiques et la réanalyse de référence ERA5T.
ERA5 est la réanalyse atmosphérique de l'ECMWF (Centre européen pour les prévisions météorologiques à moyen terme) : une reconstruction cohérente et homogène de l'état de l'atmosphère heure par heure depuis 1940, obtenue par assimilation de données éparses (stations de surface, radiosondages, satellites, bouées) dans un modèle numérique de pointe. Ce n'est pas une mesure directe, mais la meilleure estimation possible de ce qui s'est passé. ERA5T est la version "temps réel" de cette réanalyse, disponible avec environ 1 à 2 jours de délai.
L'onglet 📡 Vérif. du panneau Spaghetti affiche, pour n'importe quel jour des 15 derniers jours disponibles :
- La ligne ERA5T (réanalyse de référence) — tracée en pointillé noir
- Toutes les courbes de runs correspondantes — ce que chaque modèle avait prévu pour ce jour-là, à différentes échéances
Cette visualisation permet de répondre à une question concrète : le modèle qui avait prédit 20 nœuds pour avant-hier avait-il raison ? ERA5T donne-t-il 18 nœuds (bonne prévision) ou 8 nœuds (forte surestimation) ?
Seules les variables atmosphériques disponibles dans ERA5 récent sont affichées : vent, rafales, direction, température, précipitations, couverture nuageuse, pression. Les données marines (vagues, courants) ne sont pas couvertes par ERA5 récent.
8. La justesse récente — MAE par échéance
En automatisant la comparaison prévision/ERA5T sur les 15 derniers jours et toutes les échéances, Solano calcule pour chaque modèle une mesure de précision réelle locale : le MAE (Mean Absolute Error — erreur absolue moyenne).
Le MAE est calculé séparément :
- Pour chaque modèle atmosphérique
- Pour chaque variable (vent, rafales, direction, pluie, température, nuages, pression)
- Pour chaque échéance de J-1 (prévision à 1 jour) à J-15 (prévision à 15 jours)
Ce profil de MAE par échéance révèle le comportement réel de chaque modèle sur votre point géographique précis. Un modèle peut être excellent à J-2 mais médiocre à J-7 ; un autre peut maintenir une précision remarquable jusqu'à J-5. Ces informations aident à pondérer intuitivement les prévisions selon leur échéance.
| Variable | Bon (<) | Acceptable | Faible (>) |
|---|---|---|---|
| Vent moyen | 3 nds | 3–6 nds | 6 nds |
| Rafales | 4 nds | 4–8 nds | 8 nds |
| Direction du vent | 20° | 20–40° | 40° |
| Pression MSL | 1,5 hPa | 1,5–3 hPa | 3 hPa |
| Température | 1,5 °C | 1,5–3 °C | 3 °C |
Les MAE sont affichés dans l'application sous forme de badges colorés vert/orange/rouge dans les fiches modèles, et sous forme de graphique temporel J-15 → J-1 dans la vue Spaghetti. Ce graphique montre la courbe de dégradation de la précision avec l'échéance, caractéristique de chaque modèle sur votre point.
En Météo rapide, cette mesure est présentée par jour sous le nom « Justesse » : elle indique, pour chaque modèle et à l'échéance de ce jour (une prévision pour dans 3 jours est confrontée aux prévisions passées à 3 jours d'échéance), le bilan récent du modèle — à quel point il a été juste à ce délai. C'est un track record du modèle, à distinguer de la Confiance (accord des scénarios ensemblistes pour ce run, à venir) : la justesse regarde le passé du modèle, la confiance regarde l'incertitude de la situation présente. Les deux sont complémentaires, pas interchangeables.
Une nuance importante sur la référence. ERA5 est une réanalyse à maille large (~31 km), tandis que certains modèles vérifiés sont à maille fine (AROME ~1,5 km). Comparer un modèle fin à une référence large le pénalise sur la variabilité locale qu'il résout légitimement (brises côtières, effets de relief) — c'est une « erreur de représentativité », pas une vraie erreur du modèle. Le MAE ERA5 reste néanmoins un signal utile car il est relatif : tous les modèles sont jugés contre la même référence, donc leur classement reste informatif. Il se lit comme un « écart à une réanalyse de référence », non comme une vérité terrain au point exact — et c'est pourquoi Solano le complète par la comparaison directe aux observations réelles (bouées, aéroports) là où elles existent.
9. La confiance ensembliste — l'accord des scénarios
La stabilité regarde comment un modèle évolue d'un run à l'autre (« le film »), le MAE mesure son erreur passée. La confiance ensembliste répond à une troisième question, tournée vers l'avenir : pour cette échéance précise, les scénarios possibles concordent-ils ?
Les centres météo ne publient pas qu'une seule prévision « déterministe ». Ils lancent aussi leur modèle des dizaines de fois avec de infimes perturbations des conditions de départ — c'est la prévision d'ensemble. Si tous ces scénarios racontent la même histoire, la situation est prévisible ; s'ils divergent, l'atmosphère est à un moment « de bascule » et aucune prévision unique n'est à prendre au pied de la lettre.
Pour chaque modèle déterministe affiché, Solano compare sa prévision aux membres de son ensemble de référence — celui de sa propre famille — et calcule la part de ces scénarios qui donnent une météo pratiquement équivalente. Ce n'est pas un accord sur le seul vent : c'est un mélange pondéré de trois lectures complémentaires.
accord_vent = part des membres à ±30 % / ±4 nds de la valeur du modèle
accord_pression = part des membres à ±1,5 hPa (le schéma synoptique est-il verrouillé ?)
accord_pluie = part des membres dans la même classe d'intensité (sec / faible / modéré / fort)
— pris en compte SEULEMENT quand la pluie est « en jeu »
La pluie ne pèse dans le mélange que les heures où elle est possible (le modèle est mouillé, ou au moins un membre sur cinq l'est) — sinon son poids est redistribué sur le vent et la pression, pour ne pas gonfler l'indice les jours secs. Le détail par variable (« Vent 82 % · Pluie 45 % · Pression 88 % »), avec l'acronyme de l'ensemble utilisé, s'affiche au survol de la pastille — ou d'un simple tap dessus sur mobile.
Le rattachement à l'ensemble de référence suit la logique des familles de modèles :
- GFS → GEFS (NOAA, ~31 membres) · IFS HRES → ECMWF-ENS (51) · ICON (global / Europe) → ICON-EPS (DWD, ~40).
- Les modèles sans prévision d'ensemble propre sur nos sources — ARPEGE et AROME sont comparés à ECMWF-ENS ; ICON-2I, ICON-D2, ICON-CH à ICON-EPS Europe ; UKMO et GEM à ECMWF-ENS.
Chaque composante combine deux informations : la dispersion des scénarios (ensemble resserré → beaucoup de membres dans la fourchette → confiance haute ; ensemble éclaté → confiance basse) et l'accord du modèle avec son propre ensemble (un modèle collé au cœur du nuage ressort plus haut qu'un modèle « isolé »). Trois variables plutôt qu'une parce qu'une situation peut être verrouillée sur le vent mais indécise sur le passage d'un front pluvieux — et l'inverse.
Confronter chaque déterministe à son ensemble — et non à un nuage multi-centres — évite de lui imputer l'écart systématique entre modèles : deux systèmes n'ont ni la même climatologie ni la même représentation du relief, et un modèle fin dans une vallée ne « ressemble » à aucun membre d'un autre centre, quelle que soit la prévisibilité réelle. La confiance mesure ainsi l'incertitude de la situation vue par la famille du modèle, sans biais orographique parasite.
Dans l'application, la confiance s'affiche en pastille colorée en pourcentage, jour par jour, à côté de chaque journée dans la frise horaire de chaque modèle (Météo rapide) : vert ≥ 70 %, orange ≥ 50 %, rouge en dessous. Le nom de l'ensemble auquel le modèle est comparé (« vs ECMWF-ENS », « vs GEFS », « vs ICON-EPS Europe »…) est indiqué sous le pilier Confiance de la vue Cohérence et au survol (ou au tap) des pastilles. La confiance décroît naturellement avec l'échéance (plus on regarde loin, plus les scénarios se séparent) et permet de repérer d'un coup d'œil quel modèle est le mieux soutenu par ses scénarios, et quels jours sont « à surveiller ».
10. Le score de départ "Quand partir ?" — formule et calcul
Le score de départ synthétise en un seul score 0–10 les conditions météo rencontrées heure par heure sur l'ensemble de l'itinéraire, pour une activité donnée. Il est distinct du score de stabilité — il n'évalue pas la cohérence des runs mais la qualité météo absolue d'un créneau de départ.
Candidats évalués
Solano évalue 13 créneaux candidats espacés de 3 heures, de D−6h à D+30h (D = heure de départ configurée dans le panneau Route). Pour chaque candidat, le trajet est reconstitué heure par heure — positions calculées par la formule de Haversine à vitesse constante — et la météo est interpolée à chaque position.
Agrégation des modèles
Les valeurs de tous les modèles cochés et de toutes les heures du trajet sont réunies dans une même distribution, sur laquelle sont calculées la moyenne, le 90e centile et le maximum. Ce choix a une limite connue : un modèle qui a des données sur plus d'heures (ou sur des créneaux plus lointains) pèse davantage, et un modèle aberrant tire la note vers le bas. Solano le signale plutôt que de le masquer ; le verdict d'activité, lui, vote modèle par modèle (voir plus bas).
Interpolation météo sur la route
Entre deux waypoints consécutifs, toutes les variables scalaires (vent, rafales, précipitations, CAPE, température…) sont interpolées linéairement selon la position sur le segment :
Les directions (vent, vagues, courants) utilisent une interpolation angulaire via les composantes sin/cos (moyenne circulaire pondérée) pour éviter les discontinuités autour de 0°/360° :
Composantes du score
Chaque composante est évaluée par une fonction piecewise linéaire sur des points de rupture [valeur → score 0–10], avec interpolation linéaire entre deux points adjacents et clamp aux extrémités.
Vent moyen (nœuds)
| Activité | Optimum | Seuil dégrad. | 0 nds |
|---|---|---|---|
| ⛵ Voile | 10/10 à 12 nds | 25 nds → 5 · 32 nds → 0 | 2 (calme = pas d'avancement) |
| 🚢 Moteur | 10/10 de 0 à 10 nds | 20 nds → 7 · 30 nds → 3 · 40 nds → 0 | 10 |
| 🚴 Vélo | 10/10 de 0 à 5 nds | 15 nds → 6 · 25 nds → 2 · 35 nds → 0 | 10 |
| 🥾 Rando | 10/10 de 0 à 10 nds | 20 nds → 5 · 30 nds → 2 · 40 nds → 0 | 10 |
En voile, la cloche d'optimum reflète qu'un calme plat empêche toute progression à la voile (score 2) et que le vent fort devient dangereux (0 à 32 nds). En moteur, le vent n'impacte la coque que par la mer formée — le vent seul est pénalisé progressivement.
Rafales (nœuds)
Les rafales suivent leur propre piecewise indépendant du vent moyen. En voile, un score de 8 à 0 nds (pas 10) traduit qu'un zéphyr total sans variantes est moins agréable que quelques nœuds de brise :
🚢 Moteur : 0–15 nds → 10 · 25 nds → 6 · 35 nds → 2 · 45 nds → 0
🚴 Vélo : 0 nds → 10 · 20 nds → 5 · 40 nds → 0
🥾 Rando : 0 nds → 10 · 25 nds → 4 · 45 nds → 0
État de mer — seaStateScore(H, T) (voile et moteur uniquement)
L'état de mer ne se résume pas à la hauteur des vagues. Une mer de 1,5 m en 3 secondes est incomparablement plus dure qu'une houle de 1,5 m en 12 secondes. Solano utilise l'accélération verticale (inconfort physique réel pour une sinusoïde) comme critère principal, capée par la hauteur absolue :
seaStateScore(H, T) = min( piecewise(acc, breaks_acc), piecewise(H, cap_hauteur) )
Les deux tables de rupture :
| Accélération acc (m/s²) | Score | Hauteur H (m) | Score cap |
|---|---|---|---|
| 0 – 0,1 | 10 | 0 – 1,0 | 10 |
| 0,3 | 9 | 2,0 | 8 |
| 0,7 | 6 | 3,0 | 5 |
| 1,5 | 2 | 4,0 | 2 |
| 2,5 | 0 | 5,0 | 0 |
Exemple : H = 2 m, T = 6 s → acc = 2 × 19,74 / 36 = 1,10 m/s² → score acc ≈ 3,5 ; cap hauteur = 8 → seaStateScore = 3,5. Même hauteur avec T = 12 s → acc = 0,27 → score acc ≈ 9,2 ; cap hauteur = 8 → seaStateScore = 8.
Angle vent / cap (voile et vélo)
L'angle relatif α est calculé entre la direction du vent et le cap du segment parcouru, ramené à 0–180°. Voile valorise le travers/largue (point de voilure optimal) ; vélo valorise le vent dans le dos :
| Angle α | ⛵ Voile | 🚴 Vélo |
|---|---|---|
| ≤ 30–35° (face) | 0 (inutilisable) | 1 |
| 35–55° (près serré) | 4 | 3 |
| 55–80° (près bon) | 7 | 5 |
| 80–130° (travers / largue) | 8 (optimal) | 7 |
| 130–170° (grand largue) | 6 | 9 |
| > 170° (vent arrière) | 5 | 9 |
Le scoring d'angle n'est calculé que si le vent dépasse 4 nœuds — en dessous, la direction est sans signification pratique.
Navigabilité à la voile — sailability(vent, direction, cap)
Le score d'angle ci-dessus mesure la qualité de l'allure, mais il est ignoré sous 4 nœuds — or c'est précisément le cas où l'on sort le moteur. Une composante distincte répond donc à une question binaire, heure par heure : peut-on faire route à la voile ? Deux cas l'empêchent :
vent < seuil(α) → trop peu d'air pour l'allure : moteur
seuil(α) = 5 nds si α ≤ 120° (près, travers)
seuil(α) = 8 nds si α ≥ 150° (portant)
seuil(α) = interpolé entre les deux de 120° à 150°
Le seuil dépend de l'allure parce que le vent apparent évolue en sens inverse selon le bord : au près, la vitesse du bateau s'ajoute au vent réel — l'apparent monte et l'on avance dans peu d'air ; au portant, le bateau fuit devant le vent — l'apparent tombe, il en faut davantage pour progresser. Un seuil unique de 8 nœuds pénalisait donc à tort les créneaux au près.
La composante vaut la part d'heures navigables × 10. Les ratios détaillés (part au moteur, dont vent debout et petit temps) sont exposés à côté du score sous la forme « 🔧 40 % (vent debout) ».
CAPE, précipitations, température
Précipitations (mm/h) : 0 → 10 · 0,5 → 9 · 2 → 6 · 5 → 3 · 10 → 0
Temp. vélo (°C) : 0 → 3 · 10 → 8 · 15–22 → 10 · 28 → 7 · 33 → 3 · 38 → 0
Temp. rando (°C) : 0 → 3 · 10–20 → 10 · 28 → 6 · 38 → 0
Agrégation statistique sur la route
Pour chaque composante, Solano collecte la valeur heure par heure sur l'ensemble du trajet (toutes positions interpolées, tous modèles actifs agrégés). La composante finale n'est pas la moyenne simple — elle donne davantage de poids aux moments les plus défavorables :
Pour l'état de mer (les scores sont déjà calculés heure par heure, pas les valeurs brutes) :
Le p90 (90e percentile des valeurs brutes) ou le p10 (10e percentile des scores mer) capture le "pire quart" de la route sans être aussi extrême que le maximum ponctuel.
Pondération par activité et score final
| Composante | ⛵ Voile | 🚢 Moteur | 🚴 Vélo | 🥾 Rando |
|---|---|---|---|---|
| Vent moyen | 24 % | 30 % | 25 % | 20 % |
| Rafales | 18 % | 25 % | 15 % | 15 % |
| État de mer | 21 % | 30 % | — | — |
| Angle vent / cap | 9 % | — | 15 % | — |
| Navigabilité (voile / moteur) | 18 % | — | — | — |
| CAPE | 5 % | 10 % | 10 % | 10 % |
| Précipitations | 5 % | 5 % | 20 % | 30 % |
| Température | — | — | 15 % | 25 % |
Le score final est une moyenne pondérée normalisée par la somme des poids actifs (les composantes sans données sont exclues dynamiquement) :
11. Le risque orageux — au-delà du CAPE
Le CAPE (énergie potentielle de convection disponible, en J/kg) est souvent présenté comme le chiffre de l'orage. C'est trompeur : un CAPE de 2 000 n'a pas la même portée selon la situation. Tout dépend aussi de la raideur de l'atmosphère, du couvercle qui empêche — ou non — l'air de monter, et de l'organisation des cellules. Solano combine donc plusieurs ingrédients en un seul indice catégoriel, par heure.
Les ingrédients
Suivant l'approche par ingrédients (Doswell), le risque se construit comme un produit : du carburant, multiplié par un facteur d'ouverture du couvercle, puis affiné par l'organisation.
- Carburant — dérivé du CAPE (0 → 10 sur l'échelle 0 / 300 / 800 / 1 500 / 2 500 / 3 500 J/kg), affûté par le Lifted Index (LI positif → carburant nul même à fort CAPE ; LI ≤ −6 → plancher élevé) et par la raideur du profil : le lapse rate moyen-troposphérique 700→500 hPa (°C/km) multiplie le carburant de 0,85 (profil mou, < 5,5 °C/km) à 1,15 (profil raide, > 7 °C/km). C'est ce qui fait qu'un CAPE de 2 000 n'a pas la même portée selon la situation.
- Couvercle (CIN) — l'inhibition convective (J/kg) devient un facteur multiplicateur de 1,0 (couvercle ouvert, < 25) à 0,15 (bridé, > 300). Un fort couvercle réduit le risque réalisé.
- Drapeau « couvercle chargé » — gros carburant sous un fort couvercle : le déclenchement est peu probable, mais explosif si le couvercle saute. Signalé par ⚠️.
- Organisation (cisaillement) — le cisaillement de vent 0–6 km (différence vectorielle entre le vent de surface et le vent à 500 hPa, en m/s) décide de la structure : < 10 = cellules isolées (pulse), 15–20 = organisé (supercellule possible), > 20 = fortement organisé (lignes de grains).
Le score donne une intensité en quatre catégories : Faible (< 1,5) · Modéré (1,5–4) · Marqué (4–7) · Sévère (≥ 7). Le cisaillement affine ensuite la catégorie : « Sévère » est réservé aux orages organisés — une forte intensité mais peu cisaillée est ramenée à « Marqué · isolé », tandis qu'un « Marqué » fortement cisaillé peut être promu « Sévère ».
L'ancrage GFS et l'accord des modèles
Parmi les modèles d'Open-Meteo, seul GFS expose tous les ingrédients (CAPE, inhibition CIN, Lifted Index et les niveaux de pression nécessaires au cisaillement et au lapse rate). L'indice est donc ancré sur GFS, indépendamment des modèles que vous affichez — Solano va le chercher même si GFS n'est pas sélectionné. Le point interrogé est ramené à la maille GFS de 0,25° : l'indice décrit donc l'environnement à l'échelle du bassin (≈ 25 km), pas au-dessus de votre mouillage précisément.
À cet indice s'ajoute une mesure d'accord entre les modèles : la dispersion du CAPE entre tous les modèles consultés. Quand ils divergent fortement (par exemple CAPE 10 vs 560 au même point), le risque est marqué comme incertain — fidèle à la philosophie du « film plutôt que la photo ». Tous les seuils sont ajustables.
Le déclenchement — ce que voient les modèles fins
Le socle GFS répond à « l'atmosphère est-elle chargée ? ». Il ne répond pas à « une cellule va-t-elle tomber ici, et quand ? » — à 25 km de maille, une cellule orageuse de quelques kilomètres n'est tout simplement pas résolue, elle est estimée par une formule. C'est le rôle d'une seconde lecture, distincte et jamais fondue dans la note /10.
Les modèles à convection explicite (maille 1 à 3 km : AROME HD, ICON-2I, ICON-D2, ICON-CH1/CH2) calculent, eux, les ascendances : ils placent des cellules. Quand l'un d'eux est disponible sur votre point, Solano lit sa précipitation horaire — renforcée par une rafale simultanée d'au moins 32 nœuds, signature de la descente convective — et en tire trois niveaux : averse, cellule constituée, cellule vigoureuse. Le résultat s'affiche en une ligne sous l'indice orage (« Cellules prévues : AROME · ICON-2I → 16h-18h ») et, en détail, dans une ligne du tableau horaire propre à chaque modèle fin.
Deux points contre-intuitifs, tous deux vérifiés sur les données réelles. D'abord, le critère est la pluie totale et non le champ « averses » : sur un modèle qui résout la convection, l'averse est déjà dans la pluie totale et le champ dédié n'est plus qu'un résidu (relevé sur ICON-D2 : 3,1 mm/h de pluie pour 0,2 d'« averses »). Ensuite, ce signal ne peut pas être ajouté à l'indice orage : un modèle qui déclenche une cellule consomme la CAPE, si bien qu'une CAPE basse à 17 h peut signifier « orage en cours » et non « calme ». Moyenner les deux inverserait la lecture au pire moment.
Du pronostic à l'observation
Quand le risque est notable aujourd'hui, le bouton « Voir le ciel maintenant » bascule la carte sur l'imagerie satellite — infrarouge (sommets froids), foudre (éclairs en direct) et RDT (détection des cellules orageuses en développement, avant l'électrification). On vérifie ainsi d'un coup d'œil si une cellule est réellement en train d'éclater. Contrairement au radar au sol, ces produits satellitaires couvrent aussi la pleine mer.
Le risque orageux le long d'une route
Dans « Météo d'un trajet », le même indice est calculé tout au long du tracé. Plutôt qu'une grille point par point illisible, Solano évalue le risque à chaque point de calcul — à la position et à l'instant où le bateau y passera. La bande se lit de gauche (départ) à droite (arrivée) : chaque cellule porte sa catégorie, et le détail dépliable liste les points à risque avec leurs ingrédients (CAPE, CIN, Lifted Index, cisaillement, lapse rate). Le calcul reste ancré sur GFS, indépendamment des modèles affichés.
12. L'analyse de mouillage — algorithme de protection
L'analyse de mouillage calcule, pour tout point en mer, un profil de protection directionnel par ray casting topographique, complété par un score de confort 0–100 % sur 3 jours et des données bathymétriques.
Ray casting — collecte des altitudes
Pour chaque point, Solano trace 1 728 rayons (36 directions × 3 offsets ±5° × 16 distances) depuis 25 m jusqu'à 3 000 m. Les altitudes sont issues du modèle numérique de terrain SRTM 30 m (couverture mondiale, qui renvoie 0 sur la mer = pas d'obstacle).
L'éventail ±5° par direction permet de "voir" une falaise même si le rayon central passe en eau. L'extension à 3 km est indispensable pour les grandes baies dont les caps encadrants sont distants de plus d'un kilomètre (exemple : Portoferraio, île d'Elbe).
Digues et ouvrages portuaires — OpenStreetMap
Un modèle de terrain à 30 m est aveugle aux ouvrages portuaires étroits : un môle de 10 à 20 m de large est sous-résolu, lu au niveau de l'eau. Solano superpose donc la géométrie OpenStreetMap autour du point (digues et brise-lames man_made=breakwater, ainsi que le trait de côte natural=coastline, qui porte souvent les môles solides des ports). Chaque rayon teste son intersection géométrique avec ces structures — et non un simple échantillon ponctuel, qui raterait un môle fin de la même façon que le terrain.
Règle de fusion : toute côte ou digue sur le rayon bloque la houle (la mer ne traverse pas la terre) ; seules les digues ajoutent une protection au vent forfaitaire (hauteur émergente ≈ 3 m), le trait de côte naturel laissant le relief réel du terrain décider. La fusion est purement additive : elle ne retire jamais une protection détectée par le terrain.
Protection vent
La protection vent est estimée par le ratio hauteur / distance de l'obstacle le plus haut trouvé sur le rayon :
La valeur maximale sur les 3 offsets du rayon est retenue. La détection Venturi multiplie la pénalité de vent ×1,5 lorsqu'un secteur non bloqué est encadré par deux secteurs bloqués (effet de canalisation).
Protection houle — seuil adaptatif
La houle n'est pas arrêtée par les mêmes obstacles que le vent. Solano applique un seuil de hauteur terrain variable selon la distance pour éviter les faux positifs (île plate lointaine signalée comme "bloquant" la houle) :
La protection houle est binaire (bloquée / non bloquée) et calculée par nearest-neighbor entre secteurs adjacents — jamais par interpolation OR, qui produirait des faux "bloqués" entre un secteur protégé et un secteur exposé.
Score de confort
Pour chaque heure sur 3 jours, le score combine les prévisions houle (70 %) et vent (30 %) avec le profil de protection :
Le seuil Hs = 0,30 m reflète qu'une chop de 30 cm est déjà sensible sur un mouillage. Les rafales sont incluses dans le calcul vent.
Bathymétrie — EMODnet
La profondeur est issue d'EMODnet Bathymetry DTM 2022 (~115 m de résolution, API REST POINT(lon lat)), retournant la valeur lissée + fourchette min/max + type de sondage vulgarisé. La nature du fond est issue d'EMODnet Seabed Habitats — EUSeaMap 2025 (WFS emodnet_view:eusm2025_msfd_full, substrat lu dans le champ msfd_bbht puis classé : sable, vase, roche, herbiers de Posidonie…).
Cache 180 jours par mouillage (clé anchor_v5_, résolution 0,001° ≈ 100 m). Incrémenter la clé en production si l'algorithme change.
13. Le routage — isochrones et polaire
Le routage répond à une question différente du reste de cette page : non pas « quel temps fera-t-il ici ? », mais « quel est le chemin le plus rapide entre ces deux points, compte tenu du vent prévu et de ce que sait faire ce bateau ? ». C'est un problème d'optimisation dans un champ qui varie en espace et en temps.
La polaire
La polaire est une table angle du vent × force du vent → vitesse, propre au bateau (elle se saisit dans sa fiche, à la main ou par import CSV). La vitesse à un couple quelconque est obtenue par interpolation bilinéaire entre les quatre valeurs voisines. Hors table, la valeur est bornée sur la dernière colonne plutôt qu'extrapolée — une extrapolation linéaire donnerait des vitesses absurdes dans le vent fort. Sans polaire saisie, un croiseur générique de 11 m sert de repli.
Les isochrones
Le moteur avance par pas de temps (60, 30 ou 15 minutes au choix). À chaque pas, depuis chaque position du front, il évalue tous les caps d'une grille (5° par défaut) : la polaire donne la vitesse, donc la position atteinte au pas suivant. L'ensemble de ces positions forme l'isochrone.
Sans tri, le front serait multiplié par le nombre de caps à chaque pas. L'élagage retient donc une seule position par secteur angulaire vu du départ — la plus avancée vers le but :
Ni les bords ni les empannages ne sont codés. Ils émergent de la comparaison des caps : au près, la polaire donne une vitesse quasi nulle au cap direct et correcte à 45°, donc le meilleur chemin passe par deux amures. Au portant, 150° bat souvent le plein vent arrière. Le moteur, lui, est un cas à part : sa vitesse ne dépendant pas du cap, viser le but est toujours optimal — un cap direct est donc ajouté d'office aux candidats, et il domine les autres candidats motorisés dès qu'il n'est pas bloqué.
Lecture du champ de vent
Le vent est chargé une fois pour toute la zone sous forme de cube (échéance × latitude × longitude) de composantes U et V — un routage lit le vent des dizaines de milliers de fois, un appel réseau par lecture serait exclu.
Hors de la fenêtre géographique ou de la plage d'échéances téléchargées, la lecture rend NaN et jamais la valeur du bord : un routage qui sort de la zone couverte doit s'arrêter en le disant, pas continuer sur une donnée inventée.
La fenêtre téléchargée est taillée sur le trajet plutôt que fixée :
Le facteur 1,4 anticipe le détour (bords, contournements), le 1,25 est une marge ; la vitesse plancher est celle du moteur s'il est autorisé, sinon 3 nœuds — un minorant de vitesse donne un majorant de durée. Les échéances sont horaires sur les six premières heures puis de trois en trois.
Le masque côtier
Le trait de côte est embarqué dans l'application (Natural Earth 10 m, environ 406 000 segments, chargé une fois en mémoire) — aucun appel réseau, donc aucune dépendance à un service tiers en plein calcul. Chaque pas candidat est un segment ; il est refusé si ce segment croise un segment de côte. Un pré-filtre par boîte englobante écarte d'emblée plus de 99,9 % des paires avant tout test géométrique.
Le test porte sur le saut, pas sur le point d'arrivée : un pas qui enjambe une langue de terre étroite est rejeté, alors qu'un test ponctuel le laisserait passer. Le contournement d'une pointe émerge ensuite du même mécanisme que les bords, sans logique dédiée.
Les seuils et pénalités
Trois seuils interdisent un pas plutôt que de le pénaliser : vent maximum, mer maximum (qui déclenche le téléchargement d'un champ de vagues — le poste le plus lourd, donc jamais fait sans demande) et rafale maximum. Une valeur inconnue ne bloque jamais ; en revanche, un seuil demandé dont le champ n'a pas pu être chargé est signalé sur le tracé, un garde-fou silencieusement inactif étant pire qu'aucun garde-fou.
Deux facteurs modulent la progression au lieu de l'interdire :
La manœuvre ampute la progression du pas, pas la vitesse polaire : elle représente le temps perdu, pas une simulation de la décélération. Elle est ignorée au moteur et au premier pas.
Coût
Le calcul d'isochrones lui-même est rapide — de l'ordre de 0,3 à 0,5 s pour une traversée de 200 milles au pas horaire. Le temps réel d'un routage est dominé par le téléchargement des champs (une trentaine de secondes à froid). Un run publié étant immuable, il est conservé : relancer aussitôt avec d'autres réglages ne coûte presque rien, mais revenir le lendemain retéléchargera — ce ne sont plus les mêmes runs.
Le routage ne tient pas compte du courant, ne connaît ni tirant d'eau ni balisage, et son trait de côte est volontairement grossier. Voir l'article Le routage pour la lecture pratique des résultats et la liste de ce qu'un tracé calculé ne contient pas.
14. La marée — modèle, annuaire et surcote
La marée est le seul indicateur de Solano qui ne vient pas d'un modèle atmosphérique, et le seul dont la valeur dépend d'un zéro de référence. Deux sources coexistent, avec des droits différents : un modèle océanique mondial, disponible partout, et un annuaire de port, disponible là où une station de référence est rattachable au point. L'application indique toujours laquelle des deux parle.
Le modèle : des différences, jamais une hauteur d'eau
Le niveau vient de la variable sea_level_height_msl (Mercator Ocean via Open-Meteo, couverture mondiale, maille ~8 km), référencée au niveau moyen global — pas au zéro des cartes marines.
Trois raccourcis ont été essayés puis écartés, mesures à l'appui. Estimer le zéro des cartes par le minimum de l'archive : testé contre l'annuaire officiel canadien à Halifax, l'estimation diverge au lieu de converger (−1,55 m sur 2 ans, −1,64 m sur 3,8 ans, pour un vrai zéro à −1,47 m), parce qu'un minimum de modèle n'est pas astronomique — et l'erreur annonce trop d'eau, le pire sens pour un marin. Épisser les sources (l'heure d'un côté, la hauteur de l'autre) : les deux ne placent pas l'étale au même instant, 49 minutes d'écart mesurées à Halifax, donc une hauteur d'annuaire collée sur une heure de modèle est fausse deux fois. Caler le zéro sur la fenêtre affichée : un repère calculé sur 7 jours glissants dérive de 69 cm sur l'année, contre 19 cm sur 365 jours — les chiffres changeraient au zoom.
Trouver les étales
La série est horaire, or une étale est plate : la prendre au point le plus haut échantillonné raboterait l'heure de la pleine mer d'une demi-heure. L'extremum est donc affiné par parabole sur les trois points encadrants :
Résultat mesuré : −10 minutes en moyenne sur les heures de PM/BM, et 3 à 6 % d'écart sur le marnage en côte ouverte.
0,21 · 0,22 · 0,22 · 0,21 relevé en production) et la pente devient nulle des deux côtés. Ne comparer que les voisins immédiats faisait disparaître la moitié des marées de Méditerranée — deux basses mers se suivant sans pleine mer entre elles. On cherche donc le voisin strictement différent de part et d'autre du palier et on pose l'étale en son milieu ; la parabole reste réservée aux sommets pointus, son dénominateur étant nul sur un palier.Corollaire : un marnage va d'une pleine mer à une basse mer. Deux extrema de même type n'en délimitent aucun — mieux vaut ne pas afficher de marnage que d'en fabriquer un qui se lirait comme une donnée manquante.
Le rattachement d'un port d'annuaire
Quand une station de référence est rattachable au point, la réponse bascule sur elle : les heures et les hauteurs deviennent celles de l'annuaire, rapportées au zéro des cartes — donc additionnables à une sonde. Deux conditions, toutes deux nécessaires :
La décision est prise en tâche de fond (trois allers-retours, dont deux sur 14 jours d'archive) : le premier passage sur un point sert le modèle, le suivant l'annuaire. Elle est mise en cache 90 jours, sous une clé qui dépend des annuaires configurés — ajouter un pays fait donc re-décider les points déjà visités. Deux garde-fous : une validation qui n'a pas pu être menée (réseau) n'est jamais un refus mis en cache ; et en fond de baie, où le modèle est aveugle (une zone qui assèche tombe sur une cellule de terre), le rattachement se fait sur la seule proximité, plafonnée à 8 km, en le disant à l'écran. Une station dont l'annuaire ne publie pas de courbe est écartée : les sept concernées au Canada sont toutes en fond de Fundy, là où la marée porte un mascaret — interpoler une sinusoïde y donnerait une forme fausse.
Les annuaires couverts. Canada — Service hydrographique du Canada, 1 080 stations à prédictions ; France métropolitaine — api-maree.fr, 133 sites, seule source à donner le coefficient de marée ; Irlande — Marine Institute, 38 stations ; Royaume-Uni — UKHO ADMIRALTY, 608 ports. Ailleurs, le modèle reste seul, avec ses réserves. Deux nuances propres à l'Irlande : le jeu de données publie deux colonnes de hauteur, l'une au zéro des cartes et l'autre à un zéro de nivellement terrestre — Solano lit la première, et le rappelle ici parce que confondre les deux annoncerait plusieurs mètres d'eau en trop ; et douze des trente-huit stations sont modélisées plutôt qu'ajustées sur un marégraphe local, ce que l'écran signale sans les écarter (ce sont parfois les seules de toute une côte).
Une nuance propre au Royaume-Uni : la courbe y est reconstruite. L'abonnement gratuit de l'UKHO sert les étales — heures et hauteurs des pleines et basses mers, au zéro des cartes — mais pas les hauteurs continues entre elles, réservées aux abonnements payants. Solano trace donc la courbe par demi-cosinus entre deux étales consécutives de l'annuaire : la règle des douzièmes, celle qu'enseigne toute formation à la navigation. Tout y reste au zéro des cartes et vient d'UKHO ; seule la forme entre deux étales est calculée. L'écart a été mesuré contre les courbes réelles au pas de cinq minutes de l'annuaire irlandais : 3 à 16 cm d'écart type, 37 cm au pire sur un marnage de 3,8 m, soit au plus 10 % du marnage. L'écran le signale. Deux autres limites du même abonnement : la fenêtre s'arrête à aujourd'hui plus six jours là où le modèle va à dix, et elle ne contient aucun passé. Enfin, les 75 ports où le service déclare lui-même qu'il n'y a pas de courbe continue — criques et rivières à marée, « assèche hors eau de rivière » — sont écartés et retombent sur le modèle, au même titre que les mascarets de la baie de Fundy.
La surcote
Un annuaire est purement astronomique : il ne connaît que la Lune et le Soleil. La mer réelle s'en écarte parce que la météo déplace l'eau — c'est la surcote (négative, on parle de décote). Le baromètre inverse (environ 1 cm par hPa, en sens opposé) n'en est qu'une part : mesuré le 21 septembre 2026 en Méditerranée occidentale, −6 cm pour le baromètre seul quand le modèle de surcote donnait −14 cm, les 8 cm d'écart étant l'effet du vent qu'un terme de pression ne voit pas.
La source est HYCOM2D (Météo-France, GRIB2), en version forcée ARPEGE : grille 0,04° (~4 km, deux fois plus fin que le modèle de marée), horizon 102 h, réseaux toutes les 6 heures. Le champ étant par bassin et non par point, il est téléchargé par un travail de fond et lu en cache seul — jamais de réseau sur le chemin d'une requête.
sea_level_height_msl contient déjà le baromètre inverse, le terme stérique et ce que le modèle résout de surcote — l'ajouter compterait la pression deux fois, et une part du vent aussi, d'un montant qu'on ne sait pas mesurer.Au-delà de l'horizon du champ (102 h, alors que la courbe va jusqu'à dix jours), la correction retombe sur le baromètre : une courbe continue vaut mieux qu'un décrochement à l'heure 103. Chaque point de courbe dit donc d'où vient sa correction, et la réponse compte sur combien de points la surcote a réellement servi — annoncer « surcote incluse » sur toute la courbe mentirait sur les deux tiers.
Limites propres à la marée
- Ce n'est pas un annuaire officiel. Là où Solano rattache un port, les heures et hauteurs sont celles du service hydrographique national ; ailleurs, ce sont celles d'un modèle, et elles ne remplacent pas un annuaire papier ni les documents du SHOM.
- Les courants de marée ne sont pas déduits de la courbe. Ils viennent d'un modèle distinct, avec ses propres limites — l'étale de courant ne coïncide pas avec l'étale de hauteur.
- Rien n'est résolu en rivière ni en amont d'un seuil. Mascarets, barrages de marée, estuaires étroits : ni le modèle ni l'interpolation d'une courbe de port n'y ont de sens.
15. Le verdict d'activité — consensus prudent
Le verdict « puis-je pratiquer ici ? » répond heure par heure, pour l'activité choisie (voile, kite, rando, vélo…), sur les heures de jour locales (7h–18h). Il s'affiche dans le bandeau vent et mer, au-dessus de la frise des jours.
1. Chaque modèle coché vote
Chaque modèle atmosphérique que vous avez coché juge l'heure sur ses propres valeurs de vent, de rafales et de pluie, avec les seuils de l'activité. Il rend un vote : oui, limite ou non. Les modèles de vagues cochés votent de la même façon sur la hauteur de mer.
2. Le consensus, prudent
Les votes sont combinés selon une règle qui penche vers la prudence :
non : plus de la moitié des modèles disent non
limite : tous les autres cas, dont un désaccord franc (un oui et un non)
Un seul modèle coché donne son propre verdict. La mer compte comme le vent : l'heure prend le pire des deux verdicts.
3. Les valeurs affichées : la médiane
Le vent, les rafales, la mer et la pluie affichés sont la médiane des modèles, pas leur moyenne. À trois modèles ou plus, une valeur aberrante d'un seul modèle ne déplace pas la médiane ; une moyenne, si.
4. Pourquoi un désaccord donne « limite »
Si un modèle annonce 15 nœuds de rafales et un autre 40, leur moyenne (27) peut sembler acceptable pour un seuil de 33 nœuds. Solano ne fait pas cette moyenne : le désaccord est le signal qu'il faut être prudent, il est donc signalé comme « limite ».
16. Le livre de bord — fiche, prévu / observé, import et bilans
La fiche d'une navigation, ses fichiers GPX/CSV et les bilans sont calculés par le serveur, une seule fois pour le site et l'application iPhone : les deux affichent donc exactement les mêmes chiffres. Hors réseau, l'appareil refait le calcul de la fiche localement et le signale.
Distance, durée, vitesse moyenne
La distance est la somme des segments (formule de haversine) entre les positions relevées, dans l'ordre du journal : les bords tirés entre deux points ne sont pas comptés, la distance réelle est donc un peu plus longue. La durée va de la première à la dernière ligne ; la vitesse moyenne en est le quotient.
Le vent : toujours le vent réel
Une ligne saisie en vent apparent est convertie en vent réel à partir du cap (à défaut la route fond) et de la vitesse du bateau (à défaut la vitesse fond). Si ces données manquent, la ligne est exclue des statistiques de vent plutôt que de comparer un vent apparent à une prévision de vent réel.
Prévu / observé : quel modèle a le mieux vu la navigation ?
Quand la météo du trajet a été figée au départ, chaque ligne qui porte une observation est rapprochée du point de la route le plus proche dans le temps, puis, pour chaque modèle, de l'heure de prévision la plus proche (écart maximal : 3 h). On cumule l'écart absolu entre prévu et observé :
vent en nœuds · pression en hPa · mer en échelon Douglas
La hauteur de vague prévue est ramenée sur l'échelle Douglas pour être comparable à la mer notée à l'œil. Les modèles sont classés sur le vent s'il a été noté, sinon sur la mer, sinon sur la pression.
Importer un enregistrement (montre, Strava, traceur)
Un fichier GPX ou FIT compte souvent un point par seconde. Solano en garde le premier, le dernier, un point toutes les N minutes (10 par défaut) et un point à chaque changement de route d'au moins 30° (au plus un par minute). La route et la vitesse fond sont calculées sur une fenêtre glissante de 30 secondes, pour que le bruit du GPS ne donne pas des caps aléatoires.
Bilans
Un bilan additionne les fiches de ses navigations. Les nuits sont les minuits locaux franchis en mer ; les jours de mer, les dates locales distinctes couvertes. Le bilan personnel ne compte que les navigations où vous étiez inscrit à bord. Le carburant n'est additionné que si toutes les navigations l'expriment dans la même unité.
17. Limites de la méthode
La méthode Solano présente plusieurs limitations importantes à connaître pour interpréter correctement les scores :
- Stabilité ≠ justesse. Un score de 9/10 signifie que les modèles sont cohérents entre eux — pas qu'ils ont raison. Une situation atmosphérique peut être systématiquement mal simulée par l'ensemble des modèles (biais commun). Le score MAE ERA5 est l'indicateur complémentaire pour évaluer la justesse historique.
- Sens à partir de J+1. La comparaison inter-runs n'est pertinente qu'à partir du lendemain, quand plusieurs runs ont déjà prévu le même jour. À très courte échéance (quelques heures), tous les runs convergent naturellement — le score serait artificiellement élevé.
- Délai de publication des runs. Chaque modèle publie ses runs avec un délai variable (de 1h30 pour AROME à 4h pour UKMO). Solano utilise les timestamps réels de publication Open-Meteo, non les heures théoriques.
- Pas de données marines dans ERA5 récent. La vérification ERA5 ne couvre que les variables atmosphériques. Pour les vagues et courants, il n'existe pas encore d'équivalent ERA5 récent dans l'API Open-Meteo.
- ERA5 est une référence à maille large. À ~31 km de résolution, ERA5 ne « voit » pas la variabilité fine (brises, relief côtier) qu'un modèle à 1,5 km résout. Le MAE ERA5 pénalise donc mécaniquement les modèles fins sur ces effets locaux : c'est un écart à une réanalyse large, à lire comme un signal relatif (classement des modèles) plutôt qu'une erreur absolue au point. La comparaison aux observations réelles (bouées/aéroports) est ajoutée là où le maillage le permet.
- Open-Meteo comme intermédiaire. Les données transitent par l'API Open-Meteo, qui impose ses propres délais de mise à jour et horizons de disponibilité par modèle.