FlightCoverageAnalyzer

Judges whether nadir drone passes constitute a photogrammetrically valid capture — a real multi-line grid with adequate side overlap, or a single wide-altitude pass whose footprint covers the target — with a green/amber/red verdict instead of eyeballing a flight map.

Low pass -- roof / lot detail (~66 ft AGL)clip 0020
Insufficient overlap
Mean AGL
20.0 m
Detected legs
3
Est. footprint width
29.6 m
Side overlap
74%, 65%

3-line grid but minimum side overlap is only 65% (< 65% target) — adjacent lines may not photogrammetrically match up.

High pass -- whole-block context (~159 ft AGL)clip 0022
Covers target
Mean AGL
48.4 m
Detected legs
1
Est. footprint width
71.6 m

Single line, but footprint (~72m) already exceeds the target width (20m) — full coverage without needing multiple lines.

Legend

  • Valid coverage — grid side-overlap meets the target, or a single pass whose footprint already covers the target width.
  • Insufficient — adjacent lines may not photogrammetrically match up, or a single pass doesn't reach the target width.
  • Inconclusive — a single line with no target width supplied to check against.

Usage

import { FlightCoverageAnalyzer } from "@/components/FlightCoverageAnalyzer";
import type { FlightPass } from "@/components/FlightCoverageAnalyzer";

const passes: FlightPass[] = [
  { id: "0020", label: "Low pass", points: [{ timestampMs: 0, lat: 30.26, lon: -97.71, altitudeMeters: 156 }, /* ... */] },
];

<FlightCoverageAnalyzer
  passes={passes}
  options={{ groundRefMeters: 136.35, targetWidthMeters: 20 }}
/>