🇨🇵 API Ciblée Obs (FR)
Jun 12, 2025
Pré-requis : avoir consulté l'aide d'utilisation des API du portail de Météo-France
Caractéristiques principales de cette API :
Durée de rétention (profondeur) des données = 24h
Temps réel = oui
Archive = non
Granularité d'accès = 1 station
Domaine = France métropole et outre-mer
Fréquence d'actualisation =
liste des stations d'observation = horaire
observations horaires = horaire (heure ronde + 10')
observations 6 minutes = toutes les 6'
Synchrone/asynchrone = synchrone
Limitation(s) =
une recherche pour une date plus ancienne que les 24h de rétention ramènera la donnée la plus ancienne disponible
Fonctionnement de l'API :
Cette API donne accès aux données d'observation temps réel des stations d'observations météorologiques de Météo-France en cours de fonctionnement.
Rechercher l'identifiant de la station (n° à 8 chiffres) avec le web service :
/liste-stations
NB : il est possible de faire une recherche graphique sur la page d' "information des stations" du portail des Données PubliquesTélécharger les mesures d'une station pour une date sur les dernières 24h avec les web services :
selon la fréquence des données d'observation recherchées (6 minutes ou horaire)/station-infra-horaire-6m
/station-horaire
renvoie la donnée disponible à la date la plus proche de la date demandée.
Erreurs courantes :
erreur de confusion entre API Observations et API Climatologie :
l'API des données d'observation renvoie les données "brutes" temps réels, sur 24h, des stations en activité
l'API de données climatologiques donne accès à l'archive qualifiée des observations de toutes les stations historisées de MF, quelles soient encore actives ou pas
téléchargement d'un fichier CSV ne contenant que la ligne d'entête ou d'un JSON ne contenant qu'une liste vide => la station demandée n'existe pas, ou requête dans le futur
erreur 400 et message "Identifiant station sémantiquement incorrect" => lorsque le n° de la station ne contient pas 8 chiffres exactement
Par exemple, il faut conserver le 0 (zéro) devant les n° de station des départements : 01 (Ain) à 09 (Ariège). Cf cas d'usages ci-dessouserreur 400 et message "Le paramètre xxx est une date future." => explicite
Cas d'usage :
En mode développement, je cherche à télécharger puis afficher sur une carte les observations mesurées par une station d'observation en temps réel près de chez moi (Arbent - 01) au format GeoJSON
téléchargement de la liste des stations avec un token OAuth2 :
téléchargement de la liste des stations métropole et outre-mer :
curl -X 'GET' \ 'https://public-api.meteofrance.fr/public/DPObs/liste-stations' \ -H 'accept: */*' \ -H 'Authorization: Bearer <votre_token_oauth2_ici>' -JO curl: Saved to filename 'liste-stations-obs-metropole-om.csv'
affichage du CSV de la liste des stations et choix de la station la plus proche :
CSV "brut" avec un éditeur de texte : les 0 (zéros) non significatifs apparaissent pour les départements de 01 à 09
CSV importé dans un tableur (Excel, Calc, Numbers, ...) : ⚠️ les 0 (zéros) non significatifs n'apparaissent pas pour les départements de 01 à 09 !! Il ne faut pas oublier de les inclure dans le n° de station au risque d'avoir une erreur (cf "Erreurs courantes")
téléchargement des données Obs 6m au format GeoJSON pour la station ARBENT et la date courante :
téléchargement des données Obs 6m au format GeoJSON pour la date courante :
curl -X 'GET' \ 'https://public-api.meteofrance.fr/public/DPObs/station/infrahoraire-6m?id_station=01014002&format=geojson' \ -H 'accept: */*' \ -H 'Authorization: Bearer <votre_token_ici>' -JO curl: Saved to filename 'obs-infrahoraire-6m_01014002_2024-05-06T13:48:56Z.geojson'
affichage du contenu du fichier GeoJSON contenant 1 station (cf. documentation des produits pour la description du contenu) :
affichage du contenu du fichier GeoJSON :
[ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ 5.669, 46.278167 ] }, "properties": { "geo_id_insee": "01014002", "reference_time": "2024-05-06T13:42:07Z", "insert_time": "2024-05-06T13:37:03Z", "validity_time": "2024-05-06T13:36:00Z", "t": 283.75, "td": 282.15, "u": 90, "dd": 210, "ff": 2, "dxi10": 230, "fxi10": 3.9, "rr_per": 0, "t_10": null, "t_20": null, "t_50": null, "t_100": null, "vv": null, "etat_sol": null, "sss": 0, "insolh": null, "ray_glo01": null, "pres": null, "pmer": null } } ]
utilisation du GeoJSON sur une application cartographique (hors du périmètre de fonctionnement de l'API)=> intérêt du choix GeoJSON pour afficher des données géolocalisées
Par exemple sur uMap (basé sur et opéré par OpenStreetMap) : https://umap.openstreetmap.fr/fr/