UAS publications in agriculture and forest

Raparelli & Bajocco (2019)

Raparelli & Bajocco (2019)

UAS publications in forests

Technical studies

  • Structure from Motion in forests (Seifert et al. 2019)
  • Difficulties in forests (Iglhaut et al. 2019)
  • Workflows and quality assessment (Ludwig et al. 2020)
Difficulties in forests for flight planning

Difficulties in forests for flight planning


Forest inventory

  • canopy height (Wallace et al. 2016)
  • stem density
  • biomass
Wallace et al. 2016

Wallace et al. 2016

Forest health

  • pest infections (Puliti, Talbot, and Astrup 2018)

  • dead crowns (Hese, Thiel, and Henkel 2019)

Puliti et al. 2019 - Detection of pest infected tree stumps

Puliti et al. 2019 - Detection of pest infected tree stumps


Hese et al. 2019

Hese et al. 2019


Goal: Operational workflow for UAS applications

Study Area

3DR Solo in the Marburg Open Forest

3DR Solo in the Marburg Open Forest

Ground station setup in the Marburg Open Forest with pilot Simon

Ground station setup in the Marburg Open Forest with pilot Simon

High resolution time series 2020

Python scripts for semi-automated processing: Metashape Toolbox

  • Available at GitHub https://github.com/envima/MetashapeTools
  • Easy interface integration via the Python API
  • Modifications of the Metashape Workflow
  • greatly enhance reproducibility and reduce human error

Modification: Iterative pointcloud filtering

MF.init(chunk, Metashape.PointCloud.Filter.ReprojectionError)
    RE = MF.values
    RE = max(RE)
    cp1 = 100
    
    while cp0 < cp1:
         cp1 = cp0
         RE = RE - 0.1
         MF.init(chunk, Metashape.PointCloud.Filter.ReprojectionError)      
         MF.selectPoints(RE)
         chunk.point_cloud.removeSelectedPoints()
         chunk.optimizeCameras(fit_f=True, fit_cx=True, fit_cy = True, fit_b1=True, fit_b2 = True, fit_k1 = True, fit_k2 = True, fit_k3 = True, fit_k4=True, fit_p1 = True, fit_p2 =True, adaptive_fitting=True)
         
         cp_error = []
         for marker in chunk.markers:
             if marker.reference.enabled == False and marker.enabled == True:
                 est = chunk.crs.project(chunk.transform.matrix.mulp(marker.position))  # Gets estimated marker coordinate
                 ref = marker.reference.location
                 if est and ref:
                     cp_error.append((est - ref).norm())  # The .norm() method gives the total error. Removing it gives X/Y/Z error
         cp0 = statistics.mean(cp_error)

Toolchain: Orthomosaic Processing

#!/usr/bin/env python3
# -*- coding: utf-8 -*-


import Metashape

from msFunctions.msSparseCloud import *
from msFunctions.msOrtho import *
from msFunctions.msError import *


def Toolchain02():
  ac = Metashape.app.getBool("Process all Chunks?")
  if ac:
    for chunk in Metashape.app.document.chunks:
      sparse2ortho(chunk)
      exportOrtho(chunk)
      exportSeamlines(chunk)
      exportMarker(chunk)
  else:
      chunk = Metashape.app.document.chunk
      sparse2ortho(chunk)
      exportOrtho(chunk)
      exportSeamlines(chunk)
      exportMarker(chunk)


Metashape.app.addMenuItem("MetashapeTools/Toolchain Part 2", Toolchain02)


Literature

Hese, S., C. Thiel, and A. Henkel. 2019. “UAV BASED MULTI SEASONAL DECIDUOUS TREE SPECIES ANALYSIS IN THE HAINICH NATIONAL PARK USING MULTI TEMPORAL AND POINT CLOUD CURVATURE FEATURES.” ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences XLII-2/W13 (June): 363–70. https://doi.org/10.5194/isprs-archives-XLII-2-W13-363-2019.
Iglhaut, Jakob, Carlos Cabo, Stefano Puliti, Livia Piermattei, James O’Connor, and Jacqueline Rosette. 2019. “Structure from Motion Photogrammetry in Forestry: A Review.” Current Forestry Reports 5 (3): 155–68. https://doi.org/10.1007/s40725-019-00094-3.
Ludwig, Marvin, Christian M. Runge, Nicolas Friess, Tiziana L. Koch, Sebastian Richter, Simon Seyfried, Luise Wraase, et al. 2020. “Quality Assessment of Photogrammetric MethodsA Workflow for Reproducible UAS Orthomosaics.” Remote Sensing 12 (22): 3831. https://doi.org/10.3390/rs12223831.
Puliti, Stefano, Bruce Talbot, and Rasmus Astrup. 2018. “Tree-Stump Detection, Segmentation, Classification, and Measurement Using Unmanned Aerial Vehicle (UAV) Imagery.” Forests 9 (3): 102. https://doi.org/10.3390/f9030102.
Seifert, Erich, Stefan Seifert, Holger Vogt, David Drew, Jan van Aardt, Anton Kunneke, and Thomas Seifert. 2019. “Influence of Drone Altitude, Image Overlap, and Optical Sensor Resolution on Multi-View Reconstruction of Forest Images.” Remote Sensing 11 (10): 1252. https://doi.org/10.3390/rs11101252.
Wallace, Luke, Arko Lucieer, Zbyněk Malenovský, Darren Turner, and Petr Vopěnka. 2016. “Assessment of Forest Structure Using Two UAV Techniques: A Comparison of Airborne Laser Scanning and Structure from Motion (SfM) Point Clouds.” Forests 7 (12): 62. https://doi.org/10.3390/f7030062.