# Georectifying drone image data over water surfaces without fixed ground control: methodology, uncertainty assessment and application over an estuarine environment

Jennifer Watts, Thomas Holding, Karen Anderson, Thomas G. Bell, Bertrand Chapron, Craig Donlon, Fabrice Collard, Neill Wood, David Walker, Leon Debell, et al.

► To cite this version:

Jennifer Watts, Thomas Holding, Karen Anderson, Thomas G. Bell, Bertrand Chapron, et al. Georec-
tifying drone image data over water surfaces without fixed ground control: methodology, uncertainty
assessment and application over an estuarine environment. Estuarine, Coastal and Shelf Science, 2024,
305, pp.108853 (doi: 10.1016/j.ecss.2024.108853 hal-04731648)

HAL Id: hal-04731648

https://hal.science/hal-04731648v1

Submitted on 14 Oct 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>
<figure><img src="image_2.png" /></figure>

<figure><img src="image_3.png" /></figure>

Check for
updates

# Georectifying drone image data over water surfaces without fixed ground control: Methodology, uncertainty assessment and application over an estuarine environment

Jennifer Watts<sup>a,*</sup>, Thomas Holding<sup>b</sup>, Karen Anderson<sup>c</sup>, Thomas G. Bell<sup>d</sup>, Bertrand Chapron<sup>e</sup>, Craig Donlon<sup>f</sup>, Fabrice Collard<sup>g</sup>, Neill Wood<sup>h</sup>, David Walker<sup>i</sup>, Leon DeBell<sup>j</sup>, James P. Duffy<sup>k</sup>, Jamie Shutler<sup>a</sup>

## ABSTRACT

Light-weight consumer-grade drones have the potential to provide geospatial image data to study a broad range of oceanic processes. However, rigorously tested methodologies to effectively and accurately geolocate and rectify these image data over mobile and dynamic water surfaces, where temporally fixed points of reference are unlikely to exist, are limited. We present a simple to use automated workflow for georectifying individual aerial images using position and orientation data from the drone's on-board sensor (i.e. direct-georectification). The presented methodology includes correcting for camera lens distortion and viewing angle and exploits standard mathematics and camera data processing techniques. The method is used to georectify image datasets from test flights with different combinations of altitude and camera angle. Using a test site over land, directly-georectified images, as well as the same images georectified using standard photogrammetry software, are evaluated using a network of known ground control points. The novel methodology performs well with the camera at nadir (both 10 m and 25 m above ground level) and exhibits a mean spatial accuracy of ±1 m. The same accuracy is achieved when the camera angle is 30° at 10 m above ground level but decreases to ±2.9 m at 30° and 25 m. The accuracy changes because the uncertainties are a function of the altitude and angle of the camera versus the ground. Drone in-flight positioning errors can reduce the accuracy further to ±5 m with the camera at 30° and 25 m. An ensemble approach is used to map the uncertainties within the camera field-of-view to show how they change with viewing distance and drone position and orientation. The complete approach is demonstrated over an estuarine environment that includes the shoreline and open water, producing results consistent with the land-based field-tests of accuracy. Overall, the workflow presented here provides a low cost and agile solution for direct-georectification of drone-captured image data over water surfaces. This approach could be used for collecting and processing image data from drones or ship-mounted cameras to provide observations of ocean colour, sea-ice, ocean glitter, sea surface roughness, white-cap coverage, coastal water quality, and river plumes. The Python scripts for the complete image georectification workflow, including uncertainty map generation, are available from https://github.com/JamieLab/SArONG.

## 1. Introduction

Light-weight consumer-grade drones are an agile and cost-effective tool for capturing low-altitude (<120 m) images and fine spatial resolution geospatial information. The spatial and temporal resolution (e.g.

10 mm per pixel, sub-hourly) of data collected by drones can effectively bridge the gap between satellite datasets (m to km, daily to monthly) and discrete in situ measurements. As a result, drones have shown considerable promise for a range of scientific studies. In marine and coastal science, the applications and uses of drone technology are

<footnote><sup>a</sup> Centre for Geography and Environmental Science, University of Exeter, Penryn, Cornwall, UK</footnote>

<footnote><sup>b</sup> Max Planck Institute for Evolutionary Anthropology, Deutscher Platz 6, 04103, Leipzig, Germany</footnote>

<footnote><sup>c</sup> Environment and Sustainability Institute, University of Exeter, Penryn, Cornwall, UK</footnote>

<footnote><sup>d</sup> Plymouth Marine Laboratory, Plymouth, Devon, UK</footnote>

<footnote><sup>e</sup> Univ. Brest, CNRS, IRD, Ifremer, Laboratoire d'Océanographie Physique et Spatiale, IUEM, 29280, Brest, France</footnote>

<footnote><sup>f</sup> ESTEC, European Space Agency, the Netherlands</footnote>

<footnote><sup>g</sup> OCEAN DATA LAB, Brest, France</footnote>

<footnote><sup>h</sup> Camborne School of Mines, University of Exeter, Tremough Campus, Penryn, TR10 9EZ, UK</footnote>

<footnote><sup>i</sup> Paddle Logger Limited, Office 1 The Warehouse, Anchor Quay, Falmouth, Cornwall, TR10 8GZ, UK</footnote>

<footnote><sup>j</sup> Somerset Environmental Records Centre, Somerset Wildlife Trust, 34 Wellington Road, Taunton, TA1 5AW, UK</footnote>

<footnote><sup>k</sup> DEFRA, Seacole Building, 2 Marsham St, London, SW1P 4DF, UK</footnote>

<footnote>* Corresponding author.
E-mail address: j.h.watts@exeter.ac.uk (J. Watts).</footnote>
diverse and include coastal management (e.g. Duffy et al., 2018a,b; Pucino et al., 2021), conservation (Johnston, 2019), ecology (e.g. Venta et al., 2018) and biological oceanography (e.g. Gray et al., 2022).

To create high-quality geospatial datasets from drone image datasets, such as orthomosaics from overlapping sets of imaging data, the data first needs to be georectified. Georectification is the process by which images are corrected for spatial variations caused by the camera lens and differences in viewing angle between the drone and Earth's surface and then projected into a known coordinate system. Over terrestrial systems it is possible to generate orthomosaics without the use of measured ground control points using just the Exchangeable Image File Format (EXIF) or Extreme memory Profile (XMP) tagged images often captured by drones. These image tags typically contain information on the intrinsic camera parameters (e.g. focal length) as well as the camera position and orientation at the time of image capture. Computer-vision based photogrammetry software uses this information in conjunction with static tie-points that are visible from multiple images or viewpoints (identifiable points of interest such as points of high contrast or interesting texture) for georectification. These tie-points and image tags can be used as input to structure-from-motion techniques which estimate the 3D position of these static tie-points in space by triangulating their locations from multiple images. The 3D model produced by structure-from-motion can then be further refined using bundle adjustment algorithms, which refine the tie-point matching to produce an optimal 3D construction based on minimising re-projection errors. For higher accuracy scene reconstruction, easily discernible fixed points of reference within the camera field-of-view, such as permanent or static features or deliberately placed ground control points (GCPs) are used. These fixed positions – often surveyed using differential Global Navigation Satellite System (GNSS) real-time-kinematic (RTK) equipment – provide consistent points of reference in real-world coordinates allowing image mosaics to be constructed and evaluated. Positional accuracy without the use of GCPs can be improved using real-time-kinematic drone systems; however, these require connection to a base station (a stationary object with defined precise coordinates), and they are an order of magnitude more expensive to purchase (e.g. thousands of £ compared to hundreds of £) than standard drone imaging equipment without real-time-kinematic capabilities. Connection to a stable base station in marine environments, other than coastal regions near to infrastructure, is generally not possible. Furthermore, even with the use of a real-time-kinematic drone system, the stated accuracy values are not necessarily achieved in the final processed data products (Ekaso et al., 2020). With all of these approaches, it is common for drone collected image datasets to be processed using workflows in photogrammetry software that have been developed for land-based applications and assessment (e.g. Agisoft Metashape, Pix4D), and all rely on the existence of stationary points within the camera field-of-view within all images.

