Derece-Gün (GDD) Hesabı

Derece-Gün (GDD) Hesabı

Hesaplama Tarım Kredi / istek: 1

Taban 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.

Ücretsiz başla