WeatherNext 3’ten Türkiye tahmini çekmek: Tam tabloyu taramayın

WeatherNext 3’ten Türkiye’deki belirli bir konumun saatlik tahminini almak için BigQuery sorgusunu önce init_time ile tek bir tahmin çalışmasına, sonra koordinatın düştüğü coğrafi hücreye daraltın. Tekrarlanan forecast kaydını açarak sıcaklık, rüzgâr ve bir saatlik yağış alanlarını saatlik satırlar halinde seçebilirsiniz.
Yalnızca İstanbul veya Ankara koordinatını yazmak maliyet kontrolü için yeterli değildir. WeatherNext 3 tablolarındaki bölüm anahtarı init_time olduğundan bu koşulu atlamak tam tablo taramasına yol açabilir; döndürülen satırları LIMIT ile azaltmak, bölüm filtresinin yaptığı işi garanti etmez.
Erişimi ve doğru tabloyu hazırlayın
WeatherNext 3’ün gerçek zamanlı operasyonel verilerine erişim talep üzerine veriliyor. Google’ın WeatherNext erişim rehberi, izin verilen hesabın BigQuery, Earth Engine ve Cloud Storage verilerine erişebildiğini; bir saatten daha eski verilerin CC BY 4.0, daha yeni ve geleceğe ilişkin verilerin ise GDM Real-Time Weather Forecasting Experimental Data Terms kapsamında olduğunu açıklıyor. Rehber ayrıca tahminlerin resmî şiddetli hava uyarısı olmadığını belirtiyor.
İzin geldikten sonra WeatherNext 3 Analytics Hub listesini kendi BigQuery veri kümenize bağlayın. Bağlı tablonun proje ve veri kümesi adları hesabınıza göre değişeceği için örnekteki YOUR_PROJECT_ID ve YOUR_DATASET_ID alanlarını kendi değerlerinizle değiştirmelisiniz.
Saatlik yüzey sıcaklığı, 10 metre rüzgâr hızı ve yağış için weathernext_3_0_0_0p1deg tablosunu kullanın. 0,05 derecelik weathernext_3_0_0_0p05deg tablosu aynı değişken setinin daha ayrıntılı sürümü değildir; istasyon başlığı sıcaklık ve çiy noktası tahminlerine ayrılmıştır.
init_time ve konum farklı işleri yapar

Resmî WeatherNext BigQuery şeması, iki tablonun init_time alanına göre bölümlendiğini ve geography alanına göre kümelendiğini doğruluyor. Her üst düzey satır bir tahmin başlangıcını ve coğrafi ızgara konumunu temsil eder; geçerli tahmin zamanı ile tahmin ufku, tekrarlanan forecast kaydında bulunur.
Bu nedenle t.init_time koşulu taranacak bölümleri, ST_INTERSECTS koşulu ise koordinatla kesişen geography_polygon hücresini seçer. Forecast içindeki f.time veya f.hours alanını sınırlamak sonuç satırlarını azaltır, fakat init_time bölüm filtresinin yerini tutmaz.
Sorgudaki @init_time parametresine tabloda bulunan bir başlangıç zamanını TIMESTAMP olarak verin. Tek bir tahmin çalışması için eşitlik kullanmak en dar kapsamı sağlar; birden fazla başlangıç gerekiyorsa init_time üzerinde açık bir başlangıç ve bitiş aralığı tanımlayın.
İstanbul ve Ankara için tek SQL sorgusu

