🇨🇵 API Ciblée Clim (FR)

🇨🇵 API Ciblée Clim (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 = tout l'historique de la station demandée (depuis les années 1850 pour les plus anciennes)

  • Temps réel = non

  • Archive = oui

  • Granularité d'accès = 1 station

  • Domaine = France métropole et outre-mer

  • Fréquence d'actualisation :

    • observations mensuelles / décadaires / quotidiennes / horaires / 6 minutes

  • Synchrone/asynchrone = asynchrone

  • Limitation(s) =

    • période de maximum 1 an glissant dans la requête (date-début période à date-fin période)

Fonctionnement de l'API :

Cette API donne accès aux données climatologiques des stations, c'est à dire aux archives des stations d'observations météorologiques de Météo-France, qu'elles soient encore en activité ou qu'elles aient cessé de fonctionner.

  1. Trouver l'identifiant de la station : partie "Stations"
    Pour les données 6 minutes, horaires ou journalières, les web services renvoient les informations sur les stations qui proposent les données archivées, par département, et les identifiants des stations présentes dans notre catalogue.
    Même si la station est fermée ("posteOuvert":false), les données archivées sont accessibles.

  2. Récupérer les métadonnées de la station : partie "Stations"
    Le web service /information-station renseigne sur les dates et heures de disponibilités de données (heures TU pour le fuseau UTC), mais aussi toutes les informations relatives à la vie de la station (si cette dernière a été déplacée par exemple).
    NB : une station de type 5 n'est pas expertisée ou son expertise n'est pas garantie. De plus, la disponibilité des données est occasionnelle.

  3. Passer commande des données : partie "Commandes" avec les web services (selon le pas recherché) :

    • /commande-station/infrahoraire-6m

      • contraintes sur le paramètre date-deb-periode : pour les minutes seules les valeurs multiples de 6 (00, 06, 12, 18, 24, 30, 36, 42, 48, 54) sont valables pour passer commande. Les autres valeurs provoqueront une erreur lors de la récupération des données (cf plus bas). Les valeurs des secondes sont ignorées

      • contraintes sur le paramètre date-fin-periode : les valeurs des minutes et secondes sont forcées à 59:59

      • /commande-station/horaire

        • contraintes sur le paramètre date-deb-periode : les valeurs des minutes et des secondes sont ignorées

        • contraintes sur le paramètre date-fin-periode : les valeurs des minutes et secondes sont forcées à 59:59

      • /commande-station/quotidienne

        • contraintes sur le paramètre date-deb-periode : les valeurs des heures, minutes et des secondes sont ignorées

        • contraintes sur le paramètre date-fin-periode : les valeurs des heures, minutes et secondes sont forcées à 23:59:59

    • pour une station donnée (avec l'identifiant récupéré à l'étape 1.)

    • pour les dates de la période souhaitée, pour le fuseau UTC, en respectant le format ISO 8601. Par exemple, pour le 06/05/2024 à 8h36 UTC : 2024-05-06T08:36:00Z

    • en prenant en compte les restrictions d'usage décrites dans les "caractéristiques principales de cette API" plus haut
      L'identifiant de commande est dans la réponse JSON (s'il n'y a pas eu de code d'erreur) :
      {"elaboreProduitAvecDemandeResponse":
         {"return": "768920711487"}
      }

  4. Récupérer les données météo de la station : partie "Téléchargement" avec le web service /commande/fichierRenseigner l'identifiant de commande obtenu à l'étape 3. et télécharger le fichier de données.NB1 : un délai de traitement de la commande par le backend est nécessaire avant de disposer du résultat. Il est utile d'attendre plusieurs secondes avant de solliciter le web service /commande/fichier après avoir passé la commande.
    NB2 : la durée de conservation des commandes, de l'ordre de plusieurs minutes, est suffisante pour s'accorder le délai mentionné ci-dessus, ce qui permet d'éviter de solliciter le backend pour rien (code retour HTTP 204).

