Calculateur de durée de la saison de croissance
Le calculateur de durée de la saison de croissance transforme une année civile complète de températures minimales quotidiennes en une période sans gel clairement définie.
Lancer gratuitement
Il repère la dernière gelée avant le 1er juillet, la première à compter de cette date, puis indique le nombre de jours écoulés entre les deux. Vous pouvez définir la température qualifiée de gel; la valeur par défaut est 0 °C. Le calcul est déterministe, ne fait appel à aucun service météorologique externe et signale toute limite manquante au lieu de fournir une estimation trompeuse.
Préparez une série quotidienne complète
Fournissez un relevé pour chaque journée comprise entre le 1er janvier et le 31 décembre d'une même année civile. Chaque relevé doit comporter une date au format YYYY-MM-DD et la température minimale de l'air de cette journée en degrés Celsius. Les relevés doivent être classés dans l'ordre chronologique, se suivre sans interruption et ne contenir aucun doublon. Cette exigence est essentielle, car une journée froide absente pourrait être prise à tort pour une journée sans gel et allonger discrètement le résultat. Une année ordinaire comprend donc 365 relevés, contre 366 pour une année bissextile. La température minimale quotidienne est la mesure pertinente, puisque le risque de gel dépend du moment le plus froid de la journée, et non de la moyenne ou du maximum. Si votre source présente des lacunes, corrigez-les à partir de la station ou du jeu de données d'origine avant le calcul; cet outil n'interpole pas les observations. Vous pouvez également définir un seuil de gel. Il vaut 0 °C par défaut, et toute température minimale inférieure ou égale au seuil choisi est classée comme journée de gel. Conservez les degrés Celsius et la même source d'observation pendant toute l'année.
Comprenez le choix des deux dates de gel
Pour les données annuelles de l'hémisphère Nord, le calculateur utilise le 1er juillet comme séparation fixe entre les fenêtres de recherche du printemps et de l'automne. Parmi les journées de gel antérieures au 1er juillet, il retient la date la plus tardive comme dernière gelée printanière. Parmi celles du 1er juillet ou postérieures, il choisit la première date comme première gelée automnale. La durée de la saison de croissance correspond à l'écart en jours calendaires entre ces deux dates. Cette convention garantit un résultat reproductible sans tenter de déduire les saisons à partir de fluctuations thermiques irrégulières. Une température égale au seuil compte comme gel: avec le réglage par défaut, une minimale de 0 °C est donc retenue. Les dates limites renvoyées vous permettent de contrôler le calcul dans la série source au lieu de vous fier à un simple nombre. La méthode décrit les conditions thermiques observées pour l'année transmise; elle ne constitue ni une prévision, ni une garantie de plantation, ni une normale climatique. Les sites de l'hémisphère Sud nécessitent une autre séparation saisonnière et sortent du cadre actuel. Si aucune gelée admissible n'existe dans l'une des fenêtres, les deux bornes ne peuvent pas être définies et le calcul renvoie une erreur.
Interprétez le résultat avec discernement
La durée de la saison de croissance permet de comparer les années, d'effectuer un premier tri des cultures adaptées, de vérifier les synthèses d'une station et de documenter l'évolution des dates de gel. Considérez-la comme un indicateur environnemental parmi d'autres, et non comme une recommandation agronomique complète. Une culture peut subir des dommages dus au froid au-dessus du seuil choisi; par ailleurs, le sol, le vent, l'humidité, la pente et le couvert végétal peuvent entraîner dans une parcelle des températures différentes de celles d'une station météorologique. Pour des comparaisons reproductibles, conservez la même station, la même définition de température, la même procédure de contrôle qualité et le même seuil de gel. Archivez les dates renvoyées de la dernière gelée printanière et de la première gelée automnale avec la durée afin que les observations déterminantes restent vérifiables. Lors d'une automatisation par API, le tarif de base par requête est de $0.002; la même logique déterministe convient aussi à un usage interactif. L'erreur produite en l'absence de gel dans une moitié d'année est volontaire: sans deux limites observées, une durée numérique imposerait une hypothèse injustifiée. Pour une analyse de long terme, calculez chaque année complète séparément, puis résumez les résultats annuels avec des statistiques adaptées au lieu de fusionner plusieurs années.
Cas d’usage
Comparer des campagnes agricoles
Calculez pour chaque année la période observée sans gel avec un seuil constant, puis comparez ses dates limites et sa durée.
Contrôler la synthèse d'une station
Reproduisez une durée publiée à partir de relevés quotidiens de température minimale soumis à un contrôle qualité.
Éclairer la planification culturale
Utilisez les durées historiques comme l'un des critères permettant d'évaluer si un site offre assez de temps sans gel.
Questions fréquentes
Quelle température est qualifiée de gel?
Une minimale quotidienne inférieure ou égale à frost_threshold_c compte comme gel. Le seuil par défaut est 0 °C.
Pourquoi faut-il fournir une année civile complète?
Une couverture complète empêche qu'une observation froide manquante soit interprétée à tort comme une période sans gel.
Comment la durée est-elle comptée?
Il s'agit du nombre de jours calendaires écoulés entre la dernière gelée printanière et la première gelée automnale.
Que se passe-t-il si aucune gelée ne survient?
Le calculateur renvoie une erreur de saisie si l'une des fenêtres ne contient aucune gelée correspondant au seuil.
Le calcul convient-il à l'hémisphère Sud?
Non. Cette version emploie le 1er juillet comme séparation saisonnière pour l'hémisphère Nord.
Quel est le coût d'une requête API?
Le tarif de base est de $0.002 par requête.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/earth/growing-season-length \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"daily_temperatures":[{"date":"2026-07-24","min_temperature_c":1},{"date":"2026-07-24","min_temperature_c":1}]}'const res = await fetch("https://api.kit.forhosting.com/earth/growing-season-length", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"daily_temperatures": [
{
"date": "2026-07-24",
"min_temperature_c": 1
},
{
"date": "2026-07-24",
"min_temperature_c": 1
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/earth/growing-season-length",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"daily_temperatures": [
{
"date": "2026-07-24",
"min_temperature_c": 1
},
{
"date": "2026-07-24",
"min_temperature_c": 1
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/earth/growing-season-length", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"daily_temperatures":[{"date":"2026-07-24","min_temperature_c":1},{"date":"2026-07-24","min_temperature_c":1}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"daily_temperatures":[{"date":"2026-07-24","min_temperature_c":1},{"date":"2026-07-24","min_temperature_c":1}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/earth/growing-season-length", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"daily_temperatures": [
{
"date": "2026-07-24",
"min_temperature_c": 1
},
{
"date": "2026-07-24",
"min_temperature_c": 1
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "earth.growing_season_length",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_items | 366 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |