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)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
indx = pygrib.index('./AROME_0.01_SP1_00H_2020021000.grib2', 'typeOfLevel', 'level', 'name')
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
1
2
msg = indx.select(level=2, typeOfLevel="heightAboveGround", name="2 metre temperature")
temp2m = msg[0].values
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

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