Skip to content

Calculate the communication line and the elevation difference on it

License

Notifications You must be signed in to change notification settings

Valentin-Golyonko/Elevation-Path

Repository files navigation

Elevation-Path

The program is designed to calculate the communication line and the elevation difference on it using offline OSM map or online google maps.

Images:

Offline Open Street Map, elevation accuracy 1 point per 1 km - web_view

Online Google Maps, elevation accuracy 1 point per 1 km - web_view

How to:

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:

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) + '''

TODO:

  • elevation chart scale;
  • redo the program data exchange with the server;
  • database;
  • multiprocessing;
  • speed up DB.

Benchmark results:

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

Bug:

  • On Windows multiple GUI opens in multiprocessing mode!