Skip to content

RS Auto_RX JSON Formats

Mark Jessop edited this page Nov 22, 2020 · 15 revisions

auto_rx uses rs1729's RS radiosonde decoders to decode radio telemetry, with the decoded telemetry passed into auto_rx as JSON objects, which are then interpreted. In the default use-cases, auto_rx starts up the decoders itself, and reads the JSON data from the decoder's stdout. In 'UDP mode', auto_rx listens for JSON objects via UDP packets, on port 50000.

This page attempts to describe the format of the JSON objects which are passed between the RS decoders and auto_rx. Note that this is different to the 'payload summary' JSON format emitted by auto_rx.

Overall Format Description

Telemetry is passed as JSON objects, with a range of mandatory and optional fields.

Mandatory Fields

These fields represent the bare minimum amount of data for a sonde position to be plotted on a map, enabling recovery.

Field Type Description Special Cases
id string Radiosonde Serial Number iMet sondes do not provide a serial number, and so the ID field is just set to 'iMet'. auto_rx generates a serial number based on launch time and transmit frequency. DFM sondes do not regularly transmit their serial number, and so before the serial number is observed the RS decoder will output an invalid serial number, resulting in auto_rx ignoring the packet. Ideally this number should be unique over the entire flight, but for some sondes this isn't always the case.
frame int Frame Number The overflow point for the frame numbers varies between sonde types. Some sondes (M10/M20) do not transmit a frame number at all, and so a unix timestamp (seconds since epoch) is provided in its place.
datetime string Date/Time from the sonde's GPS. Usually as YYYY-MM-DDTHH:MM:SS.SSSZ format. auto_rx uses the dateutil parse function to decode the time, and so is fairly tolerant to variations in time format. iMet sondes do not transmit date, and so only time (HH:MM:SSZ) is provided. auto_rx adds on the date portion.
lat float Latitude (decimal degrees)
lon float Longitude (decimal degrees)
alt float Altitude (metres)

Optional Fields

Field Type Description Default Value Special Cases
type string Radiosonde type provided by the decoder Based on the decoder which was started.
subtype string If known, the specific model of radiosonde being decoded. Mainly used None RS41 subtypes are provided as a string, DFM subtypes are provided as a hex code, decoded here.
temp float Measured Temperature (deg C) -273.0
humidity float Measured Relative Humidity (%) -1
pressure float Measured Pressure (hPa) -1
vel_h float Horizontal Velocity (m/s) 0.0
vel_v float Vertical Velocity (m/s) 0.0
heading float Heading (degrees True) 0.0
sats int Number of SVs used in position solution 0
batt float Battery Voltage (volts) 0.0
bt int RS41 burst-timer value, in seconds None
encrypted bool Flag to indicate if incoming telemetry is encrypted (e.g. RS41-SGM) None If this is set to True, the current frequency is locked out for 2 hours.

Radiosonde Types and known Subtypes

Type Code Name Decoder Subtypes
RS41 Vaisala RS41 rs41mod RS41-SG, RS41-SGP (Pressure Sensor), RS41-SGM (Military)
RS92 Vaisala RS92 rs92mod
DFM Graw DFM06/DFM09/DFM17 dfm09mod DFM06, DFM09, DFM17
M10 Meteomodem M10 m10mod
M20 Meteomodem M20 mXXmod
IMET Intermet iMet-1AB / iMet-4 imet1rs_dft
MK2LMS Lockheed Martin Sippican LMS6 - 1680 MHz Variant mk2a_lms1680
LMS6 Lockheed Martin Sippican LMS6 - 400 MHz Variant lms6Xmod LMS6, LMSX (possible new replacement for the LMS6)
MEISEI Meisei iMS100 / RS11G meisei100mod IMS100, RS11G