It is not possible to identify static tie-points or deploy fixed ground control points to study dynamic or mobile environments such as water surfaces (Jezierska, 2019). This is due to candidate features (e.g., breaking waves) being short lived and transient in comparison to the image capture speed or drone movements, and so these features are unlikely to exist within multiple camera views, or they will have moved, deformed, or evolved. As a result, quantitative drone studies have been mostly limited to the intertidal zone or other near-coast ecosystems and environments where either tie-points can be identified, or ground control can be deployed. Examples from the literature include using structure-from-motion photogrammetric techniques (Cavanaugh et al., 2021; Cunliffe et al., 2019; Duffy et al., 2018), image co-registration onto a basemap (Mallast and Siebert, 2019) or RTK-enabled drones (Seymour et al., 2018). In these environments, it is still feasible to produce orthomosaics by using feature-matching techniques between overlapping images (e.g. the coastline or features on the sea-bed). In contrast, studies using drones in offshore environments have mostly focused on applications where accurate georectification of image datasets is not necessary, such as observing and counting marine mega fauna

(Williamson et al., 2021, see the references within: Johnston, 2019; Kislik et al., 2018) or identification of floating macro-litter (Andriolo et al., 2022). In these examples, if a specific geolocation position is required for a target within the image view the drone position itself (longitude and latitude) is used without considering the true sensor field-of-view or orientation. Other studies have used this approach to geolocate sea-surface observations from alternative (non-imaging) drone-mounted sensors, for example infrared thermometers (Cassano et al., 2016) and hyperspectral radiometers (Shang et al., 2017). Geolocating data in this way assumes that the sensor remained at nadir (i.e. its orientation was unaffected by the movement of the drone or that the drone was horizontally and vertically stable during data collection). Please see Text S1 in the supporting information for a detailed description of the methods used in published marine studies to georecify image data over water surfaces without ground control.

If information on the camera specifications, position, and orientation (as required to determine its field-of-view) are known then individual images collected by drones can be directly georectified. This technique has been widely used in terrestrial applications, however there are limited instances in the literature where images collected by drones over solely water surfaces have been processed using direct-georectification. Examples include the use of video-stream image mosaicking techniques developed for over land (Zhou, 2010) to make observations of the sea surface (Zappa et al., 2020) and direct-georectification of individual images for the extraction of sea surface state (Almar et al., 2021). However, in both studies there is limited evidence of a rigorous assessment of the accuracy and precision of the georectification procedure used, its appropriateness for use over a dynamic water environment or its resultant impact on any extracted datasets.

The spatial accuracy of images that have undergone direct-georectification is a function of the accuracy of the interior orientation parameters (e.g. camera lens distortion) and the accuracy of the exterior orientation parameters recorded by the drone on-board sensors (easting, northing, altitude) and camera and drone orientation (roll, pitch, yaw). There is a tendency for studies to characterise data uncertainty according to the equipment's manufacturer reported maximum accuracy values (e.g. Zappa et al., 2020) as these are readily available or no more specific information exists. However, in practice, it is unlikely that maximum positioning values are achievable during all field operations and conditions (Schweitzer and Cowen, 2022). Characterising uncertainties and their impact on final image georectification accuracy is an essential step towards enabling drone-collected datasets to be used more widely for offshore marine applications.

We present and evaluate an open-source workflow for georectifying individual low-altitude consumer-grade drone images using the camera specifications and the on-board positional and orientation information recorded by the drone internal sensors. This work is limited to single image georectification as the target environments are mobile water surfaces, meaning conditions can vary at frequencies higher than the image sampling within a drone survey.

The aim of this work is to address the following research questions:

(1) Can drone image data be georectified using only on-board positional and orientation information without the use of ground control or image tie points?

(2) What is the accuracy of individual image georectification without ground control points and how does this vary with changing flight parameters (e.g. altitude and camera angle)?

(3) How does the performance of on-board sensors recording drone position (GNSS coordinates, altitude) and orientation (roll, pitch, yaw) vary and what is the impact on image georectification accuracy and precision?

## 2. Methods

The methods presented here comprise a description of two uses of a
direct-georectification workflow that has been implemented within Python. The first use is for a field experiment designed to enable assessment of the method uncertainties and the second is to collect image data over an example estuarine environment. Sections 2.1 to 2.3 describe the uncertainty assessment field experiment set-up and data collection while section 2.4 describes the direct-georectification workflow itself. Sections 2.5 and 2.8 then cover the uncertainty assessment data analysis while section 2.9 describes the collection and analysis of optical image data over an estuarine environment.

## 2.1. Field site and ground survey

On land field-tests were conducted at a site in Blackwater, Cornwall, UK (50.280 °N, 5.153 °W). These land-based field tests enabled the direct-georectification workflow (used to georectify the images) to be evaluated against a network of measured ground control points, and the same images were georectified using standard photogrammetry software (Agisoft Metashape, both with and without the use of fixed ground control points). Collectively this allows the direct-georectification method to be evaluated and placed into the context of the results from standard land-focussed georectification methods. The site is low-relief area of grass with an average elevation of 133.7 ± 1 m and a slope of 5 % as can be seen on the digital surface models shown on Fig. 1a and b. The site is exposed to broken and turbulent wind-fields due to trees and building structures along its perimeter with heights up to and over 25 m

above ground level.

A grid of ground control points (GCPs) (n = 59) with 5 m spacing was installed using black and white grid targets (Fig. 1). The GCPs used in this work consisted of a mixture of sewn or spray painted chequered black and white fabric targets (300 × 300 mm in size). Each GCP was secured to the ground on all four corners using metal pegs. The easting (m), northing (m) and elevation (m) of the centre of each target was measured using a differential GNSS (D-GNSS) RTK Leica GS-08 plus survey system (manufacturer stated accuracy of ~5 mm horizontally and ~10 mm vertically). The D-GNSS RTK system consisted of a base station, set up over a static control point installed at the field site (see Fig. 1) and a rover kit used to take the measurements.

## 2.2. Drone platform and sensor equipment

Images were collected using a DJI Mavic 2 Pro (DJI M2P) with an in-built Hasselblad camera (Horizontal field-of-view of 64.94°, Vertical field-of-view of 51.03°). Each DJI M2P image is 5472 × 3648 pixels. The DJI M2P records positional data in World Geodetic System (1984), WGS-84, as longitude, latitude and elevation using a single GNSS unit containing a GNSS chip (type UBX-M8030) enabled to receive both the Global Positioning System (GPS) and Global Navigation Satellite System (GLONASS) networks. The drone measures altitude above take-off point (metres) using a barometric sensor and altitude above ground level (metres) at the drone position using a sonar sensor. The drone measures

<figure><img src="image_4.png" /><figcaption>**Fig. 1.** The field-site and GCP set-up, location of the D-GNSS RTK base station (purple) drone take off point (yellow) and the image ground footprints for each altitude and camera angle for Dataset A (Fig. 1a, top panel) with flight paths and hover locations shown in orange (nadir) and pink (30°) and Dataset B (Fig. 1b, bottom panel) with flight paths and hover flight locations shown in black. The black and white symbols show the positions of the D-GNSS RTK measured GCP targets. Also shown is the image field-of-view specific digital surface model of site topography. These data were produced by Agisoft Metashape from a gridded aerial survey and the D-GNSS RTK measured GCP targets. (For interpretation of the references to colour in this figure legend, the reader is referred to the Web version of this article.)</figcaption></figure>
yaw (compass heading in degrees) using a single magnetic internal compass module and pitch (in degrees) and roll (in degrees) using a pair of inertial motion units (IMUs). Manufacturer specifications for the accuracy of the DJI Mavic 2 Pro sensors is unavailable as it is proprietary information.

## 2.3. Airborne surveys

Sets of images were collected over the grid of GCPs by maintaining the drone in a fixed position (hovering) at an altitude of 10 m and 25 m above ground level with the camera at an angle of 0° (nadir) and 30° from nadir in the forward direction (relative to the drone platform). Example ground footprints for each hover flight are shown on Fig. 1. These images had a resultant areal footprint of 120 m² (10 m, 0°), 389 m² (10 m, 30°), 768 m² (25 m, 0°) and 1352 m² (25 m, 30°). Image collection was undertaken using hover flights in order to collect multiple images with stable position and orientation information from the drone sensors. The collection of these sets of images (instead of single images) enables statistical assessment of the time-varying performance of the

drone on-board sensor. Flights were made manually with the drone in GPS mode (P-mode). During each flight, the hover position for each altitude and camera angle combination was selected manually to provide the best within-image coverage of ground control points using the camera field-of-view livestream displayed on the ground station controller. See Fig. 1 for flight path information and hover points and supporting information Table S1 for further details of these two datasets. For each combination of altitude and camera angle (a total of n = 4), the drone maintained its position over the grid of ground control points for 2 min (using the inbuilt hover capability) and captured images every 2 s using the auto-timer capture function. This resulted in four aerial image sets, one for each altitude and camera angle combination, consisting of ~60 overlapping images. This was repeated to produce Dataset A and Dataset B which were collected over different days (see Table S1, supporting materials). Collecting data on different days allowed the impact of differing environmental conditions (e.g. wind conditions) to be examined (see supporting materials, Figure S4.1, Text S4.4) or effects due to time-varying sensor accuracy to be observed (see discussion in section 4.4.2).

