UAV Drone PPK Photogrammetry: End-to-End GNSS Workflow from Raw Log to Camera Geotag
UAV PPK photogrammetry replaces real-time radio links with post-flight kinematic baseline processing. The workflow converts raw multi-GNSS logs from the drone and base station into RINEX 3, verifies tracking continuity and multipath quality, resolves carrier-phase integer ambiguities with forward and reverse filters, synchronizes camera exposure event marks, applies the 3D antenna-to-camera phase centre offset, and transforms coordinates into the target project reference frame.
The five phases of UAV PPK processing
| Phase | Primary input | Critical check | Primary failure risk |
|---|---|---|---|
| 1. Raw log extraction | Drone and base binary files (.ubx, .sbf, .t02) | Confirm event marks and multi-frequency phase data | Corrupted binary conversion dropping shutter marks |
| 2. Quality gating | Base and rover RINEX 3 observation files | Evaluate SNR, cycle slips and base multipath RMS | Processing degraded base data degrades every camera geotag |
| 3. Kinematic baseline | Synchronous base and rover phase observations | Inspect ratio test factor and fixed ambiguity fraction | High-bank turns causing cycle slips and float solutions |
| 4. Camera event sync | Receiver TIMEMARK events and raw image timestamps | Interpolate trajectory at exact shutter midpoint | Mismatched photo count vs shutter event count |
| 5. Datum alignment | Cartesian coordinates and local geoid grid | Verify target CRS, epoch, and height reference | Mixing ellipsoidal and orthometric heights in bundle adjustment |
Sources: IGS: formats and standards · ESA Navipedia: GNSS basic observables
Extract raw observations without losing shutter events
Kinematic UAV post-processing requires complete raw phase and pseudorange measurements alongside accurate shutter trigger records. Receiver logs from systems such as u-blox ZED-F9P, Septentrio Mosaic-X5, or NovAtel OEM7 record hardware interrupts generated by the camera hot-shoe. Converting these files into RINEX 3 must preserve every event marker and satellite signal without truncation or decimation.
- Verify that the drone logging configuration records raw carrier-phase measurements on all active frequencies, not just navigation solutions.
- Retain TIMEMARK messages during conversion. Dropping hardware event triggers forces reliance on inaccurate EXIF clock timestamps.
- Convert base station observations using the exact same RINEX minor version to ensure matching observation signal codes.
Sources: IGS: formats and standards
Gatekeep data quality before processing baselines
A common mistake in aerial survey is submitting unverified base and rover observations directly to a baseline solver. If the base station was set up near reflective structures, tree canopies, or high-power radio transmitters, severe multipath and cycle slips will undermine ambiguity resolution across the entire flight session.
- Audit base station completeness: verify that observation epochs match the planned logging rate and that tracking spans the full flight window.
- Inspect multipath metrics on primary frequencies; excessive MP1 or MP2 RMS at the base station indicates an unfavourable site environment.
- Check rover signal-to-noise ratio profiles across banked turns to detect antenna shading caused by the airframe or propellers.
Kinematic baseline solving and ambiguity resolution
PPK processes rover observations relative to a static base whose coordinates are known or determined via precise point positioning. A robust post-processing engine runs forward and backward Kalman filters, combining both passes to resolve carrier-phase integer ambiguities even through temporary tracking interruptions.
- Establish reliable base station coordinates. Any coordinate bias at the reference station translates directly into a systematic offset across every aerial geotag.
- Review the ambiguity resolution ratio test. Solutions with ambiguity ratio factors exceeding 3.0 provide stable kinematic baselines.
- Evaluate float epochs: if severe turns cause loss of lock, backward filtering can resolve ambiguities from following epochs back to the camera event.
Lever-arm offsets and camera synchronization
The GNSS antenna phase centre and the camera optical centre occupy different physical positions on the airframe. As the aircraft pitches, rolls, and yaws during flight, this offset vector rotates relative to the ground. Accurately transferring coordinates from the antenna phase centre to the camera projection centre requires a calibrated 3D lever arm.
- Measure the body-frame 3D vector between the antenna phase centre and the camera sensor entrance pupil before flight operations.
- Interpolate the solved trajectory at the exact microsecond timestamp of each shutter event rather than snapping to the nearest GNSS epoch.
- Account for camera orientation if utilizing gimbal mounts, or ensure the lever-arm vector aligns with the rigid airframe body frame.
Sources: IGS: formats and standards
Coordinate datum and vertical reference transformation
GNSS baseline processing delivers coordinates relative to the base station reference frame, typically ITRF or WGS 84 ellipsoidal coordinates. Photogrammetric reconstruction and engineering deliverables generally require a national projected coordinate reference system and orthometric heights referred to a gravimetric geoid.
- Document the source datum realisation and observation epoch before applying coordinate transformations.
- Apply a traceable transformation operation to map global Cartesian coordinates to projected national grids like CGCS2000 or UTM.
- Apply a verified regional geoid undulation model to derive orthometric heights. Do not feed raw ellipsoidal heights directly into elevation models expecting sea-level heights.
- Validate the final block coordinates against surveyed ground control points (GCPs) and independent checkpoints before aerial triangulation.
Sources: PROJ: coordinate operations · PROJ: coordinate reference systems
References and methodology
Technical definitions follow the sources below. Worked examples are illustrative; product-specific thresholds are identified as PosFlow settings. For corrections, contact PosFlow with the article URL and the relevant specification.