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)
| File | Size | Uploaded | |
|---|---|---|---|
| sondehub-0.3.2.tar.gz | 24.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|