The Cairngorms Connect is the largest landscape restoration project in the UK. Four landowners (RSPB, Wildlands Ltd, FLS, and NatureScot) embarked on a 200-year vision to restore over 600 km2 of land in the Cairngorms National Park with an emphasis on natural processes.
In July, 2023, the Centre for Landscape Regeneration commissioned a flight over a 400 km2 stretch of land over the area, collecting both high resolution RGBI imagery (0.1m ground resolution) and LiDAR data. Various research projects were built on this dataset, including studies into carbon cycling, shrub ecology, tree regeneration, and deadwood detection.
Existing habitat maps of the area are based on Sentinel 2 satellite data at a ground resolution of 10m. While this dataset provides a good basis for some research objectives, a habitat map that could leverage the high resolution of the aerial imagery would potentially be able to capture fine-scale variations in habitat structure more accurately. This project involves applying new developments in geospatial machine learning (specifically the Tessera one developed locally in Cambridge) to achieve this.
1 Project Notes
Isabel Mansley successfully ran the project as a summer internship over eight weeks in 2025 and kept weeknotes throughout.
- Week 1, 30 June. Onboarding, and a first read of the Tessera and Detectree2 papers, with background reading on the Cairngorms and the Sentinel satellites. Installed QGIS, worked through the tutorials, and had a first look at the Space Intelligence land cover map of Scotland.
- Week 2, 7 July. Got Detectree2, which delineates individual tree crowns from aerial imagery, running on sample data, and the Tessera app running on Windows. The field data offered as training labels named habitats inconsistently and in the wrong format, so it was rewritten into the form the classifier reads.
- Week 3, 14 July. The first Cairngorms map came out of plot data alone, so it had no class for water or built up areas and forced them into forest or bog, and read every road as a river. Roads are awkward as they are narrower than the model's ground resolution, so a point placed from high resolution imagery describes something the model cannot see. Choosing labels where the model had already mistaken a road for a river worked better than placing them by eye. Around twenty hand-placed labels per missing class fixed most of the rest. The scheme was then reworked into 13 classes, merging pairs such as restored and degraded heath, where restoration had only just begun and the difference on the ground is still slight.
- Week 4, 21 July. A new embedding fixed the tiling faults in the old one, and the classifier ran over the Cairngorms in about 20 minutes on a laptop! Hand-checking several hundred random New Zealand points showed that most failures were not the wrong class, but points falling just outside the polygon that generated them: on a road beside a grassland, or on the scree at the edge of a lake. Generating random points with a buffer from polygon edges would remove much of the need to verify them by hand. Also began condensing sixteen years of Albertine Rift field data, half of it in French, into a workable set of classes.
- Week 5, 28 July. Confusion matrices against the NatureScot and Space Intelligence maps of the area. More telling than the headline scores was that the two disagree in opposite directions: the polygon maps generalise over small features inside a larger one, while Tessera fills the gaps between grassland and forest with heath. The largest single discrepancy, woodland predicted as heath, turns out to be mostly clearfell that the older polygon map still records as woodland. Water predicted as urban traces to the shingle beside lakes and rivers, which has no class of its own and so collects the nearest bare-ground one; an argument for adding one.
- Week 6, 4 August. Classified the North Island of New Zealand. Isolated stray pixels were cleaned up with a majority filter applied only where the model reports low confidence, which keeps a genuine one-pixel pond in the middle of a forest while removing a shadow misread as water. The complication is that confidence ceilings differ sharply by class: alpine heath never becomes anywhere near as confident as heath does, so a single global threshold quietly smooths one class away altogether. Per-class thresholds are the obvious fix.
- Week 7, 11 August. Compared the 2017 and 2024 embeddings to look for change. The raw difference is dominated by habitat edges, where the model must pick one class for a mixed pixel, and the confusion matrix needed normalising before heath stopped swamping everything else. Counting a change only where 2024 differs from 2017, 2018 and 2019 alike cuts that noise enough to show blocks of clearfell and the regrowth following them.
- Week 8, 18 August. A UNet, which would give the classifier spatial context instead of working pixel by pixel, was considered and set aside as it needs labelled tiles rather than the labelled points collected so far. Smoothing was extended instead to weigh a pixel's top three candidate classes against its neighbours, which works but is slow over a large area. Adding verified road and river points sharpened the rivers but over-classified water and urban areas, probably because some of the approved roads are closer to trails and read as the habitat around them. The lesson is that the training set needs more points across every class rather than two: the Cairngorms had a few hundred against several thousand for New Zealand, and heath, with by far the most, is the class the model over-predicts. Bog is the awkward one, having no convenient OpenStreetMap layer to sample from and so needing field data.
We're picking up Isabel's work in the next iteration of Tessera habitat maps in 2026 next!
