GCP questions

Hi bide, I am new to this forum and don’t really know how to message you so I will just type my question here…

I have been reading your replies to smorford and MDS in their posts (Post Processing Base + Rover to Reference Station, How to PPK 50-100 Survey Points using 2 Reach RS Units with no RTK correction?).

I can understand most of your instructions but there are still some questions I hope you can answer in more details… So my task is to measure accurate coordinates of ~35 GCPs which will later be used for UAV projects. There is no interenet in the area where I will be working but there is a CORS station within 10miles. So my plan is to take my reach base unit and use it to record 1 of the 35 GCPs for ~1hr and later correct against the CORS station nearby. Then I will (on a different day) use my reach rover to survey the rest of the 34 GCPS (~20mins each) while put my reach base over the surveyed GCP (which now has a known accurate location) . Then I will go back to the office and correct my rover observations using the base observations in RTKLIB.

My questions are:

  1. Does it matter if I turn on/off the RTCM3 correction output (base)/input (rover) through LoRa Radio when I use the rover and base surveying the 34 GCPs?
  2. From your replies to MDS, you mentioned that it is possible to survey all 35 GCPs in one trip - I should correct my base observations against CORS first and then correct my rover observations against the newly corrected base observation. But how do I do that in particular? Do I need to write my own script to do that?

Thanks for any inputs you have.

1 Like

Your base and rover need to be operational at the same time, otherwise you cannot correct the rover.
So, you simply set down the base on 1 of the GCP’s, then start measuring all the rest with the rover.
When you come home you first get the base coordinate with the help of the cors. Then you use your own base observation for your rover.

1 Like

Thanks for your help wizprod!

I guess I didn’t express my question clear enough… So yes, I will using cors observation to correct my base observation (for 1 of the GCPs) and I will do it with RTKPOST so that the cors data will be used as the ‘RINEX obs: base’ and the reach base data will be used as ‘RINEX obs: rover’. But my question is: after I have done that, how do I use the corrected base data in RTKPOST to correct the reach rover observations (for the rest of the GCPs)? Because in the first step, RTKPOST solution/output are .pos files but the input has to be RINEX…

Why can’t you just set a pin, average single and collect the points? Next time you go back setup on the same point. Do you have any known points?

I think @chascoadmin that the assumptions here are:

  • no Internet connection
  • no known points
  • access to CORS data
  • 2 site visits (1st to create a control point; 2nd to survey the GCPs)

With that in mind, this is your RTK workflow @wenjieji :
Day 1: Go to site and put Reach over your best location for a base. Best skyview and best area for LoRa communication between a base and rover. Make a permanent mark there for your control point. Log raw data on this rover.

Afterward: Obtain CORS data and using it and the coverted raw data from your rover, post-process an accurate coordinate for your control point.

Day 2: Go to the site and set up over the control point. Manually enter that post-processed control point coordinate into Reach (base) and set up LoRa to output base corrections. Log raw data. Now use the other Reach (rover) to receive base corrections over LoRa and obtain accurate coordinates in RTK mode. Use the survey tab to collect and save each GCP point. Also log raw data, position data, and RTCM3 data.

Afterward: Download the survey project and use that data.

If there are problems with radio reception during point collection, or the saved result is poor, then you can use the start and stop time from the point. Then post-process that same time period from your log files to obtain an accurate coordinate for the point.


Thanks bide. This is exactly what I plan to do. So I guess there is no way that I can do this in just 1 trip?

If you do only one site visit, then you don’t have CORS data and you don’t have an accurate base coordinate.

You can still do your survey and collect points.

Afterward you can post-process a more accurate base coordinate using the CORS data, and then there are two options:

  1. Find the difference between the initial averaged base coordinate and the accurate post-processed one. (e.g. 120degrees 0.5meters) Then offset each of your GCPs by that amount. (I didn’t mention elevation, but you might want to offset that as well.)


  1. Use the raw logs to post process each GCP from your log files. Take the times from your survey project data, discard their coordinates, and substitute the accurate post-processed GCP coordinates.

I guess 2 trips it is… Thanks!

Very nice and succinct write-up on ppk @bide. This should be a sticky or a header!

I typically do one day and calculate the offset back in office. Even if you plan on one day always put that spot in ground. You will thank yourself if you ever have to go back out…


I think the total amount of hours spent on an assignment like this one would be less if it all was done in 1 day.

Let me sketch out my approach:

  • drive to location. This could take a while, could also just be next door.
  • unpack and set up base. (Remember to enable logging)
  • unpack, mount and set up rover. (remember to enable logging)
  • setup a survey in reachview, RTK is nice to use, but not really needed. With the amount of GCP’s you mention I would expect this to be quite a big area? If so, you might not even have an RTK link over LoRa from your base all the time?
  • survey all GCP using the survey tool in reachview. This is just to get the start-stop times for later. This is what is called a stop-and-go survey.
  • you know have all you need! Your base log will be as long as it took to collect collect the GCP’s. You won’t have idle-time while waiting for the base to collect.
  • pack down rover and base. Turn off the rover first, then you don’t need to trim it when processing it at home.
  • head home
  • when in front of your computer, get the CORS data for your local point, use that as base correction in rtkpost. Very important to also look into updated positions for the cors station. Don’t blindly trust the position in the rinex header. Insert an updated position into the position-tab of the RTKPost options.
  • process using cors data as your base, and your own base as rover
  • now it is time to process the GCP locations from your rover. Download the .csv survey from your rover.
  • download .ubx logs from both base and rover.
  • convert logs using RTKconv
  • put your own base obs as base in RTKpost. Input the position found using CORS data as base position.
  • put your rover obs as river in RTKPost. As a starting-point, set the settings as recommended by Emlid in their tutorials. There are tweaks that could be done like selecting static-start for method, and Combined for “double”-processing.
  • process!
  • view your results in RTKPlot.
  • using the Timespan/start/stop functionality in RTKPlot, for each of your surveyed GCP’s input the start and stop time, and view the resulting position. Write down/copy-paste the position in Notepad or similar. There are scripts/apps available here on the forum to automate/simplify this.
    -remember to also include the base position in your list!
  • aaaaaand done!

I will try that. Thanks!

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