taylor-ag-climate
I am Karl Taylor, the grandson of Dr. S. Elwynn Taylor. For forty years, my grandfather served as the Iowa
State University Extension Climatologist, translating the physics of heat and water into agronomic truth for
Corn Belt farmers. His work spanned from military soil moisture research at White Sands (ECOM-5822) to the
hardware circuits of Iowa's weather stations.
This site exists because that intellectual lineage is eroding. With my grandfather battling Alzheimer's and a
five-year gap between his retirement and his successor, the reasoning behind his algorithms is becoming
inaccessible. We are building a validated, open-source Python library to reimplement his crop stress
algorithms from first principles and serve as a fire escape for the institutional memory that powers the
Environmental Mesonet.
The Bus Stop Problem: The Fragility of Institutional Memory
In software, there's a concept called the "bus factor" — the number of people who need to be removed from
a project before it becomes unrecoverable. For Dr. S. Elwynn Taylor's agricultural climate algorithms,
the bus factor is 1. It has always been 1. And the bus already came.
Here is the chain:
- Dr. S. Elwynn Taylor (ISU Extension Climatologist, 1979-2019) built the algorithms
— GDD, SDD, Aridity Index — that tell Corn Belt farmers when to plant, when heat stress becomes
yield loss, and whether their season is trending toward failure. He implemented them first as
hardware circuits on Iowa's 300+ weather station network. He never wrote them down in a form that
outlasted him.
- Daryl Herzmann (Systems Analyst, Iowa Environmental Mesonet) encoded Taylor's
algorithms as PostgreSQL database functions — the canonical implementation that the IEM website has
served to farmers for 20+ years. Daryl has been the sole maintainer since Taylor retired in January
2019. His Python library has quietly drifted from his own database in at least one documented case.
He is one person.
- The Extension Climatologist role that Taylor held from 1979-2019 sat vacant for
five years after his retirement. The person who now holds the functional equivalent started in
January 2024 — with no handoff, no documentation of algorithmic provenance, and no way to know that
the numbers she cites from IEM carry 40 years of specific, reasoned choices behind them.
- Elwynn Taylor now has Alzheimer's. The reasoning — not the code, but the why — is
becoming inaccessible.
This project is the fire escape.
The Algorithms
Growing Degree Days (GDD)
Corn doesn't feel time. It feels heat. GDD counts how much warmth above 50°F accumulates each day,
capped at 86°F — because above that, corn stops developing faster. It's a thermal odometer. Farmers
use it to predict when their corn will be ready. Taylor's specific implementation choice (why the
cap applies to the daily high but not the daily low) is documented here for the first time with
first-principles justification. These calculations ran as hardware circuits in Iowa's weather
stations before they were ever written as code.
Stress Degree Days (SDD)
When temperatures exceed 86°F, corn enters water stress. SDD counts how much heat above that
threshold accumulates across the season. Taylor's rule: SDD > 140 means it's tough to find yield
above trend. This threshold was calibrated against Iowa station data and farmer-observable crop
outcomes. The formula uses only the daily high temperature — a
specific design choice that was quietly broken in the Python library and is documented here.
Aridity Index (AI)
Taylor's composite metric — combining temperature and precipitation anomalies into a single index. AI
< -4 predicts above-trend yield. Developed with collaborators at ISU and first published at the
2003 AMS Annual Meeting. The weekly maps ran at IEM from 2008 through at least 2013, tracking the
2012 drought in real time.
The Work
taylor-ag-climate is a validated, open-source Python library that reimplements Taylor's
algorithms from first principles, with:
- Cross-validation against 15 years of IEM COOP station data
- Documentation of the intellectual lineage (ECOM-5822 → circuit topology → PostgreSQL
→ Python)
- Tests that encode the reasoning, not just the outputs
- A citable reference implementation that Herzmann can point users to and Wuestenberg can teach from
The implementation is complete but not yet published. We are seeking validation from the people who built this field before it becomes the permanent record. If you would like to review the math and implementation directly:
Request the implementation →