Azure hava durumu hizmetlerini kullanarak gerçek zamanlı ve tahmin Haritalar verileri talep edin
Azure Haritalar Weather services, geliştiricilerin son derece dinamik geçmiş, gerçek zamanlı ve tahmin edilmiş hava durumu verilerini ve görselleştirmelerini çözümleriyle tümleştiren bir dizi RESTful API'leridir. Bu makalede hem gerçek zamanlı hem de tahmine göre hava durumu verilerini nasıl isteğinde bulundurabilirsiniz?
Bu makalede şunların nasıl olduğunu öğrenirsiniz:
- Geçerli Koşulları Al API'sini kullanarak gerçek zamanlı (geçerli) hava durumu verilerini talep edin.
- Ciddi Hava Durumu Uyarılarını Al API'sini kullanarak ciddi hava durumu uyarıları talep edin.
- Günlük Tahmin Al API'sini kullanarak günlük tahminler talep edin.
- Saatlik Tahmin Al API'sini kullanarak saatlik tahminler talep edin.
- Get Minute Forecast API'sini kullanarak dakika dakika tahminleri isteği.
Bu videoda Weather services için Azure'a REST Haritalar örnekler verilmiştir.
Önkoşullar
Birincil anahtar veya abonelikanahtarı olarak da bilinen birincil abonelik anahtarını alın. Azure Haritalar'de kimlik doğrulaması hakkında daha fazla bilgi için bkz. Azure'da kimlik Haritalar.
Önemli
Get Minute Forecast API'siiçin 1. Nesil (S1) veya 2. Nesil fiyatlandırma katmanı gerekir. Diğer tüm API'ler için S0 fiyatlandırma katmanı anahtarı gerekir.
Bu öğreticide Postman uygulaması kullanılır, ancak farklı bir API geliştirme ortamı seçebilirsiniz.
Gerçek zamanlı hava durumu verileri isteği
Geçerli Koşulları Al API'si belirli bir koordinat konumu için yağış, sıcaklık ve rüzgar gibi ayrıntılı hava durumu koşullarını döndürür. Ayrıca belirli bir konuma yönelik son 6 veya 24 saatlik gözlemler de alınabiliyor. Yanıt, gözlem tarihi ve saati, hava durumu koşullarının kısa açıklaması, hava durumu simgesi, yağış göstergesi bayrakları ve sıcaklık gibi ayrıntıları içerir. RealFeel™ Temperature ve ultraviolet(INDEX) dizini de döndürülür.
Bu örnekte, Seattle, WA'da bulunan koordinatlarda geçerli hava durumu koşullarını almak için Geçerli Koşulları Al API'sini kullanabilirsiniz.
Postman uygulamasını açın. İsteği oluşturmak için Yeni'yi seçin. Yeni Oluştur penceresinde HTTP İsteği'ne tıklayın. İstek için bir İstek adı girin.
Oluşturucu sekmesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin. Bu istek ve bu makalede bahsedilen diğer istekler için yerine
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızı alın.https://atlas.microsoft.com/weather/currentConditions/json?api-version=1.0&query=47.60357,-122.32945&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Mavi Gönder düğmesine tıklayın. Yanıt gövdesi geçerli hava durumu bilgilerini içerir.
{ "results": [ { "dateTime": "2020-10-19T20:39:00+00:00", "phrase": "Cloudy", "iconCode": 7, "hasPrecipitation": false, "isDayTime": true, "temperature": { "value": 12.4, "unit": "C", "unitType": 17 }, "realFeelTemperature": { "value": 13.7, "unit": "C", "unitType": 17 }, "realFeelTemperatureShade": { "value": 13.7, "unit": "C", "unitType": 17 }, "relativeHumidity": 87, "dewPoint": { "value": 10.3, "unit": "C", "unitType": 17 }, "wind": { "direction": { "degrees": 23.0, "localizedDescription": "NNE" }, "speed": { "value": 4.5, "unit": "km/h", "unitType": 7 } }, "windGust": { "speed": { "value": 9.0, "unit": "km/h", "unitType": 7 } }, "uvIndex": 1, "uvIndexPhrase": "Low", "visibility": { "value": 9.7, "unit": "km", "unitType": 6 }, "obstructionsToVisibility": "", "cloudCover": 100, "ceiling": { "value": 1494.0, "unit": "m", "unitType": 5 }, "pressure": { "value": 1021.2, "unit": "mb", "unitType": 14 }, "pressureTendency": { "localizedDescription": "Steady", "code": "S" }, "past24HourTemperatureDeparture": { "value": -2.1, "unit": "C", "unitType": 17 }, "apparentTemperature": { "value": 15.0, "unit": "C", "unitType": 17 }, "windChillTemperature": { "value": 12.2, "unit": "C", "unitType": 17 }, "wetBulbTemperature": { "value": 11.3, "unit": "C", "unitType": 17 }, "precipitationSummary": { "pastHour": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past3Hours": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past6Hours": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past9Hours": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past12Hours": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past18Hours": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past24Hours": { "value": 0.4, "unit": "mm", "unitType": 3 } }, "temperatureSummary": { "past6Hours": { "minimum": { "value": 12.2, "unit": "C", "unitType": 17 }, "maximum": { "value": 14.0, "unit": "C", "unitType": 17 } }, "past12Hours": { "minimum": { "value": 12.2, "unit": "C", "unitType": 17 }, "maximum": { "value": 14.0, "unit": "C", "unitType": 17 } }, "past24Hours": { "minimum": { "value": 12.2, "unit": "C", "unitType": 17 }, "maximum": { "value": 15.6, "unit": "C", "unitType": 17 } } } } ] }
Ciddi hava durumu uyarıları isteği
Azure Haritalar Ciddi Hava Durumu Uyarılarını Al API'si, resmi Kamu Meteoroloji Kurumları tarafından dünya çapında kullanılabilen ve küreselden bölgesel hava durumu uyarı sağlayıcılarına giden ciddi hava durumu uyarılarını döndürür. Hizmet; fırtınalar, fırtınalar, şimşekler, ısı dalgaları veya orman yangınları gibi istenen konum için etkin ciddi uyarılar hakkında uyarı türü, kategori, düzey ve ayrıntılı açıklamalar gibi ayrıntıları geri getirebilirsiniz. Örneğin lojistik yöneticileri, iş konumları ve planlı yollar ile birlikte önemli hava durumu koşullarını bir harita üzerinde görselleştirin ve sürücülerle ve yerel çalışanlarla daha fazla koordinasyon içinde olabilir.
Bu örnekte, Cheyenne, WY'de bulunan koordinatlarda geçerli hava durumu koşullarını almak için Ciddi Hava Durumu Uyarılarını Al API'sini kullanabilirsiniz.
Not
Bu örnek, bu yazının yaz olduğu sırada ciddi hava durumu uyarılarını almaktadır. İstenen konumda artık ciddi hava durumu uyarıları yoktur. Bu örneği çalıştırarak gerçek ciddi uyarı verilerini almak için verileri farklı bir koordinat konumdan alasiniz.
Postman uygulamasında Yeni'yi seçerek isteği oluşturun. Yeni Oluştur penceresinde HTTP İsteği'ne tıklayın. İstek için bir İstek adı girin.
Oluşturucu sekmesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin. Bu istek ve bu makalede bahsedilen diğer istekler için yerine
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızı alın.https://atlas.microsoft.com/weather/severe/alerts/json?api-version=1.0&query=41.161079,-104.805450&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Mavi Gönder düğmesine tıklayın. Ciddi hava durumu uyarıları yoksa yanıt gövdesi boş bir dizi
results[]içerir. Ciddi hava durumu uyarıları varsa yanıt gövdesi aşağıdaki JSON yanıtına benzer bir şey içerir:{ "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" } ] },... ] }
Günlük hava durumu tahmin verilerini talep
Günlük Tahmin Al API'si, sıcaklık ve rüzgar gibi ayrıntılı günlük hava durumu tahminlerini döndürür. İstek, kaç gün geri dön getir) belirtebilirsiniz: belirli bir koordinat konumu için 1, 5, 10, 15, 25 veya 45 gün. Yanıt sıcaklık, rüzgar, yağış, hava kalitesi ve INDEX dizini gibi ayrıntıları içerir. Bu örnekte, ayarını kullanarak beş gün için istekte duration=5 bulunduk.
Önemli
S0 fiyatlandırma katmanında, sonraki 1, 5, 10 ve 15 gün için günlük tahmin isteğinde bulundurarak. 1. Nesil (S1) veya 2. Nesil fiyatlandırma katmanında, sonraki 25 gün ve 45 gün için günlük tahmin isteğinde bulundurarak.
Bu örnekte, Seattle, WA'da bulunan koordinatlar için beş günlük hava durumu tahminini almak için Günlük Tahmin Alma API'sini kullansınız.
Postman uygulamasında Yeni'yi seçerek isteği oluşturun. Yeni Oluştur penceresinde HTTP İsteği'ne tıklayın. İstek için bir İstek adı girin.
Oluşturucu sekmesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin. Bu istek ve bu makalede bahsedilen diğer istekler için yerine
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızı alın.https://atlas.microsoft.com/weather/forecast/daily/json?api-version=1.0&query=47.60357,-122.32945&duration=5&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Mavi Gönder düğmesine tıklayın. Yanıt gövdesi beş günlük hava durumu tahmin verilerini içerir. Daha fazla bilgi için aşağıdaki JSON yanıtta ilk günün tahmini gösterilmiştir.
{ "summary": { "startDate": "2020-10-18T17:00:00+00:00", "endDate": "2020-10-19T23:00:00+00:00", "severity": 2, "phrase": "Snow, mixed with rain at times continuing through Monday evening and a storm total of 3-6 cm", "category": "snow/rain" }, "forecasts": [ { "date": "2020-10-19T04:00:00+00:00", "temperature": { "minimum": { "value": -1.1, "unit": "C", "unitType": 17 }, "maximum": { "value": 1.3, "unit": "C", "unitType": 17 } }, "realFeelTemperature": { "minimum": { "value": -6.0, "unit": "C", "unitType": 17 }, "maximum": { "value": 0.5, "unit": "C", "unitType": 17 } }, "realFeelTemperatureShade": { "minimum": { "value": -6.0, "unit": "C", "unitType": 17 }, "maximum": { "value": 0.7, "unit": "C", "unitType": 17 } }, "hoursOfSun": 1.8, "degreeDaySummary": { "heating": { "value": 18.0, "unit": "C", "unitType": 17 }, "cooling": { "value": 0.0, "unit": "C", "unitType": 17 } }, "airAndPollen": [ { "name": "AirQuality", "value": 23, "category": "Good", "categoryValue": 1, "type": "Ozone" }, { "name": "Grass", "value": 0, "category": "Low", "categoryValue": 1 }, { "name": "Mold", "value": 0, "category": "Low", "categoryValue": 1 }, { "name": "Ragweed", "value": 0, "category": "Low", "categoryValue": 1 }, { "name": "Tree", "value": 0, "category": "Low", "categoryValue": 1 }, { "name": "UVIndex", "value": 0, "category": "Low", "categoryValue": 1 } ], "day": { "iconCode": 22, "iconPhrase": "Snow", "hasPrecipitation": true, "precipitationType": "Mixed", "precipitationIntensity": "Light", "shortPhrase": "Chilly with snow, 2-4 cm", "longPhrase": "Chilly with snow, accumulating an additional 2-4 cm", "precipitationProbability": 90, "thunderstormProbability": 0, "rainProbability": 54, "snowProbability": 85, "iceProbability": 8, "wind": { "direction": { "degrees": 36.0, "localizedDescription": "NE" }, "speed": { "value": 9.3, "unit": "km/h", "unitType": 7 } }, "windGust": { "direction": { "degrees": 70.0, "localizedDescription": "ENE" }, "speed": { "value": 25.9, "unit": "km/h", "unitType": 7 } }, "totalLiquid": { "value": 4.3, "unit": "mm", "unitType": 3 }, "rain": { "value": 0.5, "unit": "mm", "unitType": 3 }, "snow": { "value": 2.72, "unit": "cm", "unitType": 4 }, "ice": { "value": 0.0, "unit": "mm", "unitType": 3 }, "hoursOfPrecipitation": 9.0, "hoursOfRain": 1.0, "hoursOfSnow": 9.0, "hoursOfIce": 0.0, "cloudCover": 96 }, "night": { "iconCode": 29, "iconPhrase": "Rain and snow", "hasPrecipitation": true, "precipitationType": "Mixed", "precipitationIntensity": "Light", "shortPhrase": "Showers of rain and snow", "longPhrase": "A couple of showers of rain or snow this evening; otherwise, cloudy; storm total snowfall 1-3 cm", "precipitationProbability": 65, "thunderstormProbability": 0, "rainProbability": 60, "snowProbability": 54, "iceProbability": 4, "wind": { "direction": { "degrees": 16.0, "localizedDescription": "NNE" }, "speed": { "value": 16.7, "unit": "km/h", "unitType": 7 } }, "windGust": { "direction": { "degrees": 1.0, "localizedDescription": "N" }, "speed": { "value": 35.2, "unit": "km/h", "unitType": 7 } }, "totalLiquid": { "value": 4.3, "unit": "mm", "unitType": 3 }, "rain": { "value": 3.0, "unit": "mm", "unitType": 3 }, "snow": { "value": 0.79, "unit": "cm", "unitType": 4 }, "ice": { "value": 0.0, "unit": "mm", "unitType": 3 }, "hoursOfPrecipitation": 4.0, "hoursOfRain": 1.0, "hoursOfSnow": 3.0, "hoursOfIce": 0.0, "cloudCover": 94 }, "sources": [ "AccuWeather" ] },... ] }
Saatlik hava durumu tahmin verileri isteği
Saatlik Tahmin Al API'si, belirli bir koordinat konumu için sonraki 1, 12, 24 (1 gün), 72 (3 gün), 120 (5 gün) ve 240 saat (10 gün) için saatlere göre ayrıntılı hava durumu tahmini döndürür. API sıcaklık, nem, rüzgar, yağış ve INDEX dizini gibi ayrıntıları döndürür.
Önemli
S0 fiyatlandırma katmanında sonraki 1, 12, 24 saat (1 gün) ve 72 saat (3 gün) için saatlik tahmin isteğinde bulundurarak. 1. Nesil (S1) veya 2. Nesil fiyatlandırma katmanında, sonraki 120 (5 gün) ve 240 saat (10 gün) için saatlik tahmin isteğinde bulundurarak.
Bu örnekte, Seattle, WA'da bulunan koordinatlarda sonraki 12 saat için saatlik hava durumu tahminini almak için Saatlik Tahmin Al API'sini kullanabilirsiniz.
Postman uygulamasında Yeni'yi seçerek isteği oluşturun. Yeni Oluştur penceresinde HTTP İsteği'ne tıklayın. İstek için bir İstek adı girin.
Oluşturucu sekmesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin. Bu istek ve bu makalede bahsedilen diğer istekler için yerine
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızı alın.https://atlas.microsoft.com/weather/forecast/hourly/json?api-version=1.0&query=47.60357,-122.32945&duration=12&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Mavi Gönder düğmesine tıklayın. Yanıt gövdesi, sonraki 12 saat için hava durumu tahmin verilerini içerir. Daha fazla bilgi için aşağıdaki JSON yanıtta ilk bir saat için tahmin gösterilmiştir.
{ "forecasts": [ { "date": "2020-10-19T21:00:00+00:00", "iconCode": 12, "iconPhrase": "Showers", "hasPrecipitation": true, "precipitationType": "Rain", "precipitationIntensity": "Light", "isDaylight": true, "temperature": { "value": 14.7, "unit": "C", "unitType": 17 }, "realFeelTemperature": { "value": 13.3, "unit": "C", "unitType": 17 }, "wetBulbTemperature": { "value": 12.0, "unit": "C", "unitType": 17 }, "dewPoint": { "value": 9.5, "unit": "C", "unitType": 17 }, "wind": { "direction": { "degrees": 242.0, "localizedDescription": "WSW" }, "speed": { "value": 9.3, "unit": "km/h", "unitType": 7 } }, "windGust": { "speed": { "value": 14.8, "unit": "km/h", "unitType": 7 } }, "relativeHumidity": 71, "visibility": { "value": 9.7, "unit": "km", "unitType": 6 }, "cloudCover": 100, "ceiling": { "value": 1128.0, "unit": "m", "unitType": 5 }, "uvIndex": 1, "uvIndexPhrase": "Low", "precipitationProbability": 51, "rainProbability": 51, "snowProbability": 0, "iceProbability": 0, "totalLiquid": { "value": 0.3, "unit": "mm", "unitType": 3 }, "rain": { "value": 0.3, "unit": "mm", "unitType": 3 }, "snow": { "value": 0.0, "unit": "cm", "unitType": 4 }, "ice": { "value": 0.0, "unit": "mm", "unitType": 3 } }... ] }
Dakika dakika hava durumu tahmin verileri isteği
Dakika Tahmini Al API'si, sonraki 120 dakika için belirli bir konum için dakika dakika tahminleri döndürür. Kullanıcılar hava durumu tahminlerini 1, 5 ve 15 dakika aralıklarla talep ediyor olabilir. Yanıt, yağış türü (yağmur, kar veya her ikisinin karışımı dahil), başlangıç saati ve yağış yoğunluğu değeri (dBZ) gibi ayrıntıları içerir.
Bu örnekte, Seattle, WA'da bulunan koordinatlarda dakika dakika hava durumu tahminini almak için Dakika Tahmini Alma API'sini kullansınız. Hava durumu tahmini sonraki 120 dakika için verilir. Sorgumuz tahminin 15 dakikalık aralıklarla verilmesini ister, ancak parametresini 1 veya 5 dakika olacak şekilde ayarlayabilirsiniz.
Postman uygulamasında Yeni'yi seçerek isteği oluşturun. Yeni Oluştur penceresinde HTTP İsteği'ne tıklayın. İstek için bir İstek adı girin.
Oluşturucu sekmesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin. Bu istek ve bu makalede bahsedilen diğer istekler için yerine
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızı alın.https://atlas.microsoft.com/weather/forecast/minute/json?api-version=1.0&query=47.60357,-122.32945&interval=15&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Mavi Gönder düğmesine tıklayın. Yanıt gövdesi, 15 dakikalık aralıklarla sonraki 120 dakika için hava durumu tahmin verilerini içerir.
{ "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": 7 }, "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": 7 } ], "intervals": [ { "startTime": "2020-10-19T20:51:00+00:00", "minute": 0, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T21:06:00+00:00", "minute": 15, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T21:21:00+00:00", "minute": 30, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T21:36:00+00:00", "minute": 45, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T21:51:00+00:00", "minute": 60, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T22:06:00+00:00", "minute": 75, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T22:21:00+00:00", "minute": 90, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T22:36:00+00:00", "minute": 105, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 } ] }