Drone Imagery Analysis

A collaborative ecological mapping register

Social-Ecological Resilience

Mapping tree crowns for community conservation.

What this tool does

Species-level tree inventories are costly and hard to get, most of all for the communities that depend on these forests. This tool takes a high-resolution drone image, outlines each tree crown, groups crowns that look alike, and lets you name each group with a species. The result is a georeferenced map, exported as KMZ polygons that open in standard GIS tools.

Municipalities, students and conservation groups can all work from the same open dataset, and correct or add to it over time.

Access via Google SSO.
Browse shared surveys, no sign-in →
Pipeline walkthrough
8 min
After sign-in, the Walkthrough tab also has the project slides.

Drone Imagery Analysis

drone imagery to species map

1 Name the project
Give your survey a descriptive name (e.g. North block, June 2024).

The server generates a unique Project ID — all uploads, runs and outputs are stored under it.

After creation a Browse output files link may appear if FileBrowser is configured, letting you monitor files as the pipeline generates them.

A unique ID is generated server-side; everything else hangs off it.

2 Upload the orthomosaics
Upload your drone surveys as GeoTIFFs (.tif) — RGB or multispectral both work.

A project keeps a library: select several files at once, or add more on a later visit. Adding never disturbs a run you have already done.

Each run uses one orthomosaic and produces one KMZ, so the library is where you tick which one this run gets.

The library is add-only. Nothing here removes an orthomosaic, so a run's inputs stay on the server alongside its results.

For large files (>500 MB) use the Google Drive link option — the server downloads it directly.

One transfer gets 45 minutes. Past that the server stops it and keeps nothing, so a stalled upload cannot tie up the machine.

Upload one or more GeoTIFFs — select several at once if you have them. Each run uses exactly one, ticked below.

or fetch from a public Google Drive link (downloads server-side; large files take a while):

3 Configure & analyze
Runs the full detection + clustering pipeline:
  • Detectree2 — detects individual tree crowns
  • DINOv2 — extracts visual features per crown
  • KMeans — clusters crowns for each k in your k_list
  • t-SNE — 2D visualisation plots
After it finishes, open Browse output files to inspect cluster plots and sample crown images — this helps you pick the right k before labelling.

Pick the models and tune the run, then start detection + clustering.

Not sure what these settings do? The guide explains every one in plain language, with what happens if you turn it up or down.

Open the Parameter Guide

Defaults work well for most surveys. Each field explains what it does below; the ? beside a name opens its full explanation.

Detection — Detectree2 · finds individual crowns
Advanced · changes how tiles reach the model
Crown embedding — DINOv2 · turns each crown into a feature vector
Clustering — PCA + KMeans · groups similar crowns

4 Label the clusters
Before labelling: open FileBrowser and navigate to your project folder. Look at:
  • t-SNE scatter plots — how well-separated are the clusters?
  • Sample crown images per cluster — do they look like distinct species?
Set Chosen k (prefilled with the recommended value) and type your species names — the cluster table fills in automatically. Assign a species to each cluster, then Submit labels.

Clusters left as unlabelled are excluded from the final species map.

Set your chosen k and species names — the cluster table fills in automatically. Assign a species to each cluster, then submit.

Prefilled with the recommended k after analysis. The table below has one row per cluster.
These become the dropdown options for every cluster, e.g. oak, pine, birch.

Leave a cluster as unlabelled to exclude its crowns from the final species map.

5 Finalize & export
Assigns species labels to every detected crown and exports:
  • species_map.kmz — open in Google Earth Pro to see crowns coloured by species
  • species_map.csv — per-crown data with coordinates, species & confidence
  • Distribution summary — crown count per species
Download links appear below on completion. Use Browse all output files to access every file from the full pipeline run.

Assign species, validate (if ground truth was provided), and write the KMZ + CSVs.

Reference

Parameter Guide

How to run a survey, and what every setting does.

