PPK Workflow to Correct Base Position and Collected Rover Points? RTKLib

I’ve been search for instructions on how to take COORS logs from a nearby reference station and use them to correct the base position and then correct the collected points.

I’ve found Emlid GPS Post Process docs that says using a reference station to correct the absolute position is optional and then the following instructions don’t explain how to do that.

I then found a forum post from a guy in Italy explaining his workflow to correct the base station address but that was so when he went out in the field he can manually enter the base station position. Going back out in the field is not an option for me. I need to download the COORS log, correct the base station position, then correct the collected survey points based on the new corrected base station position.

It looks like EZSurv brings in the reference station logs for you was thinking maybe this will be an easier software to use than RTKLib for a newbie? I know it isn’t cheap but wanted to use the trial. Filled out their form and never got any download link or anything for EZSurv!?

I’m a little miffed there’s no clear documentation to do this that I can find. I’m pretty desperate now. Willing to pay someone to do this for me this first time around if necessary.

When I did my survey this morning I put the base positioning setting for Average Single. But the EMLID docs say “You either need to place base station on a point with known coordinate or determine it by post-processing base against a reference station in static mode.” This sounds like the reference station should be in static mode but I’m guessing this is maybe poor sentence structure and I should have had the Reach base in static mode, or is static mode referring to RTKLib settings? I’m really quite surprised at the lack of comprehensive documentation and how to’s. I know some of it is related to a learning curve because I don’t have a surverying background but I have 30 years software development experience and an Engineering degree so I’m comfortable quickly grasping technical processes, if only I can find complete information!

There’s all kinds of fragments of information buried in like hundreds of forum posts but trying to put it all together into one cohesive process is like trying to solve a 1,000 piece jigsaw puzzle it feels like.

I need to:

  1. Correct the base stations coordinates
  2. Correct the rover survey point coordinates based on the new corrected base stations coordinates
  3. Output new CSV file with the corrected rover points that I surveyed (WGS84 lat/long)


I was where you are now 6 months ago (with somewhat the same background), it’s not impossible to learn. Google is truly your friend here. There are a lot of nice whitepapers out there.

Question before we begin, do you really need absolute coordinates, or are relative good enough?

Hi @jazee,

No worries, we are always ready to help all beginners here!:slightly_smiling_face:

Let’s start with processing your base logs. Could you please share raw data from your Reach base and the log from CORS? Here’s the tutorial of how to download logs from ReachView.

I’ll take a look at them and then provide you with all step-by-step actions.

I just hired someone to do the work for me. LOL. I would at some point like to find time to learn how to do it myself. The person who did it didn’t even bother with any of the base logs. They said since I had a fix with my own base, just processing the rover logs with the CORS reference station logs 10km away would correct the rover observations.

So on the Reach the Rover generates a CSV file with the points I collected. Here’s my big remaining questions… is there not an automated way, once you correct the rover observations, to in-turn generate a CSV with the collected points corrected? It seems like you have to go through the correct observations and find the points where the rover is stationary and match that up with the time you collected the points in the field and manually copy the new coords into the CSV from the log. That is very cumbersome to say the least. But there is no documentation anywhere I can find on how to generated a CSV with the corrected survey points.

It seems in many cases, the user is letting a unit sit, then doing PPK to get a corrected point to go back and place your base on then use RTK to complete the survey.

So after learning more, I find myself wondering, why did I buy two units in the first place? And then I remembered like last year have discussions here about how I can survey GCPs with just one unit and CORS.

I guess the main advantage of having two units is only when I can place my base on a known point (survey monument) then I can manually enter the base coords and with a good fix quickly use the rover to survey multiple points and then waalaa, I’m done. No messing with RTKLib or other PPK software.

But if I don’t have a known point to place the base on, that it seems to me totally unecessary to use two units (a base and a rover) since you just treat the CORS reference station as your base.

Now I can see with applications like construction staking where you don’t need accurate absolution world coordinate positions, you want two units for speed as you are just surveying points relative to a point on site.

