Environmental Influence on GNSS Data Quality

Benedikt, September 21 2022

GNSS position and speed measurements are affected by environmental factors such as weather, geography, or how the immediate surroundings look like. We get best results on days with stable weather, blue sky and on a completely flat surface. Buildings, trees, or mountains negatively affect the signal quality: the signal gets reflected and scattered and is no longer received nicely by the GNSS antenna.

In this article we use real-world data to show the effect of changes in environment on the signal quality. You will learn what you can do to lower adverse environmental effects and in what cases sensor fusion will help you to get a precise position despite significant signal degradation.

Introduction and Setup

For those who are not familiar with the term GNSS: this means Global Navigation Satellite System. It is the overall term for the country-specific satellite systems such as GPS (USA), Galileo (Europe), GLONASS (Russia), BeiDou (China), or QZSS (Japan). For more information have a look at this Wikipedia article. Naos concurrently receives GPS, Galileo, BeiDou, and QZSS. It uses the new u-blox M10 GNSS chipset, available since June 2022. Sampling frequency was 10 Hz and the recording model was "Airborne with <4g".

The data was collected with a Naos sensor during the STRN summit's city run on Sept 14, 2022 in Ghent (Belgium). The run was chosen by the summit's organizer and happened to be perfect for showing how GNSS data is influenced by different environments. There were sections in dense and light forests, under clear and open sky, and along buildings with different heights. The weather was overcast but with no rain and the temperature was around 15 degrees Celsius.

In the first part of this article, I will show the entire trajectory we ran and how the number of satellites, horizontal accuracy, and speed accuracy changes over time. In the second part of this article, I will display zooms on four key sections with different environments. For each section, the influence on the environment on the signal quality is discussed, and I show how sensor fusion can improve (or not) the trajectory.

Part 1 - Overview

The figure below shows a color-coded map of the trajectory. Blue colour means many satellites, red colour means very few satellites. The start of the run was to the far right of the map, where the number of satellites was very low - when I switched the sensor on, I did not give the sensor enough time to find and "register" the available satellites. We ran counter-clockwise and the sensor was worn by somebody else.

Map with the running trajectory showing the number of satellites (color-coded)

We can see that in the urban area there are a bit less satellites, generally around 18 - 20, than in the "nature" with 22 - 24 satellites.

The next figure shows the color-coded horizontal accuracy. It's a value computed by the u-blox chipset. I have no idea what it really means, even after "working" for almost 10 years with this number. The only thing which is sure is that if the accuracy says 1 m it is very likely that the true position can much more than 1 m away. But we could also have no error. Generally, a higher accuracy value means higher position errors.

Map with the running trajectory showing the horizontal accuracy (color-coded)

But we can still use this value to learn a lot: first thing we can see is that the accuracy is usually worse in the urban area. But not everywhere. There seem to be certain spots with significantly worse accuracy (dark red), immediately followed by sections of much better accuracy, despite the presence of buildings. We can also clearly see one section of exceptionally good accuracy, the dark blue along the waterway. There were no buildings or trees close-by. On the other hand, in the "nature" parts the accuracy values are sometimes rather bad: these are sections with a dense tree coverage.

Map with the running trajectory showing the speed accuracy (color-coded)

The final overview figure (above) shows the color-coded speed accuracy. Speed is measured different from position: it is based on the Doppler effect (remember what happens when you hear a fire truck passing by? The pitch changes and is different when the truck comes towards you or goes away from you. And trust me, when you sit inside, the pitch does not change (yes, I’m also a firefighter...)). This means that the speed accuracy is not influenced by the same environmental effects as the position accuracy. We can get a rather good accuracy in urban environments. But the system does not like trees: we get a rather bad speed accuracy (marked orange - red) in forests.

So, what did we learn so far?

  • Number of satellites, horizontal accuracy, and speed accuracy are not necessarily correlated. Having a high number of satellites does not automatically mean a high accuracy.
  • Buildings and trees have a different influence on the accuracies. Buildings seem bad for accurately measuring position and forests seem bad for accurately measuring speed.

Part 2 - Details

Now let's have a look on how different buildings and forests are influencing our data accuracy. This will also give you some hints of what simple precautions you can take to improve data accuracy.