On this page

    Running a survey, start to finish

    Five steps. The default settings are fine for a first run. The one thing you must do yourself is name the groups in step 4.

    1
    Name the project

    Anything you will recognise later, like "North block, June survey".

    2
    Upload your drone image

    A GeoTIFF (.tif) from your survey, or paste a Google Drive link. Large files take a few minutes.

    3
    Press Run analysis

    The tool outlines every tree crown and sorts the crowns into groups that look alike. A large survey can take tens of minutes; you can close the tab and come back.

    4
    Name the groups

    Look at the sample crowns shown for each group and choose the species you recognise.

    5
    Finalize and export

    You get a map file you can open in Google Earth or QGIS, with every tree outlined and labelled.

    If the result looks wrong, the table below shows which setting to change.

    What it does

    1. Your survey image is one large GeoTIFF.
    2. It is cut into small squares called tiles, which overlap slightly.
    3. The model looks at each tile and outlines every tree crown it finds.
    4. Outlines from neighbouring tiles are joined and duplicates are removed.
    5. Each crown is converted into a list of numbers that describe its colour and texture.
    6. Crowns with similar numbers are put in the same group. You then name each group with a species.

    The settings on this page affect points 2, 3, 4 and 6 of this list.

    If your map looks wrong

    Find what you see in the first column, then follow the link to the setting to change.

    What you seeUsual causeSetting to try

    How big does a tree look to the model?

    Each tile, together with its buffer, is resized to a fixed picture size before the model sees it. So a bigger tile does not give the model a bigger picture. It gives a picture of the same size with everything in it smaller, and trees that become too small are not detected.

    pixels per metre = picture size ÷ (tile size + 2 × buffer). With the defaults this is 512 ÷ (10 + 2 × 10), about 17 pixels per metre. Three settings control it: tile size, buffer and picture size.

    ← Back to pipeline

    Guided tour

    Pipeline Walkthrough

    Overview

    From a drone image to a species map

    You upload one drone orthomosaic. The tool outlines each tree crown and sorts crowns that look alike into groups. You name each group with a species, then download the result as a map and as tables.

    This page has a video of the full process, the project slides, and one complete run shown as nine screenshots. All of it comes from real runs on real imagery.

    To see what a particular setting does, use the Parameter Guide.

    Walkthrough video

    Watch the walkthrough

    8 minutes, with subtitles on screen. Use a chapter button to jump to that part.

    Project slides

    How the pipeline works, in 14 slides

    The method behind each step: the detector, the settings, the charts and the outputs. Use the buttons, or the arrow keys once the slide is selected.

    Slide 1: The pipeline
    Step 1 of 9
    1. Name the project, then Create project

      App Step 1

      The name is only for you. The long ID under it is what the software uses: it is the folder on the server where everything from this project is saved. If output sharing is switched on, a Browse output files link appears beside it.

      Watch forWait for the created line. The later steps do not work until it appears.
    2. Click Choose Files and pick one ortho GeoTIFF

      App Step 2 · a

      Choose Files opens your computer's file picker. This run used s1_tree.tif. After you pick a file, the card shows its name and size.

      Watch forThe picker only lists the file types the app accepts.
    3. Click Upload GeoTIFF and wait for the file to be registered

      App Step 2 · b

      If the file is not on this computer, paste a public Google Drive link in the box below and press Fetch from Drive. The server downloads it directly, which is the better way for large files (hundreds of MB).

      Watch forThe status line shows what the server received: registered · s1_tree.tif · 11422×13166 px · 4 bands, and the image appears ticked in the list below. Check that the size and band count match your file.
    4. Name the run, and open the Parameter Guide before changing settings

      App Step 3 · a

      The run name can be anything; here it is run 1. After a run finishes you can change the settings and press Run analysis again to start run 2 on the same image. You do not need to upload it again.

      Watch forThere are two ways to read about a setting: the Open the Parameter Guide button, and the small ? next to each setting.
    5. Work down the settings, then click Run analysis

      App Step 3 · b

      Settings used in this run: tile size 20 m with a 15 m buffer, confidence 0.5, up to 6 trees per tile, crown area between 4 and 200 m², full_coverage switched on under Advanced, the default DINOv2 feature extractor, and group counts 2, 4, 6, 8 and 10. With the default settings this image gives 173 trees; with these settings it gives 783. The project slides above show both results side by side.

      Watch forThe app tries every group count in the list and then suggests one. You make the final choice in the next step.
    6. When the run finishes, check the outlines, then each group count

      App Step 3 · c

      When the run finishes, the results appear below the button: the Detected crowns picture, three charts that score each group count, and one button per group count. The app's suggestion is marked; here it is four groups.

      Watch forCheck the outlines first. If most trees have no outline, grouping will not help: change the detection settings and run again. This run outlined 783 crowns.
    7. Choose how many groups, then type your species names

      App Step 4 · a

      The app suggested four groups, but this survey only needed to separate acacia from everything else. So we opened k=2 in the review and pressed Use k = 2 and name these groups. This fills in the number here and gives the table one row per group, each starting as unlabelled. The species names you type in the box become the dropdown options for every row.

      Watch forYou do not have to use the suggested number. Choose the number of groups that matches what you want to separate.
    8. Assign a species to every row, then click Submit labels

      App Step 4 · b

      Look at the sample crowns of each group and choose a species for it. The names go into the downloaded files exactly as typed, so check the spelling.

      Watch forTrees in a group left as unlabelled are not included in the final map. Use this for groups that are clearly rooftops or bare ground.
    9. Click Finalize & export and collect your downloads

      App Step 5

      The app shows the species map, with each crown coloured by the species of its group. Below it are the download links: the KMZ map for Google Earth, the same map as an image, two CSV tables, a STAC metadata file and the crown outlines as GeoJSON.

      Watch forThe last line gives the count per species: in this run, 783 trees, 207 acacia and 576 non-acacia. Re-run starts a new run on the same image; New analysis starts a new project.

    Where to go next

    To start your own run, open the Pipeline tab and begin at step 1. The default settings are a reasonable first try.

    If the map looks wrong, the Guide has a table of common problems and the setting to change for each one.