Partager via


Demander des données météorologiques en temps réel et prévues à l’aide des services Météo Azure Maps

Le service Météo Azure Maps est un ensemble d’API RESTful qui permet aux développeurs d’intégrer des données météorologiques dynamiques, historiques, en temps réel et prévisionnelles, ainsi que des visualisations dans leurs solutions.

Cet article montre comment demander des données météorologiques en temps réel et prévisionnelles :

Cette vidéo fournit des exemples montrant comment effectuer des appels REST vers le service Météo Azure Maps.



Prérequis

Important

Dans les exemples d’URL de cet article, vous devez remplacer {Your-Azure-Maps-Subscription-key} par votre clé d’abonnement Azure Maps.

Ce tutoriel utilise l’application bruno, mais vous pouvez choisir un autre environnement de développement d’API.

Demander des données météorologiques en temps réel

L’API Get Current Conditions retourne des conditions météorologiques détaillées telles que les précipitations, la température et le vent pour des coordonnées données. En outre, il est possible de récupérer les observations des dernières 6 heures ou 24 heures pour un emplacement spécifique. La réponse contient des détails tels que la date et l’heure de l’observation, une description des conditions météorologiques, une icône météo, des indicateurs de précipitation et la température. La température RealFeel™ et l’indice UV sont également retournés.

Dans cet exemple, vous utilisez l’API Get Current Conditions pour récupérer les conditions météorologiques actuelles pour des coordonnées situées à Seattle, WA.

  1. Ouvrez l’application bruno, sélectionnez NOUVELLE REQUÊTE pour créer une requête. Dans la fenêtre NOUVELLE REQUÊTE, définissez Type sur HTTP. Entrez un Nom pour la requête.

  2. Sélectionnez la méthode HTTP GET dans la liste déroulante URL, puis entrez l’URL suivante :

    https://atlas.microsoft.com/weather/currentConditions/json?api-version=1.0&query=47.60357,-122.32945&subscription-key={Your-Azure-Maps-Subscription-key}
    
  3. Sélectionnez le bouton bleu Créer.

  4. Sélectionnez le bouton d’exécution.

    Capture d’écran montrant la requête intitulée URL des données météorologiques en temps réel avec le bouton Exécuter mis en surbrillance dans l’application bruno.

    Le corps de la réponse contient les informations météorologiques actuelles.

    {
      "results": [
        {
          "dateTime": "2024-08-08T09:22:00-07:00",
          "phrase": "Sunny",
          "iconCode": 1,
          "hasPrecipitation": false,
          "isDayTime": true,
          "temperature": {
            "value": 19.5,
            "unit": "C",
            "unitType": 17
          },
          "realFeelTemperature": {
            "value": 23.7,
            "unit": "C",
            "unitType": 17
          },
          "realFeelTemperatureShade": {
            "value": 19.4,
            "unit": "C",
            "unitType": 17
          },
          "relativeHumidity": 81,
          "dewPoint": {
            "value": 16.2,
            "unit": "C",
            "unitType": 17
          },
          "wind": {
            "direction": {
              "degrees": 0,
              "localizedDescription": "N"
            },
            "speed": {
              "value": 2,
              "unit": "km/h",
              "unitType": 7
            }
          },
          "windGust": {
            "speed": {
              "value": 3.8,
              "unit": "km/h",
              "unitType": 7
            }
          },
          "uvIndex": 4,
          "uvIndexPhrase": "Moderate",
          "visibility": {
            "value": 16.1,
            "unit": "km",
            "unitType": 6
          },
          "obstructionsToVisibility": "",
          "cloudCover": 5,
          "ceiling": {
            "value": 12192,
            "unit": "m",
            "unitType": 5
          },
          "pressure": {
            "value": 1015.9,
            "unit": "mb",
            "unitType": 14
          },
          "pressureTendency": {
            "localizedDescription": "Steady",
            "code": "S"
          },
          "past24HourTemperatureDeparture": {
            "value": 3,
            "unit": "C",
            "unitType": 17
          },
          "apparentTemperature": {
            "value": 20,
            "unit": "C",
            "unitType": 17
          },
          "windChillTemperature": {
            "value": 19.4,
            "unit": "C",
            "unitType": 17
          },
          "wetBulbTemperature": {
            "value": 17.5,
            "unit": "C",
            "unitType": 17
          },
          "precipitationSummary": {
            "pastHour": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "past3Hours": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "past6Hours": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "past9Hours": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "past12Hours": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "past18Hours": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "past24Hours": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            }
          },
          "temperatureSummary": {
            "past6Hours": {
              "minimum": {
                "value": 16,
                "unit": "C",
                "unitType": 17
              },
              "maximum": {
                "value": 19.5,
                "unit": "C",
                "unitType": 17
              }
            },
            "past12Hours": {
              "minimum": {
                "value": 16,
                "unit": "C",
                "unitType": 17
              },
              "maximum": {
                "value": 20.4,
                "unit": "C",
                "unitType": 17
              }
            },
            "past24Hours": {
              "minimum": {
                "value": 16,
                "unit": "C",
                "unitType": 17
              },
              "maximum": {
                "value": 26.4,
                "unit": "C",
                "unitType": 17
              }
            }
          }
        }
      ]
    }
    

