From c30bb438ba893af8d33657e7e2d755c85c012e52 Mon Sep 17 00:00:00 2001 From: semuadmin <28569967+semuadmin@users.noreply.github.com> Date: Wed, 16 Oct 2024 09:30:53 +0100 Subject: [PATCH 1/9] add flush() to datalogger --- .vscode/settings.json | 2 +- RELEASE_NOTES.md | 6 ++++++ pyproject.toml | 2 +- src/pygpsclient/_version.py | 2 +- src/pygpsclient/file_handler.py | 2 ++ 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4253ac8b..b67e69bc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,6 +4,6 @@ "editor.formatOnSave": true, "modulename": "pygpsclient", "distname": "pygpsclient", - "moduleversion": "1.4.24", + "moduleversion": "1.4.25", "python.defaultInterpreterPath": "python3", } \ No newline at end of file diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 0e2536b6..512e4f01 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,11 @@ # PyGPSClient Release Notes +### RELEASE 1.4.25 + +FIXES: + +1. Minor improvements to datalogging and track recording. + ### RELEASE 1.4.24 FIXES: diff --git a/pyproject.toml b/pyproject.toml index 9142963d..ff15bc26 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "pygpsclient" authors = [{ name = "semuadmin", email = "semuadmin@semuconsulting.com" }] maintainers = [{ name = "semuadmin", email = "semuadmin@semuconsulting.com" }] description = "GNSS Diagnostic and UBX Configuration GUI Application" -version = "1.4.24" +version = "1.4.25" license = { file = "LICENSE" } keywords = [ "PyGPSClient", diff --git a/src/pygpsclient/_version.py b/src/pygpsclient/_version.py index 86e18984..a8087d0a 100644 --- a/src/pygpsclient/_version.py +++ b/src/pygpsclient/_version.py @@ -8,4 +8,4 @@ :license: BSD 3-Clause """ -__version__ = "1.4.24" +__version__ = "1.4.25" diff --git a/src/pygpsclient/file_handler.py b/src/pygpsclient/file_handler.py index 690aaf08..620cab2f 100644 --- a/src/pygpsclient/file_handler.py +++ b/src/pygpsclient/file_handler.py @@ -255,6 +255,7 @@ def write_logfile(self, raw_data, parsed_data): datum = (str(datum) + "\r").encode("utf-8") try: self._logfile.write(datum) + self._logfile.flush() self._lines += 1 except ValueError: pass @@ -401,6 +402,7 @@ def add_trackpoint(self, lat: float, lon: float, **kwargs): try: self._trackfile.write(trkpnt) + self._trackfile.flush() except (IOError, ValueError): pass From d04f783993364b30dcc19a2b5e454a4f5ecc2db2 Mon Sep 17 00:00:00 2001 From: semuadmin <28569967+semuadmin@users.noreply.github.com> Date: Wed, 30 Oct 2024 12:26:39 +0000 Subject: [PATCH 2/9] update min pygnssutils ver to 1.1.5 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ff15bc26..d206ef56 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,7 +52,7 @@ classifiers = [ dependencies = [ "requests>=2.28.0", "Pillow>=9.0.0", - "pygnssutils>=1.1.4", + "pygnssutils>=1.1.5", "pyserial>=3.5", ] From c1b943d9e6f28205f72cb3dd189336aaa3f82eda Mon Sep 17 00:00:00 2001 From: semuadmin <28569967+semuadmin@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:44:40 +0000 Subject: [PATCH 3/9] update min pygnssutils ver to 1.1.6 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d206ef56..fd7811e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,7 +52,7 @@ classifiers = [ dependencies = [ "requests>=2.28.0", "Pillow>=9.0.0", - "pygnssutils>=1.1.5", + "pygnssutils>=1.1.6", "pyserial>=3.5", ] From 286f14e38230a6a4f84a2a2e1a6490df69b4e856 Mon Sep 17 00:00:00 2001 From: semuadmin <28569967+semuadmin@users.noreply.github.com> Date: Thu, 31 Oct 2024 08:42:48 +0000 Subject: [PATCH 4/9] enhance scatter plot --- README.md | 2 +- RELEASE_NOTES.md | 3 +- images/scatterplot_widget.png | Bin 60968 -> 52267 bytes pygpsclient.json | 4 ++ src/pygpsclient/scatter_frame.py | 74 +++++++++++++++++++++++-------- 5 files changed, 63 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 05abec9f..b3bc73fa 100644 --- a/README.md +++ b/README.md @@ -253,7 +253,7 @@ You will need to logout and login for the launcher to take effect. |![import custom map](https://github.com/semuconsulting/PyGPSClient/blob/master/images/importcustommap.png?raw=true)| Import Custom Map dialog. Click ![load icon](https://github.com/semuconsulting/PyGPSClient/blob/master/src/pygpsclient/resources/iconmonstr-folder-18-24.png?raw=true) to open the custom map image location (*the default file suffix is `*.gif` - select Show Options to select any file suffix `*.*`*). If the `rasterio` library is installed and the image is georeferenced (e.g. using [QGIS](https://qgis.org/)), the bounding box will be automatically extracted - otherwise it must be entered manually. Import the custom map path and bounding box settings by clicking ![play icon](https://github.com/semuconsulting/PyGPSClient/blob/master/src/pygpsclient/resources/iconmonstr-arrow-12-24.png?raw=true).| |![spectrum widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/spectrum_widget.png?raw=true)| Spectrum widget showing a spectrum analysis chart (*GNSS receiver must be capable of outputting UBX MON-SPAN messages*). Clicking anywhere in the spectrum chart will display the frequency and decibel reading at that point. Double-clicking anywhere in the chart will toggle the GNSS frequency band markers (L1, G2, etc.) on or off. **NB:** Some receivers (e.g. NEO-F10N) will not output the requisite MON-SPAN messages unless the port baud rate is at least 57,600. | |![sysmon widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/sysmon_widget.png?raw=true)| System Monitor widget showing device cpu, memory and I/O utilisation (*GNSS receiver must be capable of outputting UBX MON-SYS and/or MON-COMMS messages*). Tick checkbox to toggle between actual (cumulative) I/O stats and pending I/O. | -|![scatterplot widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/scatterplot_widget.png?raw=true)| Scatterplot widget showing variability in position reporting over time. Select from either Planar or Great Circle (haversine) distance approximation mode. Double-click to clear existing plot. | +|![scatterplot widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/scatterplot_widget.png?raw=true)| Scatterplot widget showing variability in position reporting over time, relative to either the cumulative average position (*displayed at top left*), or (*if entered*) a fixed reference position. Select from either Planar or Great Circle (haversine) distance approximation mode. Double-click to clear existing plot. The default mode, scale index and fixed reference position can be stored in the json configuration file as `scattermode_s`/`scatterscale_n`/`scatterlat_f`/`scatterlon_f`. | |![rover widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/rover_widget.png?raw=true) | Rover widget plots the relative 2D position, track and status information for the roving receiver in a fixed or moving base / rover RTK configuration. Can also display relative position of NTRIP mountpoint and receiver in a static RTK configuration. Double-click to clear existing plot. (*GNSS rover receiver must be capable of outputting UBX NAV-RELPOSNED messages.*) | --- ## UBX Configuration Facilities diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 512e4f01..accd01db 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -2,8 +2,9 @@ ### RELEASE 1.4.25 -FIXES: +ENHANCEMENTS: +1. Enhance scatterplot widget to extend zoom range to 0.01m and add optional fixed reference position. Delivers #160 and #161. 1. Minor improvements to datalogging and track recording. ### RELEASE 1.4.24 diff --git a/images/scatterplot_widget.png b/images/scatterplot_widget.png index 609f1b19086da6bdd8e2460f113f18f8e976b2e4..b091a1190ac5e9cd4887308aef16e99c77a56099 100644 GIT binary patch delta 51832 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�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 u63DPPGvb&v{ec|(wwfzYf4 Date: Thu, 31 Oct 2024 08:49:14 +0000 Subject: [PATCH 5/9] update screenshot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b3bc73fa..40cc2b21 100644 --- a/README.md +++ b/README.md @@ -253,7 +253,7 @@ You will need to logout and login for the launcher to take effect. |![import custom map](https://github.com/semuconsulting/PyGPSClient/blob/master/images/importcustommap.png?raw=true)| Import Custom Map dialog. Click ![load icon](https://github.com/semuconsulting/PyGPSClient/blob/master/src/pygpsclient/resources/iconmonstr-folder-18-24.png?raw=true) to open the custom map image location (*the default file suffix is `*.gif` - select Show Options to select any file suffix `*.*`*). If the `rasterio` library is installed and the image is georeferenced (e.g. using [QGIS](https://qgis.org/)), the bounding box will be automatically extracted - otherwise it must be entered manually. Import the custom map path and bounding box settings by clicking ![play icon](https://github.com/semuconsulting/PyGPSClient/blob/master/src/pygpsclient/resources/iconmonstr-arrow-12-24.png?raw=true).| |![spectrum widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/spectrum_widget.png?raw=true)| Spectrum widget showing a spectrum analysis chart (*GNSS receiver must be capable of outputting UBX MON-SPAN messages*). Clicking anywhere in the spectrum chart will display the frequency and decibel reading at that point. Double-clicking anywhere in the chart will toggle the GNSS frequency band markers (L1, G2, etc.) on or off. **NB:** Some receivers (e.g. NEO-F10N) will not output the requisite MON-SPAN messages unless the port baud rate is at least 57,600. | |![sysmon widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/sysmon_widget.png?raw=true)| System Monitor widget showing device cpu, memory and I/O utilisation (*GNSS receiver must be capable of outputting UBX MON-SYS and/or MON-COMMS messages*). Tick checkbox to toggle between actual (cumulative) I/O stats and pending I/O. | -|![scatterplot widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/scatterplot_widget.png?raw=true)| Scatterplot widget showing variability in position reporting over time, relative to either the cumulative average position (*displayed at top left*), or (*if entered*) a fixed reference position. Select from either Planar or Great Circle (haversine) distance approximation mode. Double-click to clear existing plot. The default mode, scale index and fixed reference position can be stored in the json configuration file as `scattermode_s`/`scatterscale_n`/`scatterlat_f`/`scatterlon_f`. | +|![scatterplot widget](https://github.com/semuconsulting/PyGPSClient/blob/RC-1.4.25/images/scatterplot_widget.png?raw=true)| Scatterplot widget showing variability in position reporting over time, relative to either the cumulative average position (*displayed at top left*), or (*if entered*) a fixed reference position. Select from either Planar or Great Circle (haversine) distance approximation mode. Double-click to clear existing plot. The default mode, scale index and fixed reference position can be stored in the json configuration file as `scattermode_s`/`scatterscale_n`/`scatterlat_f`/`scatterlon_f`. | |![rover widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/rover_widget.png?raw=true) | Rover widget plots the relative 2D position, track and status information for the roving receiver in a fixed or moving base / rover RTK configuration. Can also display relative position of NTRIP mountpoint and receiver in a static RTK configuration. Double-click to clear existing plot. (*GNSS rover receiver must be capable of outputting UBX NAV-RELPOSNED messages.*) | --- ## UBX Configuration Facilities From aa664ba1c5b299b7619cf659e6e97c6187147fe5 Mon Sep 17 00:00:00 2001 From: semuadmin <28569967+semuadmin@users.noreply.github.com> Date: Thu, 31 Oct 2024 09:07:44 +0000 Subject: [PATCH 6/9] enhance scatterplot settings save --- src/pygpsclient/scatter_frame.py | 8 +++++--- src/pygpsclient/settings_frame.py | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/pygpsclient/scatter_frame.py b/src/pygpsclient/scatter_frame.py index 22721463..efb0a3dc 100644 --- a/src/pygpsclient/scatter_frame.py +++ b/src/pygpsclient/scatter_frame.py @@ -76,13 +76,15 @@ def __init__(self, app, *args, **kwargs): self.width = kwargs.get("width", def_w) self.height = kwargs.get("height", def_h) self.points = [] - self.one_meter = 1 + self.one_meter = 1.0 self.mean = None self.scale = IntVar() self.reflat = StringVar() self.reflon = StringVar() - self.reflat.set(config.get("scatterlat_f", "Reference Lat")) - self.reflon.set(config.get("scatterlon_f", "Reference Lon")) + reflat = config.get("scatterlat_f", 0.0) + reflon = config.get("scatterlon_f", 0.0) + self.reflat.set("Reference Lat" if reflat == 0.0 else reflat) + self.reflon.set("Reference Lon" if reflon == 0.0 else reflon) self.scale.set(config.get("scatterscale_n", 6)) self.scale_factors = (100, 50, 25, 10, 5, 1, 0.1, 0.05, 0.025, 0.01) self.mode = StringVar() diff --git a/src/pygpsclient/settings_frame.py b/src/pygpsclient/settings_frame.py index f93f9da5..1f785025 100644 --- a/src/pygpsclient/settings_frame.py +++ b/src/pygpsclient/settings_frame.py @@ -910,6 +910,10 @@ def config(self) -> dict: "colortags_l": self.__app.saved_config.get("colortags_l", []), "ubxpresets_l": self.__app.saved_config.get("ubxpresets_l", []), "usermaps_l": self.__app.saved_config.get("usermaps_l", []), + "scattermode_s": self.__app.saved_config.get("scattermode_s", "Planar"), + "scatterscale_n": self.__app.saved_config.get("scatterscale_n", 6), + "scatterlat_f": self.__app.saved_config.get("scatterlat_f", 0.0), + "scatterlon_f": self.__app.saved_config.get("scatterlon_f", 0.0), } return config except (KeyError, ValueError, TypeError, TclError) as err: From 7e64dc47c48b33bc98789866287987a71edb0aa3 Mon Sep 17 00:00:00 2001 From: semuadmin <28569967+semuadmin@users.noreply.github.com> Date: Thu, 31 Oct 2024 10:23:34 +0000 Subject: [PATCH 7/9] minor tweak to scatterplot layout --- src/pygpsclient/scatter_frame.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pygpsclient/scatter_frame.py b/src/pygpsclient/scatter_frame.py index efb0a3dc..c0206d6e 100644 --- a/src/pygpsclient/scatter_frame.py +++ b/src/pygpsclient/scatter_frame.py @@ -135,7 +135,7 @@ def _body(self): bg=BGCOL, ) self.canvas.grid(column=0, row=0, columnspan=4, sticky=(N, S, E, W)) - self.spn_mode.grid(column=0, row=1) + self.spn_mode.grid(column=0, row=1, sticky=(W, E)) self.scale_widget.grid(column=1, row=1, columnspan=3, sticky=(W, E)) self.ent_reflat.grid(column=0, row=2, columnspan=2, sticky=(W, E)) self.ent_reflon.grid(column=2, row=2, columnspan=2, sticky=(W, E)) From 384aa80977369e54ffb5fb1c4674c6e3af2b7bdf Mon Sep 17 00:00:00 2001 From: semuadmin <28569967+semuadmin@users.noreply.github.com> Date: Thu, 31 Oct 2024 10:59:18 +0000 Subject: [PATCH 8/9] update rtk tips --- RTK-TIPS.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/RTK-TIPS.md b/RTK-TIPS.md index 518b99f5..e6f7ecc3 100644 --- a/RTK-TIPS.md +++ b/RTK-TIPS.md @@ -29,7 +29,7 @@ If you're relatively new to GNSS and RTK techniques and terminology, you may wan - A GNSS antenna must be capable of receiving a clear signal on the key GNSS L-Band frequencies - specifically the L1, L2 and (ideally) L5 frequencies. Depending on your local environment and intended application, a multi-band active patch antenna like the u-blox [ANN-MB-00](https://www.sparkfun.com/products/15192) may suffice, or you may benefit from a "UFO" style multi-band [surveying antenna](https://www.sparkfun.com/products/21801). - If weight is at a premium - e.g. for aerial applications - a [helical antenna](https://www.sparkfun.com/products/23847) may be more suitable, albeit with some loss of performance. - Active GNSS antennae typically incorporate low noise amplifiers (LNA) to boost gain, along with bandpass or 'saw' filters to remove extraneous noise and frequencies which are not required for GNSS reception. **Note, however**, that such filters may render the antenna unsuitable for other RTK applications e.g. reception of L-Band SPARTN data using a [u-blox NEO-D9S](https://www.u-blox.com/en/product/neo-d9s-series) receiver, for which a [broad-spectrum active patch antenna](https://www.amazon.com/RTL-SDR-Blog-1525-1637-Inmarsat-Iridium/dp/B07WGWZS1D), or even a passive directional antenna, may be more suitable. -- Ensure that the antenna cable is a high-quality coaxial cable with minimum attenuation in the L-Band spectrum - [RG58](https://www.sparkfun.com/products/21281) as a bare minimum, preferably [RF240](https://www.connextech.co.uk/8m-rf240-low-loss-cable-assembly-1441-p.asp) or [RF400](https://www.connextech.co.uk/10m-rf400-very-low-loss-cable-assembly-1433-p.asp) for longer runs (> 10m). +- Ensure that the antenna cable is a high-quality coaxial cable with minimum attenuation in the L-Band spectrum - [RG58](https://www.sparkfun.com/products/21281) as a bare minimum, preferably [RF240](https://www.connextech.co.uk/8m-rf240-low-loss-cable-assembly-1441-p.asp) or [RF400](https://www.connextech.co.uk/10m-rf400-very-low-loss-cable-assembly-1433-p.asp) for longer runs (> 3m). - If possible, use a GNSS receiver/breakout board and antenna which support robust TNC, BNC or SMA connectors rather than the much smaller U.FL type, which is not designed for repeated insertion and has limited cable length. ### 3. Use a suitable ground plane @@ -76,18 +76,20 @@ If you're relatively new to GNSS and RTK techniques and terminology, you may wan ### 7. "FLOAT" vs "FIXED" - It is important to understand that these RTK status values are based, in essence, on a statistical analysis (using the principles of [Kalman Filtering](https://en.wikipedia.org/wiki/Kalman_filter)) of the [various errors](https://www.semuconsulting.com/gnsswiki/#Errors) ('residuals') which affect the calculation of carrier phase pseudorange, and hence the accuracy of the navigation solution. -- The receiver's firmware applies a complex proprietary algorithm to determine if this statistical analysis is within a certain tolerance. If it is, the receiver will report an 'RTK-FIXED' status. If it is outside the designated tolerance, the receiver may report an 'RTK-FLOAT' status. This doesn't *necessarily* mean that the solution is less accurate - it just means that the *confidence* level is lower than 'FIXED'. An 'RTK-FLOAT' status will therefore generally yield a lower accuracy estimation (`hAcc`, `vAcc`) than 'RTK-FIXED'. -- Both are essentially a measure of confidence in the carrier phase pseudorange calculation and hence navigation solution. +- The receiver's firmware applies a complex proprietary algorithm to determine if this statistical analysis is within a certain tolerance. If it is, the receiver will report an 'RTK-FIXED' status. If it is outside the designated tolerance, the receiver may report an 'RTK-FLOAT' status. This doesn't *necessarily* mean that the solution is less accurate - it just means that the *confidence* level is lower than 'FIXED'. +- An 'RTK-FLOAT' status will therefore generally yield a lower accuracy estimate (`hAcc`, `vAcc`) than 'RTK-FIXED'. ### 8. Some caveats on "hAcc" and "vAcc" - **NB:** `hAcc` and `vAcc` values are *not* available from the default cohort of NMEA messages output by most GNSS receivers (including the F9P). In order to receive these values, you will need to enable either proprietary NMEA sentences like u-blox's UBX00, or UBX messages like NAV-PVT. -- Much is made of reported horizontal (hAcc) and vertical (vAcc) accuracy figures. Note, however, that these are **merely estimates** based on a statistical analysis of: +- Much is made of reported horizontal (hAcc) and vertical (vAcc) accuracy figures, but they are **merely estimates** based on a statistical analysis of: - Number of satellites (`sip`) - Signal strengths (`CN₀`) - Geometric distribution of the satellites (`dop`) - Pseudorange residuals ([UERE](https://en.wikipedia.org/wiki/Error_analysis_for_the_Global_Positioning_System)) - In the case of the u-blox ZED-F9P receiver, the analysis itself is proprietary and is performed within the F9P's firmware, rather than in client software. +- Ultimately, the only definitive way of establishing the accuracy of an RTK (or PPK) navigation solution is to compare it with a known fixed reference point whose 3D coordinates have been independently established via high precision surveying techniques. +- Note that the 7th and 8th decimal places of a decimal lat/lon coordinate are equivalent to about 1.1cm and 1.1mm respectively, which represents the practical limit of any RTK or PPK GNSS application - anything more than this would be spurious. --- ## Illustrated Example @@ -120,7 +122,7 @@ The *indicated* horizontal accuracy (`hacc`) is 1.4cm but *note [caveats](#cavea | BNC | Bayonet Neill–Concelman | A standard bayonet antenna connector type | | CN₀ | Carrier to noise ratio | A measure of GNSS signal strength | | CORS | Continuously Operating Reference Station | A term denoting an RTK correction source e.g. NTRIP server | -| DGPS/DGNSS | Differential GPS/GNSS | https://en.wikipedia.org/wiki/Differential_GPS | +| DGPS/DGNSS | Differential GPS/GNSS | A [high resolution positioning technique](https://en.wikipedia.org/wiki/Differential_GPS) that enhances the positional data available from GNSS systems by reference to a network of fixed position, ground-based (or "virtual") reference stations | | DOP | Dilution of Precision | A measure of the effect of the geometric distribution of visible GNSS satellites on positional accuracy | | HACC | Horizontal Accuracy | A statistical estimate of horizontal positional accuracy based on a number of factors | | L1 | | Original GPS C/A carrier frequency 1575.42 MHz | @@ -129,13 +131,14 @@ The *indicated* horizontal accuracy (`hacc`) is 1.4cm but *note [caveats](#cavea | L-Band | | A radio frequency band covering the spectrum 1 GHz to 2 GHz | | LNA | Low-noise Amplifier | A signal booster built into some active GNSS antennae | | NTRIP | Networked Transport of RTCM via Internet Protocol | A proprietary RTK DGPS protocol published by the RTCM | -| PPK | Post-processing kinematics | [Benefits of using PPK](https://www.advancednavigation.com/tech-articles/benefits-of-using-post-processing-kinematic-ppk-software-in-gnss-based-and-inertial-navigation-solutions/) | +| PPK | Post-processing kinematics | A [high resolution surveying technique](https://www.advancednavigation.com/tech-articles/benefits-of-using-post-processing-kinematic-ppk-software-in-gnss-based-and-inertial-navigation-solutions/), similar in principal to RTK but with corrections being applied retrospectively to a set of captured raw GNSS navigation and observation data, typically converted to RINEX format | | RF | Radio Frequency | In the context of GNSS this generally refers to the L-Band | | RF240 | | A higher quality solid-core RF coaxial cable specification which offers reduced attenuation over longer distances than RG58 | | RG58 | | A common specification of stranded-core RF coaxial cable suitable for short cable runs | | RINEX | Receiver Independent Exchange Format | A proprietary vendor-agnostic GNSS data protocol published by the RTCM and commonly used for PPK | | RTCM | Radio Technical Commission for Maritime Services | The not-for-profit body which publishes the NTRIP, RTCM3 and RINEX protocols | -| RTK | Real-time kinematics | https://en.wikipedia.org/wiki/Real-time_kinematic_positioning | +| RTK | Real-time kinematics | A real-time [high resolution surveying technique](https://en.wikipedia.org/wiki/Real-time_kinematic_positioning) which corrects for [common errors](https://www.semuconsulting.com/gnsswiki/#Errors) in GNSS positional data using measurements of the phase of the signal's carrier wave in addition to the information content of the signal. It relies on a single reference station or interpolated virtual station to provide real-time corrections, providing up to centimetre-level accuracy. +| RTN | Real-time Network | A real-time [high resolution surveying technique](https://water.usgs.gov/osw/gps/real-time_network.html), similar in principle to RTK but using a computed or "virtual" reference station rather than a physical reference station | | SIP | Satellites in Position | The number of satellites actually used in the receiver's navigation solution | | SIV | Satellites in View | The number of satellites the receiver can see | | SMA | Subminiature version A | A standard miniature threaded antenna connector type | From 4e0d6f23ecb737a68503c8290c6a2502d680c4fe Mon Sep 17 00:00:00 2001 From: semuadmin <28569967+semuadmin@users.noreply.github.com> Date: Thu, 31 Oct 2024 15:52:57 +0000 Subject: [PATCH 9/9] add mousewheel zoom & center mode selector to scatterplot --- README.md | 4 +- RTK-TIPS.md | 61 ++++++++++++++++----------- images/scatterplot_widget.png | Bin 52267 -> 55842 bytes pygpsclient.json | 1 + src/pygpsclient/scatter_frame.py | 67 ++++++++++++++++++++++-------- src/pygpsclient/settings_frame.py | 3 ++ 6 files changed, 91 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index 40cc2b21..738a681a 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ The application can be installed using the standard `pip` Python package manager ![Contributors](https://img.shields.io/github/contributors/semuconsulting/PyGPSClient.svg) ![Open Issues](https://img.shields.io/github/issues-raw/semuconsulting/PyGPSClient) -The PyGPSClient home page is at [PyGPSClient](https://github.com/semuconsulting/PyGPSClient). For a general overview of GNSS, DGPS, RTK, NTRIP and SPARTN technologies and terminology, refer to [GNSS Positioning - A Reviser](https://www.semuconsulting.com/gnsswiki/). +The PyGPSClient home page is at [PyGPSClient](https://github.com/semuconsulting/PyGPSClient). For a general overview of GNSS, DGPS, RTK, NTRIP and SPARTN technologies and terminology, refer to [GNSS Positioning - A Reviser](https://www.semuconsulting.com/gnsswiki/). For practical tips on RTK, refer to [RTK-TIPS](https://github.com/semuconsulting/PyGPSClient/blob/master/RTK-TIPS.md). Sphinx API Documentation in HTML format is available at [https://www.semuconsulting.com/pygpsclient](https://www.semuconsulting.com/pygpsclient). @@ -253,7 +253,7 @@ You will need to logout and login for the launcher to take effect. |![import custom map](https://github.com/semuconsulting/PyGPSClient/blob/master/images/importcustommap.png?raw=true)| Import Custom Map dialog. Click ![load icon](https://github.com/semuconsulting/PyGPSClient/blob/master/src/pygpsclient/resources/iconmonstr-folder-18-24.png?raw=true) to open the custom map image location (*the default file suffix is `*.gif` - select Show Options to select any file suffix `*.*`*). If the `rasterio` library is installed and the image is georeferenced (e.g. using [QGIS](https://qgis.org/)), the bounding box will be automatically extracted - otherwise it must be entered manually. Import the custom map path and bounding box settings by clicking ![play icon](https://github.com/semuconsulting/PyGPSClient/blob/master/src/pygpsclient/resources/iconmonstr-arrow-12-24.png?raw=true).| |![spectrum widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/spectrum_widget.png?raw=true)| Spectrum widget showing a spectrum analysis chart (*GNSS receiver must be capable of outputting UBX MON-SPAN messages*). Clicking anywhere in the spectrum chart will display the frequency and decibel reading at that point. Double-clicking anywhere in the chart will toggle the GNSS frequency band markers (L1, G2, etc.) on or off. **NB:** Some receivers (e.g. NEO-F10N) will not output the requisite MON-SPAN messages unless the port baud rate is at least 57,600. | |![sysmon widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/sysmon_widget.png?raw=true)| System Monitor widget showing device cpu, memory and I/O utilisation (*GNSS receiver must be capable of outputting UBX MON-SYS and/or MON-COMMS messages*). Tick checkbox to toggle between actual (cumulative) I/O stats and pending I/O. | -|![scatterplot widget](https://github.com/semuconsulting/PyGPSClient/blob/RC-1.4.25/images/scatterplot_widget.png?raw=true)| Scatterplot widget showing variability in position reporting over time, relative to either the cumulative average position (*displayed at top left*), or (*if entered*) a fixed reference position. Select from either Planar or Great Circle (haversine) distance approximation mode. Double-click to clear existing plot. The default mode, scale index and fixed reference position can be stored in the json configuration file as `scattermode_s`/`scatterscale_n`/`scatterlat_f`/`scatterlon_f`. | +|![scatterplot widget](https://github.com/semuconsulting/PyGPSClient/blob/RC-1.4.25/images/scatterplot_widget.png?raw=true)| Scatterplot widget showing variability in position reporting over time. Select from either Planar or Great Circle (haversine) distance approximation mode. Select from either Dynamic or Fixed to center plot on dynamic average position (*displayed at top left*) or fixed reference position (*if entered*). Use the scale slider or mousewheel to adjust scale. Double-click to clear existing plot. The default mode, center, scale index and fixed reference position can be stored in the json configuration file as `scattermode_s`/`scattercenter_s`/`scatterscale_n`/`scatterlat_f`/`scatterlon_f`. | |![rover widget](https://github.com/semuconsulting/PyGPSClient/blob/master/images/rover_widget.png?raw=true) | Rover widget plots the relative 2D position, track and status information for the roving receiver in a fixed or moving base / rover RTK configuration. Can also display relative position of NTRIP mountpoint and receiver in a static RTK configuration. Double-click to clear existing plot. (*GNSS rover receiver must be capable of outputting UBX NAV-RELPOSNED messages.*) | --- ## UBX Configuration Facilities diff --git a/RTK-TIPS.md b/RTK-TIPS.md index cc96c59f..4f2da87e 100644 --- a/RTK-TIPS.md +++ b/RTK-TIPS.md @@ -5,41 +5,47 @@ [Glossary of Terms and Abbreviations](#glossary) | [References and Further Reading](#references) | -A common topic on the PyGPSClient [Discussion Forums](https://github.com/semuconsulting/PyGPSClient/discussions) is how to achieve cm level accuracy using an RTK-compatible receiver like the [u-blox ZED-F9P](https://www.u-blox.com/en/product/zed-f9p-module). +A common topic on the PyGPSClient [Discussion Forums](https://github.com/semuconsulting/PyGPSClient/discussions) is how to achieve centimeter-level accuracy using an RTK-compatible receiver like the [u-blox ZED-F9P](https://www.u-blox.com/en/product/zed-f9p-module). The following is by no means a rigorous treatment, but is intended to offer some practical tips and recommendations. **YOUR MILEAGE MAY VARY!** The focus here is real-time kinematics (**RTK**), but much the same considerations will apply to post-processing kinematics (**PPK**) and other differential GPS (**DGPS**) techniques. If you're relatively new to GNSS and RTK techniques and terminology, you may want to review this [wiki](https://www.semuconsulting.com/gnsswiki/) first. -**NB: nothing in the following should be taken as a specific product recommendation or endorsement**. *PyGPSClient receives absolutely no funding through advertising or corporate sponsorship - we are entirely reliant on [voluntary donations](https://buymeacoffee.com/semuconsulting)*. - --- ## Tips and Recommendations -**NB:** RTK techniques cannot 'correct' a poor GNSS signal - *you need to have a solid 3D fix in the first place to stand any chance of achieving cm level positional accuracy*. +**NB:** RTK techniques cannot 'correct' a poor GNSS signal - *you need to have a solid 3D fix in the first place to stand any chance of achieving centimeter-level positional accuracy*. + +### 1. The importance of Reference Frame -### 1. Use a dual-band RTK-compatible GNSS receiver +- Navigation or surveying solutions produced by RTK or PPK techniques are only meaningful in relation to a given reference frame or datum. A full discussion of datums is beyond the scope of this article, but in essence a reference frame can be global e.g. [WGS84](https://en.wikipedia.org/wiki/World_Geodetic_System), or local to a particular geographical area e.g. [NAD83 (North America)](https://en.wikipedia.org/wiki/North_American_Datum#North_American_Datum_of_1983) or [ETRS89 (Europe)](https://en.wikipedia.org/wiki/European_Terrestrial_Reference_System_1989). While the differences may be subtle, no two reference frames will yield exactly the same results. All other things being equal, a local reference frame will be more accurate than a global one *within its region of coverage*. Results based on a mix of disparate reference frames are likely to be spurious. +- GNSS has traditionally been based on the [World Geodetic System 1984 or WGS84](https://en.wikipedia.org/wiki/World_Geodetic_System). WGS84 is an ensemble of geocentric reference frames which were originally accurate to within 1 m. Subsequent revisions have brought this down to around 10 cm. +- When dealing with terrestrial positional accuracy at the centimeter or millimeter level, it is necessary to take into account factors like tectonic plate movement and gravitational/magnetic displacements. This is the function of the [International Terrestrial Reference System or ITRS](https://en.wikipedia.org/wiki/International_Terrestrial_Reference_System_and_Frame) and its associated International Terrestrial Reference Frame ITRF. New ITRF solutions are produced every few years, using the latest mathematical and surveying techniques to attempt to realize the ITRS as precisely as possible. The difference between the latest WGS84 and ITRF2000 frames is of the order of a few centimeters. +- Terrestrial datums can be static ("plate-fixed" i.e. fixed relative to a specific tectonic plate) or dynamic ("earth-fixed" i.e. fixed relative to the earth's centre). The “earth-fixed” ITRF is typically not regarded as a “datum” – rather it is the international standard reference framework to which national geocentric datums are aligned. +- In order to achieve meaningful centimeter or millimeter level accuracy, all components in the end-to-end application (including the RTK data source and any maps or geo-referenced imagery) must be using the same ITRF or related "plate-fixed" reference frame. + +### 2. Use a dual-band RTK-compatible GNSS receiver - The receiver must be capable of receiving and processing real-time kinematic 'corrections', typically from an NTRIP or SPARTN source via the RTCM3 or SPARTN2 protocols. - The receiver should be capable of receiving GNSS transmissions on both the L1 and L2 (or L5) frequencies (*refer to the [wiki](https://www.semuconsulting.com/gnsswiki/#Signal) to understand why this is beneficial to positional accuracy*). -- The receiver should ideally be reasonably robust, as the best results are likely to be obtained outdoors. If you're using an F9P breakout board, you may want to enclose it in a water-resistant case. +- The receiver and/or its antenna should be reasonably robust (ideally IP67 or better), as the best results are likely to be obtained outdoors. -### 2. Use a suitable L-Band antenna and cable +### 3. Use a suitable L-Band antenna and cable -- A GNSS antenna must be capable of receiving a clear signal on the key GNSS L-Band frequencies - specifically the L1, L2 and (ideally) L5 frequencies. Depending on your local environment and intended application, a multi-band active patch antenna like the u-blox [ANN-MB-00](https://www.sparkfun.com/products/15192) may suffice, or you may benefit from a "UFO" style multi-band [surveying antenna](https://www.sparkfun.com/products/21801). +- A GNSS antenna must be capable of receiving a clear signal on the key GNSS L-Band frequencies - specifically the L1, L2 and (ideally) L5 and/or L6 frequencies. Depending on your local environment and intended application, a multi-band active patch antenna like the u-blox [ANN-MB-00](https://www.sparkfun.com/products/15192) may suffice, or you may benefit from a "UFO" style multi-band [surveying antenna](https://www.sparkfun.com/products/21801). - If weight is at a premium - e.g. for aerial applications - a [helical antenna](https://www.sparkfun.com/products/23847) may be more suitable, albeit with some loss of performance. -- Active GNSS antennae typically incorporate low noise amplifiers (LNA) to boost gain, along with bandpass or 'saw' filters to remove extraneous noise and frequencies which are not required for GNSS reception. **Note, however**, that such filters may render the antenna unsuitable for other RTK applications e.g. reception of L-Band SPARTN data using a [u-blox NEO-D9S](https://www.u-blox.com/en/product/neo-d9s-series) receiver, for which a [broad-spectrum active patch antenna](https://www.amazon.com/RTL-SDR-Blog-1525-1637-Inmarsat-Iridium/dp/B07WGWZS1D), or even a passive directional antenna, may be more suitable. +- Active GNSS antennae typically incorporate low noise amplifiers (LNA) to boost gain, along with bandpass or 'saw' filters to remove extraneous noise and frequencies which are not required for GNSS reception. **Note, however**, that such filters may render the antenna unsuitable for other RTK applications e.g. reception of L-Band SPARTN data from geostationary Inmarsat satellites using a [u-blox NEO-D9S](https://www.sparkfun.com/products/19390) receiver, for which a [broad-spectrum active patch antenna](https://www.amazon.com/RTL-SDR-Blog-1525-1637-Inmarsat-Iridium/dp/B07WGWZS1D), or even a [passive directional antenna](https://www.beamcommunications.com/satellite/35-inmarsat-beam-fixed-directional-antenna-passive#specifications), may be more suitable. Check the antenna specification to ensure it covers the required frequency spectra. - Ensure that the antenna cable is a high-quality coaxial cable with minimum attenuation in the L-Band spectrum - [RG58](https://www.sparkfun.com/products/21281) as a bare minimum, preferably [RF240](https://www.connextech.co.uk/8m-rf240-low-loss-cable-assembly-1441-p.asp) or [RF400](https://www.connextech.co.uk/10m-rf400-very-low-loss-cable-assembly-1433-p.asp) for longer runs (> 3m). - If possible, use a GNSS receiver/breakout board and antenna which support robust TNC, BNC or SMA connectors rather than the much smaller U.FL type, which is not designed for repeated insertion and has limited cable length. -### 3. Use a suitable ground plane +### 4. Use a suitable ground plane - Popular active patch antennae like the u-blox [ANN-MB-00](https://www.sparkfun.com/products/15192) are designed to be used with an external ground plane - typically a (steel) car roof or a [small steel plate](https://www.sparkfun.com/products/17519) suitable for mounting on a tripod. At a push, a heavy ferrous saucepan lid may suffice. - The science behind ground planes is beyond the scope of this article but, in essence, a good ground plane under the antenna improves signal strength and reduces noise and interference. Refer to [Importance of Ground Planes](https://novotech.com/pages/ground-plane) for a more in-depth discussion. - Specialised [surveying antennae](https://www.sparkfun.com/products/21801) of the "UFO" type normally have a built-in ground plane. - Helical antennae do not generally require a ground plane. -### 4. Ensure you have the best possible view of the sky +### 5. Ensure you have the best possible view of the sky - Needless to say, you need to have good unrestricted visibility of the sky (ideally 360°) with the broadest possible satellite coverage to obtain the most accurate results. This is indicated by the various Dilution of Precision (DOP) values (`pDOP`, `vDOP`, `hDOP`). Ideally the indicated pDOP should be <= 1.0. - You should be able to receive signals from *at least* 10 satellites with a signal strength (CN₀) of 45dB or better. @@ -49,13 +55,13 @@ If you're relatively new to GNSS and RTK techniques and terminology, you may wan | ![poor sats](https://github.com/semuconsulting/PyGPSClient/blob/master/images/poor_sats.png?raw=true) |![good sats](https://github.com/semuconsulting/PyGPSClient/blob/master/images/good_sats.png?raw=true) | | | | -### 5. Ensure you are using a reliable, local RTK data source +### 6. Ensure you are using a reliable, local RTK data source - In the present context this generally means NTRIP (via the public internet) or SPARTN (via NTRIP, MQTT (IP) or L-Band channels). NTRIP casters traditionally output data in RTCM format, but there are now proprietary services offering SPARTN format instead. -- Ideally, an NTRIP source ('mountpoint') should be no further than 15 or 20km from your antenna location, such that its correction data is [representative of local atmospheric conditions](https://www.semuconsulting.com/gnsswiki/#ION). -- **NB:** While free public domain NTRIP resources exist and can often give perfectly satisfactory results, there is no guarantee as to the quality of the correction data available. Some public domain CORS are essentially amateurs working out of their back yards. The best results *for your location* may be obtained from proprietary or subscription services which use specialised, carefully calibrated equipment in optimal locations - but it's always worth trying public domain resources first. +- Ideally, an NTRIP source ('mountpoint') should be no further than 30km from your antenna location, such that its correction data is [representative of local atmospheric conditions](https://www.semuconsulting.com/gnsswiki/#ION). +- **NB:** While free public domain NTRIP resources exist and can often give perfectly satisfactory results, there is no guarantee as to the quality of the correction data available. Some public domain CORS are essentially amateurs working out of their back yards. The best results *for your location* may be obtained from proprietary or subscription services which use specialised, carefully calibrated equipment in optimal locations with ITRF or local plate-fixed datums - but it's always worth trying public domain resources first. -### 6. Check your receiver is successfully receiving and processing RTK data +### 7. Check your receiver is successfully receiving and processing RTK data - If you're using a UBX receiver like the F9P, you may find it easier to configure it to output UBX messages rather than the default NMEA, as the former are more concise and offer more comprehensive and consistent RTK status information. - Successful receipt and processing of RTK correction data is generally indicated as follows: @@ -64,22 +70,24 @@ If you're relatively new to GNSS and RTK techniques and terminology, you may wan - The reference station ID (aka 'diffStation') *may* change to the reference station's ARP identifier (this is purely an identifier - it has no direct bearing on positional accuracy and some reference stations broadcast a null or nominal identifier which will appear in PyGPSClient as "N/A"). - After a short period (typically a minute or so), the reported horizontal and vertical accuracy values ('hAcc' and 'vAcc') will start to fall to < 1m levels - **BUT NOTE [CAVEATS](#caveats) BELOW**. -- If you're using an F9P or similar, useful additional diagnostics can be obtained by enabling UBX RXM-COR (or, for RTCM only, RXM-RTCM) Receiver Management message types (this can be done using PYGPSClient's UBX CFG-MSG or CFG-VALSET [configuration facilities](https://github.com/semuconsulting/PyGPSClient?tab=readme-ov-file#ubxconfig)). For example, the RXM-COR message includes two data attributes `errStatus` and `msgUsed`; `errStatus=1, msgUsed=2` signifies that valid RTK correction data has been received successfully and has been applied to the receiver's navigation solution. Refer to the [F9P Interface Manual](https://www.u-blox.com/sites/default/files/documents/u-blox-F9-HPG-1.50_InterfaceDescription_UBXDOC-963802114-12815.pdf) for further details on the meaning of the various UBX NAV and RXM message types and data attributes. +- If you're using an F9P or similar, useful additional diagnostics can be obtained by enabling UBX RXM-COR (or, for RTCM only, RXM-RTCM) Receiver Management message types (this can be done using PYGPSClient's UBX CFG-MSG or CFG-VALSET [configuration facilities](https://github.com/semuconsulting/PyGPSClient?tab=readme-ov-file#ubxconfig)). For example, the RXM-COR message includes two data attributes `errStatus` and `msgUsed`; `errStatus=1, msgUsed=2` signifies that valid RTK correction data has been received successfully and has been applied to the receiver's navigation solution. For diagnosing L-Band SPARTN reception issues, the UBX INF-DEBUG Information message can also be useful. Refer to the [F9P Interface Manual](https://www.u-blox.com/sites/default/files/documents/u-blox-F9-HPG-1.50_InterfaceDescription_UBXDOC-963802114-12815.pdf) for further details on the meaning of the various UBX NAV, RXM and INF message types and data attributes. - If, having enabled RXM-COR or RXM-RTCM message types, you see none in the console, this may mean the RTK correction data is not making its way through to your receiver. This could be due to a configuration or connection error of some kind e.g. - - Ensure that your F9P is configured to allow incoming RTCM3 data on the designated port - this is the default setting, but it may have been overwritten. + - If the RTK service requires client authentication, ensure you are using correct and current credentials (PyGPSClient will generally report an HTTP 4nn Not Authorized error in these circumstances). + - Some RTK services are "geofenced" and will only provide data to clients within a specified geographical area. Check with the service provider. - If the NTRIP caster requires NMEA GGA position data (signified by a '1' in the 11th position of the sourcetable - the one after Longitude), ensure you have this enabled in the NTRIP client configuration panel. - + ![sourcetable gga marker](https://github.com/semuconsulting/PyGPSClient/blob/master/images/sourcetable_ggamarker.png?raw=true) - - If the RTK data is encrypted (as with Thingstream SPARTN MQTT or L-Band services), ensure that the latest decryption keys have been uploaded to the receiver via an RXM-SPARTN-KEY message. SPARTN decryption keys are typically only valid for a 4 week period and need to be refreshed regularly. + - If the RTK data is encrypted (as with Thingstream PointPerfect SPARTN MQTT or L-Band services), ensure that the latest decryption keys have been uploaded to the receiver via an RXM-SPARTN-KEY message. SPARTN decryption keys are typically only valid for a 4 week period and need to be refreshed regularly. - If using an internet RTK service (NTRIP or MQTT), ensure you have active internet connectivity and that the service's IP port (typically 2101, 2102, 443 or 8883) is not being blocked by a firewall. + - Ensure that your F9P is configured to allow incoming RTCM3 data on the designated port - this is the default setting, but it may have been overwritten. -### 7. "FLOAT" vs "FIXED" +### 8. "FLOAT" vs "FIXED" - It is important to understand that these RTK status values are based, in essence, on a statistical analysis (using the principles of [Kalman Filtering](https://en.wikipedia.org/wiki/Kalman_filter)) of the [various errors](https://www.semuconsulting.com/gnsswiki/#Errors) ('residuals') which affect the calculation of carrier phase pseudorange, and hence the accuracy of the navigation solution. - The receiver's firmware applies a complex proprietary algorithm to determine if this statistical analysis is within a certain tolerance. If it is, the receiver will report an 'RTK-FIXED' status. If it is outside the designated tolerance, the receiver may report an 'RTK-FLOAT' status. This doesn't *necessarily* mean that the solution is less accurate - it just means that the *confidence* level is lower than 'FIXED'. - An 'RTK-FLOAT' status will therefore generally yield a lower accuracy estimation (`hAcc`, `vAcc`) than 'RTK-FIXED'. -### 8. Some caveats on "hAcc" and "vAcc" +### 9. Some caveats on "hAcc" and "vAcc" - **NB:** `hAcc` and `vAcc` values are *not* available from the default cohort of NMEA messages output by most GNSS receivers (including the F9P). In order to receive these values, you will need to enable either proprietary NMEA sentences like u-blox's UBX00, or UBX messages like NAV-PVT. - Much is made of reported horizontal (hAcc) and vertical (vAcc) accuracy figures, but they are **merely estimates** based on a statistical analysis of: @@ -87,14 +95,14 @@ If you're relatively new to GNSS and RTK techniques and terminology, you may wan - Signal strengths (`CN₀`) - Geometric distribution of the satellites (`dop`) - Pseudorange residuals ([UERE](https://en.wikipedia.org/wiki/Error_analysis_for_the_Global_Positioning_System)) -- In the case of the u-blox ZED-F9P receiver, the analysis itself is proprietary and is performed within the F9P's firmware, rather than in client software. -- Ultimately, the only *definitive* way of establishing the accuracy of an RTK (or PPK) navigation solution is to compare it with a known fixed reference point whose 3D coordinates have been independently established via high precision surveying techniques. +- In the case of the F9P receiver, the analysis itself is proprietary and is performed within the F9P's firmware, rather than in client software. +- Ultimately, the only *definitive* way of establishing the accuracy of an RTK (or PPK) navigation solution is to compare it with a known fixed reference point whose 3D coordinates have been independently verified via high precision surveying techniques. - Note that the 7th and 8th decimal places of a decimal lat/lon coordinate are equivalent to about 1.1cm and 1.1mm respectively, which represents the practical limit of any RTK or PPK GNSS application - anything more than this would be spurious. --- ## Illustrated Example -The following screen shot illustrates an RTK fix obtained using a [SparkFun GPS-RTK-SMA](https://www.sparkfun.com/products/16481) GNSS module and [u-blox ANN-MB-00](https://www.sparkfun.com/products/15192) antenna mounted on a steel car roof (approximately 1.5m high with a base altitude of 66m) at a location with more-or-less 360° unrestricted visibility of the sky, around late afternoon in good weather conditions. The RTK source was an [euref-ip.net](https://www.euref.eu/euref-services) NTRIP 2.0 reference station (mountpoint) situated some 28km to the west. The source had been active for approximately 60 seconds prior to the screenshot being taken. +The following screen shot illustrates an RTK fix obtained using a [SparkFun GPS-RTK-SMA](https://www.sparkfun.com/products/16481) GNSS module and [u-blox ANN-MB-00](https://www.sparkfun.com/products/15192) antenna mounted on a steel car roof (approximately 1.5m high with a base altitude of 66m) at a location with more-or-less 360° unrestricted visibility of the sky, around late afternoon in good weather conditions. The RTK source was a [EUREF NTRIP](https://www.euref.eu/euref-services) 2.0 reference station (mountpoint) situated some 28km to the west. [EUREF](https://epncb.oma.be/) uses the [European Terrestrial Reference System 89 or ETRS89](http://etrs89.ensg.ign.fr/), which at time of writing is coincident with the [ITRS](https://en.wikipedia.org/wiki/International_Terrestrial_Reference_System_and_Frame) at epoch 1989.0. The source had been active for approximately 60 seconds prior to the screenshot being taken. - The incoming RTCM data may be seen in the console with the tag `NTRIP>>`. - The UBX NAV-PVT messages are reporting `diffSoln=1` ("differential corrections were applied"), `carrSoln=2` ("carrier phase range solution with fixed @@ -125,6 +133,7 @@ The *indicated* horizontal accuracy (`hacc`) is 1.4cm but *note [caveats](#cavea | DGPS/DGNSS | Differential GPS/GNSS | A [high resolution positioning technique](https://en.wikipedia.org/wiki/Differential_GPS) that enhances the positional data available from GNSS systems by reference to a network of fixed position, ground-based (or "virtual") reference stations | | DOP | Dilution of Precision | A measure of the effect of the geometric distribution of visible GNSS satellites on positional accuracy | | HACC | Horizontal Accuracy | A statistical estimate of horizontal positional accuracy based on a number of factors | +| ITRF | International Terrestrial Reference Frame | A [reference frame](https://itrf.ign.fr/en/homepage) which takes into account tectonic plate movement and gravitational/magnetic displacements, necessary for mm level accuracy. The “earth-fixed” ITRF is typically not regarded as a “datum” – rather it is the international standard reference framework to which national geocentric datums are aligned | | L1 | | Original GPS C/A carrier frequency 1575.42 MHz | | L2 | | Original GPS P(Y) carrier frequency 1227.60 MHz | | L5 | | A more modern GNSS carrier frequency 1176.45 MHz | @@ -137,7 +146,7 @@ The *indicated* horizontal accuracy (`hacc`) is 1.4cm but *note [caveats](#cavea | RG58 | | A common specification of stranded-core RF coaxial cable suitable for short cable runs | | RINEX | Receiver Independent Exchange Format | A proprietary vendor-agnostic GNSS data protocol published by the RTCM and commonly used for PPK | | RTCM | Radio Technical Commission for Maritime Services | The not-for-profit body which publishes the NTRIP, RTCM3 and RINEX protocols | -| RTK | Real-time kinematics | A real-time [high resolution surveying technique](https://en.wikipedia.org/wiki/Real-time_kinematic_positioning) which corrects for [common errors](https://www.semuconsulting.com/gnsswiki/#Errors) in GNSS positional data using measurements of the phase of the signal's carrier wave in addition to the information content of the signal. It relies on a single reference station or interpolated virtual station to provide real-time corrections, providing up to centimetre-level accuracy. +| RTK | Real-time kinematics | A real-time [high resolution surveying technique](https://en.wikipedia.org/wiki/Real-time_kinematic_positioning) which corrects for [common errors](https://www.semuconsulting.com/gnsswiki/#Errors) in GNSS positional data using measurements of the phase of the signal's carrier wave in addition to the information content of the signal. It relies on a single reference station or interpolated virtual station to provide real-time corrections, providing up to centimeter-level accuracy. | RTN | Real-time Network | A real-time [high resolution surveying technique](https://water.usgs.gov/osw/gps/real-time_network.html), similar in principle to RTK but using a computed or "virtual" reference station rather than a physical reference station | | SIP | Satellites in Position | The number of satellites actually used in the receiver's navigation solution | | SIV | Satellites in View | The number of satellites the receiver can see | @@ -162,3 +171,5 @@ The *indicated* horizontal accuracy (`hacc`) is 1.4cm but *note [caveats](#cavea 1. [RTK Fundamentals](https://gssc.esa.int/navipedia/index.php/RTK_Fundamentals) 1. [Error analysis for the Global Positioning System](https://en.wikipedia.org/wiki/Error_analysis_for_the_Global_Positioning_System) 1. [RTCM DGNSS standards](https://rtcm.myshopify.com/collections/differential-global-navigation-satellite-dgnss-standards) +1. [International Terrestial Reference Frame System](https://itrf.ign.fr/en/homepage) + diff --git a/images/scatterplot_widget.png b/images/scatterplot_widget.png index b091a1190ac5e9cd4887308aef16e99c77a56099..d81afb00a04f911689eacb7243383bb82687f3e5 100644 GIT binary patch delta 52245 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 KMNUMnLSTX;1SdBD delta 48642 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 z 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%0AE5@tvgPdG|5*1nD3N&#k?iuHO8E|aR6lQxzBIr zn7Pq+NC7TVb06NL4CW~Qo`2@g%c300)pLGV0VknM!3yx=ZQ%W=>2hL7mIW-4SHDxR zq@NpOLi+N69U|08Stf1eWT2_}!PLiU<7*cwY(3uP_P{6Z+Jwc^M8RBD{7H9tU0;WqkCA}MoUF*CYf)Lq|7Ahy4! zCF4rXr@yDN3pJ++fqxZqPB~ugV*UP9OD+AASj!iPD%f$DOTv-KThZI3Jp|SI2L=n| zv;@r2-i#!r@)rKrTAPkglC5fFfpB9mxTW=`&=>N1Q)=h_aWK0jeqUS*PkKSNutegcye4w&U=B} z!g~F@#F1lYvwW)lk*zHGDL4uLi3zxD=)fPW}Ba@fcYnu*t~JVS^-0!%iGwhg;n;^ zL94CXwVJ=LMOarx#JpSxR`HhR{^nw9vxNw~5Pz|K|0-MjY^A@qVpgS1A5m`IZYZ|0 zh1zjfUTw>#RM}S771=h27u(Fgl?l=1-E~Tdo>$o>dlcG?tIMt8C2jn9zK!NNVIQ2l z+BVr!f#U_Cody)xmy<*_R%?I3HVNy{yTF!ySZOm((qRRMXx_!qH_D`GOipF$f_Mg= z_IX z$nm1e-bztXJ`y(<5VhG`)cu1>n{`{cm4E4X$(D*Xp#ThX?kl%t)5S?dvC+*pW-1-c z;95R?Qk`5&^p0lO4O6--f2G=1jT6Gn)$j?Am%gtvtVN`YbE*%Krpg;zTiS4`e)~q+pO!#tz44Xl1YNA^U7_; z@%k+(Zn31j!rtn{MyzfLYhqX%&A(`CIwiTbmCshxk6%|>_p=o4R2;WVA~tGMw;w39 z&&O4^;&IV>A!eaO>CeuouuVo5T7TyOg|o@eCfCVwTTpS%ji}cmyr~>=^vWOuRipVd#UnhpltF~^(7JE7Ezg=LP?N{VT zPQ8Vj3NA!Mx?iH_Ur5y&qknnsEJ^M*9mA{kERuv+)FF29u~^mjkuk>_`P{+q%H!kEyVdy|iU==SbAq{OkhjaZ0hx z8Cz~k?yj=l5~Z2kPygR)>#~c2@cp>Zwi#7q(}t{;t|cn`BT-@L)qk7rTWDQ&((?nP zgGnU&da6XIAC_A}fP-#bSc*QS1__|Hzq8op{kg&xJYQ~`N}TU;mBQ`{-=|-tIwTbo z$=Ftf*p+O5tVgYvnrO|Gk3&j4s}yY)(yfvnx?ECD*<49J$^nOE3?be{n?!jMy0`MP zD*N=uTEG56nL{IopqYu88?;Ltb64fFO^Ii9j#DEmnhV~=6L0dD*O0s zNmgG*@4-C^#kDK7wYJ;;7FoOg1@^8)>-O6TnGcnCE&aLcp+(ktposTw(yxbWUw$9K z+yfO>h#oJv>!N4#A5%bi3~5Ma8~L24x}Tg}MWWZB)Jo;Eg@07iUw8UX8%LA{cU9Qd zLd3;WbZqF05`zaNY^x)M#EZ&pi{V8E#oh8dMXukhk{;aSv=VV+ab}6_E2mZ2*2ffi zS#acq4@mr8F7aD{(&OA>Tl^md=vx34FSIQtNdow^(w09e0NY)XfyDVriQ#bezN6)@ zErKvtqC53%bAMd4jqa;SdS5zVQK_hvkiRw6908^`MYF>N)LdM8(d`P7C+=7DP3#jg zNQxs8e~ouAepX1-t(Yj||XG zw6AWG&V7xZN!?ocfVlH^Lgw!k*os+Iw)D@E0*8rANy^xmQyg_u_K|S<#5FRlWeMx@=7vZ>>!}{q)lw%J|e%PW5AgS*ju)HCqP<4H{$> z2~og8fr7rA7&3QbGKq)E8&WiD1zk}&76qGhj*eYwi#MIWp~ zv$q>Zu;2dncM96zjwRu-=1OapZAuiYxPwI6oy2877b3AF1Svqg;W|t--yj{|n!IXF zkblaz4id$xq!XKvzkM&=*JPWBLG@=UYb#xo02*1W{hMoXT*|3Zo_2k89T9s+X6kOU zzn*=i@@RG}GqZ%bX1fR*ID7x&b)V554DZYiG| zw`hmfy`u@%m+DE#Ko@@d`+}v^Z(VN8$?;V?4U2>r3>`_+l1^~x)n%*fqmQQB7xNcb zg27*{*-->gIB486#|K(ECiNBQLE7pme3gQACa", self._on_resize) self.canvas.bind("", self._on_clear) + self.canvas.bind("", self._on_zoom) - def _remode(self): + def _on_zoom(self, event): """ - Remode widget. + Adjust scale using mousewheel. + + :param event: mousewheel event + """ + + sl = len(self.scale_factors) - 1 + sc = self.scale.get() + if event.delta > 0: + if sc < sl: + self.scale.set(sc + 1) + elif event.delta < 0: + if sc > 0: + self.scale.set(sc - 1) + + def _on_remode(self): + """ + Adjust distance approximation mode (haversine/planar) """ self._on_resize(None) - def _rescale(self, scale): # pylint: disable=unused-argument + def _on_rescale(self, scale): # pylint: disable=unused-argument """ Rescale widget. """ @@ -292,15 +323,15 @@ def redraw(self): if not self.points: return - ref = False # centered on average position - try: - middle = Point(float(self.reflat.get()), float(self.reflon.get())) - ref = True # centered on fixed reference position - except ValueError: - middle = self._ave_pos() + middle = self._ave_pos() + if self.center.get() == CTRFIX: + try: + middle = Point(float(self.reflat.get()), float(self.reflon.get())) + except ValueError: + self.center.set(CTRDYN) for pnt in self.points: self.draw_point(middle, pnt) - if ref: + if self.center.get() == CTRFIX: self.draw_point(middle, middle, FIXCOL) def update_frame(self): diff --git a/src/pygpsclient/settings_frame.py b/src/pygpsclient/settings_frame.py index 1f785025..41b561aa 100644 --- a/src/pygpsclient/settings_frame.py +++ b/src/pygpsclient/settings_frame.py @@ -911,6 +911,9 @@ def config(self) -> dict: "ubxpresets_l": self.__app.saved_config.get("ubxpresets_l", []), "usermaps_l": self.__app.saved_config.get("usermaps_l", []), "scattermode_s": self.__app.saved_config.get("scattermode_s", "Planar"), + "scattercenter_s": self.__app.saved_config.get( + "scattercenter_s", "Dynamic" + ), "scatterscale_n": self.__app.saved_config.get("scatterscale_n", 6), "scatterlat_f": self.__app.saved_config.get("scatterlat_f", 0.0), "scatterlon_f": self.__app.saved_config.get("scatterlon_f", 0.0),