Boundary-free monitoring

Boundary-free monitoring

Precision agriculture tools typically require field boundary registration before returning any data — upload a shapefile, draw a polygon, or enter parcel coordinates. This proof of concept tests whether that step is necessary for first-pass crop inspection. A farmer who has navigated a map to their field has already defined an area of interest. Capturing that implicitly removes a registration barrier that excludes the users with the least administrative infrastructure. The Explorer turns that premise into a tactile boundary-free monitoring surface: pan, load, orbit, and compare crop signals without drawing a boundary first.

The premise

Field boundary registration is the first gate in most precision agriculture platforms. Before a farmer can see any data about their land, they must supply a digital boundary — a GIS file, a drawn polygon, or a parcel identifier from a cadastral registry. For operations with existing spatial infrastructure this is routine; for smallholders, tenant farmers, or anyone monitoring an unfamiliar area, it is a meaningful barrier.

The premise here is that the map is already the boundary. A user who has navigated to a field and zoomed in to a working inspection level has expressed a spatial intent as clearly as a drawn polygon would. Treating the visible viewport as the area of interest eliminates registration without sacrificing the ability to read crop health, moisture, and chlorophyll status across that area.

The explorer

Pan to any agricultural area, zoom to field scale, and click Load indices. The explorer requests seven Sentinel-2 derived spectral indices for the current viewport bounds — NDVI, NDRE, NDWI, NDMI, EVI, SAVI, and CIre — and renders each as a Three.js terrain mesh above a high-resolution satellite tile base. Surface height maps the index value; the satellite imagery below provides spatial orientation against field boundaries, roads, and hedgerows. Switching between indices rebuilds only the terrain mesh — the base layer and camera position remain fixed. The result is tactile rather than form-driven: the current view becomes the working object, and inspection happens by moving through the surface.

Data arrives from a Cloudflare Worker that proxies Sentinel Hub requests. All seven indices are fetched in a single call for the current viewport and the most recent cloud-free scene. If the live path is unavailable, a procedural fixture preserves the interaction model with spatially coherent synthetic data. The fixture is not real crop data and should not be read as such.

Spectral indices

Each index targets a different agronomic signal: canopy density, nitrogen and chlorophyll status, plant water stress, canopy moisture, or soil background. Sentinel-2 is particularly suited to crop monitoring because it carries three red-edge bands (B05, B06, B07) absent from most earlier sensors, enabling direct measurement of the chlorophyll absorption edge — the primary indicator of nitrogen status and photosynthetic capacity. In the formulas below, ρ denotes surface reflectance in the named spectral band.

Index reference

NDVI — Normalized Difference Vegetation Index

Sentinel-2 · B08 (NIR, 842 nm) · B04 (Red, 665 nm)

Chlorophyll absorbs red light strongly at its photosynthetic peak (~680 nm), while the palisade and spongy mesophyll layers of a leaf reflect and scatter NIR radiation intensively through multiple internal cell-wall interfaces. The reflectance contrast between these two regions therefore scales with canopy greenness. NDVI normalises this contrast to the interval [−1, 1]. Dense healthy canopy yields values of 0.6–0.9; sparse or stressed vegetation 0.2–0.5; bare mineral soil approximately 0.1; open water and cloud produce negative values. NDVI saturates in high-biomass canopies because chlorophyll absorption in the red channel reaches a floor before NIR reflectance reaches its ceiling with increasing leaf area index.

NDRE — Normalized Difference Red Edge

Sentinel-2 · B08 (NIR, 842 nm) · B05 (Red Edge, 705 nm)

The red-edge region (680–750 nm) is the steep reflectance slope between the chlorophyll absorption maximum and the NIR plateau. The position and gradient of this slope shift as a function of chlorophyll concentration: a nitrogen-deficient or senescing leaf narrows its absorption well, and reflectance at B05 (705 nm) rises accordingly. By comparing NIR to the red-edge band rather than to the red band, NDRE measures chlorophyll content rather than simply canopy cover. It does not saturate in dense crops where NDVI has ceased to discriminate, making it the preferred index for nitrogen management in precision agriculture. Typical values for a healthy crop canopy fall in the range 0.2–0.5.

NDWI — Normalized Difference Water Index

Sentinel-2 · B03 (Green, 560 nm) · B08 (NIR, 842 nm)

Open water reflects green light moderately and absorbs NIR strongly, producing a positive Green − NIR contrast. Vegetation inverts this relationship: chlorophyll partially transmits green light while the mesophyll strongly reflects NIR. The index therefore reliably separates open water bodies (positive values) from vegetated and dry surfaces (negative values). Following McFeeters (1996), this formulation uses B03 and B08; a related index by Gao (1996) substitutes SWIR for green and is better understood as a canopy moisture proxy — that version corresponds to NDMI below. In a crop context, NDWI is most informative at field margins, irrigation channels, and drainage features, and can detect inundation or waterlogging at plot scale.