For each zoom, the corresponding Google Street View image visualizes the environment. The maps show the color-coded horizontal position accuracy with the same scale as in the overview figure. The black line is the trajectory obtained after having applied our sensor fusion algorithm (in short, the fusion corrects GNSS inaccuracies with the help of the inertial sensor data).

Zoom 1: "Narrow Street"

Google Street view of the narrow street where the measured position drifted a lot

This is the worst possible environment for accurately measuring position: somewhat tall buildings, extremely close together, and we were running on the narrow sidewalk on the right side. Two effects degrade signal quality:

  1. blocking of the direct view to the satellites
  2. satellite signal reflections (multipath) and scattering on the buildings

The consequence of this signal degradation is a completely wrong positioning: it still looks smooth but the position is shifted and stretched. The reported horizontal accuracy is between 0.92 m and 1.45 m. But we were running on the road (from right to left) and did not magically go through the houses. The actual position error must have been close or even over 10 m.

Zoomed-in view to the narrow street with color-coded horizontal accuracy and the fused trajectory in black

Since it is a slow and long-lasting position drift (it took us 1:30 min to cover the entire length of the street) our sensor fusion was not able to completely correct for it. There is some "improvement" visible towards the end of the road but it did not help much, in my opinion.

Zoom 2: "Tall buildings"

Google Street view showing the first tall building

Buildings are especially bad if we are very close to them. If we are further away, signal quality is not affected as much - or even not at all. Towards the end of our run, we passed two tall buildings (around 20 floors), however, at quite some distance. Signal quality was good - it was only degraded when we ran under trees.

Zoomed-in view to the section we crossed tall buildings with color-coded horizontal accuracy and the fused trajectory in black

Most likely, here we were too far away to suffer from multipath / reflections and signal scattering from the building itself.

Zoom 3: "Suburban environment and forest"

Google Street view showing suburban part of this zoom, before entering the forest

Small houses, especially if rather far away have almost no negative effect on satellite signal quality. However, as soon as we enter a forest where the trees almost completely block a direct view to the sky, signal accuracy drops. It reaches similar values than what we observed in Zoom 1. But this time, the position measurement itself is not really affected: we are still running on the small path, barely visible on the satellite image. Here the GNSS chipset thinks the position may be way off, but it is not.

Zoomed-in view of the suburbs and forest with color-coded horizontal accuracy and the fused trajectory in black

My "naïve" explanation is that this is because there is no multipath / reflection present, only signal scattering. And it is this multipath / reflection that is causing the position drift as the GNSS chipset thinks the satellite's position is in a slightly different position than what they are in reality (think of you looking in a mirror: if you don't know it's a mirror, objects in the mirror seem to live inside this mirror).

Zoom 4:"Passing under a Bridge"

Google Street view showing the underpass

Complete obstruction of the sky is stopping the reception of satellite signals. The position measured by the sensor may be anywhere. However, if we are just passing under a bridge, the obstruction is only short and the GNSS chipset recovers rapidly once it gets again a clear view to the sky.

Zoomed-in view of the underpass with color-coded horizontal accuracy and the fused trajectory in black

As this signal loss is short (in our case it lasted for a good 20 seconds) our sensor fusion can easily correct this error and our true running path appears exactly where it's supposed to be.

Shortly after passing under the bridge, we ran along the waterway with nothing close-by to degrade the satellite signals. The horizontal accuracy improved to a surprising 0.25 m and the position was really exactly where it's supposed to be.

Google Street view showing the section with very good signal reception


GNSS position and speed accuracy is affected differently in different environments. The accuracy may show the true uncertainty of the position (like when we are in a forest) or be completely wrong (like when we are in a narrow street and extremely close to the building).

Tall buildings per se are not bad for getting accurate data - as long as they are spaced far enough from where we want to measure. It would be interesting to see what position is recorded on the narrow street if we would run in the middle of the street instead of on the sidewalk.

Short durations of signal degradation can be overcome with sensor fusion. Long durations with slow drift not: the fusion cannot correct the signal errors. It cannot differentiate between the error from integrating the acceleration signal and the error from the satellite signal degradation.

Note: GNSS conditions are constantly changing. Different environment, even a different type of forest are likely to produce different results. It's best to test it for yourself. Contact us and order a Naos sensor. It's the only commercial GNSS sensor which provides access to the recorded raw data. And you can perform your own experiments completely independent of us, if you like. There is even the possibility to see this data in real-time!