# Kitesurf en Vendée : méthode de l’almanach du vent

## Question et périmètre

Comparer la fréquence des relevés de vent atteignant un seuil selon la saison et l’heure. Le résultat décrit le vent à des stations ; il ne mesure pas des heures navigables ou des sessions de kitesurf.

Période : du 1er janvier 2010 à 00 h UTC inclus au 1er janvier 2026 à 00 h UTC exclu, soit 140 256 créneaux horaires possibles par station. Trois postes Météo-France :

| Poste | Libellé éditorial | Nom dans l’archive |
|---|---|---|
| 85163001 | Noirmoutier | NOIRMOUTIER EN |
| 85113001 | Île d’Yeu | L ILE D YEU |
| 85060002 | Les Sables-d’Olonne | CHATEAU-D’OLONNE |

Ces trois stations représentent trois implantations côtières distinctes. Elles ne constituent ni un inventaire des spots ni un échantillon représentatif de toute la Vendée. La station de Château-d’Olonne ne mesure pas toutes les plages des Sables-d’Olonne. L’exposition et les éventuelles évolutions instrumentales ou de site ne sont pas corrigées par cette étude ; aucune tendance climatique n’est estimée.

## Sources et conservation

Producteur : Météo-France, [données climatologiques de base horaires](https://www.data.gouv.fr/datasets/donnees-climatologiques-de-base-horaires), Licence Ouverte 2.0. Récupération le 13 septembre 2026.

Trois archives départementales : `H_85_2010-2019.csv.gz`, `H_85_previous-2020-2024.csv.gz` et `H_85_latest-2025-2026.csv.gz` (2025 seule conservée). Le script d’acquisition conserve les archives téléchargées dans un cache explicite et produit un extrait reproductible, sans modifier les valeurs des colonnes sélectionnées. Le dépôt conserve cet extrait compressé, le descriptif officiel des champs et un manifeste avec les URL, tailles et empreintes SHA-256 des archives et de l’extrait. Les archives amont peuvent être révisées par le producteur : un téléchargement ultérieur peut donc donner une empreinte différente. Le traitement publié utilise l’extrait archivé, dont l’empreinte est contrôlée avant calcul.

Colonnes conservées : NUM_POSTE, NOM_USUEL, LAT, LON, ALTI, AAAAMMJJHH, FF, QFF, DD, QDD. L’extrait brut contient 420 646 lignes, avant filtrage qualité. Il ne comporte aucune valeur météo inventée ou interpolée. Les coordonnées et l’altitude du JSON sont celles de la dernière ligne disponible pour chaque poste ; elles ne remplacent pas l’historique du site.

## Variable et filtrage

FF est le vent moyen sur les dix minutes précédant la mesure, à dix mètres, exprimé en m/s. Ce n’est ni la rafale maximale ni la moyenne sur une heure entière. DD indique la direction d’origine du vent sur 360 degrés.

Une observation de vitesse est exploitable si FF est renseigné et si QFF appartient à 0, 1 ou 9. Selon la documentation officielle : 0 = protégée, 1 = validée, 9 = filtrée par les premiers contrôles ; 2 = douteuse en cours de vérification, donc exclue. Une ligne peut avoir un code qualité mais une vitesse absente : elle est exclue. Les lacunes ne sont jamais remplacées par du vent nul. Résultat : **419 570 vitesses exploitables**, sur 420 768 créneaux théoriques (99,72 %).

| Station | Vitesses exploitables | Créneaux attendus |
|---|---:|---:|
| Noirmoutier | 140 058 | 140 256 |
| Île d’Yeu | 139 330 | 140 256 |
| Château-d’Olonne | 140 182 | 140 256 |

Le contrôle détecte tout doublon station × date UTC, toute vitesse négative ou manifestement hors domaine, et toute direction hors 0–360°. Pour les directions, DD doit être renseigné, QDD doit appartenir à 0, 1 ou 9 et FF doit être strictement positif. Les calmes sont exclus de la rose. Les secteurs N, NE, E, SE, S, SO, O, NO ont une largeur de 45°, centrée sur leur direction ; 360° appartient au nord. La direction présentée dans l’almanach porte sur tous les vents d’été exploitables, indépendamment du seuil choisi.

## Heures, saisons, numérateurs et dénominateurs

Conversion UTC vers `Europe/Paris` avec `zoneinfo` avant regroupement par mois et heure. L’heure d’été et l’heure d’hiver sont prises en compte : l’heure sautée au printemps n’a pas de créneau attendu ; l’heure répétée à l’automne compte deux observations distinctes. La sélection aux bornes reste en UTC : les premières heures locales de janvier 2010 et janvier 2026 reflètent cette convention. Les comparaisons annuelles utilisent l’année UTC de l’observation.

Hiver = décembre, janvier, février ; printemps = mars à mai ; été = juin à août ; automne = septembre à novembre. Une année d’hiver regroupe janvier–février et décembre de cette année, pas un hiver continu décembre–février. Les comparaisons d’été concernent 8, 9, 10 et 11 h face à 14, 15, 16 et 17 h locales.

Un nœud vaut exactement 1 852 / 3 600 m/s. Pour chaque seuil t parmi 10, 12, 15, 18 et 20 nœuds :

`fréquence (%) = 100 × nombre de FF atteignant t × 1852/3600 / nombre de FF exploitables du groupe`.

Le numérateur compte des observations, pas une durée continue. Le calcul de seuil précède tout arrondi. Les JSON et CSV conservent six décimales sur les pourcentages et les effectifs entiers permettent le recalcul exact ; le récit affiche une décimale et la matrice un entier. La fréquence saisonnière et celle d’un créneau regroupent les effectifs avant division : il ne s’agit pas d’une moyenne de pourcentages mensuels. Le seuil de 12 nœuds est un repère éditorial de comparaison ; aucun seuil n’est une recommandation de matériel ou de pratique.

Les matrices par station contiennent 3 × 12 × 24 = **864 cases**, complétées par **288 cases regroupant les trois stations**, soit **1 152 lignes exportées**. Pour chacune sont exportés le nombre de relevés valides, le nombre attendu de créneaux, les cinq numérateurs et les cinq fréquences. La couverture détaillée permet d’identifier les lacunes. Les proportions peuvent être affectées si les mesures manquantes correspondent à des situations météo particulières.

## Extension et vue d’ensemble

La mise à jour du 13 septembre 2026 ajoute les cinq années 2010–2014 et l’année complète 2025 : 157 286 vitesses exploitables de plus que les 262 284 de la première version. L’année 2026 est exclue pour ne pas comparer une année partielle à des années complètes. Les trois postes, la variable FF, les seuils et les règles qualité restent les mêmes. Nous retenons seize années récentes et complètes ; il ne s’agit pas de toute l’histoire des stations. La série n’est pas homogénéisée pour estimer une tendance climatique. L’ancien extrait et `manifest-2015-2024.json` restent archivés ; les deux premiers fichiers départementaux proviennent du téléchargement du 12 septembre, le dernier du 13 septembre.

La vue « Toutes les stations » est sélectionnée par défaut. Elle additionne, pour chaque case, les relevés au seuil et les relevés valides des trois postes, puis divise ces sommes. Les créneaux attendus sont également additionnés. La courbe horaire d’été et les effectifs par secteur de direction suivent la même règle. Chaque observation valide pèse une fois ; les stations les mieux couvertes contribuent donc un peu plus. On ne moyenne pas les pourcentages déjà arrondis. Le CSV identifie cet ensemble par `station=all` ; ne pas additionner ces lignes une seconde fois aux lignes par station.

Ce regroupement décrit une collection de mesures aux trois postes, pas une moyenne spatiale représentative de la Vendée, une fréquence de vent simultané aux trois stations ou des heures indépendantes. Les vues séparées restent disponibles pour observer leurs différences.

## Robustesse et limites d’interprétation

Aux cinq seuils, la fréquence hivernale dépasse la fréquence estivale sur 2010–2025 à chacune des stations. À 12 nœuds, le contraste se retrouve pour chaque année étudiée. Le contraste été après-midi / matin se retrouve seize années sur seize à Noirmoutier et Château-d’Olonne, quinze sur seize à l’Île d’Yeu. Les résultats annuels sont conservés dans le JSON. Exclure le code 9 change la fréquence annuelle à 12 nœuds de moins de 0,1 point à chaque station.

Seize ans ne constituent pas une normale climatique de trente ans. Les observations successives sont liées par les épisodes météo : 419 570 relevés ne sont pas autant d’expériences indépendantes. L’analyse n’est pas une prévision et ne fournit pas d’intervalle d’incertitude probabiliste. Elle ne prouve pas que les brises de mer expliquent à elles seules le cycle diurne.

Les rafales, vagues, marées, luminosité, obstacles, réglementations, équipements et niveau du pratiquant sont hors périmètre. La [FFVoile](https://formation.ffvoile.fr/kiteboard/) est citée pour le rôle des structures de sécurisation et d’information sur les sites, sans reproduire ses textes. Aucun chiffre de l’article ne provient d’un conseil de pratique.

## Reproduction

Python 3.11 ou ultérieur ; bibliothèque standard et base de fuseaux `tzdata` si le système ne fournit pas Europe/Paris (cas de Windows : `python -m pip install tzdata`). Depuis la racine du dépôt :

```sh
# Facultatif : reconstituer l’extrait depuis les archives amont.
# Conserver l’extrait et le manifeste publiés avant cette opération.
python scripts/fetch_kitesurf_wind.py --cache ../weather-cache

# Reproduire la version publiée depuis son extrait archivé.
python scripts/build_kitesurf_wind.py
python scripts/check_kitesurf_wind.py
npm run lint
npm run typecheck
npm run build
```

Le vérificateur ne réutilise pas les fonctions du générateur : il recompte les 864 cases par station et les 288 regroupements depuis le brut avec des décimaux, vérifie les effectifs, seuils et exports, les empreintes et les contrastes du récit. Les fichiers générés sont déterministes. Source et traitement : dépôt `ape-pro/vendee-data`, répertoires `data/raw/kitesurf-wind`, `data/processed` et `scripts`.

## Visualisation pédagogique des brises thermiques

Ajout du 13 septembre 2026 : coupe interactive jour / soir / nuit, d’après Météo-France (« La brise ») et NOAA/NWS (« Weather in Hawaii », brises de mer et de terre). Les références et les empreintes des pages consultées sont conservées dans `data/raw/thermal-breeze`.

Cette figure explique un mécanisme général ; elle n’utilise pas de température, de pression ou de vitesse simulée. Les proportions, le relief dessiné et la vitesse des points animés sont illustratifs. Les quatre étapes sont des repères explicatifs, pas quatre instants d’une prévision. La boucle montre une circulation idéalisée dans une coupe perpendiculaire à un littoral générique ; elle n’est ni une carte ni une trajectoire d’air mesurée en Vendée. Le retour nocturne n’est pas systématique.

Les boutons changent le régime et mettent en lumière une étape. L’animation démarre automatiquement lorsque la figure est visible, et se suspend hors écran ou dans un onglet masqué. Ouvrir « Figer le mouvement et lire toute l’explication » la met en pause ; les flèches restent lisibles à l’arrêt. La préférence de mouvement réduit désactive les animations. Une transcription des trois régimes reste disponible sans JavaScript. La coupe reste indépendante des observations de l’almanach horaire.
