geoprimsField-grade geospatial math

Survey grid (lawnmower pattern)

A serpentine mapping pattern over an area, with no-fly holes routed around, the fewest lines by default, overshoot, and an optional crosshatch: waypoints, line count, path length, turns, photo count, and flight time.

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

Experimental: not yet fully verified. How results are checked

A published result changed on 2026-09-23: Image count and the survey grid (version 1.1.0) now count the way published flight planning does (Penn State GEOG 892): ⌈width / spacing⌉ + 1 lines with the outer lines on the edges, and ⌈length / photo spacing⌉ + 1 photos per line plus extra photos past each end, 2 by default (a new input; 0 leaves them out). Most areas gain a line. The Penn State block now gives its published 10 lines and 430 photos, where 1.0.0 gave 9 and 342. The superseded vectors pinned the old line counts. Changelog

4

Fly 4 lines for 3.02 km and about 104 photos. That takes about 5 min.

Waypoints
LatitudeLongitudeKind
39.9999657 deg-105.0006714 degline_start
39.9999657 deg-104.9922786 degline_end
40.0004386 deg-104.9922786 degline_start
40.0004386 deg-105.0006714 degline_end
40.0009114 deg-105.0006714 degline_start
40.0009114 deg-104.9922786 degline_end
40.0013842 deg-104.9922786 degline_start
40.0013842 deg-105.0006714 degline_end
Photos
Path length
Line length over the area
Turns
Flight time
Line direction
Provenance
Computed by
drone.mission.survey-grid 1.1.0, core 0.1.0
Model
Lines swept on a local transverse Mercator plane, ⌈width / spacing⌉ + 1 of them centered so the outer lines reach the edges (Penn State GEOG 892), each covering its strip of the area and cut at buffered holes, joined in serpentine order; ⌈length / photo spacing⌉ + 1 photos per line plus the extras past each end; transits that would cross a hole follow its buffered boundary
Accuracy
Line spacing is true to within 1e-7 across a few kilometers (checked geodesically). Flight time ignores turns, climbs, and wind.
Notes
1 shown with the answer
Cites
Abdullah, Q., Penn State College of Earth and Mineral Sciences, GEOG 892: Geospatial Applications of Unmanned Aerial Systems; Wolf, P. R., Dewitt, B. A., and Wilkinson, B. E., McGraw-Hill, Elements of Photogrammetry with Applications in GIS; Karney, C. F. F., Journal of Geodesy, Algorithms for geodesics

Something look off?

Your values

Showing an example. Change anything.
KML, KMZ, GPX, GeoJSON, CSV, WKT, or WKB — or drop it on the box. Read on this device.
More options 5
Run many at once from a CSV

Loading…

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

Model: Lines swept on a local transverse Mercator plane, ⌈width / spacing⌉ + 1 of them centered so the outer lines reach the edges (Penn State GEOG 892), each covering its strip of the area and cut at buffered holes, joined in serpentine order; ⌈length / photo spacing⌉ + 1 photos per line plus the extras past each end; transits that would cross a hole follow its buffered boundary

Accuracy: Line spacing is true to within 1e-7 across a few kilometers (checked geodesically). Flight time ignores turns, climbs, and wind.

Worked example: A 602 m by 150 m field at 52.5 m line spacing. Source: add-drone-suite survey-grid scenario: lines run along the long axis, ⌈150 / 52.5⌉ + 1 = 4 lines.

You enter

Area
40, -105 40, -104.99295 40.00135, -104.99295 40.00135, -105
Groundspeed
10 m/s
Height above ground
120 m
Line spacing
52.5 m
Photo spacing
30 m

You get

Flight lines
4
Photos
104
Path length
3.02 km
Line length over the area
2.41 km
Turns
6
Flight time
5 min
Line direction
90°
Height
120 m above ground level (constant) at every waypoint

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

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

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

Changes

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

Sources

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