MB Weather Maps : les outils de génération de carte Météo Blois sous licence GPL

Depuis 2012, Météo Blois illustre ses articles et ses posts sur Twitter avec des cartes et diagrammes météo produits à partir de données de modèles en open data. Pour cela, des outils ont été développés en interne. C’est avec grand plaisir que je vous annonce aujourd’hui la création et la mise à disposition du projet MB Weather Map issu de ces travaux.

Le projet MB Weather Maps, c’est quoi, pour qui, pourquoi ?

MB Weather Maps (pour Météo Blois Weather Maps) est un ensemble de scripts dont la fonction est de récupérer les données météo gratuites auprès des centres météo, faire calculer le modèle WRF sur la France et produire des cartes et diagrammes sous forme de fichiers images.

Il est destiné principalement aux utilisateurs qui veulent monter un site météo ou les organisations qui ont besoin d’exploiter des données météo. Une très bonne connaissance des systèmes Unix/Linux est vivement recommandée pour installer les pré-requis et mettre en oeuvre cette application.

Météo Blois a toujours été dans l’esprit de partage des informations et des connaissances sur Internet, et pro-logiciel libre. Il était donc dommage de garder tout cela pour soi. C’est pourquoi j’ai décidé de packager les scripts et les distribuer sous licence libre GPL version 3.

Pour télécharger les scripts et avoir plus d’informations techniques, je vous invite à vous rendre sur la page du projet, qui est hébergée sur un repository Bitbucket.

La page du projet MB Weather Maps : https://bitbucket.org/nicolas_gasnier/mbweathermaps

Pour télécharger, allez dans la page “Downloads” du projet et choisissez l’option “Download repository”.

Fonctionnalités MB Weather Maps

MB Weather Maps permet de produire des cartes pour les modèles suivants :

  • GFS : Cartes France et Europe, émagrammes, coupes et météogrammes  3 et 7 jours
  • WRF : en résolution 0.05° sur la France
  • ECMWF : cartes France et Europe
  • CFS (en daily) : cartes France et Europe
  • ARPEGE WMO (basse résolution et champs limités) : cartes France et Europe
Exemples de cartes et diagrammes proposés par MB Weather Maps
Exemples de cartes et diagrammes proposés par MB Weather Maps

Un support très basique et expérimental existe pour les modèles suivants fournis par Météo France :

  • ARPEGE
  • AROME

Le logiciel se base sur le langage de script NCL pour générer les cartes, et l’automatisation est réalisée à partir de scripts bash.

Obtenir de l’aide

En plus de la documentation sur la page du projet, vous pourrez trouver beaucoup d’aide sur ce blog dans la partie tutoriels. Nous avons écrit une large partie consacrée à la mise en oeuvre du modèle WRF, et une introductions au langage de scripting NCL utilisé pour la génération des produits. Le système de commentaires de cet article peut être utilisé pour obtenir un support de type forum. Pour contacter directement l’auteur, les informations sont indiquées sur la page Bitbucket du projet.

Contribuer au projet

Vous êtes invités si vous en avez la possibilité à améliorer l’outil et contribuer vos modifications au projet. Toutes les informations pour participer sont indiquées dans le readme de la page du projet.

J’espère que ce projet vous sera utile, et que vous ferez de beaux sites !

22 commentaires sur “MB Weather Maps : les outils de génération de carte Météo Blois sous licence GPL

  1. > Réponse à un commentaire Twitter :
    >
    > Hugo :^)
    >‏ @HugoMeteo
    > 22 janv.
    >En réponse à @MeteoBlois
    > De retour! Il semblerait que les scripts d’arpège ne fonctionnent pas du tout, avez-vous depuis une version fonctionnelle?

    > D’après ce que je vois, c’est le fichier xxxIP3 manquant à chaque fois :/

    Bonjour,

    j’ai fait quelques corrections dans les scripts ARPEGE. Il fallait juste ajouter le téléchargement du fichier manquant dans ARPEGE/runlist.txt. Par contre j’ai dû enlever le parallélisme au niveau de NCL pour que le script de génération fonctionne. Le support reste très limité (juste 3 cartes sur la zone France…). C’est complètement work-in-progress.

    Je n’ai pas eu le temps de re-tester sur AROME – il faut des plombes pour télécharger les fichiers, mais il se peut que des problèmes existent aussi. Je vais tester ça ASAP.

    Bonne soirée

    1. Bonsoir,
      J’avais en effet déjà rajouté le téléchargement du IP3 via le script de téléchargement, ce qui avait partiellement réglé le PB. Je vais tester tout ça 🙂

      J’ai déjà eu l’occasion de tester Arome, mise à part quelques cartes qui ne se génèrent pas, tout se déroule relativement bien 🙂

      1. J’ai retesté AROME ce matin avec quelques corrections de nouveau ! J’ai posté tout ça brut de fonderie, après un abandon de plus de 2 ans je crois donc forcément des choses sont à revoir…
        Bon au moins ça peut run sans planter et ça sort des cartes en 0.025°. Mais il est clair que sur les modèles Météo France un gros boulot reste à faire pour sortir tous les champs et surtout gérer les différents ensembles de données et résolutions (cartes Europe pour ARPEGE, cartes 0.01° pour AROME…).
        Bonne utilisation !

        1. Bonjour!
          Je m’y suis replongé après quelques mois. Les runs de GFS se génèrent sans problème, mais impossible de générer des runs WRF cependant. Il y a déjà une erreur dans le fichier nmm_run_nest.sh avec un “vi na” en trop. J’ai tout de même un grand nombre d’erreurs par la suite, puis une absence du fichier fileinfo.txt dans WRF/nmm_real.
          -> https://i.meteo-npdc.fr/45f668486fc42904.png

          1. Bonjour,
            Pour l’erreur du fichier metgrid il manque sûrement le lien vers le fichier (ou une copie) dans le dossier du run. Ce fichier est nécessaire pour le run WRF, comme beaucoup d’autres.

            Voir le tuto sur le run NMM pour les détails. Voici la partie qui devrait aider :
            # rm metgrid/METGRID.TBL
            # ln -s metgrid/METGRID.TBL.NMM metgrid/METGRID.TBL

            A noter que les fichiers de config et les fichiers de données WRF ne sont pas inclus dans le projet par souci de respect des licences. Il faut donc les lier ou copier au bon endroit.

          2. Bonjour,
            Je commence à voir le bout du tunnel… mais il y a encore quelques problèmes !
            Tout se déroule bien pour l’exécution de geogrid.exe, puis ungrib.exe, de même pour metgrid.exe.
            J’ai cependant un problème quand j’exécute ./nmm_real.exe et ./wrf.exe, les deux m’affichent: “starting wrf task 0 of 1” et terminent de s’exécuter au bout d’une seconde… une idée d’où peut provenir le problème? Désolé pour toutes ces questions… j’espère ne pas trop vous ennuyer!

          3. Il faut d’abord lancer nmm_real.exe et afficher le fichier rsl.out.0000. L’erreur est dedans. Pouvez-vous poster cela ici ? Pareil pour la commande wrf, mais si ça plante au niveau du real ce n’est pas la peine de continuer.
            Pas de pb, si je peux aider !

  2. Rebonjour!
    J’ai finalement réussi à régler cette erreur… mais une nouvelle est apparue !

    Le real.exe s’exécute relativement rapidement, au bout de 2s il a terminé (aucune idée de si c’est normal, mais pas d’erreur “fatale” dans le log).
    Cependant, je suis depuis 30mins sur une erreur du wrf.exe au bout de 6/7s, où j’ai un segment fault. J’ai cherché sur internet, mais aucune solution ne fonctionne.

    Voici l’erreur:
    d01 2018-05-10_12:00:01 in kf_eta_cps
    WOULD GO OFF TOP: KF_ETA_PARA I,J,DPTHMX,DPMIN 61 6 -65768.3438 5000.00000

    Program received signal SIGSEGV: Segmentation fault – invalid memory reference.

    J’ai tenté bien évidemment de réduire le time_step, sans résultat 🙁

    1. Pour le real, c’est généralement assez rapide, ça dépend du nombre de fichiers à traiter et de la vitesse de la machine, 2s c’est pas forcément déconnant même si ça me parait un peu rapide… il faut regarder s’il a bien généré les fichiers (de mémoire ils s’appelle wrfinput***).
      Pour WRF, si ce n’est pas le time step alors je ne sais pas, y a-t-il d’autres messages avant ? Ce genre de plantage ça suggère quand même un problème de paramétrage ou de valeurs dans les données. N’hésitez pas à mettre le log complet.

    2. il y a beaucoup d’erreurs “PSEUDO HYDROSTATIC IMBALANCE”.
      D’après ce que j’ai trouvé c’est lié au time step… Il faut aparamment le réduire, ou l’augmenter… Comment avez-vous paramétré la simulation ? J’aimerais jeter un coup d’oeil aux fichiers de config (namelist.input et namelist.wps) si c’est possible.

    3. Chez moi le num_metgrid_levels est à 27 mais je ne me rappelle plus si mes fichiers datent d’avant ou après la maj de GFS… Il n’y a pas d’erreur sur le real ? Il faudrait le lancer seul et voir le log.

      1. J’ai justement dû changer le num_metgrid_levels à cause d’une erreur dans le real (non correspondance 27 =/ 32).

        J’ai en effet une erreur dans le real que je n’avais pas vu… le problème doit certainement venir de là (enfin, j’espère !)
        Le log > http://i.meteo-npdc.fr/real_out.log

        1. C’est corrigé en changeant e_ne et e_sw (ou quelque chose comme ça) en 128 et 256 à la place de 64 et 128. J’ai bien le message “REAL EXE INIT SUCCESSFUL” et les deux fichiers (wrfbdy_d01 et wrfinput_d01) qui ont été généré.

          Cependant, la même erreur du wrf.exe persiste… J’ai aussi noté dans le log de wrf.exe cette ligne “d01 2018-05-10_12:00:01 avg global change (hPa/3h): 2.67657963E+12″… un changement de pression en 10^12, c’est pas normal je pense ! serait-ce un problème au niveau des données?

    4. Il est vrai que depuis les dernières mises à jour de GFS j’avais eu des problèmes, mais je n’avais pas eu le temps de chercher. Ils ont du changer quelque chose dans les formats de données. Je ne me rappelle plus les erreurs que j’avais – c’était de toute façon une version plus ancienne de WRF, mais ça ne plantait pas tout de suite, il arrivait à faire quelques itérations. Les erreurs de pression me disent quelque chose toutefois….
      Il doit y avoir une feature qui ne convient pas, ça peut être les options de la partie radiative, la partie cumulus, une feature à désactiver, ou que sais-je… mais c’est pas évident de savoir. Avez-vous essayer de poster sur le forum WRF users ?

      A savoir WRF-NMM n’est plus trop développé je crois, car le NCEP a arrêté le financement pour se concentrer sur NEMS-NMMB (si je ne dis pas de bêtises). Des problèmes de compatibilité avec les données sont donc possibles…
      Faudrais pouvoir tester avec ce modèle, à ce que j’ai vu il a l’air de fonctionner à peu près pareil.

      1. Je vais me pencher du côté de NEMS-NMMB.

        J’ai réussi à avancer un peu, depuis hier soir… En utilisant les données GFS 0.5° (et non 0.25°), j’arrive à le faire tourner pendant une trentaine de seconde (miracle). Cependant, au bout d’un moment, j’ai une erreur à propos de la distance terre-soleil… “SUN-EARTH DISTANCE CALCULATION FINISHED IN SOLARD
        YEAR= 2018 MONTH= 5 DAY= 11 HOUR= 12 R1= 1.0101” et après, segmentation fault. Après quelques recherches, cela vient apparemment des “radiations” mais je n’ai pas trouvé où les désactiver (‘radiation scheme’)… et désactiver ces radiations aura-t-il un impact conséquent sur les données?

        1. Désactiver les radiations c’est se passer de la gestion du rayonnement solaire donc ça impactera forcément le résultat de la simulation. C’est pas forcément une bonne idée…
          Est-ce que le modèle est compilé avec MPI ? Si oui essayer de le compiler en mode serial (1 processeur). Faudra adapter un peu les commandes dans les scripts mais ça peut marcher. Pour info dans ce topic ils évoquent un possible problème avec MPI :
          http://forum.wrfforum.com/viewtopic.php?f=8&t=928

          1. Testé en serial, sans succès, hélas… 🙁 Je retenterai peut-être sur une nouvelle machine, mise à neuf… Vous faites tourner vos modèles sur quelle configuration à l’heure actuelle ?

          2. Aujourd’hui je ne les fait plus tourner, trop contraignant, mais ça tournait sur un PC core-i7 avec 8Go ubuntu 14.04. Depuis la 16.04 j’ai plein de problèmes avec WRF, ça vient peut-être de là…

          3. Ok, je pensais qu’ils tournaient toujours au vu de celui présent sur la page d’accueil.

            J’ai tenté de faire un pull request sur le bitbucket pour améliorer le script de téléchargement d’AROME, mais j’ai un “Access denied” :/

            Et pour finir… mon but est de créer des modèles spécifiques à la région hauts de france (+ une petite marge autour). Une idée de comment réaliser ça avec arome/arpege/GFS? J’ai tenté de modifier “carte france” dans mb_common.ncl, en changeant les coordonnées des points délimitant la zone… sans succès, j’obtiens toujours une carte de france avec les frontières en plus.

          4. Les cartes de la page d’acceuil sont générées à partir des données GFS . Mais je ne fais plus tourner de WRF.

            Pour le repository, je vous ai donné les droits d’écriture sur bitbucket (j’ai trouvé le compte avec une notification de création de fork). Ca vous permettra de faire des requetes push.

            Et enfin pour les cartes, effectivement c’est dans la fonction mb_map_france qu’il faut modifier les coordonnées. Pour éviter de modifier dans mb_common (c’est jamais une bonne idée d’aller modifier directement dans la bibliothèque ;)… la meilleure méthode au vu de comment les choses sont faites :
            – dupliquer le script du modèle concerné (c’est toujours bien de conserver l’original, quand on fait du spécifique !)
            – modifier la copie.
            – pour changer les coordonnées il vaut mieux les passer via les ressources passées à la fonction mb_map_france. Exemple :

            ; Quelques variables utiles partout
            fr_res_black = True
            fr_res_black@mpNationalLineColor = “Black”
            fr_res_black@mpGeophysicalLineColor = “Black”
            fr_res_black@mpDefaultFillColor = “White”
            ; Ajouter ce code avec les bonnes coordonnées :
            fr_res_black@mpLeftCornerLatF = 40.1
            fr_res_black@mpLeftCornerLonF = -5.8
            fr_res_black@mpRightCornerLatF = 52.65
            fr_res_black@mpRightCornerLonF = 11.9
            ….
            mapid = mb_map_france(wks, “Temperature 850 hPa”, globalRes@validDate, globalRes@runInfo, fr_res_black)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.