Growing Season Length GSL
Locate thermal growing-season onset/end under caller threshold/run and hemisphere-specific cold-end search index; preserve left-censored onset and right-censored end, without assigning dates outside supplied gap-free coverage.
Description
Growing season length can be estimated from sustained warm conditions followed by sustained cold conditions.
Growing season length can be estimated from sustained warm conditions followed by sustained cold conditions. Requiring consecutive days reduces sensitivity to isolated temperature excursions, while a caller-chosen cold-search boundary controls when season termination can begin.1, 2
Locate thermal growing-season onset/end under caller threshold/run and hemisphere-specific cold-end search index; preserve left-censored onset and right-censored end, without assigning dates outside supplied gap-free coverage.
When to use Growing Season Length GSL
Use this tool to locate thermal growing-season onset/end under caller threshold/run and hemisphere-specific cold-end search index; preserve left-censored onset and right-censored end, without assigning dates outside supplied gap-free coverage.
Prepare the climate observations and any independently chosen thresholds or model parameters. Confirm units, daily coverage, time order and the intended seasonal window.
How to use Growing Season Length GSL and understand its results
- Prepare the climate observations and any independently chosen thresholds or model parameters. Confirm units, daily coverage, time order and the intended seasonal window.
- Enter dailyMeanTemperaturesC, callerGrowingThresholdC, callerRequiredRunDays, searchColdEndFromIndex using the field table and calculation rules, then run the tool.
- Read onsetLeftCensored, growingSeasonStartIndex, growingSeasonEndIndexExclusive, observedGrowingSeasonLengthDays, endRightCensored. The explanation below defines the units, signs, ordering and any flags or placeholder values.
- If the tool reports an input issue, correct the values and run it again. Apply the stated assumptions when interpreting a successfully returned result.
| Input field | Meaning | Value type; see rules below | Requirement |
|---|---|---|---|
| dailyMeanTemperaturesC | Daily mean temperatures c | list of number | Required |
| callerGrowingThresholdC | Caller growing threshold c | number | Required |
| callerRequiredRunDays | Caller required run days | integer | Required |
| searchColdEndFromIndex | Search cold end from index | integer | Required |
Enter daily temperatures in °C, a finite growth threshold, a positive integer minimum run length and a valid nonnegative cold-search start index. Warm runs use temperatures strictly above the threshold and cold runs strictly below it; equality qualifies for neither. The first sufficiently long warm run must start before the cold-search boundary, otherwise the tool returns an error. The end is the first qualifying cold run at or after that boundary, or the input length if none is observed. Start indices are zero-based and the end is exclusive.
start = first warm-run start before cold-search boundary; end = first qualifying cold-run start at/after that boundary, or input length; length = end − start Units, indexing, boundary conditions and exceptional cases are defined in the calculation rules above.
| Output field | Meaning | Value type |
|---|---|---|
| onsetLeftCensored | Onset left censored | boolean |
| growingSeasonStartIndex | Growing season start index | number |
| growingSeasonEndIndexExclusive | Growing season end index exclusive | number |
| observedGrowingSeasonLengthDays | Observed growing season length days | number |
| endRightCensored | End right censored | boolean |
{
"input": {
"dailyMeanTemperaturesC": [
0,
10,
10,
10,
0,
0
],
"callerGrowingThresholdC": 5,
"callerRequiredRunDays": 2,
"searchColdEndFromIndex": 3
},
"output": {
"growingSeasonStartIndex": 1,
"growingSeasonEndIndexExclusive": 4,
"observedGrowingSeasonLengthDays": 3,
"endRightCensored": false,
"onsetLeftCensored": false
}
} Limitations and assumptions
Choose the sequence and cold-search boundary for the hemisphere and season yourself. A start at index zero is flagged as left-censored; an unobserved cold ending is right-censored. These flags indicate window truncation, not a known biological onset or end. The tool does not calculate percentile thresholds or infer missing days.
Numeric inputs and returned numeric values must be finite; an unrepresentable returned value produces an error. Numeric lists are limited to 100,000 entries; the rules above may require smaller limits. Missing required fields, extra fields, wrong value types and violations of the calculation rules are input errors. A successfully returned false flag is an evaluated outcome; its meaning is explained above.
Alternative or Complementary methods
Use Frost-Free Period Length: Find longest observed contiguous frost-free daily period with explicit endpoint censoring; unlike one seasonal frost date, longest available span is not extrapolated outside coverage. For a complementary task, use Warm Spell Duration Index WSDI: Calculate warm WSDI maximum-temperature spells against caller independently calibrated day-of-year percentiles with strict exceedance and minimum run; threshold ties excluded, gap-free coverage required.
Further background: Climate extreme index definitions.
References
-
Growing Season Length GSL — tool.io
-
Climate extreme index definitions — Climdex
Similar or alternative tools
- Frost-Free Period Length
Find longest observed contiguous frost-free daily period with explicit endpoint censoring; unlike one seasonal frost date, longest available span is not extrapolated outside coverage.
- Warm Spell Duration Index WSDI
Calculate warm WSDI maximum-temperature spells against caller independently calibrated day-of-year percentiles with strict exceedance and minimum run; threshold ties excluded, gap-free coverage required.