The program is designed to calculate the communication line and the elevation difference on it using offline OSM map or online google maps.
Offline Open Street Map, elevation accuracy 1 point per 1 km -
Online Google Maps, elevation accuracy 1 point per 1 km -
Python:
- Install PyQt5, PyQt5-sip, PyQtWebEngine, Matplotlib, NumPy, QtDesigner (to do UI), pyqt5-tools (convert .ui-file to .py-file)
- For Windows i used Python version 3.6.x with Qt5 from winpython.
- For Ubuntu all working good without any custom manipulations (python 3.7.x).
Maps:
- OpenStreetMap server is installed on Ubuntu 19.04 (+ tested on 18.04 and 18.10) using Manually building a tile server (18.04 LTS).
- If you have Win 10 build 16215+, you can install ubuntu 18.04 with Windows Subsystem for Linux
- Google Maps is used for online calculation Elevation API + Maps JavaScript API
Data obtained from the satellite is used for offline calculation, they are converted in the QGIS program from images to geojson data.
You may change (in the build v.1.0):
- data base from 5m to 1m accuracy - line 72 "GeoJson.py"
db = sqlite3.connect('elev_5m.db')
; - number of points per km:
- line 35 in "GeoJson.py"
number_of_points = int(d_ab) * 1
- line 212 in "create_ui.py"
'samples': ''' + str(1 * GeoJson.number_of_points) + '''
- line 35 in "GeoJson.py"
- elevation chart scale;
redo the program data exchange with the server;database;multiprocessing;speed up DB.
1st test_coordinates = [53.822975, 27.087467, 52.911044, 27.691194] - 110 km
2d test_coordinates = [51.742627, 23.964322, 55.404321, 30.621924] - 600 km
- For simple python without MP (ProcessPoolExecutor):
1 TIME_FIND_POINTS: 3.4808 sec (0.058 min); 110 km, extracted data from the database = 67.418
2 TIME_FIND_POINTS: 852.0257 sec (14.2 min, before 06/06/19 it was 26.4 min); 600 km, extracted data from the database = 2.979.379
- With MP!!!
1 Multiprocessing time = 2.4771784 sec; 110 km, extracted data from the database = 10.446
2 Multiprocessing time = 6.7197512 sec; 600 km, extracted data from the database = 303.636
- On Windows multiple GUI opens in multiprocessing mode!