Skip to content
RFrftools.io
Satellite Communications30. April 202610 Min. Lesezeit

Erstellung eines Fahrplans für Bodenstations-Pässe mit Skyfield

Ansys STK ist bereit für den Sonnenuntergang: Berechnen Sie mithilfe von Skyfield SGP4-Passvorhersagen für Ihr Amateurfunkgerät oder Ihre CubeSat-Bodenstation. Vollständige Python-Komplettlösung mit TLE-Abruf, Höhenmasken, Doppler und iCalendar-Export.

Inhalt

Warum brauchst du einen lokalen Passplaner

Wenn du eine SATNOGS-Station, eine Amateurfunkhütte, die AO-91/ISS/NOAA verfolgt, oder ein Cubesat-Bodensegment im Frühstadium betreibst, benötigst du automatische Passvorhersagen. Kommerzielle Tools (STK, NOVA) sind übertrieben. Die kostenlosen Web-Prädiktoren (AMSAT, Heavens-Above) schreiben nicht gut. Da STK Cloud im März 2026 untergeht, ist Skyfield — der moderne Python-Nachfolger von PyEphem — die sauberste kostenlose Alternative.

In diesem Beitrag wird ein vollständiger Bodenstationsplaner in etwa 80 Python-Zeilen beschrieben: Holen Sie sich neue TLEs, berechnen Sie die Pässe der nächsten 24 Stunden für eine Satellitenliste, filtern Sie nach Mindesthöhe, berechnen Sie den Doppler für Ihre Downlink-Frequenz und senden Sie iCalendar aus, sodass Pässe in Ihrer Kalender-App erscheinen.

Installieren
pip install skyfield requests icalendar
Das war's. Skyfield ruft beim ersten Durchlauf seine eigenen Ephemeriden (DE421, IERS) ab — etwa 17 MB werden lokal zwischengespeichert.

Schritt 1: Aktuelle TLEs abrufen

TLs driften — nutze sie innerhalb von 7 Tagen nach der Epoche. Ruft den aktuellen Elementsatz von Celestrak ab:

from skyfield.api import load

stations_url = 'https://celestrak.org/NORAD/elements/gp.php?GROUP=amateur&FORMAT=tle'
sats = load.tle_file(stations_url)
by_name = {s.name: s for s in sats}
print(f'Loaded {len(sats)} amateur-radio satellites')
Wähle deine Ziele nach Namen aus (in der Celestrak-Datei wird zwischen Groß- und Kleinschreibung unterschieden):
targets = [
    by_name['AO-91 (FOX-1B)'],
    by_name['ISS (ZARYA)'],
    by_name['NOAA 19'],
    by_name['GreenCube (IO-117)'],
]
## Schritt 2: Definiere deine Bodenstation
from skyfield.api import wgs84, load

ts = load.timescale()
my_station = wgs84.latlon(40.0150, -105.2705, elevation_m=1624)  # Boulder, CO
min_elevation_deg = 10  # horizon mask to skip low passes
Verwenden Sie den Parameterelevation_m— er wirkt sich erheblich auf den Neigungsbereich bei niedrigen Höhenwinkeln aus.

Schritt 3: Finden Sie Ereignisse, die auf-, kulminieren und untergehenSatellite.find_events()gibt eine einfache Liste von Ereignissen zurück (0 = Anstieg, 1 = Höhepunkt, 2 = Beginn). Verarbeite sie dreifach:

§4 §

Ignoriere Satelliten, die sich bereits über dem Horizont beit0befinden (die Eventliste beginnt mit einem Kulminat-/Satzpaar).

Schritt 4: Doppler-Shift über einen Pass

Bei Amateur-UHF (435 MHz) kann ein Durchgang Ihren Mobilfunkanbieter um ±10 kHz verschieben — Ihr Receiver muss das verfolgen. Berechnung des Momentan-Dopplers anhand der Reichweitenrate:

§5 §

Bei einem typischen 6-minütigen AO-91-Overhead-Pass werden Sie einen Doppler-Sweep von etwa +10 kHz (Anstieg) über 0 (Zenit) bis −10 kHz (eingestellt) sehen. Verfolgen Sie dies auf dem Haupt-VFO des Funkgeräts, damit Sie kein Signal verlieren.

Schritt 5: Verknüpfen Sie das Budget für jeden Pass

Sobald Sie den Neigungsbereich ermittelt haben, geben Sie ihn in den rftools Free-Space Path Loss Calculator ein oder berechnen Sie ihn direkt:

§6 §

Für ein vollständiges Monte-Carlo-Link-Budget mit ITU-R-Ausbreitungsmodellen verwenden Sie den Satellite Link Budget Analyzer und teilen Sie die Szenario-URL mit Ihrem Stationslogbuch.

Schritt 6: Senden Sie iCalendar aus, damit die Pässe in Ihrem Kalender erscheinen

Hier wird der Scheduler für Menschen nützlich:

§7 §

Importierepasses.icsin den Apple-Kalender/Google-Kalender/Outlook und du erhältst 5 Minuten vor jedem Durchlauf Push-Benachrichtigungen.

Schritt 7: Starte es auf Cron

Fügen Sie das Skript in~/bin/station-passes.pyein und cronen Sie es einmal täglich:

# Refresh pass schedule nightly at 03:00 local
0 3 * * * /usr/bin/python3 ~/bin/station-passes.py > ~/passes.ics 2>> ~/station.log
Verbinde es mitcurl --upload-filemit einem Webdav-Kalender und dein Handy sieht jeden Pass automatisch.

STK Cloud Stück für Stück ersetzen

Für Amateur-/Cubesat-/kleine kommerzielle Unternehmen ersetzt das kombinierte Toolkit die täglichen Treiberfunktionen von STK Cloud:

STK Cloud-FunktionKostenloser Ersatz
Vorhersage bestehenSkyfield
Linkbudgetrftools Satellite Link Budget Analyzer
Doppler/EntfernungskurvenSkyfield-Entfernungsrate
Höhenmasken + TerrainSkyfield + local DEM (SRTM)
3D-VisualisierungCesium.js
KonjunktionsscreeningSOKRATES
Für Missionsdesign, Handelsstudien oder institutionelle Programme benötigen Sie immer noch Desktop-STK oder NASA GMAT. Für alles andere — einschließlich der AMSAT-Designüberprüfungen — ist der Skyfield + rftools-Stack vollständig.

Weiterführende Literatur

Größe eines UHF-CubeSat-Link-Budgets — ein durchgängig funktionierendes Beispiel

Verwandte Artikel