Başlarken
Üç API, tek anahtar: ECMWF ve ulusal yüksek çözünürlüklü modellerden hava tahminleri, ısıtma ve soğutma derece günleri ve 87 yıllık günlük iklim. Bu sayfa, ilk çağrıdan önce ihtiyacınız olan her şeydir. Uç noktaların kendisi üç referans sayfasındadır.
Bu nedir#
Climate Memory, tek bir API anahtarıyla iki sunucudan üç ürün sunar.
| Ürün | Sunucu | Yanıtladığı soru | Referans |
|---|---|---|---|
| Hava durumu | https://api.climatememory.com | Hava ne yapacak — tahmin, anlık koşullar, topluluklar, hava kalitesi, deniz durumu, nehirler | Hava Durumu API'si |
| Derece gün | https://api.climatememory.com | Bir binanın ne kadar ısıtılması ya da soğutulması gerekti — 1950'den beri, her yerde | Derece Gün API'si |
| İklim | https://api.climatememory.com | Burada normal olan nedir — 87 yıllık günlük iklim, WMO normalleri, eğilimler | İklim API'si |
Tek sunucu yerine iki sunucu var, çünkü derece günler farklı bir maliyet profiline sahip farklı bir arşivi okuyor; ikisini ayırmak birinin yavaşlaması durumunda diğerinin yavaşlamamasını sağlıyor. Doğru temel URL'yi kopyalamanın ötesinde bunu dert etmeniz gerekmez.
Bütün uç noktalar GET'tir. Bu API'nin hiçbir
yerinde istek gövdesi, sayfalama imleci ya da oturum yoktur. Bir çağrı, bir URL
artı bir başlıktır; yani hepsini tarayıcı adres çubuğunda ya da
curl gibi bir araçta anahtarla sınayabilir, hepsini önümüzde özel
bir işlem gerektirmeden önbelleğe alabilirsiniz.
İlk çağrınız#
Üç adım. Tamamı yaklaşık bir dakika sürer.
1. Anahtar alın
developers.climatememory.com/signin adresinde hesap açın.
Ücretsiz plan kart istemez, ayda 10 000 kredi verir ve anahtarınız hemen
ekranda görünür. Anahtarı bir ortam değişkeninde tutun — aşağıdaki örneklerin
hepsi $API_KEY okur.
export API_KEY="wd_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2. Çağrıyı yapın
curl -sH "X-API-Key: $API_KEY" \
"https://api.climatememory.com/v1/forecast?lat=48.85&lon=2.35&days=3"
import os, httpx
r = httpx.get(
"https://api.climatememory.com/v1/forecast",
params={"lat": 48.85, "lon": 2.35, "days": 3},
headers={"X-API-Key": os.environ["API_KEY"]},
timeout=30,
)
r.raise_for_status()
data = r.json()
print(data["daily"]["temperature_2m_max"])
const res = await fetch(
"https://api.climatememory.com/v1/forecast?lat=48.85&lon=2.35&days=3",
{ headers: { "X-API-Key": process.env.API_KEY } },
);
if (!res.ok) {
const { error } = await res.json();
throw new Error(`${error.code}: ${error.message}`);
}
const data = await res.json();
console.log(data.daily.temperature_2m_max);
req, _ := http.NewRequest("GET",
"https://api.climatememory.com/v1/forecast?lat=48.85&lon=2.35&days=3", nil)
req.Header.Set("X-API-Key", os.Getenv("API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil { return err }
defer res.Body.Close()
var out struct {
Daily struct {
TemperatureMax []float64 `json:"temperature_2m_max"`
} `json:"daily"`
}
json.NewDecoder(res.Body).Decode(&out)
3. Yanıtı okuyun
Bütün seriler sütun yönelimli döner — nesne listesi değil,
tek bir time dizinini paylaşan paralel diziler. Nedenini ve nasıl
okunacağını yanıt kuralları bölümünde bulursunuz.
Sırada: aynı çağrıyı şehir adıyla yapmak genelde daha
iyidir — https://api.climatememory.com/v1/forecast/city/fr/paris şehrin gerçek rakımını ve
saat dilimini taşır; çıplak bir koordinat bunu yapamaz.
Şehre göre tahmin bölümüne bakın.
Kimlik doğrulama#
Anahtarınızı her istekte X-API-Key başlığında gönderin. OAuth
akışı, yenilenecek bearer token ya da hesaplanacak imza yoktur.
X-API-Key: wd_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Anahtarlar özetlenerek saklanır. Birini kaybederseniz kurtarılmaz, döndürülür — size yeniden gösteremeyiz, çünkü bizde yok. Döndürme konsoldadır ve anında yeni bir anahtar üretir.
Scope'lar
Bir anahtar scope'lar taşır ve hangilerini taşıyacağına plan karar verir.
Scope'larınızın dışındaki bir uç noktayı çağırmak 403 scope_denied
döndürür — bu bir anahtar sorunu değil, plan sorunudur ve mesaj da bunu
söyler.
| Scope | Açtığı kapı |
|---|---|
meteo | Ekstralar dahil bütün Hava Durumu API'si |
dju | Derece günler ve saatlik geçmiş |
climate | Günlük iklim arşivi ve toplulaştırmaları |
normals | WMO normalleri ve normal karşılaştırması |
Coğrafi kodlama uç noktaları bunların hiçbirini gerektirmez. Geçerli herhangi bir anahtar, hangi planda olursa olsun bir yer adını çözer; çünkü buradaki her ürünün yanıt verebilmesi için önce bir koordinata ihtiyacı vardır. Coğrafi kodlama bölümüne bakın.
Anahtarınızı asla tarayıcıya koymayın. API'yi kendi sunucunuzdan çağırın ve sonucu istemciye iletin. Ön yüz JavaScript'indeki bir anahtar, herkesin ağ sekmesinden okuyup sizin kotanıza harcayabileceği bir anahtardır — ve sizin anahtarınız olduğu için bu kullanım sizinkinden ayırt edilemez.
Mobil uygulamada hava durumuna ihtiyacınız varsa mobil uç noktalar tam da bunun için var: anahtarınızı gömmek yerine kurulum başına bir token verirler.
Coğrafi kodlama#
Bir yer adını koordinata, rakıma ve saat dilimine çevirir.
Parametreler
| Parametre | Tip | Varsayılan | Açıklama |
|---|---|---|---|
q | string | — | Yer adı, herhangi bir dilde. Aksanlar isteğe bağlı. Zorunlu. |
lang | ISO-639-1 | en | Yalnızca gösterim ve sıralama — neyin uygun olduğu asla. Bilinmeyen bir kod hata vermek yerine yerel adlara geri düşer. |
near | lat,lon | — | Çağıranın konumu. Var olan en güçlü eşitlik bozucu. |
country | ISO-3166-1 alpha-2 | — | Tek bir ülkeyle sınırla. |
limit | int | 10 | 1–50. |
Katalog, GeoNames'in P özellik sınıfının tamamıdır — nüfusa göre süzülmüş bir seçki değil, yeryüzündeki her yerleşim yeri, birkaç düzine kişilik mezralara kadar. 528 nüfuslu bir köy de içindedir.
Hiçbir planda kredi harcamaz ve scope gerektirmez. Derece gün için satılmış bir anahtar da adları çözer, çünkü derece gün koordinatsız istenemez. Bunun yerine kendi tavanı vardır — planınızdaki her kredi için beş coğrafi kodlama isteği — ve bu tavan, gecikmeli (debounce) bir otomatik tamamlama arama kutusu amaçlanan kullanım olacak kadar cömert tutulmuştur. Hız sınırları ve kota bölümüne bakın.
Eşleşme asla dille sınırlanmaz
Sorgu; yerel ad, ASCII harf çevrimi ve bütün yerelleştirilmiş takma adlar
üzerinde denenir, lang ne derse desin. Bu, kulağa
geldiğinden önemlidir: yerlerin %98'inin hiçbir yerelleştirilmiş adı yoktur —
Fransızca kataloğun %1,84'ünü kapsar — dolayısıyla dile göre süzülen bir arama
başkentleri bulur, başka bir şey bulmaz. lang hangi adın döneceğini
seçer ve sıralamayı etkiler; neyin uygun olduğuna asla karar vermez.
GET /v1/geocode?q=ramillies&lang=fr
GET /v1/geocode?q=ramillies&lang=fr&near=50.63,3.06 # Lille'den
GET /v1/geocode?q=bruxelles&lang=fr # egzonim, takma ad dizini üzerinden
GET /v1/geocode?q=zuesch&lang=de # umlaut açık yazımla
Sonuçlar nasıl sıralanır
Her sonuç bir score, near verilmişse bir de
distance_km taşır. Sıralama dört sinyali birleştirir: adın ne kadar
iyi eşleştiği, yerin ne kadar önemli olduğu, near noktasına ne
kadar yakın olduğu ve eşleşen adın istenen dilde olup olmadığı.
near neden var. İki Ramillies vardır — Valon
Brabant'ta 5 749 nüfuslu, Hauts-de-France'ta 528 nüfuslu olanı; aralarında
126 km var. Soyut olarak hiçbiri doğru yanıt değildir. near
olmadan büyük olan döner; Lille'den bakıldığında Fransız olanı döner.
Önem yalnızca nüfus değildir. Kataloğun %90,7'sinde kayıtlı nüfus yoktur — GeoNames bazı ülkeler için hiç nüfus yayımlamaz — bu yüzden nüfus yokken sıralamayı yerin türü taşır (ulusal başkent, idari birim merkezi, sıradan yerleşim, mahalle).
Umlautlar atılmaz, açılarak yazılır. Aksan işareti olmayan
bir Alman ya da Danimarka klavyesi Züsch için Zuesch,
Köln için Koeln yazar. GeoNames bu yazımı taşımaz —
ASCII biçimi, umlaut açılmak yerine kaldırılmış hâliyle Zusch'tur —
bu yüzden burada üretilir. Her iki yazım da yere ulaşır ve sonuç iki durumda da
gerçek adı gösterir.
Şehir araması#
Eski ad araması. Yalnızca ASCII adı eşleştirir, nüfusa göre sıralar.
Bir koordinata en yakın kataloglanmış şehir.
/v1/cities/search, /v1/geocode'dan eskidir ve
üzerine hâlihazırda bir şey kurmuş olanlar için sözleşmesini korur: yalnızca
ASCII adı eşleştirir ve nüfusa göre sıralar.
Kullanıcının gördüğü her şeyde
/v1/geocode'u tercih edin. Eski
yol bir egzonimi eşleştiremez — Bruxelles, Brussel'i bulmaz —
ve kayıtlı nüfusu olmayan on yerden dokuzu için sıralaması tanımsızdır.
/v1/cities/nearest ters yöndür ve bir GPS konumunu, sonra şehir
uç noktalarına verebileceğiniz bir şehir slug'ına çeviren şeydir.
lat, lon ve isteğe bağlı bir max_km
alır.
İkisi de /v1/geocode ile aynı coğrafi kodlama tavanına sayılır
ve hiçbiri kredi harcamaz.
Yanıt kuralları#
Altı kural bütün uç noktalarda geçerlidir. Bir kez öğrenin, bu belgelerin geri kalanı yalnızca alan adlarından ibarettir.
1. Seriler sütundur, satır değil
Her zaman serisi, nesne dizisi yerine tek bir time dizinini
paylaşan paralel diziler kümesidir:
"hourly": {
"time": ["2026-08-01T00:00:00+00:00", "2026-08-01T01:00:00+00:00"],
"temperature_2m": [18.4, 18.1],
"precipitation": [0.0, 0.2]
}
Her dizinin i indisi aynı anı betimler. Bu, satır biçimine göre
telde üç ila beş kat daha küçüktür, dönüşüme gerek kalmadan doğrudan bir veri
çerçevesine ya da grafik kütüphanesine çözülür ve Open-Meteo biçimine göre
yazılmış istemcilerin zaten beklediği şeydir. Satır satır dolaşmak için:
rows = zip(h["time"], h["temperature_2m"], h["precipitation"])
2. Zamanlar açık ofsetli ISO 8601'dir
Her zaman. 2026-08-01T00:00:00+00:00; asla çıplak bir yerel dize
ya da Unix tamsayısı değil. Bir timezone geçtiğinizde yanıttaki
ofset o dilimin ofsetidir — böylece dize tek başına kesindir ve neyi
varsaydığımızı bilmek zorunda kalmazsınız.
3. Birimler SI'dir, sabittir ve pazarlığa açık değildir
°C, mm, m/s, hPa, W/m², metre. Bilerek units=imperial diye bir
parametre yok: birim anahtarı, anlamı başka bir alana bağlı olan bir alandır ve
kimsenin gözden geçirmediği bir yapılandırma değişikliğinden sonra çağıranın
Celsius eksenine Fahrenheit çizmesi tam da böyle olur. Dönüşümü, okuyucunun
bulunduğu yerde, kendi kenarınızda yapın.
Alışılmadık birimler taşıyan uç noktalar, hatırlamanızı beklemek yerine
yanıtta bunları açıkça adlandıran bir units bloğu gönderir.
4. null "bilinmiyor" demektir, asla "sıfır" değil
Eksik bir saat dizide null'dur ve indisler hizalı kalsın diye
yerini korur. Sessizce 0 ile doldurulmaz — yağış için bu ikisi zıt iddialardır
ve biri kuraklık hakkında söylenmiş bir yalandır.
5. Her yanıt nereden geldiğini söyler
Veriyle birlikte bir source bloğu (hava durumu) ya da bir
quality bloğu (arşivler) yolculuk eder: hangi model veya koşu
yanıtladı, ne kadar eski, dönem ne kadar eksiksizdi. Tazeliği saate bakarak
çıkarmak zorunda kalmazsınız.
6. Bayat, hiç yoktan iyidir
En yeni model koşumuz beklenenden eskiyse 503 döndürmek yerine yine de yanıt
veririz — source bloğunda "stale": true ve
data_age_hours ile. Sekiz saatlik bir tahmin, bir hatadan daha
yararlıdır. Tazelik sizin için belirleyiciyse bayrağa bakın; değilse yok
sayın.
Hiçbir yerde sayfalama yoktur. Bir istek ya yanıtının tamamını döndürür ya da size üst sınırı söyleyen bir aralık hatasıyla başarısız olur. Bunun yerine aralıklar uç nokta bazında sınırlanmıştır — yani yeniden deneme mantığınız hiçbir zaman yarısı okunmuş bir sonuç kümesiyle uğraşmak zorunda kalmaz.
Hız sınırları, krediler ve kota#
Üç bağımsız sınır geçerlidir ve bilerek farklı biçimlerde devreye girerler. Başarılı her yanıt nerede durduğunuzu bildirir:
| Başlık | Anlamı |
|---|---|
X-RateLimit-Remaining | Yürüyen kayan dakikada kalan istek sayısı |
X-Quota-Remaining | Bu ay kalan kredi |
X-Quota-Resets-At | Bir sonraki aylık sıfırlamanın ISO zaman damgası |
X-Geocode-Remaining | Bu ay kalan coğrafi kodlama isteği. Yalnızca katalog uç noktalarında; sınırladığı tek yer orası. |
İstek değil, kredi
Önbellekten gelen bir şehir tahmini 3 ms'lik bir okumadır. Beş yüz saha için on yıllık saatlik derece gün değildir. İsteğe göre fiyatlamak, bir çağıranın kotasının içinde kalıp ödediğinden fazlasına mal olmasına tümüyle yasal biçimde izin verirdi — bu yüzden bir çağrının maliyeti, ne kadar arşiv taşıdığına bağlıdır.
| Uç nokta | Kredi |
|---|---|
/v1/forecast, /v1/current ve şehir biçimleri | 1 |
/v1/probability, /v1/air-quality, /v1/marine, /v1/hydrology | 1 |
/v1/cells/resolve, /v1/climate/cells/resolve | 1 |
/v1/climate/normals | 3 |
/v1/climate/normals/compare | 6 — iki dönemi birden yanıtlar |
/v1/climate/daily, /v1/climate/monthly | 2, aralıktaki her tam 365,25 günlük dönem için +1 |
/v1/climate/summary | 3, aralıktaki her tam 365,25 günlük dönem için +1 — arşivin tamamı için yaklaşık 89 |
/v1/degree-days ile şehir ve hücre biçimleri | 2, aralıktaki her tam 365,25 günlük dönem için +1 |
/v1/degree-days/monthly | 2 |
/v1/historical | (yıl + 1) × (değişken ÷ 2), aşağı yuvarlanır, en az 1 |
Yukarıdakilerin herhangi biri format=csv ile | JSON maliyetinin 4 katı |
/v1/geocode, /v1/cities/search, /v1/cities/nearest | 0 — ayrıca sınırlanır |
/v1/models, /v1/methods, /v1/coverage, /v1/climate/coverage, /v1/climate/fields, /v1/historical/variables, /v1/attribution, /v1/licensing | 1, üstelik anahtar gerekmez |
Coğrafi kodlama kredi harcamaz. Buradaki her ürünün yanıt verebilmek için önce bir koordinata ihtiyacı vardır; bu yüzden ad çözümlemesi satılmak yerine dahildir. Otomatik tamamlamalı bir arama kutusu amaçlanan kullanımdır: gecikmeli çalıştırın ve bırakın çalışsın.
Yine de sınırlıdır ve kredilerinizle değil, kendi tavanıyla:
planınızdaki her kredi için beş coğrafi kodlama isteği. 50 000
kredilik planda bu, ayda 250 000 arama demektir ve gecikmeli bir arama kutusu
bulunan her yer için bunlardan yaklaşık altı tane harcar. Tükenmesi
429 geocode_quota_exceeded döndürür ve kredilerinize dokunmaz —
zaten ikisinin ayrı kodlar olmasının nedeni de budur.
Her birine çarptığınızda ne yapmalı
| Sınır | Yanıt | Ele alış |
|---|---|---|
| Hız (dakika başına) | 429 rate_limited + Retry-After | Retry-After saniye kadar bekleyip yeniden deneyin. Bu, yapısı gereği geçicidir. |
| Kredi (dönem başına) | 429 quota_exceeded + X-Quota-Resets-At | Sıfırlanana kadar yeniden denemek işe yaramaz. Yükseltin ya da özelliği kısın. |
| Coğrafi kodlama tavanı | 429 geocode_quota_exceeded | Kredileriniz sağlam ve diğer bütün uç noktalar çalışıyor. Gecikmeyi artırın. |
Kota döneminiz abonelik tarihinizden bir sonraki ayın aynı gününe kadar sürer — Stripe'ın faturaladığı dönem — ve sayaç her seferinde baştan başlar. X-Quota-Resets-At bu tarihi her yanıtta taşır; ayın birini varsaymak yerine onu okuyun. Aboneliği olmayan hesaplar takvim ayını izler.
Bol bol önbelleğe alın — bizim için sorun değil, üstelik bedava kota. Bir tahmin koşusu günde 2 ila 4 kez değişir; geçmiş bir ayın derece gün toplamı hiç değişmez. Buradaki hiçbir şey kullanıcıya özel değildir, dolayısıyla önümüzdeki sıradan bir HTTP önbelleği güvenlidir. Özellikle arşiv uç noktalarını son beş günün altındaki kısım için sonsuza dek saklamaya değer.
Hatalar#
Her hata, her iki sunucuda da aynı biçimdedir:
{
"error": {
"code": "range_too_long",
"message": "Requested span is 14.0 years; the maximum per request is 10.",
"max_years": 10
}
}
Yeniden deneme mantığınızı HTTP durumuna değil,
error.code'a kurun. Üç farklı durum 429
döndürür ve üç farklı tepki gerektirir: biri kısa bir bekleme ister, biri plan
değişikliği ister, biri ise uygulamanızı hiç durdurmamalıdır. Durum kodu tek
başına bunları ayırt edemez. Ek anahtarlar — yukarıdaki max_years —
aştığınız sınırı taşır, böylece istemciniz tahmin yürütmek yerine uyum
sağlayabilir.
| Durum | Kod | Ne yapmalı |
|---|---|---|
| 400 | invalid_latitude, invalid_longitude | Koordinatları düzeltin. Enlem −90…90, boylam −180…180'dir. |
| 400 | range_too_long | Birkaç isteğe bölün. Üst sınırı max_years söyler. |
| 400 | bad_request | Bir denetimin kendine ait daha özel bir kodu yoksa kullanılan genel biçim. Kalıcı sayın — istek yeniden denenerek geçerli hâle gelmez. |
| 400 | invalid_coordinates | Çift, aralık dışında ya da Dünya üzerinde bir nokta değil. |
| 400 | invalid_method, invalid_base | Hesaplama yöntemleri bölümüne bakın. |
| 400 | invalid_breakdown | daily, weekly, monthly veya yearly değil. |
| 400 | invalid_date | ISO YYYY-MM-DD olmayan bir tarih. |
| 400 | invalid_range | end, start'tan önce geliyor. |
| 400 | invalid_near | near, lat,lon biçiminde değil. |
| 400 | unknown_field, unknown_variable | O ürünün neyi tuttuğunu /v1/fields, /v1/climate/fields ya da /v1/historical/variables'a sorun — üçü de anahtar istemez. /v1/forecast'ta mesaj, istediğinize en yakın eşleşmeyi söyler. |
| 400 | unknown_period | WMO referans dönemi değil. Normaller bölümüne bakın. |
| 400 | period_not_covered | Arşiv, bu noktada o referans dönemini kapsamıyor. |
| 401 | missing_api_key | X-API-Key başlığı yoktu. |
| 401 | invalid_api_key | Anahtar bilinmiyor ya da döndürülmüş. |
| 401 | unauthorized | Daha özel hiçbir şey uymadığında kullanılan genel biçim. |
| 402 | export_not_in_plan | CSV dışa aktarma ücretli plan özelliğidir. |
| 403 | scope_denied | Planınız bu API'yi içermiyor. Scope'lar bölümüne bakın. |
| 403 | key_inactive | Anahtar var ama iptal edilmiş ya da devre dışı bırakılmış. Bir anahtarı döndürmek eskisine bunu yapar — kesinti varsaymadan önce konsola bakın. |
| 404 | city_not_found | Yanıt bir suggestions dizisi içerir — onu gösterin. |
| 404 | cell_not_found | Artık var olmayan, sabitlenmiş bir hücre. Hücre sabitleme bölümüne bakın. |
| 404 | not_at_sea | Kara üzerinde bir deniz isteği. Dalga modelinin orada değeri yoktur. |
| 404 | not_found | Genel biçim. Yukarıdaki gibi: kalıcı. |
| 404 | no_city_nearby | O noktanın max_km yarıçapında kataloglanmış hiçbir şey yok. |
| 404 | outside_archive | Tarihler arşivin tuttuğu aralığın dışında. Neyi tuttuğunu /v1/climate/coverage söyler ve anahtar istemez. |
| 429 | rate_limited | Retry-After saniye kadar geri çekilin. |
| 429 | quota_exceeded | Sıfırlanmayı bekleyin ya da yükseltin. Daha erken denemek başarılı olamaz. |
| 429 | geocode_quota_exceeded | Yalnızca coğrafi kodlama tavanı. Kredileriniz sağlam; arama kutunuza gecikme ekleyin. |
| 503 | data_unavailable | Geçici. Üstel geri çekilmeyle yeniden deneyin. |
| 503 | load_shed | Yük altında servisi korumak için bilerek reddedildi. Kimin önce bırakılacağına planınızın kritikliği karar verir. Geri çekilerek yeniden deneyin; saniyeler içinde geçer. |
| 503 | catalogue_unavailable | Şehir kataloğuna kısa süreliğine erişilemiyor. Koordinatlar hâlâ çalışıyor — isteği başarısız kılmak yerine onlara düşün. |
Liste bundan ibarettir ve her yapıda kaynak kodla karşılaştırılır: burada yayımlanmış ama hiçbir işleyicinin fırlatmadığı bir kod testleri düşürür; bu tabloda olmayan bir kodu fırlatan bir işleyici de öyle. Yukarıda olmayan bir kodla karşılaşırsanız bu, bu sayfanın hatasıdır; özel olarak ele almanız gereken bir değer değil.
İşe yarayan bir yeniden deneme politikası
RETRY = {"rate_limited", "data_unavailable"}
def should_retry(status, code, attempt):
if code == "quota_exceeded":
return False # sıfırlanana kadar hiçbir şey değişmez
if code == "geocode_quota_exceeded":
return False # ve durmayın: krediler hâlâ çalışıyor
if code in RETRY:
return attempt < 5
return status >= 500
Doğruluk — ne beklemeli#
Sınırları üretimde keşfetmeniz yerine beklentileri baştan doğru kurmayı yeğleriz.
Tahminin güçlü olduğu yerler
Sıcaklık, basınç, sinoptik rüzgâr, nem, güneşlenme. 24 saatte 2 m sıcaklık hatası tipik olarak 1–1,5 °C civarındadır. ECMWF dünyanın en iyi küresel deterministik modelidir ve aldığınız da odur.
Zayıf olduğu yerler
Konvektif fırtınalar — 28 km'lik bir hücre bir gök gürültülü fırtınayı çözemez, 3 km bile ancak ima eder. Sağanakların tam yeri ve zamanı. Modelin çözünürlüğünün altındaki kıyı ve dağ mikro iklimi. Arazi düzeltmesinin modellemediği deniz meltemleri ve vadi soğuk hava göllenmeleri.
Coğrafi dürüstlük
Fransa, Almanya, ABD ve Kanada'da 1,3–3 km'lik ulusal modeller sunuyoruz ve küçük bir köy gerçekten kendi ızgara hücresini alıyor. Avrupa'nın geri kalanında 6,5 km alıyorsunuz. Afrika, Orta Doğu ve Asya'nın çoğunda mevcut en iyi kamuya açık model 13–28 km'dir; yani sokağın değil, bölgenin havasını alırsınız. Arazi düzeltmesi bu farkı daraltır ama kapatmaz.
Derece günler
Izgara tabanlı yeniden analiz her yeri kapsar; 60 km içinde meteoroloji istasyonu bulunmayan konumlar dahil — istasyon tabanlı sağlayıcılara karşı üstünlüğü budur. Zayıflığı ise yeniden analizin olduğundan düşük okuduğu şehir merkezleridir; şehir uç noktaları kalibre edilmiş bir düzeltme uygular, koordinat uç noktaları uygulamaz.
İki alan tahminidir ve bunu söylemeyi yeğleriz
uv_index, ozon kolonundan değil, güneş yüksekliği ve geniş bantlı
radyasyondan türetilir — kabaca ±1 birim doğrulukta.
precipitation_probability_proxy bir olasılık değil, bir kestirimdir;
gerçeği /v1/probability adresindedir. İkisi de
alan referansında tam olarak açıklanmıştır.
Planlar#
| Plan | Fiyat | Kredi / ay | Hız | Anahtar | Scope'lar |
|---|---|---|---|---|---|
| Ücretsiz | 0 € | 10 000 | 20 / dk | 1 | hava durumu, ayrıca 30 gün boyunca derece gün ve iklim |
| Starter | 19 € / ay | 50 000 | 60 / dk | 3 | hava durumu + derece gün + iklim |
| Pro | 79 € / ay | 400 000 | 300 / dk | 10 | hava durumu + derece gün + iklim + normaller |
| Business | en az 299 € / ay | Sözleşmeyle belirlenir | Sözleşmeyle belirlenir | 50 | hava durumu + derece gün + iklim + normaller |
Coğrafi kodlama bu tablonun dışındadır: hiçbir planda kredi harcamaz ve kredi başına beş istek şeklinde kendi tavanını taşır. Hız sınırları ve kota bölümüne bakın.
Yıllık ödemede iki ay bedavadır. Güncel katalog developers.climatememory.com/pricing adresindedir — o sayfa faturalama sistemini doğrudan okur; ikisi bir gün çelişirse o sayfa geçerlidir.
Hiçbir planda toplu dışa aktarma uç noktası yoktur. CSV dışa aktarma derece gün ve iklim arşivlerinde vardır, eşdeğer JSON çağrısıyla aynı aralıkla sınırlıdır ve yalnızca toplulaştırılmış satırlar döndürür — saatlik seriyi asla.
Atıf ve lisanslama#
Gereken tam ifade, makine tarafından okunabilir. Anahtar gerekmez.
Her veri kümesinin arkasındaki lisans tablosu. Anahtar gerekmez.
Atıf bir nezaket değil, kullanım koşuludur. Altta yatan veriler bize bunu gerektiren koşullarla lisanslanmıştır ve bu koşullar size de geçer. Türev ürünler dahil, verilerin göründüğü her yerde bir bildirim gösterin. Alt bilgideki tek bir satır yeter:
Weather data: ECMWF, DWD, NOAA, Météo-France · Climate data: Copernicus/ERA5-Land · Places: GeoNames
Yukarıdaki iki uç nokta anahtar istemez; böylece bir kaynak değiştiğinde
bayatlayacak bir dizeyi koda gömmek yerine bildirimi API'den üretebilirsiniz.
Yanıtı veren belirli koşuya ait atıf da her veri yanıtında,
source.attribution içinde ve X-Data-Attribution
başlığında yolculuk eder.
Bu verileri kullandığınızı belirtebilirsiniz. Bu kuruluşlardan herhangi birinin ürününüzü ürettiğini, onayladığını ya da desteklediğini ima edemezsiniz.
Sorumluluk reddi
Tahminler garantisiz sunulur. Ne Avrupa Komisyonu, ne ECMWF, ne DWD, ne NOAA ne de Météo-France bu bilgilerin herhangi bir kullanımından sorumludur. Bunu, can, güvenlik ya da mal varlığının risk altında olduğu kararların tek dayanağı olarak kullanmayın.
Bir kısıtlamayı kaldırmak bizim elimizde değil: Copernicus lisansı sel uyarılarını ulusal ve bölgesel makamlara ayırır. Nehirler bölümüne bakın.