Demander des alertes météorologiques graves

L’API Get Severe Weather Alerts Azure Maps retourne les alertes météorologiques graves qui sont disponibles dans le monde entier à partir des agences météorologiques gouvernementales officielles et des principaux fournisseurs d’alertes météorologiques mondiaux ou régionaux. Le service retourne des détails tels que le type, la catégorie et le niveau d’alerte. Le service fournit également des descriptions détaillées sur les alertes graves actives pour l’emplacement demandé, comme les ouragans, les orages, la foudre, les vagues de chaleur ou les feux de forêt. Par exemple, les responsables de la logistique peuvent visualiser des conditions météorologiques graves sur une carte, ainsi que les sites d’activité et les itinéraires planifiés, et mieux renseigner les chauffeurs et les travailleurs locaux.

Dans cet exemple, vous utilisez l’API Get Severe Weather Alerts pour récupérer les conditions météorologiques actuelles pour des coordonnées situées à Cheyenne, WY.

Notes

Cet exemple récupère des alertes météorologiques graves au moment de la rédaction de cet article. Il est probable qu’il n’y ait plus d’alertes météorologiques graves à l’emplacement demandé. Pour récupérer les données d’alerte grave réelles lors de l’exécution de cet exemple, vous devez récupérer les données d’un emplacement avec des coordonnées différentes.

  1. Dans l’application bruno, sélectionnez NOUVELLE REQUÊTE pour créer la requête. Dans la fenêtre NOUVELLE REQUÊTE, définissez Type sur HTTP. Entrez un Nom pour la requête.

  2. Sélectionnez la méthode HTTP GET dans la liste déroulante URL, puis entrez l’URL suivante :

    https://atlas.microsoft.com/weather/severe/alerts/json?api-version=1.0&query=41.161079,-104.805450&subscription-key={Your-Azure-Maps-Subscription-key}
    
  3. Sélectionnez le bouton bleu Créer.

  4. Sélectionnez le bouton d’exécution.

    Capture d’écran montrant la requête intitulée URL des alertes météorologiques graves avec le bouton Exécuter mis en surbrillance dans l’application bruno.

    S’il n’y a pas d’alertes météorologiques graves, le corps de la réponse contient un tableau results[] vide. S’il existe des alertes météorologiques graves, le corps de la réponse est similaire à la réponse JSON suivante :

    {
    "results": [
        {
            "countryCode": "US",
            "alertId": 2194734,
            "description": {
                "localized": "Red Flag Warning",
                "english": "Red Flag Warning"
            },
            "category": "FIRE",
            "priority": 54,
            "source": "U.S. National Weather Service",
            "sourceId": 2,
            "alertAreas": [
                {
                    "name": "Platte/Goshen/Central and Eastern Laramie",
                    "summary": "Red Flag Warning in effect until 7:00 PM MDT. Source: U.S. National Weather Service",
                    "startTime": "2020-10-05T15:00:00+00:00",
                    "endTime": "2020-10-06T01:00:00+00:00",
                    "latestStatus": {
                        "localized": "Continue",
                        "english": "Continue"
                    },
                    "alertDetails": "...RED FLAG WARNING REMAINS IN EFFECT FROM 9 AM THIS MORNING TO\n7 PM MDT THIS EVENING FOR STRONG GUSTY WINDS AND LOW HUMIDITY...\n\n* WHERE...Fire weather zones 303, 304, 305, 306, 307, 308, 309,\n  and 310 in southeast Wyoming. Fire weather zone 313 in Nebraska.\n\n* WIND...West to northwest 15 to 30 MPH with gusts around 40 MPH.\n\n* HUMIDITY...10 to 15 percent.\n\n* IMPACTS...Any fires that develop will likely spread rapidly.\n  Outdoor burning is not recommended.\n\nPRECAUTIONARY/PREPAREDNESS ACTIONS...\n\nA Red Flag Warning means that critical fire weather conditions\nare either occurring now...or will shortly. A combination of\nstrong winds...low relative humidity...and warm temperatures can\ncontribute to extreme fire behavior.\n\n&&",
                    "alertDetailsLanguageCode": "en"
                }
            ]
            },...
        ]
    }
    