<figure><img src="image_5.png" /><figcaption>Fig. 2. Image processing workflow for the Python direct-georectification methodology.</figcaption></figure>
residuals which describe the directional distance between the measured and observed each GCP position in the x (Equation (1)) and y (Equation (2)) direction, the absolute residual which describes the non-directional distance between the measured and observed each GCP position in the x (Equation (3)) and y direction (Equation (4)), the mean bias which describes the mean residual in the x (Equation (5)) and y direction (Equation (6)), the standard deviation which describes the spread of the differences in the x (Equation (7)) and y positions (Equation (8)), the root mean squared difference (RMSD) which measures the difference between the reference value and the observed values in the x (Equation (9)) and y (Equation (10)) directions, the mean Euclidean distance (Mean |(x,y)|) which examines the mean horizontal distance between the observed and measured x,y GCP positions (Equation (11)) and the distance root mean squared difference (DRMSD) (Equation (12)) which expresses 2D precision by combining the x and y direction standard deviations.

$$ \text{Residual, x direction} = \Delta x = x_{\text{measured}} - x_{\text{observed}} \quad (1) $$

$$ \text{Residual, y direction} = \Delta y = y_{\text{measured}} - y_{\text{observed}} \quad (2) $$

$$ \text{Absolute Residual, x direction} = |\Delta x| = |x_{\text{measured}} - x_{\text{observed}}| \quad (3) $$

$$ \text{Absolute Residual, y direction} = |\Delta y| = |y_{\text{measured}} - y_{\text{observed}}| \quad (4) $$

$$ \text{Mean Bias, x direction} = \frac{1}{n} \sum \Delta x \quad (5) $$

$$ \text{Mean Bias, y direction} = \frac{1}{n} \sum \Delta y \quad (6) $$

$$ \text{Std, x direction} = \sigma_x = \sqrt{\frac{1}{n} \sum (\Delta x - \mu)^2} \quad (7) $$

$$ \text{Std, y direction} = \sigma_y = \sqrt{\frac{1}{n} \sum (\Delta y - \mu)^2} \quad (8) $$

$$ \text{RMSDx} = \sqrt{\frac{\sum (\Delta x)^2}{n}} \quad (9) $$

$$ \text{RMSDy} = \sqrt{\frac{\sum (\Delta y)^2}{n}} \quad (10) $$

$$ \text{Mean Euclidean Distance} = \text{Mean} |(x, y)| = \frac{1}{n} \sum \sqrt{\Delta x^2 + \Delta y^2} \quad (11) $$

$$ \text{DRMSD} = \sqrt{\sigma_x^2 + \sigma_y^2} \quad (12) $$

## 2.7. Drone on-board sensor position and orientation data accuracy assessment

When high-accuracy GCPs (e.g. measured using an RTK GPS kit) are used in the Agisoft Metashape workflow, the software uses these to provide estimates of the ‘true’ position and orientation of the camera for each image. Using these estimates, the performance of the drone on-board sensor determined position was evaluated by comparing the drone position and orientation information for each image recorded by the drone on-board sensor to the reference position and orientation information produced by Agisoft Metashape. These values were evaluated visually using box plots for each flight (Fig. 5) and used to calculate field-derived bias (Equation (5)) and RMSD (Equation (9)) values for each flight parameter (easting, northing, altitude, roll, pitch, yaw) for all flights combined. The latter bias and RMSD values are required for the ensemble uncertainty analysis presented in sections 2.8 and 3.2.

## 2.8. Spatial uncertainty ensemble analysis

An ensemble analysis is a methodology whereby the multiple simulations (e.g. ensemble runs) with differing input parameters are statistically compared to determine the influence of varying the input parameters. The following section describes an ensemble analysis conducted to evaluate the combined impact of the field-derived uncertainty estimates for the drone position and orientation parameters (obtained in section 2.7) on spatial accuracy within directly georectified images.

A pixel-wise grid (5472 x 3648 pixels) of horizontal and vertical field-of-view angles was created by linearly interpolating between the edge values for the horizontal (−32.47° = left edge, +32.47° = right edge) and vertical (−25.515° = top edge, +25.515 = bottom edge) field-of-view of the DJI M2P camera. The position of each pixel was calculated using the direct ray tracing equations described in section 2.4.4 for four synthetic flight scenarios with the camera at an altitude of 10 m and 25 m and at an angle of 0° (nadir) and 30°. For all cases the camera was positioned at the origin (i.e. x (easting) = y (northing) = 0), facing due north (yaw = 0°) with a camera roll of 0°. These grids of x and y position for each pixel represent the perfect case for a georectified image (i.e. uncertainty of zero for all the flight parameters recorded by the drone).

Each ensemble run consisted of perturbing the flight parameter inputs of the ray vector mathematical equations used to determine pixel position. For each of the four synthetic flight scenarios a set of (n = 50) of flight parameter sets (easting, northing, altitude, roll, pitch yaw) were created in which the values for each parameter included additive ‘noise’. The noise for each data point was created by randomly selecting points from a normally distributed synthetic noise dataset (standard deviation equal to the RMSD, mean equal to the bias) using the field derived RMSD and bias estimates for each flight parameter obtained in section 2.7.

For each set of flight parameters, the position (x,y) for each image pixel was calculated using the direct ray tracing equations described in section 2.1. The absolute residual (|Δx| and |Δy|) between the target and ensemble pixel position grids was calculated and combined into a single value by calculating the magnitude of the vector, from which the mean (e.g. the mean |x,y|.Equation 11), and standard deviation was taken. The results are presented as contour plots of positional uncertainty (m) and standard deviation for each of the flying height and camera angle combinations.

The workflow described here for generating maps of within image spatial uncertainty was applied using custom Python scripts which are available from https://github.com/JamieLab/SArONG).

## 2.9. Application in an estuarine environment

A set of drone images were collected using a DJI M2P over the shoreline, including a quay wall, and open water in an estuarine environment in Restronguet Creek, Cornwall, UK (50.196°N, −5.0636°W). Data collection was planned to eliminate the issue of sun glint by avoiding flying at solar noon and selecting a zenith angle when over water that was 90° to the sun, as recommended in (Duffy et al., 2018a,b) as well as manually checking for sun glint artefacts in camera view in the field. The images were georectified using the workflow described in section 2.4.1. The accuracy of the georectified images was evaluated using set of five targets placed on the shore. The easting (m), northing (m) and elevation (m) of the centre of each target was measured using the Leica GS-08 plus D-GNSS RTK survey system and measurements were also taken at 1 m spacing along the bottom edge of the quay wall.

# 3. Results

## 3.1. Georectified image accuracy assessment

### 3.1.1. Average horizontal accuracy

The horizontal (x,y) accuracy of each georectification method is compared using a range of statistical parameters (as presented in
Tables 1 and 2). Mean $|x,y|$ is used within the text as it describes the absolute mean distance between the observed (e.g. image extracted) and RTK-GNSS measured GCP positions in the horizontal plane. Across all flying heights and camera angles, the presented direct-georectification workflow is capable of georectifying image datasets with an average horizontal accuracy consistent with the Agisoft Metashape approach without GCPs, which has a maximum Mean $|(x,y)|$ of 4.32 m, but the accuracy is clearly lower than the Agisoft approach that uses GCPs, which has a maximum Mean $|(x,y)|$ of 0.15 m. Fig. 3 and the values presented in Tables 1 and 2 show a clear relationship between the average horizontal georectification accuracy of the individual images (Python direct-georectification method) and Agisoft Metashape (without GCPs) with increasing flying height or camera angle. At a flying height of 10 m the Python direct-georectification was capable of georectifying the set images with an average horizontal accuracy (Mean $|x,y|$) of 0.94 m (Dataset A) to 1.09 m (Dataset B) when the camera angle was at nadir (0°) and 0.8 (Dataset A) to 1.19 m (Dataset B) when the camera angle was 30°. At a flying height of 25 m, average horizontal accuracy was 0.94 m (Dataset A) to 2.24 m (Dataset B) when the camera was at nadir and 2.63 m (Dataset A) to 3.14 m (Dataset B) at 30°.