Hi @jazee,

Do you mean generating CSV file with GCPs coordinates found with PPK?

PPK for finding a base position is necessary if the distance to CORS station is more than 10 km. Otherwise, you can just set up the base, gain fix on it with corrections from CORS, average base coordinates for 10 minutes and then start surveying with the rover getting corrections from a local base.

Sometimes using 2 units might be more convenient, because:

  • Reach requires the internet connection to get corrections from CORS;
  • Depending on local providers, subscribing to correction network might be quite pricey;
  • The baseline to it might be more than 10 km.

Sorry to hear you did not get a reply for EZSurv demo.
You may want to complete the form once more.

When you record roving data with Reach View app, your points are saved to a CSV format. These points will be recognised by EZSurv, So EZSurv will PPK your roving data and it will automatically extract the points positions (and average it if points were recorded over few seconds or minutes). With the software trial, some videos are available to help you with the workflow.

The steps are what you outlined:

1.Correct the base stations coordinates (import your base, the software will access the closest CORS & will process your base)
2.Correct the rover survey point coordinates based on the new corrected base stations coordinates (import your rover along with points recorded by ReachView, the software will PPK using your local base with its new PP position)
3.Output new CSV file with the corrected rover points that I surveyed (WGS84 lat/long)

3 posts were split to a new topic: Collecting GCPs workflow

I was reading the discussion. It is interesting, but how it ends?
What is the procedure to correct the base station with the RINEX files of the reference station?
Where I am, there is no NTRIP service or anything like that.
We only have access to RINEX files, I have tried the procedure in the DOCS, but I have not been successful.
Can you help me?
Actually, im reading the RTKLIB Manual but is a little confuse.

P.D I used google to translate some ideas.

Hi @vafa04,

Could you please clarify which step have you stuck on?

If you share your log files here, I can help you with post-processing.

Hi @tatiana.andreeva.
I placed the REACH BASE for 47 minutes and recorded in RINEX formar (v.2.10).
I downloaded the RINEX data from 3 references station and i tried to adjust in LEICA OFFICE, but…chech the standar deviation :confused:
Then, i tried to use RTKLIB, but i don´t have idea how to use it.

Reference stations and REACH BASE



BASE: RINEX_ITLA001x-ITLA002a.zip (739.3 KB)

REF.STAT 1, 10 km:RINEX_ICMX001x-ICMX002a.zip (738.0 KB)

REF.STAT 2, 107km:RINEX_IHGO001x-IHGO002a.zip (734.8 KB)

REF.STAT 3, 111km: raw_201901012322_RINEX-2_10.zip (8.1 MB)

ITLA 2236.6888 m
IHGO 2236.6951 m
ICMX 2236.7370 m

Quite ok given the 100+ km baseline of IHGO and ICMX.

Using Precise Clocks and Orbits you could probably get something even more trustworthy.


A side note, the baselines you mentioned don’t match the ones I get in my solutions. Where are your baselines from?

Hi @wizprod.
It looks good, but i have some questions.
Did you correct only with ICMX o with all of them? Because, i did the survey very near of ITLA (7km) and i can see that the correction is too far from ITLA and near from ICMX. It´s too confuse, maybe i did it wrong : (

I introduce the reference station coordinates in Google Earth, and i have this. Voilá, i have de base line of each reference station.

You’re fine on the baselines, I uploaded the files at the same time and changed the order.
You must have:
Base line (ICMX - REACH) : 7 km
Base line (ITLA - REACH): 107 km
Base line (IHGO - REACH): 111 km

Sorry for the mistake.
i still have questions.

Did you correct only with ICMX o with all of them? How did you do?
I cannot sleep thinking in the procedure and the results.

I corrected with all of them, but in separate processing runs, one after the other.
I basically just replaced the base observations, and reprocessed (Though I also changed AR mode for from continuous on the shortest baseline, to Fix and hold for the 2 longer baselines)

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.