Demander des données de prévisions météorologiques quotidiennes

L’API Get Daily Forecast retourne des prévisions météorologiques quotidiennes détaillées, telles que la température et le vent. La demande peut spécifier le nombre de jours à retourner : 1, 5, 10, 15, 25 ou 45 jours pour des coordonnées données. La réponse comprend des détails tels que la température, le vent, les précipitations, la qualité de l’air et l’indice UV. Dans cet exemple, nous avons demandé des données sur cinq jours en définissant duration=5.

Important

Dans le niveau tarifaire S0, vous pouvez demander des prévisions quotidiennes pour les 1, 5, 10 et 15 jours suivants. Les niveaux tarifaires Gen1 (S1) et Gen2 offrent tous deux la possibilité de demander les prévisions quotidiennes à 25 jours et à 45 jours.

Mise hors service du niveau tarifaire d’Azure Maps Gen1

Le niveau tarifaire Gen1 est désormais déconseillé et sera mis hors service le 15/09/2026. Le niveau tarifaire Gen2 remplace le niveau tarifaire Gen1 (S0 et S1). Si le niveau tarifaire Gen1 est sélectionné pour votre compte Azure Maps, vous pouvez basculer vers la tarification Gen2 avant sa mise hors service. Sinon, il sera automatiquement mis à jour. Pour plus d’informations, consultez Gérer le niveau tarifaire de votre compte Azure Maps.