Erreurs courantes :

  • erreur de confusion entre API Climatologie et API Observations :

    • l'API de données climatologiques donne accès à l'archive qualifiée (code qualité fourni avec les données) des observations de toutes les stations historisées de MF, qu'elles soient encore actives ou pas

    • l'API des données d'observation renvoie les données "brutes" temps réels, sur 24h, des stations en activité

  • erreur 404 "Not Found" lors de la recherche de stations => le département n'existe pas

  • erreur 400 "Bad Request" lors de la recherche de métadonnées d'une station ou du passage d'une commande => la station n'existe pas

  • erreur 400 "Bad Request" lors de la commande de données 6 minutes => la date de début est non conforme  :
    Pour les données 6 minutes, la règle est la suivante : les minutes doivent être un multiple de 6 (00, 06, 12, 18, 24, 30, 36, 42, 48, 54)

  • erreur 400 "Bad Request" lors de la commande de données => la date de fin est dans le futur

  • erreur 500 "Error: Internal Server Error" et message "production en échec (la commande contient une plage d'absence de données)" lors de la récupération d'une commande => la période recherchée est sur une période d'inactivité de la station
    Pour toutes les données, la règle est la suivante : il faut que sur la période recherchée, un capteur au moins ait produit des mesures. Ceci peut se vérifier dans les informations d'activité ou d'inactivité des capteurs d'une station, fournies par le web service /information-station dans la liste des "parametres" du JSON renvoyé.

    • par exemple pour la station quotidienne "ARBENT" fermée (identifiant 01014001), le web service /information-station affiche les dates d'activité globale de la station, à l'identique de celle de chacun des paramètres :

      [ { "id": 1014001, "nom": "ARBENT", "lieuDit": "AERODROME D'OYONNAX", "bassin": "V251", "dateDebut": "1969-11-01 00:00:00" "dateFin": "1988-12-31 00:00:00" "typesPoste": [ { "type": 4, "dateDebut": "1969-11-01 00:00:00", "dateFin": "1988-12-31 00:00:00" } ], "parametres": [ { "nom": "AMPLITUDE ENTRE TN ET TX QUOTIDIEN", "dateDebut": "1969-11-01 00:00:00", "dateFin": "1988-12-31 00:00:00" }, { "nom": "CUMUL DES DJU SEUIL 18 METHODE CHAUFFAGISTE", "dateDebut": "1969-11-01 00:00:00", "dateFin": "1988-12-01 00:00:00" }, { "nom": "CUMUL DES DJU SEUIL 18 METHODE METEO", "dateDebut": "1969-11-01 00:00:00", "dateFin": "1988-12-01 00:00:00" }, { "nom": "CUMUL DES HAUTEURS DE PRECIPITATIONS", "dateDebut": "1969-11-01 00:00:00", "dateFin": "1988-12-01 00:00:00" }, ...


      Si l'on requête des données sur une période pas du tout couverte (ne serait-ce qu'en partie) par la période d'activité des capteurs, une erreur 500 aura lieu.

    • par exemple pour la station quotidienne "GRUISSAN-INRA" (identifiant 11170001), pour laquelle le web service /information-station affiche les dates d'activité :

      [ { "id": 11170001, "nom": "GRUISSAN (GRUISSAN-INRA)", "lieuDit": "PECH ROUGE", "bassin": "Y084", "dateDebut": "1964-01-01 00:00:00", "dateFin": "", "typesPoste": [ { "type": 4, "dateDebut": "1964-01-01 00:00:00", "dateFin": "1996-02-29 00:00:00" }, { "type": 5, "dateDebut": "1996-03-01 00:00:00", "dateFin": "" } ], "parametres": [ { "nom": "AMPLITUDE ENTRE TN ET TX QUOTIDIEN", "dateDebut": "1970-01-01 00:00:00", "dateFin": "" }, { "nom": "CUMUL DE PRECIPITATIONS EN 6 MN", "dateDebut": "2005-07-01 00:00:00", "dateFin": "2007-09-04 00:00:00" }, { "nom": "CUMUL DE RAYONNEMENT GLOBAL DECADAIRE", "dateDebut": "1996-03-21 00:00:00", "dateFin": "" }, { "nom": "CUMUL DECADAIRE DES TM>0 AVEC TM NON ECRETEE", "dateDebut": "1970-01-01 00:00:00", "dateFin": "" }, ...


      Alors que la station est ouverte depuis le 01/01/1964, des capteurs n'ont commencé à mesurer qu'à partir du 01/07/1970 au plus tôt. Une requête sur la période 01/01/1964 au 30/06/1970 sera donc en erreur 500.

    • cas particulier d'une station qui n'a jamais (pour l'instant) émis de mesures, la station quotidienne "PARIS 18E ARRONDISSEMENT (75_PL10_P_LA5)" (identifiant 75118003), le web service /information-station affiche une liste de paramètres vide :

      [   {     "id": 75118003,     "nom": "PARIS 18E ARRONDISSEMENT (75_PL10_P_LA5)",     "lieuDit": "HOPITAL_BICHAT_CLAUDE-BERNARD",     "bassin": "NR",     "dateDebut": "2015-08-14 00:00:00",     "dateFin": "",     "typesPoste": [       {         "type": 5,         "dateDebut": "2015-08-14 00:00:00",         "dateFin": ""       }     ],     "parametres": [], ...


      Si l'on requête des données sur cette station, quelle que soit la période recherchée, une erreur 500 aura lieu.

Cas d'usage :

En mode découverte sur le portail, je souhaite récupérer les données quotidiennes de pluviométrie (hauteur de précipitations quotidiennes) de la station météo de Saint Étienne-Bouthéon de juillet 2023 à décembre 2023 et les traiter dans un tableur

  1. Trouver l'identifiant (id) de la station : partie "Stations", avec le web service /liste-stations/quotidienne

    • choisir le département ad hoc (ici 42 pour la Loire)



    • dans la liste la liste des stations de toute la Loire, rechercher la station de "St Etienne-Bouthéon"


      L'identifiant de la station est : 42005001
      La station est indiquée active ("posteOuvert" : true). Son altitude et ses coordonnées lat/lon sont aussi indiquées.
  2. Obtenir les métadonnées de cette station : partie "Stations", avec le web service /information-stations

    • indiquer l'id de la station

    • on obtient toutes les métadonnées de la station dont : la liste des paramètres disponibles, ainsi que les périodes d'activité des capteurs ayant mesuré ces paramètres.
      Par exemple pour cette station, la "hauteur de précipitations quotidienne" est bien disponible, à partir du 01/04/1946.NB : on constate que pour les données "hauteur de précipitations horaires", il y a un trou dans la série entre le 11/05/1992 à 23h et le 27/11/1992 à 00h.



  3. Commander les données de la station pour la période du 01/07/2023 au 31/12/2023 : partie "Commandes", avec le web service /commande-station/quotidienne

    • renseigner l'id de la station

    • renseigner les dates de début et fin de la période, dans le fuseau UTC, au format ISO 8601



    • le code retour 202 signale le bon traitement de la commande => le numéro de commande est affiché 770657073297



  4. Récupérer les données de pluviométrie souhaitées : partie "Téléchargement" avec le web service /commande/ficher

    • indiquer le numéro de commande

    • le code retour 201 signale que les données sont disponibles
      NB : un code retour 204 indique qu'il faut ré-itérer la demande plus tard, la commande étant encore en préparation

    • il est possible de télécharger ces données (au format CSV) en cliquant sur le bouton [Download]



  5. Traiter ces données dans un tableur

    • pour ouvrir le fichier CSV correctement

      • indiquer que le séparateur est un point virgule

      • indiquer que la colonne "DATE" est de type date (AMJ)

    • tracer le graphique de la pluviométrie quotidienne