Post-Processed Kinematic (PPK) Survey Data with Emlid Studio

7 minute read

Published:

This post provides a simple step-by-step guide on how to perform Post-Processed Kinematic (PPK) for survey purposes.

In many field situations, Real-Time Kinematic (RTK) positioning is not always available. RTK requires stable internet infrastructure, additional hardware, and sometimes paid correction services. This is not always practical for agricultural fields or remote areas.

Fortunately, PPK provides a reliable alternative. With PPK, you only need one GNSS receiver (as a rover) in the field. The correction data can later be downloaded from publicly available CORS (Continuously Operating Reference Stations).

This tutorial explains how to perform PPK using:

  • Emlid Reach RS3
  • Base station data from CORS Network (NYWL station in this tutorial)
  • Emlid Flow (mobile app)
  • Emlid Studio (desktop software)

The software versions used in this tutorial:

  • Emlid Studio v1.9 (Windows 11 64-bit)
  • Emlid Flow v14.8 (iPhone iOS 18.5)

Other versions may look slightly different but the workflow is the same.


Terminology

For people new to GNSS, here are several key terms:

  • GPS: The satellite navigation system operated by the United States. It is only one of several global navigation systems.
  • GNSS: Global Navigation Satellite System. This includes multiple satellite systems such as: GPS (USA), GLONASS (Russia), Galileo (EU) and BeiDou (China). Modern receivers like the Reach RS3 use all systems together for higher accuracy.
  • RTK (Real-Time Kinematic): A positioning technique that receives correction data in real time from a nearby base station.
  • PPK (Post-Processed Kinematic): A positioning technique where the correction data is applied after the survey, using recorded GNSS logs.
  • Rover: The GNSS receiver that you carry in the field to collect survey points.
  • Base station: A fixed GNSS receiver with known coordinates. For PPK we typically use publicly available CORS stations.
  • UTC Time: A global time standard used by GNSS systems. All satellite data is recorded in UTC time, not local time.

Pre-requisite


Getting Start

Step 0. Before starting the survey, find a nearby CORS station using the NGS Web Map. The distance between your rover and the base station strongly affects the accuracy.

DistanceQuality
0–10 kmBest
10–20 kmVery good
20–40 kmAcceptable
40–60 kmNot recommended
>60 kmUsually unreliable

In this tutorial, we use the ⌈NYWL⌋ station since it is closet to Cornell AgriTech campus. You need to select the one that is closet to you.


Step 1. Connect your phone to the GNSS receiver using Emlid Flow, make sure the GNSS receiver is logging raw RINEX data, and create survey project in ⌈Survey⌋. RTK correction is NOT required during the survey.

You might also find this helpful: How to log data for PPK

Step 2. Tap the ⚙️ gear icon to configure survey settings

  • FIX ONLY: Off
  • COLLECT MODE: Averaging, 5s

Then start the survey.

Why averaging is important:

CORS stations usually record GNSS data every 5 seconds. If you collect survey points shorter than the base station sampling interval, the PPK software may not have enough data to compute corrections.

General rule: Averaging duration ≥ base station sampling interval

Example: If the base station sample rate is **8 seconds**, set averaging to ≥8 seconds

Step 3. Export your survey project from Emlid Flow on your phone as a CSV file. This file contains the raw coordinates recorded in the field. Later, PPK will correct these coordinates.

Step 4. Download the raw GNSS log (RINEX files) from your receiver (rover) on your phone. Typical files include:

  • xxxx.yyO (observation file)
  • xxxx.yyP (navigation file)
  • xxxx.yyB (backup file)

The files we need are:

  • .yyO
  • .yyP
FilePurpose
.yyORover observation data
.yyPSatellite navigation data

The number yy represents the year (e.g., .26O → 2026).

Step 5. Download the RINEX observation data covering your survey period from the selected CORS station. - Option 1: Go to the detail page of your selected base station, and click ⌈Quick Data Download⌋. - Option 2: Download from NCN Data and Product.

Check the supplementary at the end of this tutorial for details about how to select correct data files.

Option 1: Download data directly the selected base station page

Step 6. Launch Emlid Studio, select ⌈Stop & Go with Emlid Flow⌋, and import your Rover logged RINEX data, Base RINEX observation data and Sattelite Navigation data to the corresponding places. Specifically,

  • Rover: .yyO file from your GNSS rover logged RINEX data
  • Base: .yyO file from CORS RINEX observation data
  • Navigation: .yyP file from your GNSS rover logged RINEX data

Click ⌈Process⌋ to run PPK. Once it is done, you will see the trajectory of your GNSS receiver in centermiter level.

Step 7. Import your survey CSV file and generate corrected CSV using PPK. The generated files will be saved in the Rover logged RINEX data folder by default, or you can also find it by clikcing ⌈Show result files⌋

We survey four points at the four corners of a rectangle, the PPK shows precise results matched.

Supplementary

Understanding UTC Time (Very Important)

GNSS systems use UTC time, not local time.

However, field notes are usually recorded in local time, which can lead to confusion when downloading CORS data.

For example, in New York (Eastern Time, daylight saving):

Local TimeUTC Time
08:0012:00
09:0013:00
10:0014:00
11:0015:00

Conversion: Local time + 4 hours = UTC (during daylight saving time)

Always convert your survey time to UTC before downloading CORS data. Remember to check your own time zone!

Understanding CORS File Time Codes

CORS hourly files use letters to represent hours:

LetterHour (UTC)
a00
b01
c02
d03
e04
f05
g06
h07
i08
j09
k10
l11
m12
n13
o14
p15
q16
r17
s18
t19
u20
v21
w22
x23

Example: nywl075p.26o

PartMeaning
nywlstation ID
075day of year
p15:00–16:00 UTC
26year 2026
oobservation file

How to Choose the Correct CORS Data

The base station data must overlap with your survey time.

Example:

Survey:

  • Local: 11:05–11:20
  • UTC: 15:05–15:20

Required:

  • 15:00–16:00 UTC → p

Recommended practice: download two adjacent hours to avoid edge issues.

Common Reasons Why PPK Fails

  1. Base station too far away
    Atmospheric errors increase significantly with distance.

  2. Incorrect survey time
    • Using local time instead of UTC
    • Downloading the wrong hourly file
    • No overlap between rover and base data
  3. Incorrect file types
    • Rover: .yyO
    • Base: .yyO
    • Navigation: .yyP
  4. Invalid or corrupted CORS data This may happen if:
    • The download failed (e.g., 404 error)
    • The file is incomplete or empty
    • The format does not match the rover RINEX version
  5. Insufficient observation duration Short averaging time leads to poor satellite geometry and insufficient data for correction.

Final Advice

When performing PPK surveys:

  • Choose the closest CORS station
  • Always convert to UTC time
  • Download correct hourly files
  • Ensure averaging ≥ base sampling interval
  • Verify correct RINEX file types

Following these practices will ensure reliable centimeter-level positioning.