feat(home): onglets Aujourd'hui / Demain pour la carte Vigilance
Some checks are pending
Deploy info-canicule / deploy (push) Waiting to run
Some checks are pending
Deploy info-canicule / deploy (push) Waiting to run
Permet au visiteur de basculer entre la carte du jour et celle de J+1 (toujours présente dans le bulletin MF, sauf entre minuit et la pub de 6h où l'onglet est désactivé avec explication). Réutilise les helpers existants (currentEcheance, maxColorByDepartement) — pas de fetch supplémentaire, J et J1 sont déjà dans le snapshot. Bonus : - dayLabel calculé depuis "maintenant Paris" plutôt qu'un sample d'alerte → fonctionne en jour calme tout-vert. - CLAUDE.md : clarifie que MF officiel est canonique et Opendatasoft fallback (au lieu de la formulation "le jour où on bascule"). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8638b260ff
commit
15635ed0e3
2 changed files with 73 additions and 12 deletions
|
|
@ -23,13 +23,11 @@ Hébergé sur le VPS Nocleus partagé (réseau `shared-net`, cache Valkey ACL `i
|
|||
|
||||
Quatre flux indépendants, tous cachés en Valkey :
|
||||
|
||||
- **Vigilance** (`src/lib/vigilance.ts`) — Opendatasoft `weatherref-france-vigilance-meteo-departement` (Licence Ouverte 2.0, pas d'auth, ~1 000 records par snapshot, dépts × phénomènes × échéances J/J1). Provider Météo France officiel utilisable en fallback si la clé est dispo. URL : `https://public.opendatasoft.com/api/explore/v2.1/catalog/datasets/weatherref-france-vigilance-meteo-departement/records`.
|
||||
- **Vigilance** (`src/lib/vigilance.ts`) — **API officielle Météo France** `DPVigilance/v1/cartevigilance/encours` (source canonique, publication directe, couvre métropole + côtes). Auth via `METEOFRANCE_API_KEY`. Fallback automatique sur **Opendatasoft** `weatherref-france-vigilance-meteo-departement` (Licence Ouverte 2.0, no-auth) si MF échoue, puis sur `:last-good` (30 j). Override possible via `VIGILANCE_PROVIDER=opendatasoft|meteofrance` pour debug.
|
||||
- **Observations horaires SYNOP** (`src/lib/observations.ts`) — API Météo France, station SYNOP la plus proche du centroïde du dept, pré-calculé dans `src/data/stations-synop.json`. Alimente l'onglet « 24 h » sur les pages dept.
|
||||
- **Climato quotidienne** (`src/lib/climato.ts`) — fichiers CSV gzippés `data.gouv.fr/meteofrance/.../QUOT` (`latest-2025-2026` pour l'année courante, `previous-1950-2024` pour l'historique long). 365 jours glissants par dept. Cold-fetch optimisé : on skippe `previous-1950-2024` si `latest` suffit (cf. commit `ac46637`).
|
||||
- **Normales 1991-2020** (`src/lib/normales.ts`) — JSON statique `src/data/normales.json` (généré par `scripts/build-normales.mjs`), indexé par dept × day-of-year (1..366), lissage 7 jours.
|
||||
|
||||
Abstraction `vigilance.ts` à découper en deux implémentations (Opendatasoft / Météo France officiel) le jour où on bascule.
|
||||
|
||||
## Schéma cache
|
||||
|
||||
| Clé Valkey | TTL (frais → hard) | Contenu |
|
||||
|
|
@ -61,7 +59,7 @@ Home et pages dept renvoient `Cache-Control: ... must-revalidate` (cf. commit `e
|
|||
|
||||
## Pièges connus / à surveiller
|
||||
|
||||
- **`product_datetime` change 2× par jour** (~06h et 16h Paris). Tant que Météo France n'a pas publié le suivant, le snapshot Opendatasoft renvoie les valeurs J→J1 du bulletin courant. Inutile de poll plus vite que 15 min.
|
||||
- **`product_datetime` change 2× par jour** (~06h et 16h Paris). Tant que Météo France n'a pas publié le suivant, le snapshot renvoie les valeurs J→J1 du bulletin courant. Inutile de poll plus vite que 15 min. **Les deux bulletins contiennent J ET J1** — l'onglet "Demain" sur la home est donc toujours disponible quand on est dans la fenêtre du bulletin (sauf entre minuit et la pub de 6h, où `currentEcheance` renvoie J1 et il n'y a plus de J2 dispo).
|
||||
- **Echéance "J" = aujourd'hui, "J1" = demain**. Ne pas confondre avec un horizon en heures.
|
||||
- **`phenomenon_id`** : 1=vent, 2=pluie, 3=orages, 5=neige/verglas, 6=canicule, 8=avalanches, 9=vagues-submersion. Pas de 4 ni 7.
|
||||
- **Andorre** (`domain_id = 99`) est inclus dans le flux Vigilance mais n'est pas un département français. Mappé comme `99 — Andorre (zone Vigilance)` côté front pour ne pas l'écarter silencieusement.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue