
Drone Surveying and PLSS: Connecting UAV Data to Legal Land Descriptions
How GIS analysts and surveyors convert drone flight boundaries to Section-Township-Range legal descriptions using reverse PLSS lookup and the Township America API.
Drone flights produce coordinates. Land records need legal descriptions. Bridging that gap — accurately and at scale — is where drone surveying and PLSS intersect, and where a lot of time gets lost.
A UAV mission over an agricultural parcel in eastern Nebraska generates georeferenced orthophotos with precise GPS extents. The permit application, the title record, and the survey report all need those extents expressed as Section, Township, and Range. That translation step is not complicated in principle, but when you are processing dozens of flight boundaries or running automated pipelines, doing it by hand is not sustainable.
This guide walks through the drone surveying PLSS workflow: what the connection looks like in practice, how to structure the conversion, and how to automate it using the Township America API.
Why PLSS Still Anchors Modern Drone Surveys
The Public Land Survey System divides roughly 1.5 billion acres across 30 states into a grid of Townships (6×6-mile blocks), Ranges (columns east or west of a principal meridian), and Sections (the 36 one-square-mile parcels within each Township). That grid has been the legal framework for land ownership, permits, and mineral rights in the American West since the 18th century. Technology has changed; the underlying records have not.
When a surveyor delivers a drone-derived topographic map, the client often needs the output tied to a legal description for:
- Permit filings — FAA Part 107 waivers and state environmental permits reference parcel boundaries by legal description
- Title and deed records — Property transactions require PLSS-anchored descriptions, not decimal degrees
- Construction and infrastructure — Pipeline right-of-way documents, utility easements, and agricultural leases all reference Section-Township-Range
- GIS integration — Overlaying UAV-derived layers against existing cadastral data requires consistent PLSS indexing
GPS coordinates describe where you were. Legal descriptions describe what you were on. For any work that feeds into a record, a permit, or a deed, you need both.
Reverse Lookup: From GPS Flight Boundary to Section-Township-Range
A drone flight boundary is typically a bounding box or polygon in WGS84 — four corners expressed as latitude/longitude pairs. Converting that to a PLSS legal description is a reverse lookup: you feed coordinates in and get a Section-Township-Range back.
For a single point this is straightforward. For a flight covering multiple sections, you need to decide what you are representing:
- Centroid method — Run a reverse lookup on the centroid of the flight area. Gives you the primary Section for the survey area. Fast and appropriate when the flight is mostly within one Section.
- Bounding box corners — Run reverse lookups on all four corners, then list all unique Section-Township-Range combinations. Best for surveys that cross Section lines, which is common with 40+ acre parcels.
- Polygon intersection — Clip the flight polygon against the PLSS grid and enumerate all Sections with non-trivial overlap. The most precise method for regulatory filings.
For most field workflows, method 2 strikes the right balance. You capture all Sections in the survey area without needing a full spatial analysis pipeline.
A detailed walkthrough of the coordinate-to-legal-description process is covered in the reverse PLSS lookup guide, which is worth reading before building a production pipeline.
Integrating UAV Outputs with PLSS: A Step-by-Step Workflow
Here is the practical sequence for connecting drone survey data to legal land descriptions:
Step 1 — Export flight extents from your photogrammetry software
Most UAV processing platforms (Pix4D, DroneDeploy, Agisoft Metashape) can export the survey boundary as a GeoJSON or KML file. Pull the bounding coordinates of your area of interest as decimal degrees in WGS84.
Step 2 — Run a reverse PLSS lookup on each corner
For a rectangular flight area, that means four API calls — one per corner coordinate. Each call returns the Section, Township, Range, and principal meridian for that point.
Step 3 — Deduplicate and format the legal description
Collect the unique Section-Township-Range combinations from your corner lookups. A flight that spans two Sections in the same Township might return:
- Section 22, T15N R2E, Sixth Principal Meridian
- Section 23, T15N R2E, Sixth Principal Meridian
Format these as comma-separated or listed entries depending on the target document.
Step 4 — Validate against cadastral data
Cross-check your output against the BLM Master Title Plats or state cadastral layers for the area. The Township America API returns sub-meter centroid accuracy, but ground-truthing against authoritative parcel data is good practice before filing.
Step 5 — Embed in deliverables
Drop the legal descriptions into your survey report cover page, FAA waiver application, or project metadata file. GIS deliverables should include PLSS attributes in the feature layer schema.
Using the Township America API for Automated Coordinate Conversion
Manual lookups work for one-off surveys. Production workflows need automation. The Township America API accepts a latitude/longitude pair and returns a full PLSS legal description including Section, Township, Range, meridian, state, and aliquot parts.
A basic reverse lookup call:
curl "https://api.townshipamerica.com/v1/reverse?lat=40.4233&lng=-96.6621" \
-H "Authorization: Bearer YOUR_API_KEY"
Response:
{
"section": 22,
"township": "15N",
"range": "2E",
"meridian": "Sixth Principal",
"state": "NE",
"legal_description": "Sec 22 T15N R2E Sixth Principal Meridian, NE",
"centroid": { "lat": 40.4192, "lng": -96.6578 }
}
For bulk processing — multiple flight boundaries or an entire project's worth of survey polygons — the batch endpoint accepts up to 1,000 coordinate pairs in a single request. The API integration guide covers authentication, rate limits, error handling, and output formats including GeoJSON, KML, and CSV.
The Python SDK handles this cleanly in post-processing scripts:
from townshipamerica import Client
client = Client(api_key="YOUR_API_KEY")
# Four corners of a drone survey boundary
corners = [
(40.4291, -96.6701),
(40.4291, -96.6541),
(40.4175, -96.6541),
(40.4175, -96.6701),
]
sections = set()
for lat, lng in corners:
result = client.reverse(lat=lat, lng=lng)
sections.add(result["legal_description"])
print("Survey covers:", sections)
Real Example: Converting a Drone Survey Extent to Legal Description
A GIS analyst processes a drone survey of farmland near Beatrice, Nebraska. The orthomosaic output covers approximately 320 acres. Flight extents from the project metadata:
- SW corner: 40.4175°N, 96.6701°W
- NE corner: 40.4291°N, 96.6541°W
Running a reverse lookup on each corner against the Sixth Principal Meridian returns:
- SW corner → Section 22, T15N R2E, Sixth Principal Meridian, NE
- NE corner → Section 15, T15N R2E, Sixth Principal Meridian, NE
The survey spans the eastern portion of Section 22 and the southeastern corner of Section 15, both in T15N R2E. The legal description for the project record reads:
Portions of Sec 15 and Sec 22, T15N R2E, Sixth Principal Meridian, Gage County, Nebraska
That description goes into the survey report cover sheet, the delivery metadata, and the title company's review packet — three documents, one lookup sequence.
For analysts processing 50 or 100 survey boundaries per month, running this automatically at the end of a photogrammetry pipeline eliminates a manual step that commonly introduces transcription errors.
Fitting PLSS Into Your UAV Post-Processing Pipeline
Drone surveying and PLSS are not separate workflows — one produces the data, the other provides the legal anchor for that data. Building the coordinate-to-legal-description conversion into your post-processing pipeline means your deliverables are complete from the start, without a manual lookup step before filing.
The PLSS converter handles individual lookups. The API handles everything at scale. If you are processing UAV survey data regularly and need to automate PLSS conversion, see the API docs for rate limits, batch options, and output formats.