Skip to content
Snippets Groups Projects

Implement a dialog to plot and export GPS data

Merged Kien Le requested to merge feature-#19-gps_plotter_q330 into master
1 file
+ 30
11
Compare changes
  • Side-by-side
  • Inline
import math
import sys
import traceback
from pathlib import Path
from typing import List, Optional
@@ -12,6 +13,8 @@ from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as Canvas
from matplotlib.figure import Figure
from matplotlib.axes import Axes
from sohstationviewer.view.util.enums import LogType
class GPSWidget(QtWidgets.QWidget):
def __init__(self, parent: QtWidgets.QWidget,
@@ -199,19 +202,35 @@ class GPSDialog(QtWidgets.QWidget):
<YYYY-MM-DD HH:MM:SS> <fix type> <no. sats. used> <latitude:.6f> <longitude:.6f> <height:.6f> # noqa
and is tab-separated.
"""
self.info_text_browser.setHorizontalScrollBarPolicy(
QtCore.Qt.ScrollBarAsNeeded)
self.info_text_browser.setVerticalScrollBarPolicy(
QtCore.Qt.ScrollBarAsNeeded)
self.info_text_browser.verticalScrollBar().setDisabled(False)
self.info_text_browser.horizontalScrollBar().setDisabled(False)
folder_name = self.data_path.name
outside_folder = self.data_path.parent
with open(outside_folder / f'{folder_name}.gps.dat', 'w+') as outfile:
outfile.write(f'# GPS data points for {folder_name}\n')
for point in self.gps_points:
if point.is_bad_point():
continue
line = (
f'{point.last_timemark}\t{point.fix_type}\t'
f'{point.num_satellite_used}\t{point.latitude:+.6f}\t'
f'{point.longitude:+.6f}\t{point.height:.6f}\n'
)
outfile.write(line)
export_file_path = outside_folder / f'{folder_name}.gps.dat'
try:
with open(export_file_path, 'w+') as outfile:
outfile.write(f'# GPS data points for {folder_name}\n')
for point in self.gps_points:
if point.is_bad_point():
continue
line = (
f'{point.last_timemark}\t{point.fix_type}\t'
f'{point.num_satellite_used}\t{point.latitude:+.6f}\t'
f'{point.longitude:+.6f}\t{point.height:.6f}\n'
)
outfile.write(line)
except:
msg = traceback.format_exc()
display_tracking_info(self.info_text_browser, msg, LogType.ERROR)
else:
msg = f'Successfully exported to {export_file_path}'
display_tracking_info(self.info_text_browser, msg, LogType.INFO)
# We use the WGS-84's version of the Earth ellipsoid as a reference point for
Loading