🌾 Crop Yield Predictor — Satellite NDVI Meets Weather Data
Fuse synthetic satellite vegetation-index (NDVI) readings with rainfall and temperature to predict crop yield across a field grid, and watch the model's confidence band tighten as the season progresses.
About the Crop Yield Predictor
Real satellite-based crop yield forecasting fuses three streams of data: multispectral vegetation indices such as NDVI, gridded weather (rainfall, temperature, solar radiation), and soil information — then runs them through a crop-growth or statistical model to estimate biomass and, ultimately, harvestable yield. This simulation builds a synthetic but mechanistically real version of that pipeline: a 10×10 field grid, each cell with its own soil-quality multiplier, is driven week by week through a growing season by a shared rainfall/temperature trajectory. A soil-moisture bucket model converts weekly rainfall and evapotranspiration into a water-stress factor; growing degree days drive a logistic canopy-development curve; and a light-use-efficiency (LUE) model — the same Monteith (1972) formulation used by real operational systems like MODIS-GPP — converts absorbed radiation into biomass, which a harvest index turns into grain yield.
Drag the rainfall and temperature sliders to define a season's weather scenario, then press play to watch NDVI green up across the field grid at different rates depending on each cell's soil quality, while the bottom chart tracks the field-average yield forecast. A 24-member Monte Carlo ensemble — each member replaying the real weather observed so far and resampling the unknown remainder — produces the shaded confidence band, which widens through the vegetative stage as compounding efficiency uncertainty scales with accumulated biomass, then narrows toward harvest as fewer weeks remain unknown.
Frequently Asked Questions
What is NDVI and why does it work as a proxy for crop health?
NDVI (Normalized Difference Vegetation Index) is computed from satellite reflectance as (NIR − Red) / (NIR + Red). Healthy, chlorophyll-rich leaves strongly absorb red light for photosynthesis while strongly reflecting near-infrared light, so dense healthy canopy produces NDVI values near 0.7–0.9. Bare soil, water and stressed or sparse vegetation reflect red and near-infrared more similarly, producing values near 0 or even negative. Because NDVI tracks green leaf area and chlorophyll content, and both are tightly linked to how much sunlight a crop can capture for photosynthesis, it is one of the most widely used inputs to operational yield forecasting systems worldwide.
What is the light-use-efficiency (LUE) model used in this simulation?
The LUE model (Monteith, 1972) states that biomass accumulation in a given period equals APAR (absorbed photosynthetically active radiation) multiplied by a light-use-efficiency coefficient, then reduced by environmental stress factors: Biomass = APAR × LUE × stress. APAR itself is FPAR (the fraction of incoming radiation absorbed by the canopy, estimated from NDVI) multiplied by incoming solar radiation. This simulation computes FPAR from NDVI with a simple linear relation, derives APAR each week, and multiplies by a fixed LUE coefficient and by water/heat stress multipliers before accumulating into total biomass, which is then converted to grain yield with a harvest index.
How do rainfall and temperature actually drive the yield forecast?
Temperature drives two things: growing degree days (GDD), which accumulate as max(0, weekly temperature − base temperature) and determine how far along the crop's canopy development is on a logistic growth curve, and evapotranspiration (ET), which removes water from the soil-moisture bucket. Rainfall adds water to that same bucket. The ratio of moisture to soil water-holding capacity produces a water-stress factor between 0 and 1 that throttles both canopy growth and biomass accumulation; temperatures far above or below the crop's optimum apply an additional heat-stress penalty. Moving the rainfall and temperature sliders regenerates the whole season's weather trajectory and soil-moisture bucket, which is why the field heatmap and yield curve change immediately after a reset.
Why does the shaded confidence band widen through the season and then narrow near harvest?
The band comes from a 24-member Monte Carlo ensemble recomputed at every week: each member replays the real, already-observed weather up to that week, then draws a fresh random weather trajectory (plus its own fixed light-use-efficiency and harvest-index noise) for the remaining unobserved weeks. Early in the season almost the whole season is still unknown, but accumulated biomass is tiny, so absolute spread in tonnes/hectare starts small. As the season progresses, compounding of the per-member efficiency noise against a larger accumulated biomass base widens the absolute spread, even as the number of still-uncertain future weeks shrinks. Near harvest there are almost no unknown weeks left to resample, so the ensemble collapses back toward a single realized outcome — producing the widen-then-narrow shape. This mirrors how real seasonal crop forecasts (which condition on realized weather-to-date and ensemble future weather) genuinely behave.
Why do different cells in the field grid end up with different NDVI and yield?
Every cell in the 10×10 grid shares the exact same rainfall and temperature trajectory (the weather is field-wide), but each cell has its own randomly generated soil quality multiplier that scales its water-holding capacity and starting moisture. Cells with higher soil quality drain more slowly and stay above the water-stress threshold longer during dry spells, so they sustain a higher NDVI and accumulate more biomass. This is exactly why real precision-agriculture platforms overlay satellite NDVI on soil maps: the same weather produces a patchwork of outcomes across a single field because soil, not just weather, gates how much of that weather a plant can actually use.
What are growing degree days (GDD) and why use a logistic canopy-growth curve?
A growing degree day accumulates whenever the average temperature is above a crop-specific base temperature (8°C here); a week averaging 20°C contributes 7 × (20−8) = 84 GDD. Crop development — germination, leaf expansion, canopy closure, senescence — tracks cumulative GDD far more reliably than calendar time, which is why agronomists schedule planting, spraying and harvest windows by GDD rather than by date. A logistic curve is used for potential canopy (NDVI) growth because real canopy development is slow at emergence, accelerates through the vegetative stage, then saturates once the canopy fully closes and can absorb no more additional light — an S-shaped, not linear, trajectory that a logistic function captures with a single inflection-point parameter.
How does this compare to real operational satellite yield-forecasting systems?
Systems such as NASA Harvest, the EU's MARS Crop Yield Forecasting System and commercial platforms like Planet's crop-health products combine real multispectral satellite passes (Sentinel-2, Landsat, MODIS), gridded reanalysis or station weather data, and soil databases, then fuse them with statistical or machine-learning yield models trained on years of historical harvest records per region. This simulation reproduces the same conceptual pipeline — vegetation index, weather-driven stress, light-use-efficiency biomass accumulation, ensemble uncertainty — but with synthetic imagery, hand-set (not fitted) coefficients, and no real historical calibration, so it should be read as a mechanism demonstration rather than a production forecasting tool.
Why does moving the rainfall or temperature slider trigger a full reset instead of adjusting the current run?
The sliders set the mean of the random weather-generating process for an entire season, not a single week's value, so changing them mid-season would silently rewrite history the model has already "observed" — which is physically incoherent (you cannot retroactively change how much rain already fell). Instead, this simulation treats each slider change as defining a new what-if scenario: click reset (or move a slider and reset) to resample a fresh season, complete with its own weather trajectory, soil-moisture history and ensemble forecast band, from week zero.
Each week, a shared rainfall/temperature draw updates a per-cell soil-moisture bucket and field-wide growing-degree-day total; a logistic canopy curve gated by water/heat stress sets NDVI, which drives a light-use-efficiency biomass model into a harvest-index yield — while a 24-member Monte Carlo ensemble recomputes the forecast band every week.
3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install