Warum Gpredict-Improved?
Gpredict ist ein Begriff, der Funkamateuren, die über Satellit arbeiten, keiner Erklärung bedarf. Die Anwendung zur Verfolgung und Vorhersage von Satellitenüberflügen wurde von Alexandru Csete (OZ9AEC) entwickelt und dient seit über fünfzehn Jahren als De-facto-Standard auf Linux-Desktop-Systemen. Die Software basiert auf SGP4/SDP4-Ausbreitungsalgorithmen und NORAD-Orbitelementen im TLE-Format und kann eine unbegrenzte Anzahl von Satelliten verfolgen. Hamlib ovládať prijímače aj rotátory.
Trotz seiner Verbreitung bleibt es originell. Gpredict Die Software weist einige Lücken auf. Der Autor des neuen Projekts, Sadatoshi Koike (JF9SOM), erklärt in der Ankündigung, dass Gpredict zwar schon lange als informeller Standard fungiere, aber noch erhebliches Potenzial für Funktionserweiterungen bestehe. Er weist außerdem darauf hin, dass die derzeitigen Tools, die auf … abzielen, … SDR Im Allgemeinen bieten sie keine zufriedenstellende Steuerung von Transceiver und Rotor. Ziel ist es, Gpredict-Verbessert Es geht daher darum, beide Ansätze zu kombinieren – integrierte Hamlib-Funktionen, ähnlich der bekannten Lösung. WSJT-X, doplnené o SDR integráciu.
Das Ergebnis ist eine vollständige Neuentwicklung des bewährten Konzepts auf einer modernen Softwarebasis – Python 3.11+, der Skyfield-Orbital-Engine und der grafischen Benutzeroberfläche PySide6/Qt6. Die Lizenz bleibt GPL-2.0 oder höher, ist also mit dem ursprünglichen Gpredict kompatibel. Der Autor nennt in den Danksagungen explizit die Projekte, auf denen Gpredict-Improved basiert: Gpredict, Skyfield, Hamlib und die von der Libre Space Foundation betriebene SatNOGS-Datenbank.
Merkmale von Gpredict-Improved
Die auffälligste Änderung gegenüber dem ursprünglichen Gpredict ist der Zugriff über einen Webbrowser. Ein FastAPI-Server läuft im Hintergrund auf Port 8080 und ermöglicht so die Überwachung von Netzwerkübergängen über ein Smartphone oder Tablet im selben lokalen Netzwerk. Laut GitHub-Repository zeigt die Statusleiste nach dem Start die LAN-Adresse und einen QR-Code für die schnelle Verbindung mit einem Mobilgerät an.
Die zweite wesentliche Änderung ist die native Integration von Hamlib. Anstatt den rigctld-Daemon separat auszuführen, wie es beim ursprünglichen Gpredict erforderlich war, wird der Funksender direkt in der grafischen Benutzeroberfläche ausgewählt. Die Dopplerkorrektur wurde erweitert – neben der Frequenz werden auch Betriebsart und CTCSS-Ton automatisch angepasst.
Die Verwaltung der Satellitenfrequenzen erfolgt direkt über die Benutzeroberfläche, einschließlich der Synchronisierung mit der SATNOGS-Datenbank und der Möglichkeit, Datensätze manuell hinzuzufügen oder zu bearbeiten. Aktualisierungen der TLE-Elemente erfolgen automatisch aus verschiedenen Quellen und werden durch ein System zur Datenqualitätsbewertung ergänzt. Der Autor weist darauf hin, dass das TLE-Format selbst mit der Zeit veraltet, was bei der Arbeit mit Orbitdaten stets berücksichtigt werden muss.
Das Projekt unterstützt außerdem SDR-Empfänger wie HackRF und RTL-SDR. Die Internationalisierung erfolgt über gettext; aktuell sind englische und japanische Zeichenketten verfügbar, was laut Ankündigung auch die Möglichkeit für eine Übersetzung ins Slowakische oder Französische eröffnet. Die folgende Tabelle fasst die Unterschiede zum ursprünglichen Gpredict aus dem Projekt-Repository zusammen.
| Bereich | Gpredict | Gpredict-Verbessert |
|---|---|---|
| Plattform | Nur Desktop | Desktop- und Browserzugriff auf Smartphones/Tablets im selben LAN |
| Fernsteuerung | erfordert ein separates rigctld | Hamlib integriert, Radiosenderauswahl direkt in der Benutzeroberfläche |
| Dopplerkorrektur | nur Frequenz | Frequenz + Modus + CTCSS-Ton automatisch |
| Satellitenfrequenzdatenbank | SATNOGS-exklusive Textdateibearbeitung | automatische SATNOGS-Synchronisierung + Hinzufügen/Bearbeiten über die Benutzeroberfläche |
| TLE-Update | Handbuch | automatisch, aus mehreren Quellen, mit Datenqualitätsbewertung |
| Unterstützte Betriebssysteme | Linux (GTK+) | Linux, Windows, macOS, Raspberry Pi |
Erforderliche Hardware- und Softwareumgebung
Gpredict-Improved ist für Linux, Windows, macOS und Raspberry Pi verfügbar. Die Installationsanleitung im Repository bezieht sich derzeit auf Ubuntu/Debian, wo die Software über eine virtuelle Python-Umgebung aus dem Quellcode installiert wird. Vorinstallationsprogramme für Windows und macOS werden laut Repository nach Veröffentlichung der ersten Version auf der Releases-Seite bereitgestellt.
Für Funk und Rotor wird Unterstützung durch Hamlib benötigt, das nun Teil der Anwendung ist und kein separat laufendes rigctld erfordert. Für die Arbeit mit Software-Defined Radio (SDR) bietet das Repository Unterstützung für HackRF- und RTL-SDR-Empfänger. Die Projektarchitektur ist in folgende Module unterteilt: Kern (Skyfield-Satelliten-Engine), Benutzeroberfläche (PySide6/Qt6-Desktop-Oberfläche), Web (FastAPI + WebSocket für LAN-Zugriff über einen Browser auf Port 8080), Rig (Steuerung von Funk und Rotor über Hamlib), Daten (TLE/SATNOGS-Synchronisierung, SQLite-Datenbank) und i18n (Internationalisierung basierend auf gettext).
Wie Gpredict-Improved funktioniert und wie man damit beginnt
Die Installation unter Ubuntu/Debian erfolgt gemäß der README-Datei in mehreren Schritten. Zunächst werden die Systempakete python3.11, python3-pip, libhamlib-dev und python3-hamlib installiert. Anschließend wird das Repository mit dem Befehl `git clone` geklont, eine virtuelle Python-Umgebung erstellt (`python3.11 -m venv .venv`), diese aktiviert und das Paket mit dem Befehl `pip install -e` installiert.
Um mit einem über USB angeschlossenen Funkgerät zu arbeiten, müssen Sie die Berechtigungen festlegen. Kopieren Sie dazu die udev-Regel aus scripts/99-gpredict-improved.rules nach /etc/udev/rules.d/, laden Sie die Regeln mit dem Befehl `sudo udevadm control --reload-rules` neu und fügen Sie den Benutzer der Gruppe „dialout“ hinzu (sudo usermod -aG dialout $USER). Anschließend müssen Sie sich ab- und wieder anmelden, damit die Änderung der Gruppenzugehörigkeit wirksam wird. Die Anwendung selbst wird dann mit dem Befehl `gpredict-improved` gestartet.
Beim Start öffnet sich zunächst das Qt6-Hauptfenster. Anschließend wird der FastAPI/uvicorn-Server im Hintergrund in einem separaten Thread auf Port 8080 gestartet. DataSyncManager lädt dann TLE- und SATNOGS-Daten herunter, falls diese veraltet sind. Die Statusleiste zeigt die LAN-Adresse und eine Schaltfläche mit einem QR-Code an, der eine schnelle Verbindung von einem Mobilgerät im selben Netzwerk ermöglicht.
Die Entwicklungsumgebung wird mit dem Befehl `pip install -e ".[dev]"` eingerichtet, Tests werden mit `pytest` durchgeführt, statische Analysen erfolgen mit `ruff check .` und Typüberprüfungen mit `mypy src/`. Das Hinzufügen einer neuen Sprache besteht darin, die Datei `locale/en/LC_MESSAGES/gpredict_improved.po` zu kopieren, die `msgstr`-Strings zu übersetzen und mit dem Tool `msgfmt` zu kompilieren.
Vollständige Zusammenfassung
Gpredict-Verbessert Es handelt sich nicht um ein kosmetisches Update, sondern um eine vollständige Neuentwicklung des bewährten Gpredict-Konzepts auf einer modernen Python/Skyfield/Qt6-Basis, wobei die Lizenzkompatibilität mit dem Original erhalten bleibt. Zu den Hauptvorteilen zählen der Browserzugriff über ein lokales Netzwerk, die native Hamlib-Integration ohne separates rigctld, die erweiterte Dopplerkorrektur mit Modus und CTCSS, die automatische Aktualisierung der Multi-Source-TLE mit Qualitätsbewertung sowie die Erweiterung der unterstützten Plattformen auf Windows, macOS und Raspberry Pi.
Das Projekt wird von Sadatoshi Koike (JF9SOM) geleitet. Der Quellcode ist auf GitHub öffentlich zugänglich und umfasst Dokumentation, Architektur und Entwicklungsplan. Zum jetzigen Zeitpunkt sind noch keine Releases oder Vorinstallationsprogramme für Windows und macOS veröffentlicht worden. Laut Repository sollen diese nach der Veröffentlichung der ersten offiziellen Version folgen. Für Funkamateure, die im Satellitenbetrieb tätig sind, ist dieses Projekt besonders interessant, da es die komfortable Steuerung von Funkgerät und Rotor mit der SDR-Integration in einem einzigen Tool vereint.
