We are using an RTK GNSS system (Ardusimple RTK Calibrated Surveyor Kit with ZED-F9P) together with QField to display our live position during field work.
We observe a constant positional offset of approximately 1.15 m.
After analysis, we found the following:
-
The QGIS/QField project is using the coordinate reference system EPSG:3416
-
The GNSS receiver outputs positions in ETRS89
-
The offset is caused by a missing or incorrect transformation between these two reference systems
When we manually calculate and apply a fixed offset, the GNSS position aligns well with the map.
Question:
Unfortunately, it is not possible to store transformation parameters (e.g. offsets or datum transformations) directly on the GNSS receiver.
Is there a way in QField to:
-
correctly transform GNSS positions from ETRS89 to EPSG:3416,
-
so that the displayed position already matches the project CRS (EPSG:3416)
without applying a manual correction?
For our use case, an accuracy of about 0.2 m within a radius of ~3 km would be fully sufficient.
Additionally:
Are there any recommended workflows, settings, or alternative solutions (e.g. project configuration, custom CRS / transformation, or QGIS-side preparation) to handle this situation?
Hello and welcome Daniel87. Some questions to better understand your situation:
- In which operation mode is the Ardusimple operating? On this page it says that in can have a precision of “<1.5m” in “standalone mode”.
- When you mention that the GNSS receiver outputs positions in ETRS89, can you specify to which Authority ID it corresponds (i.e., the EPSG number)? Searching for ETRS89 on the QGIS list of CRS returns dozens of results.
- If the offset is indeed fixed and equal for different sessions of the GNSS receiver, maybe you can try to make a custom CRS on QGIS as a dirty a quick solution, and use that as the GNSS’s layer CRS. Check this page to get an introduction. You can use this ETRS89 as a starting point and offset the datum.
I have no experience working with ardusimple, so let me ask some further (and potentially silly) questions:
- How did you check that the NTRIP correction is being received and accounted for by the time it gets into qfield? Have you tested with some other software and checked that the information is ok before getting into qfield? For example, on the ardusimple page they mention the need to use “mock location” (like on this page) on android to be able to get corrected positioning into “any app”.
- Ok, if EPSG:4937, it seems to me like there might be a previous conversion taking place, since most typically a GNSS receiver would work on some kind of WGS84 (EPSG:4326) based system. How did you set up the receiver to send data? Maybe there is something to double check on that end too.
@Daniel87 , ATM, QField assumes that the GNSS it connects to will output WGS84 (EPSG:4326), so I assume that’s why you see an offset there.
Quite a few people have requested it over the years (see relevant github enhancement request here Add way to set CRS of data from GNSS receiver · Issue #2855 · opengisch/QField · GitHub ). If you are in a position to support the development of this feature, raise your hand 