Processing and products

Documentation · what goes in, what happens, and what comes out.

Inputs

RGB photosFrom any drone camera, JPEG or TIFF with GPS in the metadata. At least 5 images, overlapping by 65 % or more (70–72 % recommended; 83 % for good 3D).
DJI Mavic 3M multispectralThe …_MS_G/R/RE/NIR.TIF images as recorded (do not rename them), plus the images of the reflectance panel taken just before or after the flight. The RGB …_D.JPG images may be included; with calibration on they are set aside.
Ground control pointsOptional: a GCP file improves absolute georeferencing (Select Images and GCP, or the GCP Interface in the menu).
SizeUp to 2,500 images per task. Larger surveys: split into tasks.

What happens

  1. Upload and checks. WebODM receives the images. With Resize Images on, they are resized before processing (calibration sets it to full size, because multispectral images must not be resized).
  2. Calibration (Mavic 3M, if ticked): the images are converted to reflectance with the panel and the sunlight sensor, checked, and the panel images and oblique images set aside. See Calibration method.
  3. Photogrammetry with OpenDroneMap on the JIC processing cluster: matching, camera positions, point cloud, surface model, orthomosaic. Tasks queue when the cluster is busy.
  4. Results appear on the task: map, 3D model, downloads.

Processing settings

Choose them in Options on the new task. Two presets matter most:

DefaultOpenDroneMap's general settings: right for most RGB surveys.
Panel pre-calibration (DJI Mavic 3M)Set by the calibration box. Radiometric calibration off and no seam levelling (the images are already reflectance), NIR as the reconstruction band, the camera's factory lens fixed, matching restricted to the 16 nearest images (repeating trial plots otherwise cause false matches), high feature quality, DSM at 2 cm and orthomosaic at 1 cm per pixel, and RTK accuracy (0.1 m) when every position is RTK-fixed. These are the settings of the JIC cluster pipeline, so results agree.

Outputs

From Download Assets on a finished task:

Orthophoto (GeoTIFF)RGB: 8-bit red, green, blue and alpha. Calibrated multispectral: 16-bit bands Red, Green, NIR, Red edge (named in the file) and alpha, holding reflectance × 32 768: divide by 32 768 for reflectance (0–1). Alpha 0 marks areas not imaged.
Surface model (DSM)Elevation of the top surface (canopy, buildings) in metres, GeoTIFF.
Point cloudGeoreferenced, LAZ.
Textured modelOBJ (zip) and glTF (.glb).
Camera parameters, shotscameras.json (the lens used) and shots.geojson (camera positions).
ReportOpenDroneMap's PDF report: coverage, reconstruction quality, errors.
Calibration resultShown on the task (accepted / flagged / not calibrated, with reasons). The full calibration record (panel used, factors, checks, images of every panel detection) is kept with the task; ask dedal@jic.ac.uk for it.

On the map: Orthophoto, Plant Health (indices such as NDVI, with a colour scale) and Surface Model. Calibrated multispectral orthophotos look dark in the Orthophoto view because reflectance values are small: use Plant Health.

Plot extraction (DEDAL Extraction)

On a finished task's map, the Plots button gives one row of values per plot. Plots are made the same way as in the JIC Drone Imagery Data portal (the same code): draw the trial area from plot 1's corner, then

  • Auto-fit to imagery: the rows, columns, plot size, alleys and angle are found from the flight's NDVI (multispectral) or colours (RGB), with a quality rating (good, fair, poor) and notes when the pattern is weak. Optional hints: rows, columns, number of plots, plot 1 drawn; plots can snap onto their own crop. Best on a green crop with bare alleys (mid-spring to June).
  • Fit to area or Fixed plot size: rows × columns, gaps and plot sizes in metres, from plot 1's corner.
  • Whole field: the area as one plot.
  • Import: GeoJSON, zipped shapefile or KML/KMZ, in any coordinate system (British National Grid through the OSTN15 grid, so plots land within centimetres).

Plots can then be moved, resized and removed, numbered row by row (optionally serpentine), and matched to a plot sheet (CSV or Excel) by row and column or in plot order; the sheet's columns (variety, treatment, rep, ...) go into the results. Downloads: CSV and GeoJSON; the plots are kept with the task.

  • Indices: multispectral NDVI = (NIR − R)/(NIR + R), NDRE = (NIR − RE)/(NIR + RE), GNDVI = (NIR − G)/(NIR + G); RGB VARI, GLI and ExG. The same definitions as the cluster pipeline.
  • Pixels left out: outside the plot, outside the imaged area (alpha 0), or with no signal.
  • Large plots (above about 4 million pixels, e.g. a whole field) are sampled every few pixels; the CSV says so (sampled_cm).
  • Heights come from the surface model: median and 95th percentile elevation, and the relief within the plot (95th − 5th percentile) as a first estimate of canopy height. For true plant height, subtract a bare-ground elevation.

All columns: Reference.

QGIS project

A flight's QGIS project (Plots panel → QGIS project, or the QGIS Integration page) is a zip, streamed as it is made, with a folder that opens in QGIS 3.34 or later. Layers refer to the files by relative paths:

  • Plots (plots.geojson, the last extraction): coloured by mean NDVI in six equal classes between the lowest and highest plot (VARI, GLI or ExG for RGB flights), labelled with the plot code when zoomed in.
  • NDVI (ndvi.vrt, multispectral only): a GDAL virtual raster that computes (NIR − Red)/(NIR + Red) from the orthophoto as QGIS reads it (GDAL's norm_diff pixel function, GDAL 3.8+), styled red to green from 0 to 0.9. It uses the orthophoto's overviews, so it stays fast when zoomed out.
  • Surface model (dsm.tif): styled from its 2nd to 98th percentile; off at first.
  • Orthophoto (orthophoto.tif): multispectral as NIR / Red / Green false colour, stretched to the 2nd–98th percentile of each band, with the alpha band as transparency; RGB in true colour.

The project's coordinate system is the orthophoto's (UTM). A README in the zip lists the bands and how to compute other indices.

DEDAL-Lab (RStudio)

  • A personal RStudio session with FIELDimageR.Extra, terra, sf, exactextractr and the tidyverse. Open it from the menu (DEDAL-Lab) or from the Plots panel (Go further in DEDAL-Lab).
  • Open a flight: the task's orthophoto, surface model, extracted plots (plots.geojson, plots.csv) and calibration result are copied into ~/flights/<flight>/, with a starter script, analysis.R: indices (NDVI, NDRE, GNDVI, OSAVI, CIre; RGB: VARI, GLI, ExG), crop/soil separation by an NDVI threshold (0.3 by default) and canopy cover, per-plot mean, median, SD and 10th/90th percentiles over the plot and over the crop only, and plant height (99th percentile of the surface in the plot minus the 5th percentile in a 0.5 m ring of alley around it). Outputs: results/plots_lab.csv, results/plots_lab.gpkg, figures. Several flights can be opened in one session.
  • Only flights you can see in DEDAL can be opened; the link is checked by WebODM and signed. The empty-session button is valid for one hour after loading the page; reload it if it has expired.
  • A session lasts 10 hours; it is then deleted with the copied flights, so download your results before. Anyone with the session's address can open it: do not share it.
  • To run the same environment on your own computer, the DEDAL-Lab page offers its Dockerfile.

Data retention

  • Projects are deleted 30 days after they are created: download what you need.
  • DEDAL-Lab sessions and their files: 10 hours.
  • Your account stays until you remove it (Opt Out). See the Terms and Conditions.