Ich wollte sowas ja schon immer mal ausprobieren und ehrlicherweise war dann der Bericht in der Dezemberausgabe 2024 der CQDL der Auslöser dafür, jetzt aber wirklich mal selber damit zu experimentieren 😉
Da ich selber auch Pilot bin, kenne ich natürlich auch die notwendigen METAR und TAF Daten einzelner Flughäfen, die mir einen ersten oder zweiten Eindruck der Wetterlage dort vor Ort geben.
Dies ist eine METAR Aussendung vom 07.12. um 7:20 Uhr:
- Der Wind kommt aus der Richtung 140° mit einer Geschwindigkeit von 15 kt.
- Sicht ist 10 km oder mehr.
- Es gibt wenige Wolken in einer Höhe von 1.100 ft. Es wurde keine Obergrenze beobachtet.
- Die Temperatur ist 5 °C, mit einem Windchill von -2 °C. Der Taupunkt ist 3 °C, die relative Luftfeuchtigkeit ist 87% (nicht explizit angegeben).
- Der Luftdruck auf Meereshöhe ist 1002 hPa (QNH).
Weiter Informationen dazu kann man hier nachlesen: https://de.wikipedia.org/wiki/METAR oder https://metar-taf.com/de/explanation
Die Idee war nun eben genau diese Wetterdaten von Flughäfen auf der APRS-Karte (aprs.fi) darzustellen. Das mag auf den ersten Blick ungewöhnlich erscheinen, doch sie bietet eine interessante Möglichkeit, Technik und Amateurfunk zu verbinden. Meine Erfahrungen im Bereich des Scriptings sind schon etwas angestaubt, aber genau deshalb wollte ich diese Herausforderung eben mit ChatGPT angehen, um mal zu schauen, was man sozusagen gemeinsam auf die Beine stellen kann und ob es auch tatsächlich funktionieren würde.
Das Ziel ist also Wetterdaten ins APRS-Netz zu bringen
Das Mini-Projekt und sein klares Ziel:
- Die aktuellen METAR-Wetterdaten (METeorological Aerodrome Report) eines ausgewählten Flughafens aus dem Internet abrufen.
- Die GPS-Koordinaten des Flughafens nutzen, um die Daten präzise auf der APRS-Karte zu positionieren.
- Die Wetterinformationen gemäß dem APRS-Standard formatieren und ins Netzwerk einspeisen.
Das Besondere: Alles sollte in einem kompakten Shell-Skript umgesetzt werden.
Die technische Umsetzung
Was sind also die einzelnen Arbeitsschritte bzw. was wird benötigt, um das Ziel zu erreichen:
- Flughafendaten und GPS-Koordinaten bereitstellen
Im Netz gibt es eine WebSeite (https://ourairports.com/), die alle Airport dokumentiert. Hier mal ein Beispiel des Flugplatzes EDHF – Hungriger Wolf – wo auch unsere Amateurfunk-Club-Station stationiert ist.
Auf dieser Seite gibt es auch die Möglichkeit, alle Airports in Form einer CSV Datei herunterzuladen, so habe ich dann alle ICAO-Codes und die zugehörigen GPS-Koordinaten des Flughafens. Zunächst hatte ich im Script eine online Abfrage gegen o.g. Datenbank implementiert – allerdings dauerte mir die Rückmeldung der Daten teilweise zu lange, so dass ich dann auf einen lokalen Zugriff umgestiegen bin. - Abruf der METAR-Daten
Über eine Internetanfrage – zum Beispiel https://tgftp.nws.noaa.gov/data/observations/metar/stations/EDDH.TXT – werden die aktuellen METAR-Daten für den angegebenen Flughafen heruntergeladen. METAR-Berichte sind, wie oben schon kurz angedeutet, standardisierte Wetterberichte, die Informationen wie Temperatur, Windrichtung, Sichtweite und Luftdruck enthalten. - Daten parsen und umrechnen
Das Skript zerlegt die METAR-Daten in ihre Einzelteile und bereitet sie für die weitere Verarbeitung vor. Dabei werden einige Werte gemäß den Anforderungen des APRS-Formats umgerechnet, z. B.:- Temperatur: Von Celsius nach Fahrenheit.
- Luftdruck: Von Hektopascal (hPa) in Zoll Quecksilbersäule (inHg).
- APRS-Datenpaket erstellen
Die aufbereiteten Wetterdaten werden in das APRS-Protokollformat gebracht. Dieses Format ist erforderlich, um die Informationen über Funk oder das APRS-IS-Netzwerk zu übertragen. - Senden der Daten
Das fertige APRS-Datenpaket wird mit den GPS-Koordinaten des Flughafens versehen und über einen APRS-Server wie APRS-IS ins Netzwerk eingespeist. Nutzer können diese Daten dann z. B. auf aprs.fi live betrachten.
Die Rohdaten sehen dann wie folgt aus:
Erstellung des Skripts mit ChatGPT
Die Grundgedanken lagen mir damit nun also vor und nun ging es darum, dafür ein Shellscript zu erzeugen. Ich habe also ChatGPT genau meine Erkenntnisse mitgeteilt und versucht so genau wie möglich alles zu definieren. Herausgekommen ist dann tatsächlich ein Script, das man entsprechend lokal auf dem Rechner speichern und aufrufen kann. Doch, ganz so einfach war es dann doch nicht, leider.
Während der Entwicklung traten typische Programmierfehler auf, wie z. B. falsche Umrechnung von Einheiten oder Probleme beim Parsen der METAR-Daten. Durch gezielte Rückfragen und Anpassungen konnte der Code jedoch schrittweise optimiert werden.
Am Ende entstand ein funktionierendes Shellskript, das die gestellten Anforderungen erfüllt. Es zeigt, dass man auch mit geringen Programmierkenntnissen in der Lage ist, mit Unterstützung von KI nützliche Programme zu erstellen. Doch leider funktioniert es nicht ganz ohne Kenntnisse – das muss mal zumindest in diesem Fall fairerweise auch sagen. Denn manche Fehler wurde durch ChatGPT immer wieder in gleicher Weise korrigiert, so dass ich schlussendlich selber Hand anlegen musste.
Dennoch, ich habe das Ergebnis erreicht und von den knapp 200 Zeilen selber nur ne Hand voll geschrieben bzw. korrigiert.
Dieses Projekt war ein spannender Einstieg in die Verbindung von Wetterdaten, APRS und Shell-Scripting. Der Einsatz von ChatGPT als Unterstützung hat nicht nur geholfen, die technischen Hürden zu überwinden, sondern auch gezeigt, wie KI als Werkzeug genutzt werden kann, um eigene Ideen erfolgreich umzusetzen.
Wer Interesse an diesem Thema hat, kann gerne mit mir Kontakt aufnehmen – das Skript teile ich natürlich gerne, und vielleicht inspiriert es ja zu weiteren spannenden Projekten im Amateurfunk!