Derece-Gün (GDD) Hesabı
Hesaplama Tarım Kredi / istek: 1Taban ve tavan sıcaklığa göre birikimli derece-gün hesaplar. Karar desteğidir, agronomik tavsiye değildir.
POST
https://api.apikodu.com/api/v1/agriculture/gdd
Dokümantasyon
Genel bakış
Growing degree day. Hava DB'den veya dailyTemps ile. İlk lat/lon isteği hücre oluşturur; veri yoksa code -256.
Kimlik doğrulama
Her istekte x-api-key başlığı zorunludur. Kullanılan kredi ve kalan kota yanıt başlıklarında (x-api-credits-used, x-api-remaining-credits, x-rate-limit-*) döner.
İstek
POST
https://api.apikodu.com/api/v1/agriculture/gdd
JSON gövde. dailyTemps veya latitude+longitude.
Parametreler
| Ad | Tip | Zorunlu | Varsayılan | Seçenekler | Açıklama |
|---|---|---|---|---|---|
crop |
string | Opsiyonel | — | wheat barley maize sunflower cotton potato tomato rapeseed oats rye sugarbeet grape apple chickpea lentil |
Ürün kodu. Boşsa baseTemp zorunlu. |
fromDate |
string | * Zorunlu | — | — | YYYY-MM-DD |
toDate |
string | * Zorunlu | — | — | En fazla 366 gün. |
baseTemp |
number | Opsiyonel | — | — | GDD taban °C. |
upperTemp |
number | Opsiyonel | — | — | Üst sınır °C (cap). |
latitude |
number | Opsiyonel | — | — | 0.1° hücre. dailyTemps yoksa gerekir. |
longitude |
number | Opsiyonel | — | — | Boylam. |
includeDaily |
boolean | Opsiyonel | true |
true false |
Günlük döküm. |
dailyTemps |
json | Opsiyonel | — | — | [{date,tmin,tmax}]. Varsa lat/lon kullanılmaz. |
Yanıt
| Ad | Tip | Açıklama |
|---|---|---|
gddCumulative |
number | Pencere boyunca biriken GDD. max(0, (tmin+tmax)/2 − baseTemp), upperTemp ile tavan. |
gddAveragePerDay |
number | gddCumulative / daysWithData. Veri yoksa 0. |
baseTemp |
number | Kullanılan taban sıcaklık °C (istek veya ürün tablosu). |
upperTemp |
number | Üst tavan °C. Yoksa null. |
crop |
string | Normalize ürün kodu (wheat, maize ...). Boş bırakıldıysa null. |
fromDate |
string | Pencere başlangıç YYYY-MM-DD. |
toDate |
string | Pencere bitiş YYYY-MM-DD. |
daysTotal |
integer | Penceredeki takvim günü sayısı (fromDate..toDate). |
daysWithData |
integer | Sıcaklık verisi olan gün sayısı. |
missingCount |
integer | Verisi olmayan gün sayısı. missingDates.Length. |
missingDates |
array | Eksik günlerin YYYY-MM-DD listesi. |
gridLatitude |
number | 0.1° hücre enlemi. dailyTemps kullanıldıysa null. |
gridLongitude |
number | 0.1° hücre boylamı. dailyTemps kullanıldıysa null. |
stages |
array | Ürün fenoloji eşikleri. crop yoksa boş dizi. |
stages[].code |
string | Eşik kodu. Örn. emergence, flowering. |
stages[].threshold |
number | Bu evre için gereken kümülatif GDD. |
stages[].reached |
boolean | gddCumulative >= threshold ise true. |
daily |
array | includeDaily=true ise günlük satırlar. false ise boş dizi. |
daily[].date |
string | Gün YYYY-MM-DD. |
daily[].tmin |
number | Günlük minimum °C. |
daily[].tmax |
number | Günlük maksimum °C. |
daily[].gdd |
number | O günün GDD'si. |
daily[].gddCumulative |
number | O güne kadar biriken GDD. |
method |
string | Hesap yöntemi. Bu API için gdd-average-capped. |
source |
string | user: dailyTemps veya et0Mm. db: tarim_hava hücresi. |
disclaimer |
string | Karar destek uyarısı. Tarımsal reçete / resmi tavsiye değildir. |
Hatalar
| HTTP | code | Açıklama |
|---|---|---|
400 |
-249 |
Gövde yok; crop ve baseTemp ikisi de yok; dailyTemps > 366, tmin/tmax eksik/geçersiz. |
400 |
-254 |
fromDate/toDate yok, YYYY-MM-DD değil, veya pencere 366 günden uzun. |
400 |
-255 |
dailyTemps yokken latitude/longitude gerekir. Enlem -90..90, boylam -180..180. |
429 |
-316 |
Firmanın günlük yeni konum (hücre) limiti (50) doldu. Daha önce sorgulanan konumlar çalışmaya devam eder; yeni konum ertesi gün (UTC). Retry-After başlığı gün sonuna kalan saniye. |
503 |
-256 |
Hücre oluştu, Worker son 730 günü dolduruyor. Birkaç dakika sonra tekrar dene. |
400 |
-251 |
Bu konum/tarih için hava kaydı yok (dailyTemps de yok). |
401 |
-100 |
x-api-key yok, boş, prefix/uzunluk hatalı, pasif, yasaklı, süresi dolmuş, IP kısıtına takıldı veya bu API anahtara izinli değil. |
429 |
-221 |
Dakikalık istek limiti aşıldı. Yanıt başlıkları: x-rate-limit-limit, x-rate-limit-remaining, x-rate-limit-reset. |
429 |
— | Paket kredi kotası bu isteğin kredisini karşılamıyor. Gövde { error, limit, currentUsage, requestCost } olabilir (code alanı yok). |
500 |
-1 |
Beklenmeyen sunucu hatası. message genel bir hata metnidir; teknik ayrıntı içermez. |
Notlar
- Başarılı gövde { data: { ... } } şeklindedir. Hata gövdesi { code, message } şeklindedir. code alanı ApiResponseCode enum değeridir (negatif tam sayı).
Örnek yanıt
{
"data": {
"gddCumulative": 18.5,
"gddAveragePerDay": 9.25,
"baseTemp": 4.0,
"upperTemp": 30.0,
"crop": "wheat",
"fromDate": "2026-03-01",
"toDate": "2026-03-02",
"daysTotal": 2,
"daysWithData": 2,
"missingCount": 0,
"missingDates": [],
"stages": [
{
"code": "emergence",
"threshold": 120.0,
"reached": false
}
],
"method": "gdd-average-capped",
"source": "user",
"disclaimer": "Decision support only. Not agronomic advice."
}
}
Kod örnekleri
const response = await fetch('https://api.apikodu.com/api/v1/agriculture/gdd', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
body: JSON.stringify({
name: 'example',
value: 123
})
});
const data = await response.json();
console.log(data);
import requests
headers = {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
}
payload = {
'name': 'example',
'value': 123
}
response = requests.post('https://api.apikodu.com/api/v1/agriculture/gdd', headers=headers, json=payload)
data = response.json()
print(data)
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var payload = new { name = "example", value = 123 };
var json = JsonSerializer.Serialize(payload);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.apikodu.com/api/v1/agriculture/gdd", content);
response.EnsureSuccessStatusCode();
var data = await response.Content.ReadAsStringAsync();
Console.WriteLine(data);
$data = [
'name' => 'example',
'value' => 123
];
$response = file_get_contents('https://api.apikodu.com/api/v1/agriculture/gdd', false, stream_context_create([
'http' => [
'header' => "x-api-key: YOUR_API_KEY"
],
'method' => 'POST',"
'content' => json_encode($data)
]));
print_r(json_decode($response, true));
curl -X POST 'https://api.apikodu.com/api/v1/agriculture/gdd' \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY' \
-d '{
"name": "example",
"value": 123
}'
Hemen denemeye başlayın
Ücretsiz hesap açın, API anahtarınızı alın ve ilk isteğinizi dakikalar içinde gönderin.