Dlaczego Gpredict-Improved?
Przewidywanie G To termin, którego nie trzeba przedstawiać radioamatorom pracującym za pośrednictwem satelity. Aplikacja do śledzenia i przewidywania przelotów została opracowana przez Alexandru Csete (OZ9AEC) i od ponad piętnastu lat stanowi de facto standard na komputerach stacjonarnych z systemem Linux. Oprogramowanie oparte jest na algorytmach propagacji SGP4/SDP4 oraz elementach orbity NORAD w formacie TLE. Może śledzić nieograniczoną liczbę satelitów i za pośrednictwem… Hamlib ovládať prijímače aj rotátory.
Pomimo swojej powszechności, pozostaje oryginalny Przewidywanie G Oprogramowanie, które ma kilka luk. Autor nowego projektu, Sadatoshi Koike (JF9SOM), stwierdza w ogłoszeniu, że chociaż Gpredict od dawna funkcjonuje jako nieformalny standard, istnieje znaczne pole do dodawania funkcji. Zwraca również uwagę, że obecne narzędzia, których celem jest SDR generalnie nie zapewniają zadowalającej kontroli nad transceiverem i rotorem. Celem jest Ulepszona funkcja Gpredict jest zatem połączenie obu podejść – zintegrowanych funkcji Hamlib podobnych do rozwiązania znanego WSJT-X, doplnené o SDR integráciu.
Rezultatem jest całkowite przepisanie sprawdzonej koncepcji na nowoczesnym fundamencie programowym – Pythonie 3.11+, silniku orbitalnym Skyfield i interfejsie graficznym PySide6/Qt6. Licencja pozostaje na poziomie GPL-2.0 lub nowszym, co oznacza kompatybilność z oryginalnym Gpredictem, a autor w podziękowaniach wyraźnie wymienia projekty, na których oparty jest Gpredict-Improved: Gpredict, Skyfield, Hamlib oraz bazę danych SatNOGS obsługiwaną przez Libre Space Foundation.
Funkcje Gpredict-Improved
Najbardziej oczywistą zmianą w stosunku do oryginalnego Gpredicta jest dostęp z poziomu przeglądarki internetowej. Serwer FastAPI działa w tle na porcie 8080, umożliwiając monitorowanie przejść z telefonu lub tabletu podłączonego do tej samej sieci lokalnej. Według repozytorium GitHub, pasek stanu po uruchomieniu wyświetla adres LAN oraz kod QR umożliwiający szybkie połączenie z urządzenia mobilnego.
Drugą istotną zmianą jest natywna integracja z biblioteką Hamlib. Zamiast oddzielnego uruchamiania demona rigctld, wymaganego przez oryginalny Gpredict, stacja radiowa jest wybierana bezpośrednio w interfejsie graficznym. Rozszerzono funkcję korekcji przesunięcia Dopplera – automatycznie dostosowywana jest nie tylko częstotliwość, ale także tryb i ton CTCSS.
Zarządzanie częstotliwościami satelitów odbywa się bezpośrednio z poziomu interfejsu, w tym synchronizacja z bazą danych SATNOGS oraz możliwość ręcznego dodawania lub edycji rekordów. Aktualizacje elementów TLE są automatyczne, z wielu źródeł, z wykorzystaniem systemu oceny jakości danych. Autor przypomina, że sam format TLE z czasem staje się przestarzały, o czym należy zawsze pamiętać podczas pracy z danymi orbitalnymi.
Projekt deklaruje również obsługę odbiorników SDR, takich jak HackRF i RTL-SDR. Internacjonalizacja jest obsługiwana za pośrednictwem gettext; obecnie dostępne są ciągi znaków w języku angielskim i japońskim, co, zgodnie z zapowiedzią, otwiera również drogę do ewentualnego tłumaczenia na język słowacki lub francuski. Poniższa tabela podsumowuje różnice w porównaniu z oryginalnym Gpredictem, wymienionym w repozytorium projektu.
| Obszar | Przewidywanie G | Ulepszona funkcja Gpredict |
|---|---|---|
| Platforma | tylko na komputerze stacjonarnym | dostęp z poziomu komputera stacjonarnego i przeglądarki na telefonach/tabletach w tej samej sieci LAN |
| Sterowanie radiowe | wymaga osobnego prawa | zintegrowany Hamlib, wybór stacji radiowej bezpośrednio w interfejsie graficznym |
| Korekcja Dopplera | tylko częstotliwość | częstotliwość + tryb + ton CTCSS automatycznie |
| Baza częstotliwości satelitarnych | Tylko SATNOGS, edycja plików tekstowych | automatyczna synchronizacja SATNOGS + dodawanie/edycja z GUI |
| Aktualizacja TLE | podręcznik | automatyczne, wieloźródłowe, z oceną jakości danych |
| Obsługiwany system operacyjny | Linux (GTK+) | Linux, Windows, macOS, Raspberry Pi |
Wymagane środowisko sprzętowe i programowe
Gpredict-Improved jest przeznaczony dla systemów Linux, Windows, macOS i Raspberry Pi. Instrukcje instalacji opublikowane w repozytorium dotyczą obecnie systemów Ubuntu/Debian, gdzie oprogramowanie jest instalowane ze źródeł za pośrednictwem wirtualnego środowiska Python. Preinstalatory dla systemów Windows i macOS będą dostępne na stronie „Wydania” po wydaniu pierwszej oznaczonej wersji, zgodnie z informacjami w repozytorium.
Po stronie radia i rotora wymagane jest wsparcie za pośrednictwem biblioteki Hamlib, która jest teraz częścią aplikacji i nie wymaga osobnego uruchamiania rigctld. Do pracy z radiem definiowanym programowo, repozytorium zawiera listę wsparcia dla odbiorników HackRF i RTL-SDR. Architektura projektu jest podzielona na moduły: rdzeń (silnik satelity Skyfield), interfejs użytkownika (interfejs pulpitu PySide6/Qt6), web (FastAPI + WebSocket do dostępu do sieci LAN z przeglądarki na porcie 8080), rig (sterowanie radiem i rotorem za pośrednictwem biblioteki Hamlib), dane (synchronizacja TLE/SATNOGS, baza danych SQLite) oraz i18n (internacjonalizacja oparta na gettext).
Jak działa Gpredict-Improved i jak zacząć
Instalacja w systemie Ubuntu/Debian, zgodnie z plikiem README, składa się z kilku kroków. Najpierw instalowane są pakiety systemowe python3.11, python3-pip, libhamlib-dev i python3-hamlib. Następnie klonuje się repozytorium poleceniem git clone, tworzy środowisko wirtualne Pythona (python3.11 -m venv .venv), aktywuje je i instaluje pakiet poleceniem pip install -e.
Aby korzystać z radia podłączonego przez USB, należy ustawić uprawnienia, kopiując regułę udev z pliku scripts/99-gpredict-improved.rules do pliku /etc/udev/rules.d/, ponownie wczytując reguły za pomocą polecenia sudo udevadm control –reload-rules i dodając użytkownika do grupy dialout (sudo usermod -aG dialout $USER). Po tym kroku należy się wylogować i zalogować ponownie, aby zmiana przynależności do grupy została uwzględniona. Następnie uruchamia się aplikację poleceniem gpredict-improved.
Podczas uruchamiania najpierw otwierane jest główne okno Qt6, a następnie w tle, w osobnym wątku na porcie 8080, uruchamiany jest serwer FastAPI/uvicorn. Następnie DataSyncManager pobiera dane TLE i SATNOGS, jeśli są nieaktualne. Na pasku stanu wyświetlany jest adres LAN oraz przycisk z kodem QR, który umożliwia szybkie połączenie z urządzenia mobilnego w tej samej sieci.
Środowisko programistyczne przygotowuje się poleceniem pip install -e ".[dev]", testy przeprowadza się za pomocą pytest, analizę statyczną zapewnia ruff check, a sprawdzanie typów – mypy src/. Dodanie nowego języka polega na skopiowaniu pliku locale/en/LC_MESSAGES/gpredict_improved.po, przetłumaczeniu ciągów msgstr i skompilowaniu za pomocą narzędzia msgfmt.
Pełne podsumowanie
Ulepszona funkcja Gpredict Nie jest to aktualizacja kosmetyczna, lecz całkowite przepisanie sprawdzonej koncepcji Gpredict na nowoczesnym fundamencie Python/Skyfield/Qt6, z zachowaniem kompatybilności licencyjnej z oryginałem. Główne korzyści to dostęp przez przeglądarkę przez sieć lokalną, natywna integracja z Hamlib bez konieczności stosowania oddzielnego rigctld, rozszerzona korekcja Dopplera z trybem i CTCSS, automatyczna aktualizacja TLE z wielu źródeł z oceną jakości oraz rozszerzenie obsługiwanych platform na Windows, macOS i Raspberry Pi.
Projektem kieruje Sadatoshi Koike (JF9SOM). Kod źródłowy, wraz z dokumentacją, architekturą i planem rozwoju, jest publicznie dostępny w serwisie GitHub. W chwili pisania tego tekstu nie opublikowano jeszcze żadnych oznaczonych wersji ani preinstalatorów dla systemów Windows i macOS – według repozytorium mają się one pojawić po wydaniu pierwszej oficjalnej wersji. Dla radioamatorów zajmujących się operacjami satelitarnymi jest to projekt godny uwagi, zwłaszcza biorąc pod uwagę deklarowany cel połączenia wygodnego sterowania radiem i rotorem z integracją SDR w jednym narzędziu.
