RTK vs PPP for GCPs for photogrammetry purposes


I do drone mapping. Not for survey or anything, just playing with GCPs.

My best scenario is to setup my base, log for 4-8h, get a PPP done to get my known position, then somehow correct my GCP surveyed points. I did it once in excel (calculate the shift between the averaged base position that is in the CSV and the PPP one, and apply this shift to my GCP coordinates), but I would like simpler options going forward. Options that reduce possibilities of human error.

First assumption: am I right thinking that if I acquire my GCPs in RTK, and not PPP the base position, since my GCPs are still cm level relative to my base, they will be useful in a software like Pix4D or Metashape? Assuming absolute accuracy is not required, but I still want to correct for camera distorsion and other effects? Will I still get a good, relative, cm level model/ortho/dsm?

Is there a workflow that works that goes something like this:

  • Setup base, start logging, let it log for 4-8h
  • Start log on rover, also survey points (GCPs)
  • Stop log on rover
  • Stop log on base
  • Get PPP for base coordinates
  • Enter the PPP corrected coordinates, along with the base log and rover log in RTKPOST
  • ***How do you extract your post-processed GCP locations?

If someone cares to take some time to explain this to me, I’m trying to wrap my head around all this.

Thank you

1 Like

You will, Yep.

I use EzSurv, or manually enter start/stop times for a given point in RTKPlot.


The only times we ever need “absolute” accuracy with our drones are when we are tieing to an outside source of information. That can be relative to national monuments like NGS (global) or it could be construction sites where we need to be relative to the site control. It’s important in construction when you want to use the drone information in other design software like CAD or for BIM purposes. Otherwise we can be relative to ourselves by averaging and manually inputting the base and still provide plenty of useful information.


So my workflow of setting the base and gathering my GCPs is probably precise enough for my needs, if my main goal is to ensure my DEM is true to the terrain’s morphology?

What averaging time do you suggest for the base? I think it’s currently set at 2 minutes.

Do I understand correctly that I actually probably do not gain much in absolute accuracy? Or is the fact that my GCPs were collected via RTK enough to improve the general absolute accuracy of a project (not to cm level, but maybe submeter?)?


If you wanted to get absolute sub-meter accuracy, I think you’d be good enough averaging the single for 10-15 minutes, to be safe (provided the receiver is already initialized for a few minutes beforehand). 2 minutes seems a little short to me but I never tested this short time on a known point myself.

BTW I was assuming a multi-frequency receiver.


Same here. Our relative maps are always averaged at 10 minutes.

1 Like

I’ve got the same question - how do you extract the processed GCP survey coordinates- do you need to extract by the time stamps from the reachview 3 survey file? Surely there’s an easier way than this

Hi Ian,

Do you use RTKLib apps for processing the logs from Reach? If so, you need to open the solution file with the RTKPlot app first. You can check the coordinates of the collected GCPs using this file.

To check the averaged coordinates of a collected point, you need to set the time of the point collection in the RTKPlot. To do that, go to Edit -> Time Span/Interval and set the start and the end time of the desired point collection. You can check the collection time in the CSV file from ReachView 3. Please note that time in the CSV file is in UTC format, while RTKLib works with GPST format. GPST is 18 seconds ahead of UTC.

When you open the solution file in RTKPlot, there is an ORI parameter in the top right corner of the window of the Position tab. This parameter shows the averaged coordinate of the point.


Hi @liudmila.slepova,

It’s how I do it too and It’s good if you have a single point, but if you have for example 50 points measured, it takes a lot of time.

It would be easier if we had a “stop and go” feature, something like the M+ that adds a “mark” when an event occurs and then it can be post-processed with RTKpost.

Do you have in mind some feature like this for RS2 in the future? That would be great!


+1 on this. An easy utility or way to do PPK would be great. We are writing a script to automate extracting the points from the post processed files, but it seems like this should already exist.


I would be interested to hear more about this script if at all possible.

Yes I can share it when we’ve got it working. It just will parse the POS file to average points between the timestamps you create running your survey file. You’ll still need to do the PPK processing using RTKlib to create this POS file.

Hi @Doppler_Uav, Ian,

Thanks for your suggestions!

Stop&Go feature is on our roadmap. I can’t give you the exact timeline of when it’ll be ready. However, I’ll make sure to follow up once we have news regarding this feature.

1 Like

Thanks Liudmila. Alternatively any other intuitive way to do a PPK processing would be much appreciated. I was surprised how non user-friendly this was given the ease of using the rest of the Emlid kit.

How many points are you talking about? I use to start and stop the logging on the rover to create separate files for each point. The base remains one file.

Or you could look at this PPK Point Extractor.


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