OPEN-METEO-APİSİNİ-KULLANARAK-KULLANARAK-SICAKLIK-RĞZGAR-GÖSTERME
OPEN METEO APİSİ

-
requests
: API'den veri çekmek için. -
geopy
: Şehir adından enlem ve boylam bulmak için (Nominatim
üzerinden).import requests
from geopy.geocoders import Nominatimdef get_coordinates(city_name):
geolocator = Nominatim(user_agent="weather_app")
location = geolocator.geocode(city_name)
if location:
return location.latitude, location.longitude
else:
return None, Nonedef get_weather(lat, lon):
url = (
f"https://api.open-meteo.com/v1/forecast?"
f"latitude={lat}&longitude={lon}¤t=temperature_2m,wind_speed_10m"
)
response = requests.get(url)
if response.status_code == 200:
data = response.json()
current_weather = data.get("current")
if current_weather:
temperature = current_weather.get("temperature_2m")
wind_speed = current_weather.get("wind_speed_10m")
return temperature, wind_speed
return None, Nonedef main():
print("Hava Durumu Uygulamasına Hoş Geldiniz!")
print("Çıkmak için 'q' tuşuna basınız.")
while True:
city = input("\nŞehir adı giriniz: ").strip()
if city.lower() == "q":
print("Program sonlandırıldı.")
breaklat, lon = get_coordinates(city)
if lat is None or lon is None:
print("Şehir bulunamadı. Lütfen geçerli bir şehir giriniz.")
continuetemperature, wind_speed = get_weather(lat, lon)
if temperature is not None:
print(f"{city} için güncel sıcaklık: {temperature}°C")
print(f"{city} için rüzgar hızı: {wind_speed} km/sa")
else:
print("Hava durumu verisi alınamadı.")if __name__ == "__main__":
main()Open-Meteo API Kullanarak Şehir Bazlı Hava Durumu Uygulaması
Giriş
Günümüzde hava durumu verilerine anlık olarak erişmek; tarım, turizm, ulaşım ve günlük yaşam gibi birçok alanda büyük önem taşımaktadır. Bu ihtiyaca cevap veren çeşitli açık hava durumu servisleri mevcuttur. Bu makalede, Open-Meteo API kullanılarak bir kullanıcının girdiği şehir ismine göre sıcaklık (°C) ve rüzgar hızı (km/s) verilerinin Python ile nasıl çekilebileceği anlatılmıştır. Program, kullanıcıya etkileşimli bir arayüz sunmakta ve birden fazla şehir sorgulamasına imkân tanımaktadır.
Kullanılan Teknolojiler
-
Python: Hızlı prototipleme ve API ile entegrasyon için tercih edildi.
-
Open-Meteo API: Saatlik ve günlük hava durumu verilerini ücretsiz sağlayan REST tabanlı bir servistir.
-
Geopy (Nominatim): Kullanıcının girdiği şehir ismini coğrafi koordinatlara (enlem, boylam) çevirir.
Uygulamanın Çalışma Mantığı
-
Kullanıcıdan Şehir Bilgisi Alınması
Kullanıcı, konsol ekranından bir şehir adı girer. Program,"q"
girildiğinde sonlanır. -
Coğrafi Koordinatların Alınması
Şehir ismi,geopy
kütüphanesi kullanılarak Latitude (enlem) ve Longitude (boylam) bilgilerine çevrilir. -
Open-Meteo API İsteği
Elde edilen koordinatlar, Open-Meteo API'ye iletilerek güncel sıcaklık ve rüzgar hızı verileri çekilir. -
Verinin Kullanıcıya Sunulması
Elde edilen sıcaklık ve rüzgar verileri kullanıcıya okunabilir formatta gösterilir. -
Yineleme
Kullanıcı farklı şehirler girerek yeni sorgulamalar yapabilir.
Avantajları
-
Gerçek zamanlı veri: Anlık hava durumu bilgisi sağlar.
-
Çoklu sorgu: Program kapanmadan birden fazla şehir bilgisi alınabilir.
-
Açık kaynaklı servisler: Hem Open-Meteo hem de Nominatim ücretsizdir.
Geliştirme Önerileri
Bu uygulama daha da geliştirilebilir:
-
Hava durumu simgeleri ve tahmin bilgileri eklenebilir.
-
Harita görselleştirmesi entegre edilebilir.
-
Grafik arayüz (GUI) veya web tabanlı sürüm (Flask/Django) yapılabilir.
-
Sesli komut desteği veya konuşma çıktısı eklenebilir.
Sonuç
Bu uygulama, hava durumu verilerine ulaşmak isteyen kullanıcılar için sade ve etkili bir çözüm sunmaktadır. Open-Meteo API ve Geopy gibi açık kaynak araçların bir arada kullanılması, geliştiricilere hem esneklik hem de maliyetsiz bir yapı sağlamaktadır. Bu çalışma, temel Python bilgisine sahip kişilerin API kullanımı, veri işleme ve kullanıcı etkileşimi gibi konularda pratik yapmasına da olanak tanır.
-