Raparelli & Bajocco (2019)
Difficulties in forests for flight planning
Wallace et al. 2016
pest infections (Puliti, Talbot, and Astrup 2018)
dead crowns (Hese, Thiel, and Henkel 2019)
Puliti et al. 2019 - Detection of pest infected tree stumps
Hese et al. 2019
3DR Solo in the Marburg Open Forest
Ground station setup in the Marburg Open Forest with pilot Simon
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)
#!/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)