The spread of the differences in x, y positions of the identified GCPs (as shown by the whisker plots in Fig. 3 and the standard deviation values in Tables 1 and 2) also increases with increasing altitude and camera angle. The differences in the statistics for the east and north directions are likely for two potential reasons, firstly due to variability in the satellite constellation at the time of observation and secondly because the impact of uncertainties in other flight parameters (roll, pitch, yaw) will not have an equal impact in the easting and northing directions.

### 3.1.2. Spatial variability in horizontal accuracy

To examine how accuracy varies spatially within each directly-georectified image, the distance between the measured and observed GCP positions (mean $|x,y|$, Equation 11), henceforth referred to as GCP accuracy, are calculated and plotted as a function of the distance between the drone and GCP (Fig. 4a and b). In the images collected at 10 m with the camera angle at nadir there is low spatial variability in GCP accuracy (<0.2 m), indicating that there is no strong relationship with distance from the drone at this elevation. Within the images collected at 25 m with the camera at nadir, GCP accuracy decreases with increasing distance from the drone by 1–1.5 m (over a distance of ~17 m). The results for Dataset A at 25 m (open yellow symbols, Fig. 4b) exhibit high variability in accuracy for each individual GCP, as shown by the large error bars. The wind speed values shown in Table 1 and the wind-speed box plots in Fig. S1 (supporting materials) suggests that the variance of wind speed values during this flight was relatively high (as indicated by a standard deviation of $1.1 \text{ ms}^{-1}$, and a wind speed range of $3.5 \text{ ms}^{-1}$ up to $8.2 \text{ ms}^{-1}$) indicating that gusting wind may have been impacting drone stability during this hover flight. The results for Dataset B at 25 m with the camera at nadir (filled orange symbols, Fig. 4a) exhibit a large decrease in accuracy (up to 6 m) with increasing distance from the drone, which is likely due to an error in the recorded drone heading (yaw) – see discussion in section 3.2.

There is an increase in spatial variability in GCP accuracy in the georectified images collected with the camera angle at 30° and with increasing altitude. In images captured at 10 m above ground level with the camera at 30° the GCP accuracy decreases as distance from the drone increases by 0.5–1 m over a distance of ~17 m. While in images captured at 25 m above ground level with the camera at 30° GCP accuracy decreases with increasing distance from the sensor by up to 4 m over a distance of ~30 m.

<caption>**Table 1**</caption>

Statistical description of the difference in the horizontal position of GCPs identified in images georectified using the Python workflow, Agisoft Metashape without GCPs and Agisoft Metashape with GCPs compared to the Leica D-GNSS RTK measured GCP locations for Dataset A. All statistics are calculated for the absolute residual in easting ($\Delta x$, Equation (3)) and northing ($\Delta y$, Equation (4)), except bias which uses the residual (Equations (5) and (6)). The range refers to the maximum absolute residual minus the minimum absolute residual.

<table><thead><tr><th rowspan="2">Flight</th><th rowspan="2">Wind Dir (°)<br>(median + std)</th><th rowspan="2">Wind Speed (m s<sup>-1</sup>)<br>(median + std)</th><th rowspan="2">No. sats</th><th rowspan="2">Statistical Parameter</th><th colspan="2">Python Method<br>(without GCPs)</th><th colspan="2">Agisoft Metashape<br>(without GCPs)</th><th colspan="2">Agisoft Metashape<br>(with GCPs)</th></tr><tr><th>East</th><th>North</th><th>East</th><th>North</th><th>East</th><th>North</th></tr></thead><tbody><tr><td rowspan="6">10 m, 0°</td><td rowspan="6">261 ± 13</td><td rowspan="6">2.8 ± 0.74</td><td rowspan="6">16</td><td>Range (m)</td><td>2.19</td><td>2.19</td><td>2.72</td><td>3.77</td><td>0.11</td><td>0.11</td></tr><tr><td>Mean bias (m)</td><td>0.88</td><td>0.34</td><td>2.68</td><td>1.03</td><td>0.06</td><td>0.03</td></tr><tr><td>Median</td><td>0.86</td><td>0.30</td><td>2.68</td><td>1.03</td><td>0.06</td><td>0.02</td></tr><tr><td>Std (σ)</td><td>0.48</td><td>0.21</td><td>1.07</td><td>0.64</td><td>0.04</td><td>0.02</td></tr><tr><td>RMSD</td><td>1.00</td><td>0.40</td><td>2.89</td><td>1.21</td><td>0.08</td><td>0.04</td></tr><tr><td>Mean |(x,y)| (m)</td><td>0.94</td><td></td><td>2.87</td><td></td><td>0.07</td><td></td></tr><tr><td rowspan="6">10 m, 30°</td><td rowspan="6">301 ± 8</td><td rowspan="6">4.1 ± 0.9</td><td rowspan="6">19</td><td>DRMSD</td><td>0.53</td><td></td><td>1.25</td><td></td><td>0.05</td><td></td></tr><tr><td>Range (m)</td><td>1.61</td><td>1.61</td><td>5.30</td><td>5.78</td><td>0.12</td><td>0.12</td></tr><tr><td>Mean bias (m)</td><td>0.48</td><td>0.65</td><td>3.53</td><td>1.14</td><td>0.04</td><td>0.08</td></tr><tr><td>Median</td><td>0.42</td><td>0.63</td><td>3.41</td><td>0.93</td><td>0.02</td><td>0.04</td></tr><tr><td>Std (σ)</td><td>0.32</td><td>0.31</td><td>1.51</td><td>0.68</td><td>0.04</td><td>0.06</td></tr><tr><td>RMSD</td><td>0.58</td><td>0.72</td><td>3.84</td><td>1.33</td><td>0.06</td><td>0.10</td></tr><tr><td rowspan="6">25 m, 0°</td><td rowspan="6">258 ± 7</td><td rowspan="6">4.0 ± 0.3</td><td rowspan="6">17</td><td>Mean |(x,y)| (m)</td><td>0.80</td><td></td><td>3.71</td><td></td><td>0.09</td><td></td></tr><tr><td>DRMSD</td><td>0.45</td><td></td><td>1.66</td><td></td><td>0.07</td><td></td></tr><tr><td>Range (m)</td><td>1.74</td><td>1.74</td><td>1.62</td><td>2.36</td><td>0.05</td><td>0.05</td></tr><tr><td>Mean bias (m)</td><td>0.50</td><td>0.80</td><td>1.58</td><td>0.60</td><td>0.02</td><td>0.01</td></tr><tr><td>Median</td><td>0.46</td><td>0.74</td><td>1.61</td><td>0.58</td><td>0.02</td><td>0.01</td></tr><tr><td>Std (σ)</td><td>0.34</td><td>0.52</td><td>0.46</td><td>0.38</td><td>0.01</td><td>0.01</td></tr><tr><td rowspan="6">25 m, 30°</td><td rowspan="6">323 ± 7</td><td rowspan="6">6.0 ± 1.1</td><td rowspan="6">19</td><td>RMSD</td><td>0.60</td><td>0.96</td><td>1.64</td><td>0.71</td><td>0.02</td><td>0.02</td></tr><tr><td>Mean |(x,y)| (m)</td><td>0.94</td><td></td><td>1.69</td><td></td><td>0.02</td><td></td></tr><tr><td>DRMSD</td><td>0.62</td><td></td><td>0.60</td><td></td><td>0.02</td><td></td></tr><tr><td>Range (m)</td><td>5.57</td><td>5.57</td><td>2.57</td><td>1.86</td><td>0.41</td><td>0.41</td></tr><tr><td>Mean bias (m)</td><td>1.75</td><td>1.96</td><td>1.18</td><td>2.63</td><td>0.08</td><td>0.13</td></tr><tr><td>Median</td><td>1.66</td><td>1.89</td><td>1.12</td><td>2.67</td><td>0.06</td><td>0.09</td></tr><tr><td>Std (σ)</td><td>1.05</td><td>1.01</td><td>0.73</td><td>0.95</td><td>0.08</td><td>0.14</td></tr><tr><td rowspan="6">25 m, 30°</td><td rowspan="6">323 ± 7</td><td rowspan="6">6.0 ± 1.1</td><td rowspan="6">19</td><td>RMSD</td><td>2.04</td><td>2.20</td><td>1.38</td><td>2.80</td><td>0.11</td><td>0.19</td></tr><tr><td>Mean |(x,y)| (m)</td><td>2.63</td><td></td><td>2.88</td><td></td><td>0.15</td><td></td></tr><tr><td>DRMSD</td><td>1.46</td><td></td><td>1.20</td><td></td><td>0.16</td><td></td></tr></tbody></table>
<caption>**Table 2**</caption>