Aşağıdaki koşullu örnek, sorgu noktası olarak İstanbul için 28.9784 boylam ve 41.0082 enlem; Ankara için 32.8597 boylam ve 39.9334 enlem kullanır. Bu değerler resmî bir ölçüm istasyonunu ya da idari merkezi tanımlama iddiası taşımaz; yalnızca iki WeatherNext 3 ızgara hücresini seçen örnek koordinatlardır.
SQL: WITH locations AS (SELECT * FROM UNNEST([STRUCT('İstanbul' AS city, ST_GEOGPOINT(28.9784, 41.0082) AS point), STRUCT('Ankara' AS city, ST_GEOGPOINT(32.8597, 39.9334) AS point)])) SELECT l.city, f.time AS forecast_time_utc, DATETIME(f.time, 'Europe/Istanbul') AS forecast_time_tr, f.hours AS forecast_hour, ROUND(f.temperature_2m_mean - 273.15, 1) AS temperature_c, ROUND(f.wind_speed_10m_mean, 1) AS wind_speed_mps, ROUND(f.total_precipitation_1hr_mean * 1000, 2) AS precipitation_1hr_mm FROM `YOUR_PROJECT_ID.YOUR_DATASET_ID.weathernext_3_0_0_0p1deg` AS t CROSS JOIN UNNEST(t.forecast) AS f CROSS JOIN locations AS l WHERE t.init_time = @init_time AND ST_INTERSECTS(t.geography_polygon, l.point) AND f.hours BETWEEN 1 AND 120 ORDER BY l.city, f.time;
BigQuery sorgu ayarlarında init_time adlı bir TIMESTAMP parametresi oluşturup istediğiniz mevcut tahmin başlangıcını girin. locations ortak tablo ifadesi iki noktayı tek sorguya taşır; UNNEST her hücrenin forecast dizisini saatlik satırlara açar. İlk 120 saatlik ufuk istenmiyorsa f.hours aralığını değiştirin; yalnızca tek kent gerekiyorsa diğer STRUCT kaydını kaldırın.
ST_GEOGPOINT önce boylamı, sonra enlemi alır. Bu sırayı ters çevirmek Türkiye’de hedeflenmeyen bir nokta üretir ve sorgu söz dizimi hatası vermeden yanlış hücreyi seçebilir.
Birimleri ve Türkiye saatini dönüştürün

temperature_2m_mean Kelvin cinsindedir; Celsius için 273,15 çıkarılır. total_precipitation_1hr_mean bir saatlik toplam yağışı metre cinsinden verdiğinden milimetre sonucu için 1000 ile çarpılır. wind_speed_10m_mean zaten saniyede metre cinsindedir.
forecast içindeki time alanı UTC TIMESTAMP değeridir. DATETIME(f.time, 'Europe/Istanbul') Türkiye yerel saatini verir, ancak DATETIME türü kendi içinde zaman dilimi taşımaz. Bu nedenle örnek sorgu hem özgün UTC zaman damgasını hem yerel gösterim sütununu döndürüyor; veriyi başka bir sisteme aktarırken UTC alanını koruyabilirsiniz.
Sonundaki _mean eki, topluluk tahmininin ortalamasını ifade eder; tek ve kesin bir sonuç anlamına gelmez. Belirsizlik aralığı gerekiyorsa temperature_2m_p10 ve temperature_2m_p90 alanlarını seçip her ikisine de aynı Kelvin–Celsius dönüşümünü uygulayabilirsiniz.
Sorguyu çalıştırmadan tarama miktarını görün
BigQuery düzenleyicisindeki sorgu doğrulayıcı, çalıştırma öncesinde okunacak veri miktarı için bir üst sınır tahmini gösterir. BigQuery maliyet denetimi belgesi, sorgu doğrulayıcıya ek olarak dry run kullanılmasını ve isteğe bağlı fiyatlandırmada maximum bytes billed sınırı konmasını öneriyor; tahmin sınırı aşarsa sorgu ücret oluşturmadan başarısız olur.
- Her sorguda doğrudan init_time filtresi bulundurun.
- SELECT * yerine yalnızca gereken tahmin alanlarını seçin.
- Konumu geography_polygon üzerinde ST_INTERSECTS ile daraltın.
- İhtiyaç duyduğunuz tahmin ufkunu f.hours ile sınırlayın.
- LIMIT değerini bölüm filtresinin yerine geçen bir maliyet önlemi saymayın.
Çalıştırmadan önce tahmini bayt miktarını init_time koşulu varken ve yokken karşılaştırmak, filtrenin etkisini doğrudan görmenizi sağlar. Üretim sorgusunda ayrıca makul bir maximum bytes billed sınırı kullanmak, yanlış parametre veya sonradan yapılan sorgu değişikliği nedeniyle beklenenden geniş bir taramanın başlamasını engeller.
Ayrıca okuyun:
Bültenimize abone olun
En son Web3, yapay zekâ ve kripto haberleri doğrudan gelen kutunuza gelsin.