Dans cet exemple, vous utilisez l’API Get Daily Forecast pour récupérer les prévisions météorologiques sur cinq jours pour des coordonnées situées à Seattle, WA.

  1. Dans l’application bruno, sélectionnez NOUVELLE REQUÊTE pour créer la requête. Dans la fenêtre NOUVELLE REQUÊTE, définissez Type sur HTTP. Entrez un Nom pour la requête.

  2. Sélectionnez la méthode HTTP GET dans la liste déroulante URL, puis entrez l’URL suivante :

    https://atlas.microsoft.com/weather/forecast/daily/json?api-version=1.0&query=47.60357,-122.32945&duration=5&subscription-key={Your-Azure-Maps-Subscription-key}
    
  3. Sélectionnez le bouton bleu Créer.

  4. Sélectionnez le bouton d’exécution.

    Capture d’écran montrant la requête intitulée URL des données de prévisions météorologiques quotidiennes avec le bouton Exécuter mis en surbrillance dans l’application bruno.

    Le corps de la réponse contient les données de prévisions météorologiques sur cinq jours. Par souci de concision, la réponse JSON suivante montre les prévisions pour le premier jour.

    {
      "summary": {
        "startDate": "2024-08-09T08:00:00-07:00",
        "endDate": "2024-08-09T20:00:00-07:00",
        "severity": 7,
        "phrase": "Very warm tomorrow",
        "category": "heat"
      },
      "forecasts": [
        {
          "date": "2024-08-08T07:00:00-07:00",
          "temperature": {
            "minimum": {
              "value": 16.2,
              "unit": "C",
              "unitType": 17
            },
            "maximum": {
              "value": 28.9,
              "unit": "C",
              "unitType": 17
            }
          },
          "realFeelTemperature": {
            "minimum": {
              "value": 16.3,
              "unit": "C",
              "unitType": 17
            },
            "maximum": {
              "value": 29.8,
              "unit": "C",
              "unitType": 17
            }
          },
          "realFeelTemperatureShade": {
            "minimum": {
              "value": 16.3,
              "unit": "C",
              "unitType": 17
            },
            "maximum": {
              "value": 27.3,
              "unit": "C",
              "unitType": 17
            }
          },
          "hoursOfSun": 12.9,
          "degreeDaySummary": {
            "heating": {
              "value": 0,
              "unit": "C",
              "unitType": 17
            },
            "cooling": {
              "value": 5,
              "unit": "C",
              "unitType": 17
            }
          },
          "airAndPollen": [
            {
              "name": "AirQuality",
              "value": 56,
              "category": "Moderate",
              "categoryValue": 2,
              "type": "Nitrogen Dioxide"
            },
            {
              "name": "Grass",
              "value": 2,
              "category": "Low",
              "categoryValue": 1
            },
            {
              "name": "Mold",
              "value": 0,
              "category": "Low",
              "categoryValue": 1
            },
            {
              "name": "Ragweed",
              "value": 5,
              "category": "Low",
              "categoryValue": 1
            },
            {
              "name": "Tree",
              "value": 0,
              "category": "Low",
              "categoryValue": 1
            },
            {
              "name": "UVIndex",
              "value": 7,
              "category": "High",
              "categoryValue": 3
            }
          ],
          "day": {
            "iconCode": 2,
            "iconPhrase": "Mostly sunny",
            "hasPrecipitation": false,
            "shortPhrase": "Mostly sunny",
            "longPhrase": "Mostly sunny; wildfire smoke will cause the sky to be hazy",
            "precipitationProbability": 0,
            "thunderstormProbability": 0,
            "rainProbability": 0,
            "snowProbability": 0,
            "iceProbability": 0,
            "wind": {
              "direction": {
                "degrees": 357,
                "localizedDescription": "N"
              },
              "speed": {
                "value": 11.1,
                "unit": "km/h",
                "unitType": 7
              }
            },
            "windGust": {
              "direction": {
                "degrees": 354,
                "localizedDescription": "N"
              },
              "speed": {
                "value": 29.6,
                "unit": "km/h",
                "unitType": 7
              }
            },
            "totalLiquid": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "rain": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "snow": {
              "value": 0,
              "unit": "cm",
              "unitType": 4
            },
            "ice": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "hoursOfPrecipitation": 0,
            "hoursOfRain": 0,
            "hoursOfSnow": 0,
            "hoursOfIce": 0,
            "cloudCover": 10
          },
          "night": {
            "iconCode": 35,
            "iconPhrase": "Partly cloudy",
            "hasPrecipitation": false,
            "shortPhrase": "Partly cloudy",
            "longPhrase": "Partly cloudy; wildfire smoke will cause the sky to be hazy",
            "precipitationProbability": 1,
            "thunderstormProbability": 0,
            "rainProbability": 1,
            "snowProbability": 0,
            "iceProbability": 0,
            "wind": {
              "direction": {
                "degrees": 7,
                "localizedDescription": "N"
              },
              "speed": {
                "value": 9.3,
                "unit": "km/h",
                "unitType": 7
              }
            },
            "windGust": {
              "direction": {
                "degrees": 3,
                "localizedDescription": "N"
              },
              "speed": {
                "value": 20.4,
                "unit": "km/h",
                "unitType": 7
              }
            },
            "totalLiquid": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "rain": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "snow": {
              "value": 0,
              "unit": "cm",
              "unitType": 4
            },
            "ice": {
              "value": 0,
              "unit": "mm",
              "unitType": 3
            },
            "hoursOfPrecipitation": 0,
            "hoursOfRain": 0,
            "hoursOfSnow": 0,
            "hoursOfIce": 0,
            "cloudCover": 26
          },
          "sources": [
            "AccuWeather"
          ]
        }
      ]
    }
    