Statistical description of the difference in the horizontal position of GCPs identified in images georectified using the Python workflow, Agisoft Metashape without GCPs and Agisoft Metashape with GCPs compared to the Leica D-GNSS RTK measured GCP locations for Dataset B. All statistics are calculated for the absolute residual in easting (Δx, Equation (3)) and northing (Δy, Equation (4)), except bias which uses the residual (Equations (5) and (6)). The range refers to the maximum absolute residual minus the minimum absolute residual.

<table><thead><tr><th rowspan="2">Flight</th><th rowspan="2">Wind Dir (median + std)</th><th rowspan="2">Wind Speed (median + std)</th><th rowspan="2">No. sats</th><th rowspan="2">Statistical Parameter</th><th colspan="2">Python Method (without GCPs)</th><th colspan="2">Agisoft Metashape (without GCPs)</th><th colspan="2">Agisoft Metashape (with GCPs)</th></tr><tr><th>East</th><th>North</th><th>East</th><th>North</th><th>East</th><th>North</th></tr></thead><tbody><tr><td rowspan="6">10 m, 0°</td><td rowspan="6">308 ± 5</td><td rowspan="6">2.4 ± 0.41</td><td rowspan="6">17</td><td>Range (m)</td><td>1.39</td><td>1.26</td><td>0.46</td><td>1.24</td><td>0.03</td><td>0.03</td></tr><tr><td>Mean bias (m)</td><td>0.62</td><td>0.90</td><td>2.69</td><td>2.13</td><td>0.02</td><td>0.01</td></tr><tr><td>Median</td><td>0.60</td><td>0.90</td><td>2.69</td><td>2.13</td><td>0.02</td><td>0.01</td></tr><tr><td>Std (σ)</td><td>0.42</td><td>0.35</td><td>0.20</td><td>0.33</td><td>0.01</td><td>0.01</td></tr><tr><td>RMSD</td><td>0.75</td><td>0.96</td><td>2.70</td><td>2.15</td><td>0.02</td><td>0.01</td></tr><tr><td>Mean |(x,y)| (m)</td><td>1.09</td><td></td><td>3.43</td><td></td><td>0.02</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td>DRMSD</td><td>0.55</td><td></td><td>0.39</td><td></td><td>0.01</td><td></td></tr><tr><td rowspan="6">10 m, 30°</td><td rowspan="6">305 ± 4</td><td rowspan="6">2.4 ± 0.46</td><td rowspan="6">17</td><td>Range (m)</td><td>1.90</td><td>1.91</td><td>1.49</td><td>0.50</td><td>0.13</td><td>0.12</td></tr><tr><td>Mean bias (m)</td><td>0.92</td><td>0.75</td><td>1.71</td><td>2.99</td><td>0.03</td><td>0.07</td></tr><tr><td>Median</td><td>0.94</td><td>0.67</td><td>1.74</td><td>3.07</td><td>0.02</td><td>0.05</td></tr><tr><td>Std (σ)</td><td>0.44</td><td>0.51</td><td>0.47</td><td>0.53</td><td>0.03</td><td>0.04</td></tr><tr><td>RMSD</td><td>1.02</td><td>0.90</td><td>1.77</td><td>3.04</td><td>0.04</td><td>0.08</td></tr><tr><td>Mean |(x,y)| (m)</td><td>1.19</td><td></td><td>3.44</td><td></td><td>0.07</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td>DRMSD</td><td>0.67</td><td></td><td>0.71</td><td></td><td>0.05</td><td></td></tr><tr><td rowspan="6">25 m, 0°</td><td rowspan="6">310 ± 4</td><td rowspan="6">4.2 ± 0.18</td><td rowspan="6">17</td><td>Range (m)</td><td>4.62</td><td>4.62</td><td>5.89</td><td>6.46</td><td>0.13</td><td>0.13</td></tr><tr><td>Mean bias (m)</td><td>1.82</td><td>1.57</td><td>3.35</td><td>2.60</td><td>0.02</td><td>0.03</td></tr><tr><td>Median</td><td>1.64</td><td>1.30</td><td>3.29</td><td>2.59</td><td>0.01</td><td>0.02</td></tr><tr><td>Std (σ)</td><td>1.13</td><td>1.13</td><td>1.57</td><td>1.65</td><td>0.03</td><td>0.03</td></tr><tr><td>RMSD</td><td>2.14</td><td>1.94</td><td>3.70</td><td>3.08</td><td>0.03</td><td>0.04</td></tr><tr><td>Mean |(x,y)| (m)</td><td>2.4</td><td></td><td>4.24</td><td></td><td>0.04</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td>DRMSD</td><td>1.60</td><td></td><td>2.28</td><td></td><td>0.04</td><td></td></tr><tr><td rowspan="6">25, 30°</td><td rowspan="6">320 ± 5</td><td rowspan="6">5.1 ± 0.35</td><td rowspan="6">18/19</td><td>Range (m)</td><td>3.15</td><td>3.31</td><td>3.49</td><td>2.65</td><td>0.37</td><td>0.36</td></tr><tr><td>Mean bias (m)</td><td>1.51</td><td>2.75</td><td>2.19</td><td>3.72</td><td>0.07</td><td>0.12</td></tr><tr><td>Median</td><td>1.49</td><td>2.99</td><td>2.32</td><td>3.85</td><td>0.04</td><td>0.06</td></tr><tr><td>Std (σ)</td><td>0.62</td><td>1.32</td><td>1.05</td><td>1.67</td><td>0.08</td><td>0.14</td></tr><tr><td>RMSD</td><td>1.64</td><td>3.05</td><td>2.43</td><td>4.08</td><td>0.11</td><td>0.18</td></tr><tr><td>Mean |(x,y)| (m)</td><td>3.14</td><td></td><td>4.32</td><td></td><td>0.14</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td>DRMSD</td><td>1.46</td><td></td><td>1.97</td><td></td><td>0.16</td><td></td></tr></tbody></table>

<figure><img src="image_6.png" /><figcaption>**Fig. 3.** Distribution of absolute residual in easting (ΔE) and northing (ΔN) in metres (m) between the GCP position measured by the Leica D-GNSS RTK and observed in the direct-georectified images for all four drone flights at flying height of 10 and 25 m above ground level (AGL) with the camera at nadir and 30° for Dataset A (Fig. 3a) and Dataset B (Fig. 3b).</figcaption></figure>

## 3.2. Drone on-board sensor position and orientation data accuracy assessment

For each of the flying heights and camera angles, the distribution of the differences in the position and orientation recorded for each image by the drone sensor and the reference values estimated by Agisoft Metashape are shown in Fig. 5. In Dataset A, the difference between the reference eastings and northings for each image and the on-board sensor information are similar across all georectification methods. Residuals for

both methods without ground control range between 0.5 and 2 m. In Dataset B, easting is consistently <1 m, while variability in northing is higher and ranges between 1 and 3 m throughout the four hover-flights.

The largest differences between the on-board record and reference drone information occur in the yaw and roll values for the 25 m, nadir hover flight in Dataset B. In particular, the erroneous yaw value (−12 to −19°) caused significant rotation of the entire field-of-view and resulted in a horizontal offset in GCP position that increases with distance from the drone. In all the remaining hover flights (Dataset A and B) the
<figure><img src="image_7.png" /><figcaption>**Fig. 4.** The mean (scatter points) ± std (error bars) in absolute residual from the GCP centre-point observed in the direct-georectified images and the Leica D-GNSS RTK GCP measurements as a function of the absolute distance of the GCP from the viewing position of the drone for all four drone flights at flying height of 10 and 25 m above ground level with the camera at nadir (Fig. 4a) and 30° (Fig. 4b).</figcaption></figure>

reference and observed camera orientation values (yaw, pitch, and roll) are consistently between ± 0–5°.

The results show that error in position and orientation information can vary within a single drone mission, suggesting that errors are not consistent in both time and space. It is unclear if this variability was caused by a sudden change in environmental conditions (e.g. changes in wind-speed and direction) or internal sensor variability. Except for the 25 m, 30° flight in Dataset A, no clear relationship between environmental conditions (e.g. wind speed, wind direction, wind direction relative to drone heading) and the accuracy of drone position and/or orientation as recorded by the on-board sensor were identified in either Dataset A or B (see supporting information Text S4, Fig. S1).

