Pages
Modèle CEP · ECMWF Open Data, grilles GRIB2 en direct

Cumuls de précipitations — fenêtre glissante

Une fenêtre de 6, 24, 48 ou 72 heures qu'on promène sur les quinze jours du run, ou le cumul de tout le run d'un seul tenant. Grille 0,25°, la maille la plus fine que le CEP diffuse librement, prise à la source et non rééchantillonnée — de l'Irlande à la Hongrie, du Maroc au Danemark.
Méthode

0,25°, et pourquoi pas plus fin

C'est la maille la plus fine que le CEP diffuse librement, et il n'y a rien à gratter de ce côté : data.ecmwf.int ne publie qu'un seul répertoire de résolution, 0p25, aussi bien pour l'IFS que pour l'AIFS. La grille native du modèle déterministe — TCo1279, environ 9 km — existe bel et bien, mais elle est servie par MARS et demande une licence. Les planches de service que diffuse le CEP travaillent à 0,125°, pour la même raison.

Chaque point de la carte est un point du modèle : la grille est lue telle que le CEP l'a écrite, ni interpolée ni rééchantillonnée avant d'arriver ici. Le lissage n'intervient qu'au dessin, dans le navigateur.

Ce qu'une maille de 27 km ne saura jamais rendre : un maximum orographique étroit. Sur un épisode cévenol ou un retour d'est alpin, le chiffre du modèle est un cumul moyen sur 750 km², pas la pointe du versant. Pour cela, les pages AROME et ICON-D2 sont à leur place.

La fenêtre est une soustraction, pas une somme

Le CEP ne publie pas des tranches de pluie mais un cumul depuis le début du run, et c'est ainsi qu'il est stocké : une grille par échéance, sans jamais la dériver. Le cumul entre deux instants est alors la différence de deux grilles, exacte au dixième de millimètre près quelle que soit la longueur de la fenêtre.

Additionner des tranches préalablement arrondies aurait donné le même résultat à peu de chose près — et ce « peu de chose » aurait grandi avec la fenêtre, jusqu'à plus d'un millimètre sur 72 h. Pour rien : la soustraction ne coûte pas plus cher.

Les échéances

Le run porte à 360 h, par pas de 3 h jusqu'à 144 h puis de 6 h. La fenêtre se cale donc au pas de 3 h dans la première semaine et de 6 h ensuite ; ses quatre durées étant des multiples de 6, elle tombe toujours sur des échéances réellement publiées, sans jamais rien interpoler dans le temps.

Seuls les runs de 0 et 12 h UTC sont collectés : ceux de 6 et 18 h s'arrêtent à 90 h, et « tout le run » n'y voudrait plus dire la même chose d'un passage à l'autre.

Comment la grille arrive ici

Un run pèse 85 fichiers d'environ 90 Mo — 7 Go pour un champ qui en occupe 900 ko. Chaque fichier est heureusement accompagné d'un .index qui donne l'offset de chacun de ses 184 messages : la routine lit l'index, y trouve tp, et n'en demande que cette tranche-là par une requête HTTP Range. Un run complet coûte ainsi 80 Mo, une fois par demi-journée.

Le GRIB2 du CEP est comprimé en CCSDS (gabarit 5.42), qui demande d'ordinaire libaec via eccodes — inutilisable sur un hébergement mutualisé. Le décodeur employé ici est celui écrit en langage de base pour collecte_iconeu, repris sans changement : le DWD et le CEP encodent de la même façon.

Le fond

Deux aplats et deux réseaux de traits, rien d'autre : mer, terres, frontières, départements. Ni relief, ni routes, ni toponymie — sur une carte de cumuls, tout ce qui n'est pas la pluie doit se taire. Les contours sont ceux que sert déjà donnees_geo/. Rien n'est téléchargé chez un tiers à l'affichage — pas une tuile.

Les traits de frontières passent au-dessus des cumuls : sous eux, un aplat de cent millimètres les effacerait et on ne saurait plus si la tache est française, suisse ou italienne.

Données
Source : modèle CEP/IFS HRES 0,25° — ECMWF Open Data (CC BY 4.0). Contours : Natural Earth 1:10 M et IGN/INSEE, préparés par donnees_geo/preparer_contours.py. Collecte : collecte_cepgrille.php, fichiers donnees_cep/grille-*.json.