Demander des données de prévisions météorologiques horaires

L’API Get Hourly Forecast retourne les prévisions météorologiques détaillées par heure pour les 1, 12, 24 (1 jour), 72 (3 jours), 120 (5 jours) et 240 (10 jours) prochaines heures pour les coordonnées données. L’API retourne des détails tels que la température, l’humidité, le vent, les précipitations et l’index UV.

Important

Dans le niveau tarifaire Gen1 (S0), vous pouvez demander des prévisions horaires pour les 1, 12, 24 (1 jour) prochaines heures, et les 72 prochaines heures (3 jours). Les niveaux tarifaires Gen1 (S1) et Gen2 offrent tous deux la possibilité de demander les prévisions horaires à 120 heures (5 jours) et à 240 heures (10 jours).

Dans cet exemple, vous utilisez l’API Get Hourly Forecast pour récupérer les prévisions météorologiques horaires des 12 prochaines heures pour des coordonnées situées à Seattle, WA.

  1. Dans l’application bruno, sélectionnez NOUVELLE REQUÊTE pour créer la requête. Dans la fenêtre NOUVELLE REQUÊTE, définissez Type sur HTTP. Entrez un Nom pour la requête.

  2. Sélectionnez la méthode HTTP GET dans la liste déroulante URL, puis entrez l’URL suivante :

    https://atlas.microsoft.com/weather/forecast/hourly/json?api-version=1.0&query=47.60357,-122.32945&duration=12&subscription-key={Your-Azure-Maps-Subscription-key}
    
  3. Sélectionnez le bouton bleu Créer.

  4. Sélectionnez le bouton d’exécution.

    Capture d’écran montrant la requête intitulée URL des données de prévisions météorologiques par heure avec le bouton Exécuter mis en surbrillance dans l’application bruno.

    Le corps de la réponse contient les données des prévisions météorologiques pour les 12 prochaines heures. L’exemple de réponse JSON suivant affiche uniquement la première heure :

    {
      "forecasts": [
        {
          "date": "2024-08-07T15:00:00-07:00",
          "iconCode": 2,
          "iconPhrase": "Mostly sunny",
          "hasPrecipitation": false,
          "isDaylight": true,
          "temperature": {
            "value": 24.6,
            "unit": "C",
            "unitType": 17
          },
          "realFeelTemperature": {
            "value": 26.4,
            "unit": "C",
            "unitType": 17
          },
          "wetBulbTemperature": {
            "value": 18.1,
            "unit": "C",
            "unitType": 17
          },
          "dewPoint": {
            "value": 14.5,
            "unit": "C",
            "unitType": 17
          },
          "wind": {
            "direction": {
              "degrees": 340,
              "localizedDescription": "NNW"
            },
            "speed": {
              "value": 14.8,
              "unit": "km/h",
              "unitType": 7
            }
          },
          "windGust": {
            "speed": {
              "value": 24.1,
              "unit": "km/h",
              "unitType": 7
            }
          },
          "relativeHumidity": 53,
          "visibility": {
            "value": 16.1,
            "unit": "km",
            "unitType": 6
          },
          "cloudCover": 11,
          "ceiling": {
            "value": 10211,
            "unit": "m",
            "unitType": 5
          },
          "uvIndex": 5,
          "uvIndexPhrase": "Moderate",
          "precipitationProbability": 0,
          "rainProbability": 0,
          "snowProbability": 0,
          "iceProbability": 0,
          "totalLiquid": {
            "value": 0,
            "unit": "mm",
            "unitType": 3
          },
          "rain": {
            "value": 0,
            "unit": "mm",
            "unitType": 3
          },
          "snow": {
            "value": 0,
            "unit": "cm",
            "unitType": 4
          },
          "ice": {
            "value": 0,
            "unit": "mm",
            "unitType": 3
          }
        }
      ]
    }
    

Demander des données de prévisions météorologiques minute par minute

