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

10 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.

⚠️ Make sure the downloaded data fully overlaps with your survey time (in UTC).
See Supplementary (S3. How to Choose the Correct CORS Data and S4. More details about NCN data and products) at the end of this tutorial for details about how to select correct data files.

  • Option 1 (abandoned): Go to the detail page of your selected base station, and click 「Quick Data Download」.

    This option typically provides only *.yyd (Hatanaka-compressed) files, which are not directly supported by Emlid Studio. For Emlid Studio user, please refer to download Option 2.

    These files may still work with other PPK software that supports .yyd files (Hatanaka-compression RINEX) input.

  • Option 2: Download from NCN Data and Product. You can select either server below.
    • From NCN on AWS:
      curl -O https://noaa-cors-pds.s3.amazonaws.com/rinex/YYYY/DDD/ssss/ssssDDD0.YYd.gz
      # e.g.:
      curl -O https://noaa-cors-pds.s3.amazonaws.com/rinex/2026/075/nywl/nywl075p.26o.gz # hourly data (p -> hour 15-16)
      curl -O https://noaa-cors-pds.s3.amazonaws.com/rinex/2026/075/nywl/nywl0750.26o.gz # daily data
      # Check Supplementary (S4. More details about NCN data and products) for more information
      
    • From NGS servers:
      curl -O https://geodesy.noaa.gov/corsdata/rinex/YYYY/DDD/ssss/ssssDDD0.YYd.gz
      # e.g.:
      curl -O https://geodesy.noaa.gov/corsdata/rinex/2026/075/nywl/nywl075p.26o.gz # hourly data (p -> hour 15-16)
      curl -O https://geodesy.noaa.gov/corsdata/rinex/2026/075/nywl/nywl0750.26o.gz # daily data
      # Check Supplementary (S4. More details about NCN data and products) for more information
      

The 4-char station ID ssss must be in lowercase.

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

S1. 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!

S2. 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

S3. 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.

S4. More details about NCN data and products

The GNSS data collected at NCN stations are made available to the public by NGS in Receiver INdependent EXchange (RINEX) format. Most data are available within 1 hour (60 minutes) from when they were recorded at the remote site, and a few sites have a delay of 24 hours (1440 minutes).

  • Hourly files are only kept for 2 days.

  • Daily files are kept permanently, available in 2 formats:
    • GNU gzip-compressed of data in the Hatanaka-compression RINEX format (*.yyd.gz)
    • GNU gzip-compressed of data in RINEX format (*.yyo.gz)

    However,

    • After 30 days, daily files are decimated to 30s sampling rate.
    • After 6 months, only gzip-compressed files of daily data in the Hatanaka-compression RINEX format (*.yyd.gz) are provided.
  • For RINEX v2 data, NGS utilizes UNAVCO’s TEQC software on incoming data for quality checking purposes. Daily data quality information generated by TEQC -qc are stored with daily data files.

  • Navigation data files are available only for sites that NGS submits to the IGS network.

  • Meteorological data files are available only for sites with independent meteorological sensors.

Access Methods:

File NameDescriptionFrequency
ssssDDD0.YYd.gzDaily Hatanaka-compressed RINEX v2Daily
ssssDDD0.YYo.gzDaily RINEX v2Daily
ssssDDDh.YYd.gzHourly Hatanaka-compressed RINEX v2Hourly
ssssDDDh.YYo.gzHourly RINEX v2Hourly
ssssDDD0.YYSTEQC summary fileDaily

In which

CodeDescription
YYYY4-digit year
YYLast 2 digits of year
DDDDay of year (001–366)
ssss4-character station ID (lowercase)
hHour code (a=00, b=01, …, x=23)

S5. 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.

S6. 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.