Sondemod

Aus DXL-Wiki
Zur Navigation springen Zur Suche springen

Über sondemod

sondemod ist das Gegenstück zu sondeudp. Es nimmt die dekodierten Daten von sondeudp entgegen und wertet sie aus. Mit den ausgewerteten Daten werden APRS-Datenpakete (APRS-Objekte) erzeugt und zur weiteren Verwendung im AXUDP Format weitergeleitet, z.B. an udpbox zum vervielfältigen oder an udpgate4 zur Weiterleitung an ein entferntes APRS-Gateway.

Kurzbeschreibung der Parameter

sondemod -h

sondemod 1.36g multichannel decoder RS92, RS41, SRS-C34/50, DFM, M10, iMET Radiosondes
 -A <meter>[:<meter>] at lower altitude use -B beacon time (meter) -A 3000:1000:200
                  if SRTM/EGM-data available, Overground will be used
 -a <lat> <long> <lat> <long> or <locator> <locator> send beacons from inside leftdown
                  to rightup, swap corners to send only outside the rectangle
 -B <seconds>   low altitude send intervall -B 10
 -b <seconds>[:<seconds>]... minimum send intervall or 0 for never send -b 30:20:6:2
                  first for high altitude, next below (descending) altitudes as given in -A
 -C <filename>  write decoded data in csv-format to this file
 -d             dao extension for 20cm APRS resolution instead of 18m
 -E <seconds>   stop sending if more difference gps-time to computer-clock (0=off)
                  (-E 4) use to keep Tracks clean if system time is set to UTC
 -F             trackfilter off, DO NOT USE THIS SENDING TO THE WORLD!
 -G <km>        send only if Gound-distance to Sonde not more, 0=off (needs -P) (-G 15)
 -h             help
 -I <mycall>    Sender of Object Callsign -I OE0AAA if not sent by 'sondeudp'
 -j <filename>  write decoded data in ldjson-format to this file or pipe
 -L <hex>=<typname>[,<hex>=<typname>]...
                 IF there is a dependency, assign DFM-Subtype to highest first 4 bit in
                 serial number frame (in hex), FF=wildcard if nothing else fits 
                 eg. -L 6=DFM06,7=PS-15,A=DFM09,B=DFM17,C=DFM09P,D=DFM17,FF=DFMx
 -M             Send "MHz" in APRS (if not received in Data) from SDR-parameter +afc
                  do only with calibrated SDR, accept wrong data from alias receptions
 -N <meter>     my altitude over NN for Distance/Elevation to sonde output
 -o <UDPport>   receive demodulated data via UDP port from 'sondeudp -u ...'
 -P <lat> <long> or <locator>  my Position for Distance/Azimuth/Elevation
                 eg. -P JQ50AB12CD or -P 70.0506 10.0092
 -p <num>       0 send if weather data ready, 1 if MHz known, 2 send immediatly (1)
 -R <minutes>   request new rinex almanach after minutes if receiving gps (-R 240)
                use somewhat like 'getalmd'-script to download
 -r <ip>:<port> send AXUDP -r 127.0.0.1:9001 use udpgate4 or aprsmap as receiver
                  udp stream maybe duplicated with udpbox to more destinations
 -S <pathname>  directory with SRTM(1/3/30) Data and WW15MGH.DAC file (egm96-Geoid)
                  for Overground Calculation below -A <altitude>
                  example with: -S /home/pi
                  /home/pi/WW15MGH.DAC         (2076480Byte, covers whole World)
                  /home/pi/srtm1/N48E014.hgt  (25934402Byte, not SRTM3!)
                  /home/pi/srtm1/N48E015.hgt
 -s <filename>  gps almanach sem format (DO NOT USE, not exact)
 -T <minutes>   stop sending data after almanach age (-T 360)
 -t <filename>  append comment lines from this file at start of line eg "%f%d%v text..."
                  %A Azimuth from sonde-rx, (-P needed too)
                  %d rssi if received with sdrtst -e
                  %D Distance to sonde-rx, (-P -S needed too with EGM96)
                  %E Elevation to sonde, (-P -S needed too with EGM96)
                  %F same as "f" but send even if MHz got from sonde data
                  %f sdr freq+AFC from sdrtst with -e and not (yet) got MHz from sonde
                  %l label given in sondeudp -L eg. "omni" "west" "rx1"
                  %n frame number if available
                  %r hdil if available, gps horizontal noise in meter
                  %s gps sat count if available
                  %t tx power dBm
                  %u sonde uptime if available
                  %v sondemod version
                  # or empty line(s) for comment-free beacons
 -V             more verbous
 -v             verbous
 -x <filename>  gps almanach rinexnavigation format (prefered)
 -y <filename>  gps almanach yuma format (DO NOT USE, not exact)
example: sondemod -o 18000 -x almanach.txt -d -A 1500 -B 10 -I OE0AAA -r 127.0.0.1:9001


Ausführliche Beschreibung der Parameter

