The Color-Coded Site Map That Tells You What to Fly First

On a large tower inspection project, not all remaining sites are created equal. Some are in Class G airspace and can be flown anytime with no authorization required. Some have instant LAANC auto-approval up to a sufficient altitude. Some need 72-hour LAANC coordination. Some require a DroneZone COA. Some are already scheduled. And some have TFRs or restrictions that make them unflyable right now.

When those distinctions are buried in a spreadsheet, making smart sequencing decisions requires sorting, filtering, and cross-referencing data across multiple columns. When they’re on a map with color-coded pins, the whole picture is visible in thirty seconds.

How the Color Coding Works

FlightDeck’s interactive map — available in both the Map Remaining Flights tool and the Forecast Scheduler — displays each unflown site as a colored pin. The color reflects the airspace authorization status at that location.

Solid green means the site has a Forecast Date assigned — it’s scheduled and ready. This color overrides all other categories, so scheduled sites stand out regardless of their airspace type.

Dark red means a DroneZone COA is required. These sites can’t be flown via LAANC, and flying them without the COA in place isn’t an option. They’re the sites that need the most lead time and shouldn’t be left until the end of the project.

Orange means the site needs 72-hour LAANC Further Coordination. The operating altitude exceeds the instant-approval ceiling, and the authorization requires a coordination window before the flight date. These need to be submitted with adequate lead time.

Light blue means the site qualifies for instant LAANC auto-approval — the planned altitude is within the available grid ceiling, and authorization can typically be obtained the same day.

Light green means the site is in Class G airspace with no authorization required. These are the simplest sites from a regulatory standpoint.

Gray means airspace data hasn’t been populated for that site yet — it needs to run through the Airspace Checker before it can be sequenced.

Scheduling from the Map

In the Forecast Scheduler, clicking a pin opens a popup with the site’s key details: site ID, tower type, tower height, ICAO for the nearest airport, current weather conditions, airspace classification, authorization status, COA status, and whether the site has been flown or scheduled.

Clicking a site in the Forecast Scheduler lets you assign a forecast date directly from the map — you don’t have to go back to the spreadsheet to schedule individual sites. You can look at the map, see which orange sites need 72-hour coordination this week, select them, set dates, and move on to the light-blue sites that can be scheduled for the days after.

Sequencing Logic

The map makes a sequencing strategy visible that’s hard to execute from a spreadsheet alone. Dark red COA sites need to be identified early and moved into the authorization pipeline immediately — the processing time for a DroneZone COA means you need those applications submitted long before you plan to fly. Orange LAANC72 sites need to be submitted 72 hours before the flight date, which is a manageable lead time as long as you’re not scheduling them the day before.

Light blue and light green sites can be sequenced more flexibly around weather, crew availability, and geographic efficiency. The map groups the green and blue sites visually so you can cluster the easy-authorization sites into efficient geographic routes.

The Map as a Planning Tool

Most project planning decisions that involve sequencing, route optimization, and authorization status benefit from seeing the spatial picture rather than reading rows in a spreadsheet. The color-coded map is how FlightDeck makes that picture available without requiring a separate GIS tool or manual map layer creation.

It’s also the fastest way to answer the question a project manager will eventually ask: “What’s the status across the whole project?” A screenshot of the map answers it more clearly than any summary table.

Try FlightDeck free for 30 days.

How Multi-Threaded Upload Saves Field Time on Large Tower Inspection Jobs

Uploading hundreds of photos from a rural tower site on intermittent cell signal is where field time disappears. A standard single-threaded upload that hits a connection drop has to start over. A system without state tracking can’t tell what already uploaded successfully. On a large dataset at a remote location, these aren’t edge cases — they’re the normal operating environment.

FlightDeck’s QC Uploader handles this with a multi-threaded upload architecture and a persistent SQLite manifest that tracks every file individually.  Out of the box, you’ll experience 4x upload processing, adjustable to 10 simultaneous threads.

 

How the Upload System Works

Phase 3 of the QC Uploader workflow is the AWS S3 upload. Multiple concurrent worker threads run simultaneously, each pulling jobs from the upload queue. Every JPEG and every KML file in the dataset is registered in the manifest database before any upload begins. Workers pick up files from the queue, transfer them to your configured S3 bucket, and report status back as each file completes.

The manifest records four states for every file: Pending (queued, not yet started), Uploading (transfer in progress), Uploaded (confirmed complete), and Failed (transfer did not complete). Each file’s state is written to a local SQLite database — upload_manifest.db in your project root folder — as the upload runs.

Resumable Uploads

When connectivity drops mid-upload, you don’t lose your progress. When you restart the upload, the manifest is read first. Files marked as Uploaded are automatically skipped — they don’t get re-transferred. The workers pick up from the remaining queue and continue.

On a 1,200-photo dataset where 800 photos uploaded before the connection dropped, restarting the upload means 400 files to go, not 1,200. On a rural site with marginal signal, this is the difference between finishing the upload before you leave and having to come back.

S3 Configuration

The upload system connects to AWS S3 using standard credentials: bucket name, region, access key, and secret key — configured in the Settings tab of the QC Uploader. The bucket and credentials are set once and apply across all projects. If you’re delivering data to multiple clients with separate buckets, updating the settings between projects takes about 30 seconds.

Single-Dataset Mode

On a project with dozens of sub-folders, you sometimes need to re-upload a single site — a re-fly, a corrected KML, a client request for a specific tower’s data. The Dataset Selection filter limits the upload to the selected sub-folder without affecting the rest of the manifest. Files in other sub-folders keep their Uploaded status; only the selected dataset is re-queued.

This matters because re-running a full project upload to handle one sub-folder isn’t practical when you have hundreds of sites already delivered. Single-dataset mode makes targeted re-delivery a one-minute operation.

Cancel and Reset

If you need to abort an upload and start fresh — wrong bucket configured, new credentials, dataset needs to be rebuilt — the Cancel and Reset function stops all active workers and clears the manifest after confirmation. The clear is intentional: it requires a confirmation step because clearing the manifest means the next upload will re-transfer everything regardless of prior state.

Upload as the Last Step

The QC Uploader workflow runs in order: EXIF quality analysis, KML generation, then upload. By the time files are queued for transfer, they’ve been checked for aperture, ISO, and GPS coverage, and a color-coded KML has been generated. What reaches your S3 bucket is a reviewed, documented dataset — not raw field photos dumped to cloud storage.

For clients who receive data directly from S3, that means what they download is already organized and annotated. For your own archive, it means every delivery has an associated quality record.

Try FlightDeck free for 30 days.

What Is Geoid Undulation and Why Does Your Drone Altitude Depend on It?

Your drone records altitude relative to the WGS84 ellipsoid — a smooth mathematical model of the Earth’s shape. Google Earth renders its terrain surface relative to the geoid — a model of the Earth’s gravity field that approximates mean sea level. These two reference surfaces don’t line up. The vertical gap between them at any given location is called geoid undulation, and if you don’t account for it, your camera icons in Google Earth will appear to float above or sink below the ground surface.

In the Gulf Coast region of Louisiana, for example, the WGS84 ellipsoid sits approximately 27 to 28 meters above the geoid. A drone hovering at what its GPS reports as 3 meters of altitude appears at roughly -25 meters in Google Earth — effectively underground. The correction isn’t a workaround — it’s a required step for accurate spatial visualization.

What Doesn’t Get Changed

It’s important to understand what the altitude correction actually modifies. The drone’s raw GPS measurements are preserved exactly as recorded in the KML’s extended data block. The absolute altitude value embedded by the drone, the AGL altitude from the barometer, the original EXIF record — none of these are touched. The correction applies only to the coordinates element in each photo’s placemark, which is the value Google Earth reads to position the camera icon vertically on screen.

What changes is where Google Earth draws the icon. What doesn’t change is the underlying GPS record. If a digital processing team opens any photo’s placemark balloon in Google Earth, the raw measured values are there, unmodified, in the extended data.

FlightDeck’s Geoid Calculator

Manually calculating geoid undulation requires geodetic data and formulas that most commercial UAS operators don’t have in their normal workflow. FlightDeck automates this using GCP data from Aeropoints.

When you conduct a ground control point survey with Aeropoints equipment, the exported CSV contains both the GPS-derived ellipsoidal height and the orthometric height (height above the geoid) for each control point. The difference between those two values at each point is the geoid undulation for that location. FlightDeck’s Geoid Calculator reads your Aeropoints CSV, computes the undulation at each GCP, and returns the mean value across all points — along with the standard deviation, minimum, maximum, and point count.

That mean value is what you enter as the Altitude Display Offset in the QC Uploader’s KML tab. The calculation takes seconds. The alternative — looking up geoid undulation values in NOAA’s geoid model tables and averaging them manually — is the kind of step that gets skipped when it shouldn’t be.

Reading the Calculator Output

The summary from the Geoid Calculator shows you more than just the mean. The standard deviation tells you how consistent the undulation is across your survey area — a low standard deviation means the offset applies evenly across the site; a high one suggests terrain variation that may cause some icons to appear slightly off even after correction.

The geoid model name (typically GEOID12B or GEOID18 for most U.S. operations) is recorded from the CSV header. If the Aeropoints file was exported with height values in feet rather than meters, the calculator detects this and converts before computing the undulation.

Why This Matters for Deliverables

For tower inspection work specifically, the Altitude Display Offset is what makes a KML deliverable look professional. Camera icons at the correct elevation above Google Earth’s terrain surface give reviewers an accurate visual of where the photos were taken relative to the structure. Icons floating 27 meters in the air, or buried underground, tell a different story — and one that raises questions about data quality regardless of whether the underlying GPS record is perfectly accurate.

The Geoid Calculator in FlightDeck is the step that connects your survey data to a visually accurate deliverable. It’s included in every license tier.

Try FlightDeck free for 30 days.

KML Files for Drone Inspections: Why Google Earth Still Matters to Your Clients

A KML file is more than a deliverable artifact. It’s a spatially organized quality record — every photo placed at the GPS coordinates where it was captured, with the camera’s orientation shown, with the coverage overlap calculated for each frame. When it’s done right, a client or project manager can open it in Google Earth and immediately see exactly what was captured, where the gaps are, and whether the data quality is acceptable.

FlightDeck builds this automatically for every flight sub-folder in your project, using the EXIF and XMP metadata embedded in your photos by the drone.

What Goes Into Each KML

Phase 2 of the QC Uploader workflow is KML generation. For each photo in the dataset, the KML generator reads GPS coordinates, absolute altitude, and gimbal orientation data — pitch, roll, and yaw — and places a camera icon at the exact position where the photo was taken, pointing in the direction the camera was aimed.

Each camera icon has a view frustum that visualizes the gimbal direction. You can see at a glance whether the cameras were consistently pointed at the structure or drifting, and whether the angular coverage around a tower is complete.

The icons are color-coded by overlap percentage:

Green indicates 80% or higher sequential overlap — sufficient for photogrammetry deliverables and structural documentation. Yellow indicates 60–79% overlap — marginal, worth reviewing before delivery. Red indicates below 60% overlap — a gap in coverage that should be flagged for a potential re-fly.

The Extended Data Balloon

Clicking any camera icon in Google Earth opens a data balloon with the complete record for that photo: site ID, camera make and model, aperture, ISO, shutter speed, focal length, GPS coordinates, absolute altitude, AGL altitude, gimbal angles, aircraft orientation, overlap percentage, and QC pass/fail status for aperture and ISO.

This extended data is what your QC report, your client review, and any formal documentation can reference. Every measurement is directly from the drone’s embedded metadata — not derived or estimated.

Altitude Display Correction

KML files use absolute altitude mode, which means camera icons are placed at their GPS-recorded altitude relative to the WGS84 ellipsoid. Google Earth renders its terrain surface using SRTM data, which uses a different altitude reference. Without correction, camera icons may appear several meters above or below the actual terrain surface in Google Earth.

FlightDeck corrects for this with an Altitude Display Offset — an additive value in meters applied to every photo’s altitude when writing the KML coordinates. Set correctly, this makes camera icons appear at the right elevation relative to Google Earth’s terrain. The offset applies to both camera icon positions and any laser rangefinder target altitudes in the dataset, so the entire KML is consistent.

The Geoid Calculator tool in FlightDeck derives the correct offset for your specific survey area from Aeropoints GCP data — more on that in a separate post.

Single-Dataset Mode

On a large project, you may need to re-generate the KML for just one sub-folder — maybe a site was re-flown and you have new photos, or you’re adjusting the altitude offset for a specific location. The Dataset Selection filter in the QC Uploader limits KML generation to the selected sub-folder without touching the rest of the project. Clear the selection to process all folders again.

Why This Matters Beyond the Deliverable

The KML isn’t just for the client. It’s for your own QA before delivery. Opening the color-coded KML after a flight and before upload lets you verify coverage, spot the red icons that indicate gaps, and make the decision to re-fly before the job is closed out.

Catching a coverage gap from the Google Earth view is a quick conversation with a project manager and a targeted re-fly. Catching it after the client has reviewed the delivery is a different conversation entirely.

The KML generation in FlightDeck builds this review layer automatically, without requiring external GIS software or manual file preparation. It’s one of the outputs that tends to get noticed — clients who receive well-structured KML files alongside their photo deliverables understand that the data was reviewed and organized before it reached them.

FlightDeck’s KML generation is included in every license tier. Try it free for 30 days.

How Automated Photo QC Catches Problems Before Your Client Does

Every commercial UAS pilot has been there.

You deliver a dataset — hundreds of photos from a long day on a tower site — and two days later the client comes back. Half the photos are soft. A handful are missing GPS. There’s a gap in coverage on the north face that nobody caught until the data went into processing. You drive back out. You reshoot. You eat the cost.

That scenario is almost entirely preventable. The problem isn’t the field work — it’s the gap between collecting data and handing it off, where quality issues can hide undetected. FlightDeck’s QC Uploader closes that gap by running a structured quality check on every image before it ever reaches your client.

What the QC Uploader Actually Checks

The QC Uploader runs three checks against every JPEG in your dataset. These aren’t arbitrary — they’re the failure modes that consistently show up in rejected deliverables.

Aperture (F-stop)

The threshold is F/5. Any photo shot at an aperture wider than F/5 — F/4, F/2.8, and so on — gets flagged. On tower inspection work this matters more than most pilots realize. Wide apertures produce shallow depth of field. On a structure with antennas, cables, mounting hardware, and the tower face itself all at slightly different distances, a wide aperture means some of it is going to be soft. If the antenna array you were hired to document is the element that fell outside the focus plane, that image fails — even if it looks fine at 25%.

The QC Uploader catches these before they’re in your delivery folder.

ISO Speed

The threshold is ISO 400. Anything above ISO 400 is flagged. High ISO introduces digital noise that shows up clearly in processed deliverables — pitting on flat surfaces, smearing on detail, artifacts in shadow areas. Clients doing structural assessment from your imagery need clean data. A noisy image at ISO 800 that looks acceptable on a phone screen can be unusable when it goes into a photogrammetry pipeline or a formal inspection report.

GPS Coverage

Every photo is required to have a GPS fix. Images missing GPS coordinates are flagged separately from the aperture and ISO checks. For inspection work, a photo without GPS is essentially an orphan — it can’t be placed in a KML, it can’t be matched to a structure location, and it creates gaps in the spatial record. Missing GPS usually means something went wrong during the flight, and it’s information you want before delivery, not after.

Flags Don’t Block — They Inform

An important design point: flagged photos don’t stop the upload. The QC Uploader surfaces the issues in an analysis report so you can review them and make a decision. Maybe the flagged photos are establishing shots where exposure priority overrode the usual settings and the softness doesn’t matter for those specific frames. Maybe a handful of ISO flags on a cloudy afternoon are acceptable given the context.

That’s your call to make — but you need the information to make it. What the QC Uploader eliminates is the version of events where those images go to the client unchecked and they make the call for you.

Where This Fits in the Workflow

The QC Uploader is Phase 1 of a three-phase delivery workflow built into FlightDeck.

After the EXIF analysis runs, Phase 2 builds a KML file for each flight sub-folder — a Google Earth-ready file with every photo represented as a camera icon at its GPS position, with a view frustum showing the gimbal direction. The camera icons are color-coded by overlap percentage: green for sufficient overlap, yellow for marginal, red for a gap that may need a re-fly. That color-coded KML is what goes to your client or into your project archive, and it tells anyone who opens it exactly what was captured and where.

Phase 3 is the upload itself — a multi-threaded AWS S3 transfer with a local manifest database that tracks every file. If your connection drops mid-upload on a rural site, you restart the upload and already-confirmed files are automatically skipped. You don’t re-upload a thousand files because the cell signal dropped on file 847.

The 3D Viewer

Built into the QC Uploader is a 3D photo viewer that renders your dataset spatially using the gimbal and GPS data from each image. You can inspect your coverage in three dimensions before upload — see where the gaps are, check that the angular coverage around the structure is complete, verify that the altitude banding is consistent. Click any camera icon in the viewer to pull up the full-resolution photo.

This is the kind of review that used to require loading everything into external software after the fact. It happens inside FlightDeck before anything leaves your machine.

Catching Problems Is Faster Than Fixing Them Later

A QC flag caught in the field — or even back at the office before upload — is a fifteen-minute fix. A QC problem caught by the client after delivery is a reshoot, a delay, a conversation about why it happened, and a question about whether your next project gets approved.

The QC Uploader doesn’t make field decisions for you. It makes sure that by the time data leaves your hands, you’ve seen everything there is to see about it.

FlightDeck’s QC Uploader is included in every license tier. Try FlightDeck free for 30 days and run your next dataset through it before delivery.

What Every Commercial UAS Pilot Needs in Their Operations Software

FlightDeck UAS operations software dashboard showing flight logs, weather data, and site management tools

Not all drone software is created equal — and most of it was built for the consumer market, not commercial operators. Here’s what to actually look for when evaluating operations software for professional UAS work.

1. Offline Functionality

Non-negotiable. If the software requires a connection to function, it’s not built for commercial field operations. Real jobs happen in real places — and real places don’t always have LTE coverage.

Look for software that stores data locally and syncs when a connection is available, not software that fails when connectivity drops.

2. Structured Flight Logging

You need more than a date and a location. Professional flight logging captures aircraft, pilot, crew, weather, airspace authorization, preflight completion, and anomalies — in a format that’s searchable and reportable.

If you’re logging flights in a free-text notes field, you’re not logging — you’re journaling.

3. Client and Project Management

Your missions belong to clients and projects. Software that can’t connect a flight to a client job means you’re manually maintaining those relationships somewhere else — or not at all.

4. Equipment Tracking

Your aircraft, batteries, payloads, and accessories have operational histories. Maintenance intervals, flight cycle counts, inspection records — all of this belongs in your operations software, not a separate spreadsheet.

5. Invoicing and Billing Integration

The best commercial UAS operations run the business and the flight operations on the same data. When your mission management and your invoicing share a platform, billing becomes a byproduct of doing the job — not a separate administrative task.

6. Data Ownership and Portability

Your operational history is a business asset. Make sure your software stores your data in a format you control, on hardware you own. Cloud-only platforms mean your data lives at the vendor’s discretion.

7. File Sync and Alert Management

For operators running multiple projects across locations, 2-way file sync ensures that changes in the field propagate back to the office — and alerts flag anything that needs attention. This is the difference between managing your operation and reacting to it.

How FlightDeck Scores

FlightDeck was designed by a commercial operator against exactly this checklist. Offline-first, SQL-backed, with 2-way file sync, project management, and integration with WiseSkys.com for invoicing and client management.

Download the free 30-day trial and evaluate it against your own requirements.