Datasets A and B were also combined to calculate a single mean bias (Equation (2)) and RMSD (Equation (6)) value for each flight parameter: Easting (0.30 m, 1.00 m), Northing (0.32 m, 1.06 m), Altitude (0.28 m, 0.36 m), Roll (2.01°, 2.48°), Pitch (−1.54°, 1.79°) and Yaw (1.77°, 2.86°). These field-derived parameters are used to drive the uncertainty analysis described in section 2.5 to understand individual pixel or within camera-view uncertainties, the results of which are presented in section 3.3.

### 3.3. Spatial uncertainty ensemble analysis

Fig. 6 presents the results of the ensemble analysis showing spatially varying mean uncertainty (m) (left panels) and standard deviation (m) (right panels) for all sensor altitude (10 m, 25 m) and camera angle (nadir, 30°) combinations. Mean uncertainty in pixel position refers to the Mean $|(x,y)|$ (Equation (11)) which describes the horizontal distance between the reference pixel positions (x,y) and the pixel positions (x,y) calculated in each ensemble run. At 10 m with the camera at 0° uncertainty in pixel position varies by 0.3 m, with a maximum difference of 1.6 ± 0.84 m (mean ± std), increasing to a within image variation of 1.2 m, with a maximum difference of 2.4 ± 1.3 m when the camera is at 30°. At 25 m, variability in uncertainty (e.g. the range) increases to 1 m with the camera at nadir and 3.2 m at 30°. As flying height and camera angle increase, both the magnitude and standard deviation in the resultant geolocation uncertainties increase.

### 3.4. Application in an estuarine environment

Fig. 7 demonstrates using the direct-georectification method on image data collected by a DJI M2P drone over an estuarine environment, where the shoreline and water offshore are visible. Table 3 evaluates the differences between the measured (DGNSS) and image data provided (georectified images) position of a set of five GCPs deployed on the shore (Fig. 7). The GCPs identified in the images taken at nadir at a height of 25 m had mean absolute difference in x,y position of 0.92 m increasing to 5.01 m when the camera is at 30°. These results are comparable to the field tests presented in section 3.1.1. (mean absolute difference in x,y position of 0.94 m at nadir increasing to 2.9 m at 30°) and the uncertainty estimates presented in section 3.3 (mean absolute difference in x,y position of 1.9 m at nadir increasing to 3.2 m at 30°).

Overall, the values presented in Table 3 show that the spatial uncertainty for both the nadir and oblique camera angles at a flying height of 25 m are consistent to those identified in the field experiments shown in section 3.1.1 and 3.1.2 and the uncertainty assessment in section 3.3. It should be noted that as the GCPs are clustered in one area of the image they are not representative of all areas of the image, in particular for the 30° example due to the spatial variability in accuracy (i.e. as observed in section 3.1.2). However, they compared well to the results of the spatial uncertainty ensemble analysis presented in section 3.3.

## 4. Discussion

We present a complete open-source workflow for direct-georectification of drone image data which uses the drone position and orientation data to rectify the image. Field-tests show that, when using the platform and sensor set-up described in this work, the methodology is capable of directly georectifying image datasets with a consistent average horizontal accuracy <2 m (research questions 1 and 2). This accuracy can decrease to 6 m within a single image and its value is a function of flying height and camera angle (research question 2). A relationship between increasing spatial variability in horizontal accuracy and increasing altitude and camera angle was also observed. This effect occurs as the impact of exterior camera angle errors increases with increasing viewing distance from the drone to the ground (research question 3), which is a function of viewing angle and altitude. This effect is clear in the results as at an altitude of 10 m the difference in average spatial accuracy of georectified images taken at nadir or 30° is small and the within image spatial variability is low (especially when compared to the 25 m examples).

Spatial variability of the geolocation uncertainties is important for quantitative data applications as it not only describes how accurately the whole image is positioned on the ground but also how accurately features within the image are represented (e.g. the dimensions or size of objects). Easting, northing and yaw errors affect the geolocation accuracy of the image while roll, pitch and altitude errors affect both the
<figure><img src="image_8.png" /><figcaption>**Fig. 5.** Absolute residual between the position (easting, northing, altitude) and orientation (yaw, pitch, roll) of the drone recorded by the on-board sensors and the Agisoft Metashape reference dataset. All four drone flights are shown (flying heights of 10 and 25 m above ground level, camera angles of nadir and 30°) for Dataset A (Fig. 5a and c) and Dataset B (Fig. 5b and d).</figcaption></figure>

geolocation and the accuracy of feature representation. For the drone platform used in this work (DJI Mavic 2 Pro) there are no published manufacturer specification uncertainty estimates for the drone on-board sensor as this is proprietary information. However, this work presents methods for characterising the uncertainty of the on-board sensors under field conditions. Using these values to run an ensemble analysis then provides a means to estimate direct-georectification accuracy without the use of ground control points. For the 25 m height, oblique (30°) camera angle example these results can be directly compared to those presented in Schweitzer and Cowen (2022) which presents a similar analysis but using uncertainty estimates for camera orientation parameters based on manufacturer specifications of a typical IMU system. Comparing these results, the spatial pattern of uncertainty is consistent between the two studies but the maximum positional uncertainty when using field-derived uncertainty estimates (i.e. instead of manufacturer provided IMU specifications) is higher by a factor of two.

## 4.1. Direct-georectification method limitations and uncertainties

It should be noted that the presented methodology is only suitable for use over low-relief landscapes (e.g. such as relatively flat (water) surfaces) as the corner point ray-tracing will be less effective when there are topographical features (e.g. within a river system with steep gradients). While the field-site used in this work was low relief it was not a completely horizontal plane. The range and standard deviation in GCP elevation in the camera field-of-view for each dataset, flying height and camera angle is presented in Table S4 in the supporting materials. These show a clear increase in the GCP elevation variability with increasing camera altitude and angle (due to the increased size of the field-of-view). A simple calculation for a GCP at the furthest edge of an image taken with a maximum difference in GCP elevation determined for each field-of-view (Table S4, supporting materials) returns a maximum horizontal (both x and y direction) of ±0.3 m for the 10 m, 0° example (smallest

field-of-view) and ±1.15 m for the 25 m, 30° example. It is therefore likely that these effects are reduced by averaging in the results presented in section 3.1.1 but are contributing to the spatial variability observed in section 3.1.2. However, while variations in topography (e.g. the field-site not being a completely horizontal surface) influence the results for accuracy presented in section 3.1, the relationship between flying height, camera angle and their uncertainties does not change. In particular this relationship can be observed in the synthetic ensemble run results given in section 3.3 which are driven by drone sensor uncertainty estimates which are independent of flying height, camera angle and the impact of field-site topography.

A notable contribution to the uncertainty evaluated in these results is the temporarily incorrect yaw values (up to 20°) recorded during a subsection of the Dataset B flight. Common causes of yaw errors are poor compass calibration or magnetic interference (e.g. due to proximity to metal objects). On this occasion, the compass was calibrated (e.g. on stable ground, away from metal objects) prior to flying, and during the flight the DJI operating software did not flag any magnetic interference. Furthermore, the compass recorded yaw with an accuracy of 1–2° in subsequent hover flights within the same drone mission. While the cause of this temporary yaw error has not been determined, recommendations as to how to reduce yaw error both during missions and in image post-processing can be made. One recommendation is to undertake a period of stable flight at the beginning of any drone mission at a sufficient distance from metal objects (>10 m). A second recommendation is to undertake a period of stable flight collecting an image dataset over a feature of known orientation (e.g. the compass heading of the launch vessel) at the beginning and end of the drone mission. By comparing this orientation to the orientation of the object as recorded in the drone images, it would be possible to evaluate the accuracy of the drone on-board sensor and either use this as a quality control procedure or apply corrections during post-processing. An alternative option for correcting and quality controlling yaw data would be to identify the
<figure><img src="image_9.png" /><figcaption>**Fig. 6.** Spatially varying uncertainty grids of mean absolute difference in x, y position (in metres) (left hand panels) and standard deviation of the absolute difference in x,y position (in metres) (right hand panels), in aerial images collected at heights of 25 m and 10 m with the sensor at nadir and 30°.</figcaption></figure>

orientation of the main-axis of ocean glitter within the camera field-of-view (an area of bright and sparkling reflection of the sun) as this will be a function of sun azimuth and angle (Cox and Munk, 1956).

The uncertainty values presented in this work are based on a single drone and sensor set-up (DJI M2P with in-built camera). While these uncertainty estimates are likely to be comparable to other consumer-grade drones with the same on-board sensor set-up, independent accuracy testing may be required for other platforms and sensor set-ups. It is recommended that accuracy testing should be undertaken using

