Skip to content

Latest commit

 

History

60 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mission Analyzer

Десктопний застосунок для аналізу польотних місій ArduPilot / Mission Planner (.waypoints, формат QGC WPL 110) перед вильотом безпілотника.

Перевіряє:

  • критично низьку висоту польоту — як за даними самого файлу місії, так і за рельєфом SRTM (по всій лінії польоту між точками, а не тільки в самих точках);
  • занадто гострі кути повороту;
  • кут набору/зниження (flight path angle) поза допуском;
  • глісаду заходу на посадку — дистанцію/азимут/кут по останніх відрізках до LAND, з урахуванням команд DO_CHANGE_SPEED.

Вимоги

  • Windows, Python 3.11+ (стандартна бібліотека: tkinter, urllib, json; додатково: Pillow — опційно, для якіснішого масштабування логотипу/скріншотів).
  • Інтернет для довантаження тайлів карти (OpenStreetMap / Google) і тайлів рельєфу SRTM за потреби (див. нижче).

Встановити залежності:

pip install -r requirements.txt

Запуск

python main.py

Тайли SRTM (рельєф)

Тайли рельєфу не зберігаються в репозиторії (це гігабайти бінарних даних, не код). Замість цього srtm.py сам довантажує потрібний тайл з публічного дзеркала terrain.ardupilot.org (тим самим, яким для докачки тайлів користується сам Mission Planner) у момент, коли тайл дійсно знадобився для аналізу маршруту — і кладе його в локальну папку SRTM поруч з рештою.

Шлях до папки з тайлами задається на сторінці Конфігурація в самому застосунку.

Якщо в папці вже накопичилась повна світова база SRTM і хочеться лишити тільки потрібний регіон (наприклад Україну та Росію) — скористайся cleanup_srtm.py:

python cleanup_srtm.py "шлях\до\папки\SRTM" --apply

Без --apply скрипт лише покаже, скільки файлів і гігабайт буде перенесено (dry-run).

Структура проекту

Файл Відповідальність
main.py Точка входу, сплеш-екран
app.py Головне вікно: шапка, навбар, каркас сторінок, перемикання мови
mission_page.py Сторінка «Місія»: таблиця вейпоінтів, завантаження/збереження .waypoints, підключення до ArduPilot (MAVLink), карта маршруту
analysis_page.py Сторінка «Аналіз»: вкладки зліт/маршрут/посадка, метео, графіки, PDF-звіт
config_page.py Сторінка «Конфігурація»: параметри аналізу, шляхи SRTM/кеш карти, провайдер карти
help_page.py Сторінка «Довідка»: changelog, перевірка оновлень
waypoints.py Парсинг/запис .waypoints (QGC WPL 110)
geo.py Геометрія: відстані, азимути, інтерполяція вздовж маршруту
srtm.py Читання рельєфу з тайлів SRTM + автодокачка відсутніх тайлів
analyzer.py Основна логіка аналізу місії, генерація звіту
elevation_view.py, angle_view.py, landing_view.py Графіки висоти, кута траєкторії, глісади
map_view.py, online_tiles.py, overview_map.py Тайли карти (OSM/Google), кеш, відмальовка
occupied_layer.py Шар окупованих територій / лінії зіткнення (deepstatemap.live)
i18n.py Локалізація UA/EN
theme.py, icons.py Оформлення в стилі Mission Planner
settings.py Збереження/читання settings.json
meta.py Версія програми та changelog
updater.py Перевірка та застосування оновлень
cleanup_srtm.py Допоміжний скрипт очищення папки SRTM від зайвих регіонів

settings.json генерується самим застосунком при першому запуску і в репозиторій не входить (див. .gitignore).

Локалізація

Українська та англійська. Російська свідомо не підтримується.

Ліцензія

License: MIT — © 2026 Sergey Gorbachevsky

About

Python desktop application for analyzing ArduPilot and QGroundControl flight missions, validating flight paths, terrain clearance, approach glide slopes and trajectory angles, with online maps and SRTM elevation profiles.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages