Bonjour,
Je me lance dans la programmation python et je souhaiterais faire un petit script qui affiche les données de "Température locale diagnostiquée à 2m de hauteur au dessus du relief","Composante zonale du vent horizontal ouest-est diagnostiquée à 10 m de hauteur" et la "Composante méridienne du vent horizontal diagnostiquée à 10 m de hauteur"en fonction de la longitude et latitude.
Pour cela, j'ai télécharger un fichier provenant du site open data de météofrance (Open Data) en selectionnant :
Domaine :"France - 0.01°" , Sous Paquet :" SP1 - Paramètres courants à la surface", Groupe d'échéances "0h" et Date du run "2020-02-10 00 UTC"
Je dispose donc d'un fichier au format grib2 que j'essaie de traiter avec la bibliothèque pygrib
Pour commencer simple, j'essaie juste d'obtenir la température pour un point donnée (longitude=0.25,latitude=49.21)
je créé un index pour lire le fichier (Il paraît que c'est le plus rapide)
Je selectionne les enregistrements qui correspondent à la température et je récupère les valeurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part indx = pygrib.index('./AROME_0.01_SP1_00H_2020021000.grib2', 'typeOfLevel', 'level', 'name')
Le problème est qu'à partir de la, je tâtonne et ne trouve pas comment récupérer dans cette variable(numpy.ma.core.MaskedArray) la valeur qui correspond à ma longitude=0.25 et latitude=49.21
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 msg = indx.select(level=2, typeOfLevel="heightAboveGround", name="2 metre temperature") temp2m = msg[0].values
Si quelqu'un à une idée, je suis preneur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 import pygrib indx = pygrib.index('./AROME_0.01_SP1_00H_2020021000.grib2', 'typeOfLevel', 'level', 'name') msg = indx.select(level=2, typeOfLevel="heightAboveGround", name="2 metre temperature") temp2m = msg[0].values
Partager