multiple flights made over different days to capture the potential variability in sensor accuracy caused by varying environmental conditions or unexplained drone sensor error (e.g. as the flight compass errors observed in this work). The presented Python methodology and subsequent analysis does not consider any offset between the drone sensors (inertial measurement unit, GPS) and camera position. This source of uncertainty is instead included within the total georectified image uncertainty. Sensor offsets could be determined via a boresight analysis (e.g. as undertaken in Zhou, 2010). However, once boresight calibration
<figure><img src="image_10.png" /><figcaption>**Fig. 7.** Images collected at an altitude of 25 m using a DJI M2P drone over an estuarine environment with a camera angle at nadir (Fig. 4.7a, b) and 30° (Fig. 4.7c, d) and directly-georectified using the presented python workflow. These are overlaid on a base layer of aerial image datasets collected by Plymouth Coastal Observatory and the position of the quay wall, and five targets placed on the foreshore, as measured using Leica D-GNSS RTK (shown in black) and visually identified in the georectified images (shown in yellow). (For interpretation of the references to colour in this figure legend, the reader is referred to the Web version of this article.)</figcaption></figure>

<table><caption>**Table 3**

Comparison of measured GCP locations (D-GNSS RTK) and observed GCP locations in the Python direct-georectified images taken over Restronguet Creek.</caption><thead><tr><th rowspan="2">Statistical Parameter</th><th colspan="2">25 m, nadir</th><th colspan="2">25 m, 30°</th></tr><tr><th>Δ East</th><th>Δ North</th><th>Δ East</th><th>Δ North</th></tr></thead><tbody><tr><td>Range (m)</td><td>0.35</td><td>0.41</td><td>0.31</td><td>0.62</td></tr><tr><td>Bias (m)</td><td>0.20</td><td>0.88</td><td>3.96</td><td>3.06</td></tr><tr><td>Median (m)</td><td>0.24</td><td>0.90</td><td>3.85</td><td>2.88</td></tr><tr><td>Std (σ) (m)</td><td>0.15</td><td>0.15</td><td>0.62</td><td>0.46</td></tr><tr><td>RMSD (m)</td><td>0.25</td><td>0.90</td><td>4.01</td><td>3.09</td></tr><tr><td>Mean |(x, y)| (m)</td><td colspan="2">0.92</td><td colspan="2">5.01</td></tr><tr><td>DRMSD (m)</td><td colspan="2">0.21</td><td colspan="2">0.24</td></tr></tbody></table>

has been undertaken, the camera position must remain fixed for all subsequent flights which can reduce the agility of the system. It is also important to note that different drone platforms will have different compass set-ups (e.g. some have multiple compasses or use the IMU to provide yaw measurements). Determining the type of compass observations being used will likely be important for understanding constraints on accuracy.

## 4.2. Potential applications in the coastal, estuarine and shelf sea environment

These results from this drone methodology and data collection have implications for other low-altitude camera applications, for example cameras mounted on moving vessels at high-oblique angles (e.g. angles > ~45° from nadir, angles which include the horizon) to collect images of sea surface parameters such as white-capping (Callaghan et al., 2009;

Norris et al., 2013; Woolf, 2005) or sea-ice concentration (Butterworth and Miller, 2016; Hall et al., 2002). A simple calculation for a camera mounted at 25 m and angled at 60° above nadir on a vessel with variations in the ships pitch and roll of ±2° returns a maximum horizontal (x-direction) uncertainty of ±1 m closest to the camera increasing to ±100 m furthest from the camera. To put this into context, if these small variations in pitch and roll and not accounted for, an area of white capping or sea ice with a true length of 10 m could appear to have a length of ~9–10 m close to the camera or 0–110 m in the image region furthest from the camera.

Due to the need to collect multiple images at single locations (and the variability of fine temporal and spatial surface ocean parameters) these methods do not necessarily lend themselves to quickly mapping large areas using image mosaicking approaches. However multiple observations within scenes can be combined in post-processing to observe conditions across an area (rather than viewing single isolated images). Potential applications of these methods include the observing or mapping white capping, bubble or ocean glitter statistics and coverage which could be used to study air-sea gas transfer (Bell et al., 2017; Woolf, 1993) studying mean-square slope of waves (Cox and Munk, 1956), mapping the extent of suspended sediment plumes, the collection of spatially resolved ocean colour data (Choo et al., 2022) for evaluating satellite observations, or the collection of fine temporal and spatial resolution sea ice observations for shipping or biogeochemical studies. At a capture height of 10 m and nadir camera angle images from the drone and camera systems evaluated here, each image represents a region of ~14 × 9 m corresponding to a single Sentinel 2 satellite pixel, increasing to ~30 × 22 m and approximately six Sentinel 2 pixels at a capture height of 25 m. Therefore, the methods developed here could be used to provide data for evaluating data from Sentinel 2, or other higher
spatial resolution satellites, including characterising within satellite pixel signal variability or mixing. Overall, spatially resolved observations of the ocean surface could provide essential datasets to support satellite validation campaigns and to effectively bridge the gap between spatially sparse in situ data and synoptic scale satellite observations.

## 5. Conclusions and recommendations

Low-cost drones are an agile platform for collecting high quality observations. However, established methods for accurately georectifying image datasets are impossible to apply over mobile target surfaces that lack fixed points of reference (e.g. tie points and/or ground control points). This study describes and evaluates an open-source method for georectifying aerial image datasets using information provided by the on-board sensors within a commercially available lightweight drone (referred to as direct-georectification). The results confirm that it is possible to use low-cost drone sensors to accurately georectify drone image data collected over a water surface in the absence of fixed points of reference when operating at low altitudes (<25 m). Mean image accuracy decreases and spatial variability in accuracy increases with increasing flight altitude and camera angle.

Estimates of spatial uncertainty within aerial image datasets are critical for determining the usability of any extracted data. For example, determining which sections of the image can be used or the size of features which that can be accurately identified.

Drones have the potential to be an effective tool for studying surface water processes, comparing to in situ observations and/or characterising satellite observations. The experimental techniques presented here will enable rapid collection of large quantities of high-quality image data, accompanied by full uncertainty estimates.

### CRediT authorship contribution statement

**Jennifer Watts:** Writing – original draft, Methodology, Investigation, Conceptualization. **Thomas Holding:** Writing – review & editing, Software, Methodology, Formal analysis. **Karen Anderson:** Writing – review & editing, Supervision. **Thomas G. Bell:** Writing – review & editing, Supervision. **Bertrand Chapron:** Investigation, Conceptualization. **Craig Donlon:** Investigation, Conceptualization. **Fabrice Collard:** Investigation, Conceptualization. **Neill Wood:** Investigation, Conceptualization. **David Walker:** Investigation, Formal analysis, Conceptualization. **Leon DeBell:** Investigation. **James P. Duffy:** Writing – review & editing, Investigation, Conceptualization. **Jamie Shutler:** Writing – review & editing, Supervision, Methodology, Investigation, Conceptualization.

### Declaration of competing interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

### Data availability

The code required to run the described methodology is freely available on GitHub and linked within the article.

### Acknowledgements

This work is supported by a NERC PhD studentship (NE/L002434/1) as part of the GW4+ Doctoral Training Program. The contribution of TB was supported by the NERC funded ORCHESTRA (NE/N018095/1) and PICCOLO (NE/P021409/1) projects. This work was partially funded by the ESA Scientific Assessment of Satellite Ocean Glitter (SARONG) (4000117644/16/NL/FF/gp) project with some support from the Convex Seascape Survey. The authors would also like to thank I & C.

Rowlandson for use of their land in Blackwater, Cornwall, and the Watson family for use of their Quay in Restronguet, Cornwall.

## Appendix A. Supplementary data

Supplementary data to this article can be found online at https://doi.org/10.1016/j.ecss.2024.108853.

### References

Almar, R., Bergsma, E.W.J., Catalan, P.A., Cienfuegos, R., Suarez, L., Lucero, F., Lerma, A.N., Desmazes, F., Perugini, E., Palmsten, M.L., Chickadel, C., 2021. Sea state from single optical images: a methodology to derive wind-generated ocean waves from cameras, drones and satellites. Rem. Sens. 13 (4), 1–8. https://doi.org/10.3390/rs13040679.

Andriolo, U., Garcia-Garin, O., Vighi, M., Borrell, A., Gonçalves, G., 2022. Beached and floating litter surveys by unmanned aerial vehicles: operational analogies and differences. Rem. Sens. 14 (6), 1–12. https://doi.org/10.3390/rs14061336.

