GNSSCad 0.3 - MANUAL

GNSSCad is a QGIS plugin for cadastral surveying with GNSS. The current version 0.3 is still considered a preliminary test-version.


HELGE NYSÆTER, Western Norway University of Applied Sciences, 2024.

Current features

RTK surveying

Static surveying


QGIS-plugin "GNSSCad"

Download

Currently working on QGIS 3.30 and newer for Windows.

Download latest testversion: GNSSCad 0.3 - december 2024 Added handling of static GNSS, and corrected several errors.
Download old testversion: GNSSCad 0.2 - october 2023 Corrected some errors in the adjustment procedure.
Download old testversion: GNSSCad 0.1


Installation

  1. Download zip-file above
  2. Install from QGIS-menu: "Plugins - Manage and install plugins - Install from zip"
  3. Alternatively: Unzip into C:\Users\...\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins


Creating an empty layer for surveying with GNSS

Creates a geopackage with one point layer, intended for use with both QField and MerginMaps. Tested and working with MerginMaps on Android, may also work with IOS and/or QField.
Download testdata after surveying with MerginMaps on Android, connected to Emlid Reach RS2 receiver: Mergin_Emlid_gpkg.zip (coming soon...)

Importing GNSS point observations

KOF-format

With this function it's possible to import .kof-files with GNSS point observations. Only lines 05, 46 and 47 are read. Line 51 will also be implemented in a later version. The kof-format is documented in KOF SPESIFIKASJON
Download testdata after surveying with Trimble R6 receiver, using the CPOS base network: Kronstad_pillars_R6.zip. Reference system is EPSG:25832.

csv

The other supported import-format is .csv from the Emlid Reach RS2 GNSS-receiver. Download testdata Kronstad_pillar_ss_RS2.zip. Reference system is EPSG:25832.


Blunder detection

Method

For all observations with the same point name, median values for N,E and H is calculated using the numpy.median - function. Then distance from the median position to each observation is calculated. If the distance exceeds a certain limit, the observation is identified as a blunder.

When executing blunder detection, a new temporary layer is created in the QGIS project. The median positions are shown as black "+"-symbols. A red circle is drawn around the "+", indicating the limit between random errors and blunders. Point observations outside the circles are identified as blunders. When the temporary layer is made permanent, the symbology in the layer-panel will automatically update.

Tips

  1. To deactivate observations with blunders, just delete them from the vector layer. Or import again after replacing the first space character in a kof-line with a "-" to hinder the line from being imported.
  2. The diameter of the circle around the median value is set to 5 cm. This value may be edited in the attribute table of the "MedianPoints"-layer, and the circles in the map will automaticly change size.

Reliability analysis

External reliability is defined as the impact on the adjustment, of a remaining blunder. With GNSS point observations, a blunder will consist of a coordinate triple, NEH. But in cadastral surveying in Norway, height is not registered. We are therefore only considering the impact in the ground plane, NE.

Concerning cadastral surveying in Norway, the limit for external reliability is never less than 10 cm. And when blunders further than 6 cm from median are removed, there is absolutely no chance for any remaining single blunder to alter the adjusted values more than 10 cm. This program function may be redundant except when cheaper consumer GNSS receivers are applied.


Adjustment

Adjustment is executed pointwise. Inverse variance-covariance matrix is used as weight matrix. Adjusted points are stored in a new temporary layer. They are symbolized with two triangles surrounded by an error ellipse. The size of the ellipse remains constant while zooming in and out. The ellipses indicate relative differences in accuracy between the points, and the direction with largest uncertainty for each point. When the temporary layer is made permanent, the symbology in the layer-panel will automatically update.

Known problems and workaround

  1. When the adjustment is run several times, the program crashes. If this happens, a workaround is to reload the plugin into QGIS by using the free plugin called "Plugin Reloader".
  2. If the point layer contains points with only one observation, the adjustment will crash. These observations must be commented out befor importing kof, or deleted from the point layer in QGIS.
  3. Adjustment requires that the point objects have the attribute "Covariance matrix" of type string. Points surveyed with Qfield or MerginMaps lack this attribute, but it can easily be inserted by adding a field in the attribute table. Typical values using CPOS will be something like "0.00000734 0.00000387 0.00002995 0.00000090 0.00000777 0.00000095". By adding these values to every observation, they will all count equally in the adjustment.

Test dataset

1. Point observations in 3 points at Kronstad, surveyed with Trimble R6, contains no blunders: Kronstad_pillars_R6.zip. Reference system is EPSG:25832.
2. Point observations in 1 point at Kronstad, surveyed with Emlid Reach RS2, contains no blunders: Kronstad_pillar_ss_RS2.zip. Reference system is EPSG:25832.

About

The plugin is made with the QGIS-plugin "Plugin Builder" assisted by the plugin "Plugin Reloader". The tutorial Building a Python Plugin (QGIS3) by Ujaval Gandhi has been of great help. The GUI is made with Qt Designer and the python programming is done with Anaconda and Spyder. Thanks also to Anne B. Nilsen at NIBIO/QGIS Norway for helping me getting started.


Helge Nysæter, Associate professor of land surveying, Institute for civil engineering, Western Norway University of Applied Sciences.

Last update: 9. december, 2024