Figure 1. Framework for 3D
analyses of ground-nesting bird nests. Example images are from an
agri-environment scheme site (left-blue) and spring-cereal arable site
(right-yellow). A) Photograph of nest taken with colour calibrated Sony
camera. B) 3D scan nests with ASUS phone and upload the point cloud into
Matterport scenes for standardisation of formatting. C) Import and label
point clouds in ImageJ. D) Run nest 3D energy and visibility transect
analysis scripts.
Photographs of the nests and nulls were taken using a MICA
colour-calibrated Sony A6000 with a baader venus-u 52mm UV filter and
the camera’s own visible light filter (Moher Alsady et al., 2016). A 7%
and 93% uniform (λ 200-700nm) reflectance standard was placed in situ
for each photograph (Troscianko et al., 2016b). Standards were created
using Zenith Polymer sintered PTFE sheets. As the lighting environment
was highly variable with weather conditions, all photos were taken with
a 1m2 pop-out NEEWER diffuser sheet at times greater
than 2 hours from dawn and dusk (Duarte et al., 2018; Troscianko et al.,
2016b). Photographs were calibrated and converted to multispectral
images using the MICA toolbox v2.2.2 for ImageJ (Schneider et al., 2012;
Troscianko and Stevens, 2015; van den Berg et al., 2020).
Constructing Height Maps:
The 3D scans were processed using the open-source
program MeshLab v.2022.02 (Visual
Computing Lab – ISTI – CNR, http://meshlab.sourceforge.net/), to
extract only the height data and export the scans as .ply files (Simonov
and Matantseva, 2020). These files were then imported into ImageJ, using
a custom script, to create images containing each nest’s X, Y, and Z
(height) coordinates, with 1 pixel representing 1mm (Schneider et al.,
2012). Missing Z values (0.07% of pixel values) were filled with the
mean background value. Finally, ImageJ was used to label the different
parts of each scan, including the clutch (area around all the eggs), the
nest (area around the scrape), the background (non-blank parts of the
scan), and the individual eggs (group of regions of interest around each
egg), see Figure 1. Instructions can be found within our supplementary
material and on our
GitHub.
Nest 3D Measures:
Cross-section maps of each nest were constructed by creating a circle
selection (radius=300mm) centred on the clutch ROI. At each integer
distance (radius = 0-300mm), the mean Z-value was measured and
translated either to the minimum of the clutch (nest-normalised) or the
surrounding background (radius-normalised) (see supplemental material).
These cross-sections allowed for comparisons of the scans’ peak nest,
peak clutch and trough heights and calculation of the nest’s slope.
To quantify how rough or smooth the terrain at nest locations was at
different spatial scales, we used methods similar to those used for 2D
pattern analysis. We measured the ‘energy’ (SD) of the Z value at
different spatial scales relative to the mean wavelength of the clutches
( \(\sqrt{\text{clutch}}\ area=86mm\)), in the following octaves (1/8,
1/4, 1/2, 1, 2, 4) (Lindeberg, 2015; Michalis et al., 2017). Energy maps
for each spatial scale were made using difference of Gaussians (DoG);
subtracting each octave by 1.6x the same scale (Figure 2).