RS2 PPK Workflows Overview

Hi y’all,

I’ll be starting drone mapping work soon as part of salt marsh monitoring on the US Atlantic Coast. I’ll be purchasing 2 Reach RS2’s for shooting ground control points and will be flying RTK missions with the DJI P4RTK and D-RTK2 base station.

Our project’s budget doesn’t allow for an NTRIP subscription and we will most likely be working in areas with low cell reception anyway, so I’m planning on using a PPK workflow with the RS2s to get my ground control points, that will bring the P4RTK’s data to an absolute accuracy. As I’m a total noob at this work, I just wanted to check with the community to gauge my understanding of the workflow:

In situations where I will have a CORS station nearby and no on-site benchmark (most of the work will be done within 10km of nearest CORS station:

  1. Set up physical ground control points around study area.
  2. Using one RS2 unit as a rover, collect single solution points for each GCP. My understanding is each point will take about 5 minutes to collect a reliable Fix position.
  3. Post-process GCP data using RTKLIB, using the RS2 logs as rover and the nearby CORS station logs as my base station.
  4. Fly RTK drone mission using P4RTK and D-RTK2 base station.
  5. Offset point clouds to my absolute-accurate GCPs using Pix4D. (I’m planning on using Aerotas’ workflow for the P4RTK and D-RTK2 base station.)

In situations where I will be ~30km from the nearest CORS station and will not have an on-site benchmark

  1. Set up one RS2 base station at an unknown point, starting logging static data for ~4 hours.
  2. While the base is logging data, set up my physical ground control points and use the second RS2 as a rover connected to the base station to shoot GCPs.
  3. Turn off base station after logging is finished and pack up.
  4. Obtain base’s absolute position either using OPUS or PPP.
  5. Offset collected GCP data to match the new corrected base position. I’ve seen a few different methods of doing this but if someone has a favorite/reliable method please feel free to share.
  6. Fly RTK mission using P4RTK and base station, and offset drone data to GCP data in Pix4D.

I didn’t include the endless amount of technical nuance involved in each of these steps, but I just wanted to make sure I’m on the right track generally. I’d like to identify if there are any gaping holes in my strategy or general tips to improve efficiency. If you’ve read all of this, thank you very much and I encourage brutal honesty in your feedback.

1 Like

Pretty simple. Either have the owner/developer have a surveyor set control. Understand what the criteria is that the work has to meet and how it is going to be used afterwards. PPK is fine if you have monumentation so if you get too far away from a CORS site then get close to it and traverse you own control in or just find the nearest control. Otherwise someone that does PPP will need to help. Never had to do it myself. The P4RTK obviously needs to be corrected by the same source as the GCP’s.


Yes, it is a good path. As our friend @chascoadmin in the comment above said, pay attention to the accuracy required by your contractor (or yourself) and go ahead!

Best Regards,

Pedro Augusto.


Hi Theo,

Your workflow looks good! I just have some minor comments.

In my opinion, the second scenario is much easier since you can collect GCPs in Fix right away. After getting the base absolute coordinates with OPUS or PPP, you just need to apply an offset. In the first scenario, you need to post-process each point separately if you’re going to do PPK in RTKLib.

Also, I’d like to comment that Reach RS2 can obtain a centimeter-accurate solution on baselines up to 60 km in RTK and 100 km in PPK. So, if you’d prefer the first scenario, you can use it in both cases.

UPD. There was a typo regarding maximum baselines for RTK and PPK.

1 Like

Thanks Svetlana. In this scenario, can I connect the RS2 rover to the base station for RTK corrections, even when the base is only collecting raw GPS data for a static measurement to be submitted to OPUS?

Hi Theo,

Did you know you can post-process your D-RTK2 base using the closest CORS ? Once the local base (D-RTK2) is corrected, you can use it to post-process the P4RTK data (obs file). With the P4RTK obs file, you also have a MRK file, this file includes accurate time and camera offset for each photo. The MRK file is used to interpolate (form PPK flight position) an accurate position for each photo center.

Even if each photo position is accurately known, having a few GCP is a good idea. Obviously the RS2 with ReachView can be used to collect the GCP.

The following video explains what I described above:
Video: EZSurv for drone mapping

How to process GNSS data recorded with ReachView

Ask for a trial

The D-RTK2 is very limited in comparison to othe GNSS receivers, but that’s mainly the software and DJI’s sandbox’s fault. There may be some useful information on the DroneDeploy Forum.

For sure the DRTK2 is limited i comparison to RS2.

But it may be useful to know that DRTK2 can produce rinex file with RTKLib (RTKCONV). DRTK-2 generates a .DAT file in the “rctmraw” folder, and this is RTCM v3. With RTKCONV you can convert it to rinex (you will have to select the input format RTCM 3).

DRTK2 base splits the DAT file by hours. So before loading the rinex file in PPK software, you may need to combine the hourly files as one (merge consecutive rinex files)

1 Like

Hi there! Would you mind pointing me in the right direction to learn how to apply offsets after you correct a base point using OPUS? In other words… once you have a corrected solution from opus for your base, how do you go back and correct your rover points with that point? I am a beginner, thanks for your help.

Hi Theo,

Sure. In that case, you’ll get the rover coordinates with relative accuracy.

Hi @dsmith,

The workflow is pretty simple:

  1. First of all, you need to remember the base position that was averaged while surveying
  2. Once you have the OPUS results, find the difference between these two values
  3. After that, you can just add this offset to the coordinates of the points in the CSV file

Thanks Svetlana. The process of using the base station and rover in conjunction with an OPUS-corrected base station position is still a bit unclear to me.

I’d ideally like to set up the base station, log its static position, and collect GCPs using the rover all in one session. Then I’d submit the base’s static observations to OPUS and apply the offset between the averaged base position and the OPUS-corrected base position.

Will setting the base station to receive only GPS constellation data affect the rover’s ability to collect GCP data in RTK mode? If I want to collect GCP data with the rover connected to the base station, should I set the base station to collect all constellations and then use RTKCONV to filter out everything but GPS data before I submit to OPUS?

Thanks again for your patience and assistance.

1 Like

Hi Theo,

You’re absolutely right. It’s better to enable more constellations during point collection. The more common satellites between base and rover, the faster you can obtain a fixed solution. For OPUS, you’ll be able to leave GPS only while converting the log in RTKCONV.

1 Like