climatememory geliştiriciler

API referansı

İklim API'si

Seksen yedi yıllık günlük iklim, karada her yerde, tek bir arşivden — 1 Ocak 1940'tan bugüne bir haftadan yakınına kadar, ERA5 ızgarasında 0,25° (yaklaşık 28 km) çözünürlükle. Bu normal mi? sorusunu kanıtıyla birlikte yanıtlar.

Günlük iklim#

GEThttps://api.climatememory.com/v1/climate/dailyscope: climate2 kredi, aralıktaki her tam 365,25 günlük dönem için +1

Herhangi bir kara koordinatı için on üç günlük alan; 1940'tan geçen haftaya kadar.

Parametreler

ParametreTipVarsayılanAçıklama
latfloatZorunlu. Karadaki herhangi bir koordinat; arşiv küreseldir.
lonfloatZorunlu.
startISO datebitiş yılının 1 Ocak'ıAralık istek başına sınırlıdır — bkz. Planlar.
endISO datearşivin son günü
fieldscsvsıcaklık ve yağışBu koşunun neyi yanıtlayabildiğini /v1/climate/fields'a sorun.
seriesbooltrueGün gün değerleri dahil et. Yalnızca toplulaştırmaları istediğinizde false yapın.
formatstringjsonjson ya da csv. CSV ücretli plan özelliğidir ve aylık satırları döndürür.

Bu, saatlik geçmişin önüne bir GROUP BY konmuş hâli değildir. Günlük alanlar bir kez, veri alımı sırasında, kolaylığa göre değil fiziğe göre seçilmiş bir gün sınırında türetilir; türetilmiş alanlar — hissedilen sıcaklık, güneşlenme süresi, ortalama nem — günlük uç değerlerden değil, tam saatlik seriden hesaplanır.

Günler siyasi saat diliminde değil, güneş gece yarısında kesilir. Ofset round(longitude / 15)'tir.

Bu bilinçli bir tercihtir ve ölçülebilir: bunun yerine UTC'ye göre toplulaştırmak, Alice Springs'te günlük en düşük değeri 2,1 °C saptırır; çünkü en düşük değer şafaktan hemen önce düşer. Siyasi bir saat dilimi daha da kötüdür — bir sınırın iki yanındaki iki komşu hücrenin günleri farklı anlarda kesilirdi ve günlük en yüksek değerlerin haritası saat dilimlerinin sınırlarını çizerdi.

Değerler noktanın değil, ızgara hücresinindir. Sıcaklığı sizin tam rakımınıza göre ayarlamayız. Bunu yapan sağlayıcılar aynı koordinatta bizden birkaç onda derece ayrışacaktır — kendi ölçümlerimizde 0,4 °C'ye kadar — ve iki rakam da yanlış değildir. Bizimki, yeniden analizin o hücre için söylediğidir; onlarınki ise bu değere bir rakım farkına uygulanmış düşüm oranının eklenmiş hâlidir. Hangisini aldığınızı bilesiniz diye hücreyi yayımlıyoruz: kapsama ve hücreler bölümüne bakın.

Aylık toplulaştırmalar#

GEThttps://api.climatememory.com/v1/climate/monthlyscope: climate2 kredi, aralıktaki her tam 365,25 günlük dönem için +1

Aynı alanlar, takvim ayına göre toplulaştırılmış.

Birikimli büyüklükler için toplamlar, geri kalanı için ortalamalar ve uç değerler. Aynı sütunu okuduğu için günlük seriyle aynı fiyattır.

Asıl çizdiğiniz şey aylık bir değerse, otuz katı veriyi çekip kendiniz indirgemek yerine bunu isteyin — yavaş olan aktarımdır, aritmetik değil.

Bir yerin iklimi, tek çağrıda#

GEThttps://api.climatememory.com/v1/climate/summaryscope: climate3 kredi, aralıktaki her tam 365,25 günlük dönem için +1

Aylık normaller, yıllık seri, rekorlar, eğilimler ve Köppen — aralık sınırı olmadan.