Parameter Beschreibung
A <meter> Höhengrenze in Metern für das Bakenintervall. Bei einer Sondenhöhe weniger als A Meter wird das alternative Bakenintervall -B benutzt. Wenn SRTM/EGM-Daten verfügbar sind, wir die Höhe über Grund berücksichtigt.
Diese Einstellung dient dazu in "geringen" Höhen ein schnelleres Bakenintervall zu ermöglichen um eine feinere und bessere Landevorhersage zu ermöglichen.
Beispiel: -A 1000
a <lat> <long> <lat> <long> or <locator> <locator> Sende Baken nur für den Bereich (Rechteck) der durch die beiden Koordinatenpunkte begrenzt wird, gesehen von links unten nach rechts oben. Die Koordinatenpunkte können vertauscht werden um nur Pakete auerhalb dieses Rechtsecks zu versenden (invertiert).
Beispiel: -a JO50AA JO50XX oder -a 50.0 10.5 50.5 11.5
B <seconds> Bakenintervall in Sekunden bei einer Sondenhöhe von weniger als -A Metern.
Beispiel: -B 10
b <seconds> Bakenintervall in Sekunden bei einer Sondenhöhe von mehr als -A Metern.
Wert 0 = Keine Baken senden in großen Höhen. Macht dann Sinn wenn man nur Daten aus z.B. geringen Höhen übermitteln will um die Datensammlung bei der Landung zu unterstützen und es genug andere Stationen gibt die die Daten aus größeren Höhen übermitteln.
In größeren Höhen ist ein längeres Intervall möglich als bei -B, da weniger genaue Daten benötigt werden.
Beispiel: -b 20
C <filename> Schreibe dekodierte Daten im CSV-Format in die Datei <filename>.
d DAO Erweiterung für auf 20cm genaue APRS Positionsgenauigkeit anstatt 18m Genauigkeit.
E <seconds> Stoppt das Senden von APRS-Baken wenn die GPS-Zeit zur Computer-Zeit mehr als E Sekunden abweicht.
Dies verhindert fehlerhafte Darstellung des Sondentracks auf der Karte. Wert 0 = Aus.
Beispiel: -E 4
F Trackfilter ausschalten (Niemals produktiv nutzen, nur zu Testzwecken und nur lokal!)
Sondemod hat einen eingebauten Trackfilter, der anhand der Sondenbewegung die zukünftige Position bestimmt. Wenn die nächste empfangene Position stark davon abweicht, wird die "falsche" Position verworfen. In der Kartendarstellung könnte nur eine fehlerhafte Position von vielen zu einer zerstörung des Tracks führen. Passieren kann dies beispielsweise bei folgenden Sondentypen: RS92, DFM oder C50.
G <km> Sende APRS-Baken nur aus, wenn die (Boden-)Distanz zur Sonde nicht mehr als G Kilometer beträgt. 0 = AUS. Benötigt den Parameter -P zur Entfernungsberechnung. Beispiel: -G 15
h Kurze Übersicht der Parameter (help)
I <mycall> Absenderrufzeichen der APRS-Objekte, wenn das Rufzeichen nicht mit sondeudp mitgeschickt wird. Einsatz: Werden durch sondeudp keine Informationen zum Absendercall mitgesendet, setzt sondemod das in -I genannte Rufzeichen als Absender ein und füllt damit die "Lücke" auf.
Beispiel: -I OE0AAA
L <hex>=<typname>[,<hex>=<typname>]... Bestimmt den Typ und die Seriennummer von DFM Sonden anhand bestimmter Bits im Datenstrom (funktioniert mal mehr, mal weniger zuverlässig).
Beispiel: -L 6=DFM06,7=PS15,A=DFM09,B=DFM17,C=DFM09P,D=DFM17,FF=DFMx
M Übertrage die Sendefrequenz der Sonde im APRS-Paket, sofern diese nicht bereits in den Sondendaten enthalten sind, aus den SDR-Parametern plus die AFC. Ist nur empfehlenswert mit kalibrierten SDR-Empfängern. Dies kann fehlerhafte Frequenzen "durchsagen" aufgrund von auftretenden Spiegelfrequenzsignalen bei starken Sondensignalen.
N <meter> Eigene Höhe über NN für die Berechnung von Entfernung und Elevation zur Sonde. Diese Informationen können im APRS-Paket mit ausgesendet werden (siehe auch sondecom.txt).
o <UDPport> Empfange demodulierte Sondendaten auf dem UDP-Port von sondeudp -u. Es können beliebig viele sondeudp-Instanzen Daten an einen sondemod übertragen.
Beispiel: -o 18000
P <lat> <long> or <locator> Eigene Position für die Berechnung von Distanz, Azimuth und Elevation zur Sonde. Diese Informationen können im APRS-Paket mit ausgesendet werden (siehe auch sondecom.txt).
Beispiel: -P JQ50AB12CD oder -P 70.0506 10.0092
p <num> 0 sendet APRS-Baken sobald die Wetterdaten bereitstehen.
1 sendet APRS-Baken sobald die Frequenz bekannt ist.
if MHz known.
2 Sendet APRS-Baken sofort.
Standard = 1.
R <minutes> Fordert den Rinex Almanach nach x Minuten an, wenn GPS Koordinaten empfangen werden, z.B. -R 240. (Nur relevant für RS92 Sonden)
Für den Download muss das getalmd-Skript laufen.
r <ip>:<port> Sende APRS-Pakete im AXUDP-Format an den UDP-Port <port> an die IP-Adresse <ip>. Ziele können beispielweise sein: udpbox, udpgate4 oder aprsmap. Mit udpbox kann der Datenstrom vervielfältigt werden für mehrfahce Nutzung. Beispiel: -r 127.0.0.1:9001
S <pathname> Gibt den Ordner an, in welchem sich die SRTM(1/3/30) Daten und die Datei WW15MGH.DAC (egm96-Geoid) befinden.
Für die Berechnung der Höhe über Grund unterhalb der Schwelle -A <Höhe>
Beispiel: -S /home/pi
/home/pi/WW15MGH.DAC (2076480Byte, deckt die ganze Welt ab)
/home/pi/srtm1/N48E014.hgt (25934402Byte, nicht SRTM3!)
/home/pi/srtm1/N48E015.hgt
s <filename> GPS Almanach im SEM Format (Nur relevant für RS92 Sonden).
Experimentell! Bitte nicht benutzen, da nicht exakt!
T <minutes> Beende Aussendung von APRS-Paketen wenn der Almanach älter ist als T Minuten. (Nur relevant für RS92 Sonden)
Beispiel: -T 360
t <filename> Hängt bestimmte Informationen in den Kommentartext des APRS-Paketes an (siehe auch sondecom.txt).


