Le projet PIFO


Description du projet

Le projet PIFO est un framework de modélisation météo écrit initialement en JavaScript. Plus simplement : c’est un modèle météo dont l’objectif est avant tout éducatif. Il s’agit d’implémenter les techniques de calcul utilisées dans les modèles de prévision.

L’acronyme PIFO signifie Projet Informatique à Formules Ouvertes. Il reflète la structure modulaire et évolutive du projet, l’absence d’objectif opérationnel, et la genèse du projet. Il se veut un petit clin d’oeil humoristique aux sigles à la française, tout en étant un projet dont le noyau scientifique reste solide.

Code source

Le code source est disponible sous licence GPL V3 à l’adresse suivante :

https://github.com/ngasnier/PIFO

Le modèle opérationnel

Caractéristiques :

  • 4 runs par jour
  • Prévisions à 48h
  • Modèle hydrostatique à aire limitée, en grille C et coordonnée sigma
  • Schéma d’intégration de type explicite centré avec filtrage temporel
  • Résolution horizontale de 1° (environ 100km)
  • Grille de 111×72 de type C en projection Mercator positionnée de l’Atlantique Nord à l’Europe de l’Est
  • 8 couches d’atmosphère en coordonnées sigma.
  • Initialisation et conditions aux limites données par GFS
  • Gestion du relief
  • Paramétrisations physiques :
    • Rayonnement : non implémenté
    • Couche limite, turbulence : non implémenté
    • Schéma de précipitations de grande échelle : de type Kessler
    • Schéma de convection : non implémenté.
  • Temps de calcul : environ 10 minutes.

Détail des champs prévus :

  • Champs 3D :
    • Vent U, V
    • Vitesse verticale généralisée W
    • Température
    • Géopotentiel
    • Tourbillon relatif et absolu
    • Humidité spécifique
  • Champs 2D :
    • Pression de surface
    • Accumulation des précipitations

Historique du projet

Au départ, tout est parti d’une idée de faire un mini-jeu jouable sur navigateur, basé sur une simulation météo basique. Idée qui est née à la suite de l’étude du live de Jean Coiffier, “Les bases de la prévision numérique du temps”. La quantité de calculs et le nombre de problématiques d’ordre numérique se sont avérés trop importants pour l’objectif initial, mais le projet a été poursuivi malgré tout.

Le langage Javascript s’est imposé d’une part pour la contrainte navigateur, et d’autre part pour des raisons de simplicité de prototypage. Le projet a débuté pendant l’été 2017 par le modèle barotrope. Il a donné lieu à une série d’articles didactiques en février 2018 sur le site Météo Blois, qui en propose la démonstration en ligne.

Le projet s’est ensuite étoffé avec l’implémentation d’un modèle barocline de type hydrostatique. Des outils annexes ont été ajoutés par la suite pour gérer notamment l’initialisation du modèle et l’historisation des résultats. Un frontal Node.JS a été implémenté à l’été 2018, permettant de le faire tourner de manière automatisée.

Depuis le 28/10/2018, PIFO est passé en production opérationnelle. Il reflète l’état de l’art du projet, et a été volontairement limité en résolution par les capacités de calcul du serveur.

Parallèlement, le schéma de précipitations est progressivement ajouté. D’abord sans gestion de la glace, puis avec la séparation pluie/neige.

Au cours de l’hiver 2018-2019, un important travail autour du framework a été réalisé. Il s ‘agissait de modulariser le code et faire abstraction du type de coeur dynamique utilisé. Il est maintenant possible de construire un modèle à partir de briques de base (coeur dynamique, type d’intégration temporelle, paramétrisations physiques, filtres…). Chaque élément pouvant ensuite avoir ses propres paramètres.

A cette modularisation s’ajoute un gros travail sur la gestion des modes de fonctionnement (initialisation, run…) et des processus de préparation et traitement des données en entrée et en sortie. Un système de gestion de workflow piloté par fichier de configuration a été ajouté.

Parallèlement, et depuis mars-avril 2019, la priorité est d’améliorer la gestion du bruit dans le modèle, pour améliorer sa stabilité lors de longues simulations et permettre de prévoir au-delà de 48h. Des implémentations et tests systématiques des différentes techniques de filtrage sont réalisés.