Parametreler

ParametreTipVarsayılanAçıklama
latfloatZorunlu.
lonfloatZorunlu.
startISO datearşivin ilk günüKaydın tamamını istemek, bunun normal kullanım biçimidir.
endISO datearşivin son günü
dailyboolfalseday_normals ekler: pencereniz boyunca yılın her takvim gününün normali ve her birinin arkasındaki gözlem sayısı.

Bir iklim sayfasının bir konum hakkında söylediği her şey, önceden indirgenmiş hâlde: on iki aylık normal, her tam takvim yılı için bir satır, düştükleri tarihlerle birlikte tüm zamanların rekorları, anlamlılığıyla birlikte en küçük kareler ısınma eğilimi ve Köppen-Geiger kodu. Dünya'daki herhangi bir kara koordinatı için.

Fiyat aralığa göredir ve varsayılan aralık arşivin tamamıdır. Fiyatlandırma: 3 kredi, aralıktaki her tam 365,25 günlük dönem için +1 — yani start verilmeyen bir çağrı 1940 yılından bugüne kadarını kapsar ve bir değil, 89 kredi tutar. Ücretsiz planda bu, ayda kabaca 110 çağrı demektir.

Yine de bu yanıtı elde etmenin ucuz yolu budur: kendiniz derlemek, aynı aralıkta dokuz sınırlı /v1/climate/daily çağrısı gerektirirdi; bunlar toplamda daha pahalıya gelir ve indirgemeniz gereken otuz bir bin satır döndürür. Ama bu bir sorgulama değildir ve her ziyaretçi için onu çağıran bir sayfa kotayı boşaltır. Önbelleğe alın — bir koordinatın yanıtı günde en çok bir kez değişir.

Kaydın tamamına ihtiyacınız yoksa start geçin: otuz yıl 89 yerine 32 tutar.

Burada aralık sınırı yoktur, /v1/climate/daily'den farklı olarak. O sınır, gün gün seriyi çekebilen bir çağıranın arşivi yeniden kurabilmesinden ötürü vardır; bu uç nokta hiç seri döndürmez. Tam kayıt yaklaşık 62 kB olarak döner — daily=true ile 100 kB — oysa indirgendiği günlük satır sayısı otuz bir bindir; yani hiçbir şeyi yeniden kurmaz. Tek istek, aynı yanıtın başka türlü gerektireceği dokuz sınırlı günlük çağrının yerini alır.

daily=true ile normals?daily=true aynı şey değildir

Ve fark tam da buradadır. Normaller uç noktası otuz yıllık bir WMO penceresi üzerinden ortalama alır; bu ise istediğiniz pencere üzerinden — varsayılan olarak arşivin tamamı üzerinden — ortalama alır.

"30 Temmuz için normalin 9,4 °C üstünde" demenin, iddianın arkasına otuz değil seksen yedi yıl koyarak söylenebilmesinin tek yolu budur. Her gün kendi örnek sayısını taşır; dolayısıyla on beş günlük merkezli bir normale genişletmek Σ(mean·samples) / Σ(samples) ile yazılır — kesin ve ikinci bir istek olmadan.

Başka bir kaynakla karşılaştırmadan önce bilinmesi gereken iki kural

Bir takvim yılı, ancak arşiv o yılın en az 360 gününü tutuyorsa yıllık seriye ve eğilime girer; dolayısıyla içinde bulunulan yıl dışarıda kalır. Yarım yıl, yağışta bir çöküş olarak okunur ve eğilim doğrusunu peşinden sürükler.

trends, on tam yılın altında null'dur. Bunun altında bir eğim, iklim sinyali kılığına girmiş hava gürültüsüdür ve kendinden emin yanlış bir sayı yayımlamaktansa hiçbir şey yayımlamamayı yeğleriz. Aynı nedenle her eğilim kendi p_value değerini ve significant bayrağını taşır — eğimi alıntılamadan önce onları okuyun.

WMO normalleri#

GEThttps://api.climatememory.com/v1/climate/normalsscope: normals3 kredi

