Precise point positioning (PPP) with RS2

Thought i would share PPP session i did some time ago. This shows you what accuracy can be achieved with a simple receiver and a little patience.
The method is excellent where distance to base is too long or missing services like internet and reference stations

Gear used:
1x RS2
1x tripod (recommended for static survey and/or long period of time. Its steady and durable)
1x extension pole (optional)
1x tribrach (highly recommended to keep the reciver level and for targeting the ground point)

Reachview firmware 2.22
RTKlib Emlid 2.43.b33
Nrcan CSRS PPP tool
Local transformation tool SKtrans
Windows Paint

-Compare logged data with known accurate official benchmark
-initial thoughts around processed data, observation time and deviation


Distance from mark on the ground to ARP was 1754mm

After aligning the unit above the mark, the unit was booted up and started recording observation from all satellite systems at 1Hz. Raw format
Observation time 2 hours and 35minutes. Based on specification for the RS2 and Nrcan service, this should give me good horizontal accuracy. For good measure and redundancy a long enough observation time is needed to obtain a new complete set of satellites in your records to eliminate satellite error. Depending on the accuracy requirements.

Benchmark data:
Coordinates in EUREF89 UTM32. Height is in a local datum (NN2000).
Last updated in 2018 with minor mm adjustments. It looks like its due for a new adjustment. Few mm in a direction but for this purpose its more then good enough.

The date of observation was January 22, 2020. For the Final solution from NRcan, it takes 2-3 week. Rapid solution is less accurate but available few hours after collected epoch.

I use RTKlib to process the raw file and turn it into a Rinex (3.03) format before submitting it to the CSRS service. Antenna height was added to the Rinex.

Few minutes later i receive an email with a processed PPP file.
raw_202001221553 (6).pdf (1.1 MB)
and the estimates

I used ITRF14 and copy the XYZ coordinates into my local tranformation tool SKtrans. This will give me coordinates in EUREF89 UTM32

Now, comparing the known coordinates with processed, i get this

North delta Δ = -0,1mm
East delta Δ= -5mm
Elevation delta Δ= -46mm

Not shabby at all.

Taking a closer look at the elevation offset and keeping in mind that the height accuracy is always 2 times the horizontal accuracy and the fact that there is only satellites from one side (because the earth is in between) compared to a horizontal position.

If you look at the skyview, this session “only” tracked 4 satellites in this timeframe.
To get better elevation accuracy, i need more satellites above me or longer observation time from the ones i got.
I might run this test later in either a timeframe where i know more satellites is above or just use a longer observation.

I hope this low tech hobby presentation was worth your time reading


Very nice test! I’m eager to try PPP myself. Can you share your workflow (I mean, step-by-step guide)? It would be nice to compile a tutorial after all these experiments for other users and post on Emlid website.


I am not sure Its doable, each PPP session is almost uniq in terms of where you at.
The only step that is similar is, setting your rover on a tripod and hit “record”. The rest i highly dependent on what coordinate system you use :thinking:

Basically, it can be done with any projected coordinates system? I mean, can we use UTM systems?

Most definitely you can. In fact, NRCAN issues a UTM coordinate for your convenience in their report! I would say that almost 100% of my rural surveys are based on this method when there is no connecting data to a local transformation.

In Tores part of the world, these kinds of global accuracies are to be expected and are typical. But in places like rural Africa or similar, the calculations are not as precise and you can shift a bit. But it is unlikely that a man with a long tape measure and spirit level will come and check your survey out from the last known control point 1000’s of kilometers away…!


Well yes, as Luke mention. Just use the provided data in the NRcan file. That would work for some.

But I could not use it " as is", that would bring me about a meter of from the benchmark over here. I would have to adjust for different continental shift and variations. Which bring me to my point. It might work “over there” but not here, not without some local adjustment. Especially when working at mm range and if you need to tie your data to local refrence frame with absolute coordinates.

But then again what is the absolute position? which is different fun story :smiley:


The local tool SkTrans does more or less what is described here, but with one click.
Just to give some intel about the transition from the provided Nrcan to a local refrence. This is not necessarily the same everywhere

How many we need to record log file to achieve 2cm or less for accuracy?

Hours? I would say min two hours for static

1 Like

I am sure we can put together a generic PPP workflow guide with the caveat being that if you want the result converted to your local continental grid reference you will have to consult your local state geomatics authority for coordinate conversion parameters.

I would agree that 2 hours is minimum for reasonable data. If these PPP coordinates will act as a reference for much more data collection I tend to try for at least 4 hours.

TB, is there any reason that you use RTKLib to create the Rinex instead of the Rinex log directly on the RS2?


Yes, at the time of record i wasnt sure what flavour of Rinex NrCan would take.

1 Like

Do we have to wait some days to get the data proccessed or it is immediately?

Its all explained here :slightly_smiling_face:

1 Like

There is a quick result within a few minutes that is relatively coarse but good for confirming the log file was not corrupted.

Once NRCan has more data to refine the processing a more precise coordinate is provided. If you are processing a log file that was collected some time ago you should recieve the precise result quickly.

1 Like

As a surveyor in Africa, I am also, like Luke, a big fan of this PPP method. When rare geodetic monuments are available, coordinates are 10 years old or more, and with a 2 cm/year tectonic plate drift, you can be quickly far from reality.
Like TB_RTK, I generally target 2h-2h30 of records to get a decent 2 cm error on point coordinates.


What a great thread! To all, we are already working on PPP guide for our docs! Seems we need to speed up :smiley:


I should add that kinematic PPP is also very efficient and saved my day several time when base station stopped working. L2 strongly recommended, but L1 only is surprising good. I get valuable water levels along a river with this method.


Hi Pascal,
Was that kinematic PPP with the Reach RS2?
I wasn’t sure if it could do kinematic PPP yet; that’d be awesome.


CSRS PPP do that, just send your RS2 Rinex obs file, you have choice between static or kinematic :

1 Like

Very nice!
Thank you.

But still no real-time kinematic PPP live in the field?