%A Azimuth from sonde-rx, (-P needed too)
%d rssi if received with sdrtst -e
%D Distance to sonde-rx, (-P -S needed too with EGM96)
%E Elevation to sonde, (-P -S needed too with EGM96)
%F same as "f" but send always
%f sdr freq+AFC from sdrtst with -e and not (yet) got MHz from sonde
%l label given in sondeudp -L eg. "omni" "west" "rx1"
%n frame number if avaliable
%r hdil if avaliable, gps horizontal noise in meter
%s gps sat count if avaliable
%u sonde uptime if avaliable
%v sondemod version
# or empty line(s) for comment-free beacons

V Zeige ausführliche Informationen am Bildschirm an.
v Zeige Informationen am Bildschirm an.
x <filename> GPS Almanach im rinexnavigation Format (bevorzugt!).
y <filename> GPS Almanach im yuma Format.
Experimentell! Bitte nicht benutzen, da nicht exakt!

Beispiele

sondemod -o 18000 -I MYCALL-11 -r 127.0.0.0:9001 -b 20 -B 6 -A 1500 -x /tmp/e.txt -T 360 -R 240 -d -p 2 -M -L 6=DFM06,7=PS15,A=DFM09,B=DFM17,C=DFM09P,D=DFM17,FF=DFMx -t /home/pi/dxlAPRS/aprs/sondecom.txt -v
  • sondemod hört auf Port 18000 auf Daten von sondeudp (-o 18000)
  • Wenn Daten empfangen werden ohne Absenderrufzeichen, wird das eigene Call (MYCALL-11) als Absender dem Packet hinzugefügt.
  • Sendet die erzeugten APRS Pakete in AXUDP an Port 9001 des gleichen Rechners -r 127.0.0.0:9001
  • Bakenintervall = 20 Sekunden oberhalb der Schwelle (-b 20)
  • Bakenintervall = 6 Sekunden unterhalb der Schwelle (-B 6)
  • Schwelle für schnelle und langsame Bakenintervalle liegt bei 1500m (-A 1500)
  • Pfad und Dateiname der Daten des GPS Almanach (-x /tmp/e.txt)
  • Beende Aussendung von APRS-Paketen wenn der Almanach älter ist als 360 Minuten (-T 360)
  • Fordert den Rinex Almanach nach 240 Minuten an, wenn GPS Koordinaten empfangen werden (-R 240)
  • DAO Erweiterung für auf 20cm genaue APRS Positionsgenauigkeit (-d)
  • Sendet APRS-Baken sofort (-p 2)
  • Übertrage die Sendefrequenz der Sonde im APRS-Paket (-M)
  • Bestimme DFM Typ und Seriennummer (-L 6=DFM06,7=PS15,A=DFM09,B=DFM17,C=DFM09P,D=DFM17,FF=DFMx)
  • Informationen die im APRS Kommentartext mitgesendet werden sollen, befinden sich in dieser Datei (-t /home/pi/dxlAPRS/aprs/sondecom.txt)
  • Zeige Informationen in der Bildschirmausgabe an (-v)