L’API Get Minute Forecast retourne des prévisions minute par minute pour un emplacement donné pour les 120 prochaines minutes. Les utilisateurs peuvent demander des prévisions météorologiques par intervalles de 1, 5 et 15 minutes. La réponse inclut des détails tels que le type de précipitation (y compris la pluie, la neige ou une combinaison des deux), l’heure de début et la valeur d’intensité des précipitations (dBZ).

Dans cet exemple, vous utilisez l’API Get Minute Forecast pour récupérer les prévisions météorologiques minute par minute pour des coordonnées situées à Seattle, WA. Les prévisions météorologiques sont fournies pour les 120 prochaines minutes. Notre requête demande que les prévisions soient données à des intervalles de 15 minutes, mais vous pouvez ajuster le paramètre sur une valeur de 1 ou 5 minutes.

  1. Dans l’application bruno, sélectionnez NOUVELLE REQUÊTE pour créer la requête. Dans la fenêtre NOUVELLE REQUÊTE, définissez Type sur HTTP. Entrez un Nom pour la requête.

  2. Sélectionnez la méthode HTTP GET dans la liste déroulante URL, puis entrez l’URL suivante :

    https://atlas.microsoft.com/weather/forecast/minute/json?api-version=1.0&query=47.60357,-122.32945&interval=15&subscription-key={Your-Azure-Maps-Subscription-key}
    
  3. Sélectionnez le bouton bleu Créer.

  4. Sélectionnez le bouton d’exécution.

    Capture d’écran montrant la requête intitulée URL des données de prévisions météorologiques minute par minute avec le bouton Exécuter mis en surbrillance dans l’application bruno.

    Le corps de la réponse contient les données de prévisions météorologiques pour les 120 prochaines minutes, à intervalles de 15 minutes.

    {
      "summary": {
        "briefPhrase60": "No precipitation for at least 60 min",
        "shortPhrase": "No precip for 120 min",
        "briefPhrase": "No precipitation for at least 120 min",
        "longPhrase": "No precipitation for at least 120 min",
        "iconCode": 1
      },
      "intervalSummaries": [
        {
          "startMinute": 0,
          "endMinute": 119,
          "totalMinutes": 120,
          "shortPhrase": "No precip for %MINUTE_VALUE min",
          "briefPhrase": "No precipitation for at least %MINUTE_VALUE min",
          "longPhrase": "No precipitation for at least %MINUTE_VALUE min",
          "iconCode": 1
        }
      ],
      "intervals": [
        {
          "startTime": "2024-08-08T05:58:00-07:00",
          "minute": 0,
          "dbz": 0,
          "shortPhrase": "No Precipitation",
          "iconCode": 1,
          "cloudCover": 7
        },
        {
          "startTime": "2024-08-08T06:13:00-07:00",
          "minute": 15,
          "dbz": 0,
          "shortPhrase": "No Precipitation",
          "iconCode": 1,
          "cloudCover": 3
        },
        {
          "startTime": "2024-08-08T06:28:00-07:00",
          "minute": 30,
          "dbz": 0,
          "shortPhrase": "No Precipitation",
          "iconCode": 1,
          "cloudCover": 2
        },
        {
          "startTime": "2024-08-08T06:43:00-07:00",
          "minute": 45,
          "dbz": 0,
          "shortPhrase": "No Precipitation",
          "iconCode": 1,
          "cloudCover": 2
        },
        {
          "startTime": "2024-08-08T06:58:00-07:00",
          "minute": 60,
          "dbz": 0,
          "shortPhrase": "No Precipitation",
          "iconCode": 1,
          "cloudCover": 1
        },
        {
          "startTime": "2024-08-08T07:13:00-07:00",
          "minute": 75,
          "dbz": 0,
          "shortPhrase": "No Precipitation",
          "iconCode": 1,
          "cloudCover": 1
        },
        {
          "startTime": "2024-08-08T07:28:00-07:00",
          "minute": 90,
          "dbz": 0,
          "shortPhrase": "No Precipitation",
          "iconCode": 1,
          "cloudCover": 0
        },
        {
          "startTime": "2024-08-08T07:43:00-07:00",
          "minute": 105,
          "dbz": 0,
          "shortPhrase": "No Precipitation",
          "iconCode": 1,
          "cloudCover": 0
        }
      ]
    }
    

Étapes suivantes