NDMI — Normalized Difference Moisture Index

Sentinel-2 · B08 (NIR, 842 nm) · B11 (SWIR, 1610 nm)

Liquid water in plant tissue absorbs strongly in the short-wave infrared through overtone vibrations of O–H molecular bonds. A well-hydrated crop canopy therefore reflects strongly in NIR (from leaf structure) and absorbs in SWIR (from leaf water), yielding a large positive NDMI. As canopy water content declines under drought stress, stomata close, cells lose turgor, and SWIR reflectance rises as water is replaced by air, reducing NDMI. This makes NDMI a more direct estimator of plant water stress than NDVI, which responds primarily to chlorophyll concentration rather than hydration state. Typical irrigated crop values fall in the range 0.1–0.4; values approaching zero or below indicate severe moisture deficit.

EVI — Enhanced Vegetation Index

Sentinel-2 · B08 (NIR, 842 nm) · B04 (Red, 665 nm) · B02 (Blue, 490 nm)

NDVI is susceptible to two systematic biases which EVI corrects simultaneously. First, atmospheric aerosols preferentially scatter blue light through Rayleigh scattering, contaminating surface reflectance retrievals; the −7.5 ρBlue term in the denominator reduces this effect by coupling the blue channel to the aerosol signal. Second, at high leaf area index the red channel reaches its absorption floor before NIR reflectance reaches its maximum, causing NDVI to saturate; the linear denominator with coefficients C1 = 6 and C2 = 7.5 preserves sensitivity across the full biomass range. EVI was operationally developed for MODIS and transfers well to Sentinel-2, extending useful dynamic range in dense canopies and aerosol-prone conditions. Typical cropland values during active growth are 0.4–0.7.

SAVI — Soil Adjusted Vegetation Index

Sentinel-2 · B08 (NIR, 842 nm) · B04 (Red, 665 nm)

When vegetation is sparse and does not completely cover the ground, bare soil contributes directly to the pixel-average reflectance recorded by the sensor. Dry mineral soil reflects broadly across the visible and NIR spectrum; its specific NIR-to-red ratio varies with soil brightness and moisture, introducing noise into NDVI estimates that is uncorrelated with vegetation status. Huete (1988) introduced the soil brightness correction factor L to shift the denominator away from the singularity at the origin, where NDVI is most sensitive to soil background variation. At L = 0.5 (moderate fractional cover), SAVI reduces soil-induced variance by roughly half relative to NDVI. It is the appropriate index for early-season monitoring, arid and semi-arid landscapes, or any regime where fractional vegetation cover remains below approximately 30 %.

CIre — Chlorophyll Index Red Edge

Sentinel-2 · B07 (NIR, 783 nm) · B05 (Red Edge, 705 nm)

Rather than normalising the NIR–red-edge contrast, CIre expresses it as a simple ratio minus one, which preserves near-linear sensitivity over a wide range of chlorophyll concentrations. B05 (705 nm) sits within the chlorophyll absorption well at the base of the red edge, while B07 (783 nm) lies in the NIR plateau beyond chlorophyll absorption. The ratio ρNIR / ρRE therefore scales directly with chlorophyll content per unit leaf area, and subtracting one sets the baseline at reflectance equality. Unlike normalised-difference forms, CIre is unbounded above zero, maintaining sensitivity at high chlorophyll concentrations where NDRE begins to compress. Agricultural crops in active growth typically return values of 0.5–2.5; values above 2 indicate dense, well-nourished canopies with high photosynthetic capacity.

Approach

The area of interest is always the current viewport. There is no draw tool, no saved boundary, and no coordinate input. A farmer who wants to inspect a different field moves the map to it. This removes the registration step that most PA platforms place at the front of every workflow.

Seven indices are requested in a single Worker call for the same viewport and scene date. All are cached client-side; switching between them rebuilds only the terrain mesh without a new network request. Each index uses its own colorscale and normalised height range so that the terrain surface is visually comparable across indices regardless of their absolute scales — NDVI in [−1, 1] and CIre in [0, 6] both occupy the same vertical stage.

Surface height represents the index value, not terrain elevation.

Tech stack

MapLibre GL JS — interactive map rendering MapTiler Cloud — basemap and satellite tile provider Three.js — terrain renderer and satellite tile base plane Sentinel-2 L2A — satellite imagery source (production path) Sentinel Hub Process API — RGB and index products (production path) Sentinel Hub Catalog API — scene search and selection (production path) Cloudflare Workers — secure OAuth proxy (production path) GitHub Pages — static frontend hosting

Try it

Pan to an agricultural area, zoom to field scale, and click Load indices. No boundary registration required — the visible viewport is your area of interest. Seven Sentinel-2 spectral indices render as a terrain mesh above a satellite tile base, with index tabs to switch between them without a new request.