geoprimsField-grade geospatial math

Lidar mission planning

Swath, line spacing, and pulse density for a lidar flight, with the aggregate density over overlapping lines checked against the 3DEP quality levels.

Planning and education aid. Not for primary navigation. Full disclaimer

Experimental: not yet fully verified. How results are checked

140m

Each line is 140 m wide; all lines together give 171.4 pulses per square meter.

Line spacing
Pulse density, one line
Aggregate pulse density
Point density
USGS 3DEP quality level
Provenance
Computed by
drone.sensors.lidar-plan 1.0.1, core 0.1.0
Model
Swath = 2H tan(FOV/2); line spacing = swath (1 − side overlap); nominal pulse density = pulse rate ÷ (speed × swath) for one line, and ÷ (speed × line spacing) for the aggregate over overlapping lines; points = pulses × returns per pulse. Quality levels by aggregate nominal pulse density (USGS Lidar Base Specification 2025 rev. A, table 1)
Accuracy
Nominal and averaged across the swath: oscillating and non-repetitive scan patterns spread pulses unevenly, denser at the swath edges or center. Quality levels also set accuracy requirements that density alone does not meet; QL0 has QL1's density with tighter accuracy
Notes
1 shown with the answer
Cites
U.S. Geological Survey, 3D Elevation Program, Lidar Base Specification

Something look off?

Your values

Showing an example. Change anything.
More options 1
Run many at once from a CSV

Loading…

How we got thisFormula, worked example, sources, and proof

Model: Swath = 2H tan(FOV/2); line spacing = swath (1 − side overlap); nominal pulse density = pulse rate ÷ (speed × swath) for one line, and ÷ (speed × line spacing) for the aggregate over overlapping lines; points = pulses × returns per pulse. Quality levels by aggregate nominal pulse density (USGS Lidar Base Specification 2025 rev. A, table 1)

Show your work

  1. Pulse density, one line

    pulse rate ÷ (speed × swath)

    240,000 ÷ (10 × 140.04) = 171.4

  2. Swath width

    2 × height × tan(FOV ÷ 2)

    2 × 100 × tan 35° = 140 m

The same steps an agent gets from the MCP server with explain: true.

Accuracy: Nominal and averaged across the swath: oscillating and non-repetitive scan patterns spread pulses unevenly, denser at the swath edges or center. Quality levels also set accuracy requirements that density alone does not meet; QL0 has QL1's density with tighter accuracy

Worked example: 240,000 pulses a second, 70° field of view, 100 m at 10 m/s. Source: add-practitioner-essentials lidar scenario: swath about 140.0 m and 171 pulses per m², beyond QL1. It is golden test vector v001, and every build checks the tool still gives its answer within its tolerance.

You enter

Field of view
70 deg
Flight height
100 m
Pulse rate
240 kHz
Groundspeed
10 m/s

You get

Swath width
140 m
Line spacing
140 m
Pulse density, one line
171.4 pls/m²
Aggregate pulse density
171.4 pls/m²
Point density
171.4 pls/m²
USGS 3DEP quality level
QL1 (at least 8 pulses per m²)

Review: Not yet independently reviewed by a Part 107 remote pilot.

Last verified: 2026-09-22, when a maintainer last confirmed this tool's sources at the issuer. See the sources ledger.

Status: version 1.0.1, core 0.1.0. See this tool in the verification report.

Changes

Checked against: 6 golden test vectors (download the test vectors, each with its source and tolerance). See how results are checked and every source.

Sources

Terms

USGS: U.S. Geological Survey
The US government science agency that runs the 3D Elevation Program and sets the quality levels for lidar data. Source: Lidar Base Specification

Experimental means this tool has not yet met the stable bar: at least 20 golden vectors, differential tests, and an independent worked example.

USGS — U.S. Geological Survey

The US government science agency that runs the 3D Elevation Program and sets the quality levels for lidar data.

Source: Lidar Base Specification