Bell, T.G., Landwehr, S., Miller, S.D., De Bruyn, W.J., Callaghan, A.H., Scanlon, B., Ward, B., Yang, M., Saltzman, E.S., 2017. Estimation of bubble-mediated air-sea gas exchange from concurrent DMS and CO2 transfer velocities at intermediate-high wind speeds. Atmos. Chem. Phys. 17 (14), 9019–9033. https://doi.org/10.5194/acp-17-9019-2017.

Butterworth, B.J., Miller, S.D., 2016. Air-sea exchange of carbon dioxide in the Southern Ocean and Antarctic marginal ice zone. Geophys. Res. Lett. 43 (13), 7223–7230. https://doi.org/10.1002/2016GL069581.

Callaghan, A.H., White, M., Callaghan, A.H., White, M., 2009. Automated processing of sea surface images for the determination of whitecap coverage. J. Atmos. Ocean. Technol. 26 (2), 383–394. https://doi.org/10.1175/2008JTECHO634.1.

Cassano, J.J., Seefeldt, M.W., Palo, S., Knuth, S.L., Bradley, A.C., Herrman, P.D., Kernebone, P.A., Logan, N.J., 2016. Observations of the atmosphere and surface state over Terra Nova Bay, Antarctica, using unmanned aerial systems. Earth Syst. Sci. Data 8 (1), 115–126. https://doi.org/10.5194/essd-8-115-2016.

Cavanaugh, K.C., Cavanaugh, K.C., Bell, T.W., Hockridge, E.G., 2021. An automated method for mapping giant Kelp Canopy dynamics from UAV. Front. Environ. Sci. 8 (February), 1–16. https://doi.org/10.3389/fenvs.2020.587354.

Choo, J., Cherukuru, N., Lehmann, E., Paget, M., Mujahid, A., Martin, P., Müller, M., 2022. Spatial and temporal dynamics of suspended sediment concentrations in coastal waters of the South China Sea, off Sarawak, Borneo: ocean colour remote sensing observations and analysis. Biogeosciences 19 (24), 5837–5857. https://doi.org/10.5194/bg-19-5837-2022.

Cox, C., Munk, W., 1956. Slopes of the sea surface deduced from photographs of sun glitter. Bull. Scripps Inst. Oceanogr. 401–488.

Cunliffe, A., Tanski, G., Radosavljevic, B., Palmer, W., Sachs, T., Lantuit, H., Kerby, J., Myers-Smith, I., 2019. Rapid retreat of permafrost coastline observed with aerial drone photogrammetry. Cryosphere 13 (5), 1513–1528. https://doi.org/10.5194/tc-13-1513-2019.

Duffy, J.P., Cunliffe, A.M., DeBell, L., Sandbrook, C., Wich, S.A., Shutler, J.D., Myers-Smith, I.H., Varela, M.R., Anderson, K., 2018a. Location, location, location: considerations when using lightweight drones in challenging environments. Rem. Sens. Ecol. Conserv. 4 (1), 7–19. https://doi.org/10.1002/rse2.58.

Duffy, J.P., Pratt, L., Anderson, K., Land, P.E., Shutler, J.D., 2018b. Spatial assessment of intertidal seagrass meadows using optical imaging systems and a lightweight drone. Estuar. Coast Shelf Sci. 200, 169–180. https://doi.org/10.1016/J.ECSS.2017.11.001.

Ekaso, D., Nex, F., Kerle, N., 2020. Accuracy assessment of real-time kinematics (RTK) measurements on unmanned aerial vehicles (UAV) for direct geo-referencing. Geo Spatial Inf. Sci. 23 (2), 165–181. https://doi.org/10.1080/10095020.2019.1710437.

Glassner, A.S., 1989. An Introduction to Ray Tracing. Morgan Kaufmann.

Gray, P.C., Larsen, G.D., Johnston, D.W., 2022. Drones address an observational blind spot for biological oceanography. Front. Ecol. Environ. 20 (7), 413–421. https://doi.org/10.1002/fee.2472.

Hall, R.J., Hughes, N., Wadhams, P., 2002. A systematic method of obtaining ice concentration measurements from ship-based observations. Cold Reg. Sci. Technol. 34 (2), 97–102. https://doi.org/10.1016/S0165-232X(01)00057-X.

Jezierska, J., 2019. UAS for wetland mapping and hydrological modeling. Rem. Sens. 11 (17) https://doi.org/10.3390/rs11171997.

Johnston, D.W., 2019. Unoccupied aircraft systems in marine science and conservation. Ann. Rev. Mar. Sci. 11, 439–463. https://doi.org/10.1146/annurev-marine-010318-095323.

Kislik, C., Dronova, I., Kelly, M., 2018. UAVs in support of algal bloom research: a review of current applications and future opportunities. Drones 2 (4), 1–14. https://doi.org/10.3390/drones2040035.

Mallast, U., Siebert, C., 2019. Combining continuous spatial and temporal scales for SGD investigations using UAV-based thermal infrared measurements. Hydrol. Earth Syst. Sci. 23 (3), 1375–1392. https://doi.org/10.5194/hess-23-1375-2019.

Norris, S.J., Brooks, I.M., Moat, B.I., Yelland, M.J., de Leeuw, G., Pascal, R.W., Brooks, B., 2013. Near-surface measurements of sea spray aerosol production over whitecaps in the open ocean. Ocean Sci. 9 (1), 133–145. https://doi.org/10.5194/os-9-133-2013.

Pirelli, L., 2019. camera calculator.py. Version master. In: GitHub. Available at. http://s://github.com/luiipir/image-footprint_code_recompilation/blob/master/camera_c算器.py (Accessed: March 2020).
Pucino, N., Kennedy, D.M., Carvalho, R.C., Allan, B., Ierodiaconou, D., 2021. Citizen science for monitoring seasonal-scale beach erosion and behaviour with aerial drones. Sci. Rep. 11 (1), 1–17. https://doi.org/10.1038/s41598-021-83477-6.

Schweitzer, S.A., Cowen, E.A., 2022. A method for analysis of spatial uncertainty in image based surface velocimetry. Front. Water 4 (April), 1–11. https://doi.org/10.3389/frwa.2022.744278.

Seymour, A.C., Ridge, J.T., Rodriguez, A.B., Newton, E., Dale, J., Johnston, D.W., 2018. Deploying fixed wing unoccupied aerial systems (UAS) for coastal morphology assessment and management. J. Coast Res. 34 (3), 704–717. https://doi.org/10.2112/JCOASTRES-D-17-00088.1.

Shang, S., Lee, Z., Lin, G., Hu, C., Shi, L., Zhang, Y., Li, X., Wu, J., Yan, J., 2017. Sensing an intense phytoplankton bloom in the western Taiwan Strait from radiometric measurements on a UAV. Rem. Sens. Environ. 198, 85–94. https://doi.org/10.1016/j.rse.2017.05.036.

Ventura, D., Bonifazi, A., Gravina, M.F., Belluscio, A., Ardizzone, G., 2018. Mapping and classification of ecologically sensitive marine habitats using unmanned aerial vehicle

(UAV) imagery and Object-Based Image Analysis (OBIA). Rem. Sens. 10 (9), 1–23. https://doi.org/10.3390/rs10091331.

Williamson, J.E., Duce, S., Joyce, K.E., Raoult, V., 2021. Putting sea cucumbers on the map: projected holothurian bioturbation rates on a coral reef scale. Coral Reefs 40 (2), 559–569. https://doi.org/10.1007/s00338-021-02057-2, 2021 40:2.

Woolf, D.K., 1993. Bubbles and the air-sea transfer velocity of gases. Atmos.-Ocean 31 (4), 517–540. https://doi.org/10.1080/07055900.1993.9649484.

Woolf, D.K., 2005. Parametrization of gas transfer velocities and sea-state-dependent wave breaking. Tellus Ser. B Chem. Phys. Meteorol. 57 (2), 87–94. https://doi.org/10.1111/j.1600-0889.2005.00139.x.

Zappa, C.J., Brown, S.M., Laxague, N.J.M., Dhakal, T., Harris, R.A., Farber, A.M., Subramaniam, A., 2020. Using ship-deployed high-endurance unmanned aerial vehicles for the study of ocean surface and atmospheric boundary layer processes. Front. Mar. Sci. 6 (January), 1–17. https://doi.org/10.3389/fmars.2019.00777.

Zhou, G., 2010. Geo-referencing of video flow from small low-cost civilian UAV. IEEE Trans. Autom. Sci. Eng. 7 (1), 156–166. https://doi.org/10.1109/TASE.2008.2010948.