Bir WMO referans dönemi üzerinden otuz yıllık ortalama.

Parametreler

ParametreTipVarsayılanAçıklama
latfloatZorunlu.
lonfloatZorunlu.
periodstring1991-20201991-2020 ya da 1961-1990. İkisi de WMO referans dönemidir.
fieldscsvsıcaklık ve yağış
dailyboolfalse366 günlük normali yayılımlarıyla birlikte ve her takvim gününün en yüksek ile en düşük rekorunu dahil et.

Normal, rastgele istediğiniz bir dönemin ortalaması değildir. Dünya Meteoroloji Örgütü'nün sabitlediği bir pencere üzerinden alınmış otuz yıllık bir ortalamadır; böylece bir normali alıntılayan iki kişi aynı şeyi alıntılamış olur.

Bu, normals scope'unu gerektirir; günlük arşiv gerektirmez. /v1/climate/daily'yi sorunsuz okuyan bir anahtar burada yine de 403 scope_denied alabilir — hangi kademenin bunu içerdiğini Planlar bölümünde görebilirsiniz.

İstediğiniz şey bir WMO penceresi üzerinden değil de "kaydın tamamı üzerinden normal" ise bunun yerine /v1/climate/summary'yi kullanın — yalnızca climate scope'unu ister ve size otuz yıl yerine seksen yedi yıl verir.

İki normali karşılaştırmak#

GEThttps://api.climatememory.com/v1/climate/normals/comparescope: normals6 kredi

İki WMO dönemi ve aralarındaki değişim, tek çağrıda.

İnsanların çoğu bir normal isterken aslında bu soruyu sorar — "burada normal nedir" değil, "normal ne kadar kaydı".

Buna tek istekte yanıt vermek, iki yarının farklı koşulardan gelmesini olanaksız kılar; bunu iki çağrıyla kendiniz hesaplamanın arıza biçimi de tam budur: arşiv ikisi arasında ilerler ve yayımladığınız fark o zaman bir iklim değişikliğinin yanı sıra bir sürüm değişikliği de içerir.

Kapsama, alanlar ve hücreler#

GEThttps://api.climatememory.com/v1/climate/coverageanahtar gerekmez1 kredi

Sunulan koşu ve kapsadığı tarihler. Anahtar gerekmez.

GEThttps://api.climatememory.com/v1/climate/fieldsanahtar gerekmez1 kredi

Bu koşunun neyi yanıtlayabildiği, birimleriyle ve hangi alanların türetildiğiyle. Anahtar gerekmez.

GEThttps://api.climatememory.com/v1/climate/cells/resolvescope: climate1 kredi

Bir nokta için hangi hücre yanıt veriyor ve ne kadar uzakta.

GEThttps://api.climatememory.com/v1/climate/licensinganahtar gerekmez0 kredi

Bu arşivin lisans koşulları. Anahtar gerekmez.

cells/resolve, ızgara tabanlı her ürüne güvenilmeden önce sorulması gereken soruyu yanıtlar: aslında hangi hücreyi okuyorum ve o hücre sorduğum noktadan ne kadar uzakta? 28 km'de bu mesafe 20 km olabilir ve bunu bilmek, bir sayıyı alıntılamakla onu sorumluca alıntılamak arasındaki farktır.

fields, /v1/historical/variables ile aynı sözleşmeye sahiptir: ürünün bir gün neyi tutabileceğini değil, koşunun neyi tuttuğunu listeler; böylece ona göre yazılmış bir istemci, arşiv büyüdüğünde bozulmaz.

Bir referansın yıllar boyunca karşılaştırılabilir kalması gerekiyorsa koordinatı değil, hücreyi sabitleyin. Koordinat kararlıdır ama onu karşılayan hücre, ızgara değişirse yer değiştirirdi — ve sessizce yer değiştiren bir referans, tam da bu uç noktanın önlemek için var olduğu arıza biçimidir. Derece gün API'sinde aynı örüntü, kendine ait bir yolla vardır: hücre sabitleme bölümüne bakın.