SDK to access SondeHub open data, and helpers for uploading telemetry.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sondehub-0.3.2.tar.gz
.
File metadata
- Download URL: sondehub-0.3.2.tar.gz
- Upload date:
- Size: 24.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.8 Darwin/22.3.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd285ca90e791e608e80e534c4ffee66d58913363d7e3e72aa90aad937e7d544 |
|
MD5 | db0e86a40e684bc764897313329be12b |
|
BLAKE2b-256 | 0a6d0951dc1d442e648f38e4b4b9a630def52ef5c337451adca6b2bae14e7112 |
File details
Details for the file sondehub-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: sondehub-0.3.2-py3-none-any.whl
- Upload date:
- Size: 23.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.8 Darwin/22.3.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ce33efe6cdb0ff44aff737d17e3d2254732dd2ac8476cf0a20eab2a565e12ba |
|
MD5 | e23f3aa035bf186d6b9149630bf93be2 |
|
BLAKE2b-256 | 945807d5f947a6ea5b66bfff0bd8dffe4406ca7443bfd3d1a44b5bb9876f742f |