Skip to main content

SondeHub (and SondeHub-Amateur) Python Library

This repository contains:

  • A uploader class for submitting high-altitude balloon telemetry data to SondeHub-Amateur
  • A simple realtime streaming SDK for the sondehub.org V2 API (both radiosondes, and amateur balloons).

Contacts

You can often find us in the #highaltitude IRC Channel on Libera Chat.

Installing

This library is available via pypi, and can be installed into your Python environment using:

pip install sondehub

Submitting Telemetry to SondeHub-Amateur

A guide on using the SondeHub-Amateur uploader class is available here https://github.com/projecthorus/pysondehub/wiki/SondeHub-Amateur-Uploader-Class-Usage

Streaming Telemetry from Sondehub or Sondehub-Amateur

To obtain live telemetry from Sondehub, the sondehub class can be used as follows:

import sondehub

def on_message(message):
    print(message)

test = sondehub.Stream(on_message=on_message)
while 1:
    pass

The on_message callback will be passed a python dictonary using the Universal Sonde Telemetry Format, or Amateur Telemetry Format

Filtering

To specify a particular serial number, or multiple serial numbers to subscribe to, you can pass these in as a list in the sondes argument:

import sondehub

def on_message(message):
    print(message)

test = sondehub.Stream(on_message=on_message, sondes=["R3320848"])
while 1:
    pass

Alternatively, you can add or remove serial numbers from the filter after the stream has started using the .add_sonde("serial") and .remove_sonde("serial") functions. e.g.:

test.add_sonde("R3320848")
test.remove_sonde("R3320848")

Amateur Launches

Amateur balloon launches can be received by subscribing to the amateur topic, using the prefix argument as follows:

import sondehub

def on_message(message):
    print(message)

test = sondehub.Stream(on_message=on_message, prefix="amateur")

while 1:
    pass

Advanced Usage

Manual usage of the Paho MQTT network loop can be obtained by using the loop, loop_forever, loop_start and loop_stop functions, taking care to ensure that the different types of network loop aren't mixed. See Paho documentation here.

test = sondehub.Stream(on_message=on_message, sondes=sondes, auto_start_loop=False)
test.loop_forever()

CLI Usage

Live streaming data

# all radiosondes
sondehub
# single radiosonde
sondehub --serial "IMET-73217972"
# multiple radiosondes
sondehub --serial "IMET-73217972" --serial "IMET-73217973"
#pipe in jq
sondehub | jq .
{
  "subtype": "SondehubV1",
  "temp": "-4.0",
  "manufacturer": "SondehubV1",
  "serial": "IMET54-55067143",
  "lat": "-25.95437",
  "frame": "85436",
  "datetime": "2021-02-01T23:43:57.043655Z",
  "software_name": "SondehubV1",
  "humidity": "97.8",
  "alt": "5839",
  "vel_h": "-9999.0",
  "uploader_callsign": "ZS6TVB",
  "lon": "28.19082",
  "software_version": "SondehubV1",
  "type": "SondehubV1",
  "time_received": "2021-02-01T23:43:57.043655Z",
  "position": "-25.95437,28.19082"
}
....

For amateur radiosondes, just append the --amateur argument. e.g.:

sondehub --amateur

Downloading Archived Radiosonde Telemetry Data

Archived radiosonde telemetry data (Meteorological Radiosondes only) can be downloaded from our S3 bucket using:

sondehub --download S2810113

Open Data Access

A basic interface to the Open Data is a available using sondehub.download(serial=, datetime_prefix=). When using datetime_prefix only summary data is provided (the oldest, newest and highest frames)

import sondehub
frames = sondehub.download(datetime_prefix="2018/10/01")
frames = sondehub.download(serial="serial")

Data license

Data is provided under the Creative Commons BY-SA 2.0 license.

Metadata

Release files for sondehub 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sondehub 0.3.2
File Size Uploaded
sondehub-0.3.2.tar.gz 24.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sondehub 0.3.2
File Interpreter ABI Platform
sondehub-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 48.4 kB

Release files / sondehub-0.3.2.tar.gz

Download URL sondehub-0.3.2.tar.gz
Size 24.5 kB
Tags Source
SHA-256 checksum
How to use checksums
cd285ca90e791e608e80e534c4ffee66d58913363d7e3e72aa90aad937e7d544
BLAKE2b-256 checksum
How to use checksums
0a6d0951dc1d442e648f38e4b4b9a630def52ef5c337451adca6b2bae14e7112
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.13 CPython/3.10.8 Darwin/22.3.0

Release files / sondehub-0.3.2-py3-none-any.whl

Download URL sondehub-0.3.2-py3-none-any.whl
Size 23.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ce33efe6cdb0ff44aff737d17e3d2254732dd2ac8476cf0a20eab2a565e12ba
BLAKE2b-256 checksum
How to use checksums
945807d5f947a6ea5b66bfff0bd8dffe4406ca7443bfd3d1a44b5bb9876f742f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.13 CPython/3.10.8 Darwin/22.3.0

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page