From orbit to the row, and back. A real Penedès landscape, a real 2024 season, played end to end.
The landscape around Canyelles, Penedès
10 m satellite pixels mix vine, soil and cover crop, so this is block-level trend only. Dates where haze slipped past the cloud mask are skipped and counted above. The 2024 story is a drought, not an outbreak: the DO Penedès brought in its earliest harvest on record (Nació Digital, Wine Intelligence).
1 · Detect satellite against drone, same day
Both images are from 18 June 2024. The satellite sees the block. The drone sees the row (the published mosaic has 0.9 cm pixels).
Drone tiles are being built — the satellite side is live
—computed from the drone cell grid when it is published
Drone vigour is relative: read from the colour of the public NDVI map, which is stretched per flight. It ranks vines within the block; it is not absolute NDVI.
1 · Detect the 3D canopy twin
A drone surface model minus an estimated ground gives the canopy. Columns rise where the canopy is 0.5 m or taller. Rows are found from the pattern itself.
Derived Rows and gaps are detected from the canopy height model alone. A gap is a run along a row where the canopy stays under 0.5 m for more than 1.5 m. Each gap is a candidate, not ground-verified: a scout confirms or rejects it in the field.
Columns are coloured by canopy height until the 1 m drone vigour grid loads, then by relative drone vigour.
2 · Risk a disease model on public weather
Hourly 2024 weather drives two published rules: the Gubler-Thomas powdery-mildew index and the 3-10 downy-mildew rule. Model output from public weather, not field-confirmed disease.
Weather and risk series are being computed from ERA5
Cells ranked by risk × low vigour on the selected day. Needs the drone cell grid.
Gubler-Thomas: 0-100, +20 per day with 6 h or more at 21-30 °C, -10 otherwise; 0-30 low, 40-50 intermediate, 60-100 high (UC IPM). 3-10 rule: 10 °C, 10 cm shoots from an assumed budbreak date (shown on the chart), and 10 mm or more of rain in 24-48 h.
3 · Scout an offline field app
Turn the phone offline, walk the route, log what you find. Entries queue on the device and sync when the signal returns. Confirmed or rejected findings become labelled ground truth for retraining.
Standalone app: vineloop.geolink.dev/field installs as a PWA and keeps working offline.
4 · Prescribe zones and a file the sprayer accepts
k-means runs in a Web Worker on the canopy cells. Set the base rate and the adjustment per zone, then download the prescription in the format your machine reads.
| Zone | Area | Adjust | Rate |
|---|
—from your inputs above, not an agronomic recommendation
Published canopy-adaptive studies report 20-55% less spray volume (Gil et al. 21.9%; CARTS 20-55%). This demo computes only what you typed.
Every file name carries DEMO-SIMULATED-NOT-AGRONOMIC-ADVICE. Format-faithful structure, not field-validated.
5 · Apply the closed-loop replay
Illustrative checklist, not legal advice.
6 · Re-measure the real second flight
No treatment was applied in this public dataset, so each zone should keep its place: the weak zone on 18 June is still the weak zone on 3 July. After a real application, the treated zone is the one that should climb. This is the check an operator runs after every application.
Both drone dates are being tiled
Zone ranks need both drone cell grids
Average rank of each prescription zone inside its own flight (0 = weakest vine in the block, 100 = strongest). Ranks, not values, because each flight is stretched on its own.
Grower report shareable and printable
The state of this page lives in the link. Copy it and the same view opens on another phone; print it and you get an A4 report.
Terciles of the 1,036 parcels by mean satellite NDVI on the hero date. Ha and parcel counts are real; the classes are a convention.
From the entries you logged in the field app above. Simulated scenario.
What Geolink builds
For growers and agronomists: parcels, seasons, drone flights and zones in one 3D web map that opens on a phone. White-label, on your domain.
For scouts: routes, findings, photos and notes that queue on the device and sync later. Every confirmed or rejected finding becomes labelled training data.
Prescription exports (shapefile + GeoTIFF, XAG, ISOXML), OGC and ArcGIS services, spray and compliance records, WhatsApp alerts.
| Layer | Status | Source | Licence | Date |
|---|---|---|---|---|
| Parcels | Real | DUN-SIGPAC 2024, Generalitat de Catalunya (DARPA), via Fields of The World harmonized data | Generalitat open data licence | 2024 |
| Satellite NDVI series | Real | Copernicus Sentinel-2 L2A via Element84 Earth Search | Copernicus / ESA open | Mar-Oct 2024 |
| Drone orthomosaics, canopy model | Real | DJI Mavic 3M flights by Noumena, EU ICAERUS UC1, via Zenodo. Public research dataset, not a client. | CC BY 4.0 | 18 Jun and 3 Jul 2024 |
| Rows, gaps, canopy columns | Derived | Computed from the canopy height model. Gaps are candidates, not ground-verified. | — | 2024-06-18 |
| Terrain and slope | Real | Copernicus DEM GLO-30 | © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018, provided under COPERNICUS by the European Union and ESA | — |
| Weather | Real | ERA5, Copernicus Climate Change Service | Copernicus open | 2024 |
| Disease risk lanes | Model | Gubler-Thomas and 3-10 rules on the weather above. Not field-confirmed disease. | — | 2024 |
| Zones and rates | Derived Simulated | k-means on canopy cells; rates come from the visitor's inputs | — | — |
| Scout points and findings | Simulated | Seeded scenario plus whatever the visitor logs | — | — |
| Flight and spray track, coverage, compliance | Simulated | Seeded scenario on the real block | — | — |
| Basemap | — | Esri World Imagery (Esri, Maxar, Earthstar Geographics, and the GIS User Community) | Esri terms | — |
Cloud mask. Sentinel-2 SCL classes 3, 8, 9 and 10 masked; scenes under 20% cloud; the -1000 BOA offset applied for processing baseline 04.00 and later. Dates where haze slipped through are flagged and skipped.
Indices. NDVI = (B08 - B04) / (B08 + B04). NDRE = (B8A - B05) / (B8A + B05). Per parcel: mean, p10, p90 and valid-pixel share.
Drone vigour. The public dataset ships NDVI as a colour picture stretched per flight. Vigour 0-1 is read from its hue (red low, green high) and averaged per 1 m canopy cell. NDVI recomputed from the separate band mosaics was rejected: those mosaics are offset by up to 2 m, and the same vines two weeks apart agreed at r 0.005. The hue index agrees at r 0.67. Low vigour is the weakest 20% of each flight.
Canopy. CHM = DSM minus a morphological-minimum ground estimate; cells at 0.5 m or more count as vine (Burgos et al.). Gaps: runs under 0.5 m longer than 1.5 m along a row.
Zoning. k-means (k = 2-5) on canopy cells only, seeded for repeatability, run in a Web Worker.
Weather. Hourly ERA5 at 25 km. The cell nearest the block is half sea, which flattens the day-night swing to 5 °C, so the inland Penedès cell next to it is used (swing 10 °C). ET0 is Hargreaves, from daily minimum and maximum temperature.
Disease rules. Gubler-Thomas powdery-mildew index (UC IPM); 3-10 downy-mildew rule with a stated assumed budbreak. The Goidanich index is left out until its lookup table is sourced.
Geolink IT Engineering builds the GIS, field apps and dashboards. Your hardware stays the hero.