mirror of
https://github.com/projecthorus/sondehub-infra.git
synced 2024-12-20 21:53:11 +00:00
1107 lines
37 KiB
YAML
1107 lines
37 KiB
YAML
swagger: "2.0"
|
||
info:
|
||
description: "SondeHub v2 API"
|
||
version: "2.0.0"
|
||
title: "SondeHub"
|
||
termsOfService: "http://github.com/projecthorus/sondehub-infra"
|
||
contact:
|
||
email: "vk3fur@sondehub.org"
|
||
license:
|
||
name: "Creative Commons BY-SA 2.0"
|
||
url: "https://creativecommons.org/licenses/by-sa/2.0/"
|
||
host: "api.v2.sondehub.org"
|
||
basePath: "/"
|
||
schemes:
|
||
- "https"
|
||
paths:
|
||
/amateur/telemetry:
|
||
put:
|
||
summary: Upload Radiosonde Telemetry to Sondehub amateur database.
|
||
tags:
|
||
- amateur
|
||
consumes:
|
||
- "application/json"
|
||
produces:
|
||
- "text/plain"
|
||
parameters:
|
||
- in: header
|
||
name: User-Agent
|
||
type: string
|
||
description: "The software and version performing the telemetry upload, eg: `autorx-1.4.1-beta5`"
|
||
- $ref: "#/parameters/input_amateur_payloads"
|
||
responses:
|
||
200:
|
||
description: Telemetry Saved into Database Successfuly
|
||
500:
|
||
description: Other Server error (including malformed data submissions)
|
||
get:
|
||
summary: Request Amateur Radiosonde Telemetry Data
|
||
tags:
|
||
- amateur
|
||
description: >
|
||
Use this to get the current state of all the radiosondes then use the realtime API to access streaming data. Do not regularly poll this endpoint, it is rate limited.
|
||
produces:
|
||
- "application/json"
|
||
parameters:
|
||
- in: query
|
||
name: duration
|
||
description: How far back in time to receive data from. A shorter time period will result is higher time resolution data.
|
||
required: false
|
||
type: string
|
||
enum:
|
||
- "0"
|
||
- "15s"
|
||
- "1m"
|
||
- "30m"
|
||
- "1h"
|
||
- "3h"
|
||
- "6h"
|
||
- "1d"
|
||
- "3d"
|
||
- in: query
|
||
name: payload_callsign
|
||
description: Specific callsign to query (if wanted). Requests for data for a single sonde will return the highest time resolution data available.
|
||
required: false
|
||
type: string
|
||
- in: query
|
||
name: datetime
|
||
description: "End time to query as an ISO-8601 time string. Defaults to now. Example: `2021-02-02T11:27:38.634Z`"
|
||
required: false
|
||
type: string
|
||
format: date-time
|
||
|
||
responses:
|
||
200:
|
||
description: Returns a dictionary keyed by serial number of a dictionary of times with SondeHub Telemetry values
|
||
schema:
|
||
$ref: "#/definitions/amateur_query_results_format"
|
||
/amateur/telemetry/{payload_callsign}:
|
||
get:
|
||
summary: Request Amateur Radiosonde Telemetry Data
|
||
tags:
|
||
- amateur
|
||
description: >
|
||
Use this to get the current state of all the radiosondes then use the realtime API to access streaming data. Do not regularly poll this endpoint, it is rate limited.
|
||
produces:
|
||
- "application/json"
|
||
parameters:
|
||
- in: query
|
||
name: last
|
||
description: "How far back to search in seconds. Defaults to 24hrs"
|
||
type: number
|
||
- in: query
|
||
name: datetime
|
||
description: "End time to query as an ISO-8601 time string. Defaults to now. Example: `2021-02-02T11:27:38.634Z`"
|
||
required: false
|
||
type: string
|
||
format: date-time
|
||
- in: path
|
||
name: payload_callsign
|
||
description: Specific callsign to query (if wanted). Requests for data for a single sonde will return the highest time resolution data available.
|
||
required: true
|
||
type: string
|
||
- in: query
|
||
name: format
|
||
description: "Valid options are csv, kml or json"
|
||
required: false
|
||
type: string
|
||
format: string
|
||
responses:
|
||
200:
|
||
description: Returns a list of all data received
|
||
schema:
|
||
$ref: "#/definitions/amateur_query_full_results_format"
|
||
/sondes/telemetry:
|
||
put:
|
||
summary: Upload Radiosonde Telemetry to Sondehub database.
|
||
consumes:
|
||
- "application/json"
|
||
produces:
|
||
- "text/plain"
|
||
parameters:
|
||
- in: header
|
||
name: Date
|
||
description: <day-name>, <day> <month> <year> <hour>:<minute>:<second> UTC as per RFC7231. This is used to calculate receiver time offset for correcting clients that have the incorrect time.
|
||
required: true
|
||
type: string
|
||
format: date-time
|
||
- in: header
|
||
name: User-Agent
|
||
type: string
|
||
description: "The software and version performing the telemetry upload, eg: `autorx-1.4.1-beta5`"
|
||
- $ref: "#/parameters/input_payloads"
|
||
|
||
|
||
|
||
responses:
|
||
200:
|
||
description: Telemetry Saved into Database Successfuly
|
||
500:
|
||
description: Other Server error (including malformed data submissions)
|
||
get:
|
||
summary: Request Radiosonde Telemetry Data
|
||
description: >
|
||
Use this to get the current state of all the radiosondes then use the realtime API to access streaming data. Do not regularly poll this endpoint, it is rate limited.
|
||
produces:
|
||
- "application/json"
|
||
parameters:
|
||
- in: query
|
||
name: duration
|
||
description: How far back in time to receive data from. A shorter time period will result is higher time resolution data.
|
||
required: false
|
||
type: string
|
||
enum:
|
||
- "0"
|
||
- "15s"
|
||
- "1m"
|
||
- "30m"
|
||
- "1h"
|
||
- "3h"
|
||
- "6h"
|
||
- "1d"
|
||
- "3d"
|
||
- in: query
|
||
name: serial
|
||
description: Specific serial number to query (if wanted). Requests for data for a single sonde will return the highest time resolution data available.
|
||
required: false
|
||
type: string
|
||
- in: query
|
||
name: datetime
|
||
description: "End time to query as an ISO-8601 time string. Defaults to now. Example: `2021-02-02T11:27:38.634Z`"
|
||
required: false
|
||
type: string
|
||
format: date-time
|
||
|
||
responses:
|
||
200:
|
||
description: Returns a dictionary keyed by serial number of a dictionary of times with SondeHub Telemetry values
|
||
schema:
|
||
$ref: "#/definitions/sonde_query_results_format"
|
||
/amateur:
|
||
get:
|
||
summary: Request latest amateur payload data indexed by serial number, with options for position/distance based-filtering.
|
||
produces:
|
||
- "application/json"
|
||
tags:
|
||
- amateur
|
||
parameters:
|
||
- in: query
|
||
name: lat
|
||
type: number
|
||
description: "Latitude - if specified, lon and distance are required. Eg: -34.9285"
|
||
- in: query
|
||
name: lon
|
||
description: "Longitude - if specified, lat and distance are required Eg: 138.6007"
|
||
type: number
|
||
- in: query
|
||
name: distance
|
||
description: "Distance in meters - if specified, lat and lon are required"
|
||
type: number
|
||
- in: query
|
||
name: last
|
||
description: "How far back to search in seconds. Defaults to 24hrs"
|
||
type: number
|
||
|
||
responses:
|
||
200:
|
||
description: Returns a dictionary keyed by serial number of a dictionary of times with SondeHub Telemetry values
|
||
schema:
|
||
$ref: "#/definitions/amateur_telm_results_format"
|
||
/sondes:
|
||
get:
|
||
summary: Request latest sonde data indexed by serial number, with options for position/distance based-filtering.
|
||
produces:
|
||
- "application/json"
|
||
parameters:
|
||
- in: query
|
||
name: lat
|
||
type: number
|
||
description: "Latitude - if specified, lon and distance are required. Eg: -34.9285"
|
||
- in: query
|
||
name: lon
|
||
description: "Longitude - if specified, lat and distance are required Eg: 138.6007"
|
||
type: number
|
||
- in: query
|
||
name: distance
|
||
description: "Distance in meters - if specified, lat and lon are required"
|
||
type: number
|
||
- in: query
|
||
name: last
|
||
description: "How far back to search in seconds. Defaults to 24hrs"
|
||
type: number
|
||
|
||
responses:
|
||
200:
|
||
description: Returns a dictionary keyed by serial number of a dictionary of times with SondeHub Telemetry values
|
||
schema:
|
||
$ref: "#/definitions/sonde_telm_results_format"
|
||
/sonde/{serial}:
|
||
get:
|
||
summary: Request telemetry data for an individual radiosonde
|
||
description: >
|
||
Use this to request all available telemetry data for an individual radiosonde, specified by serial number.
|
||
produces:
|
||
- "application/json"
|
||
parameters:
|
||
- in: path
|
||
name: serial
|
||
description: Serial number of the radiosonde to request data for. e.g. S1130567
|
||
required: true
|
||
type: string
|
||
|
||
responses:
|
||
200:
|
||
description: Returns a time-sorted array of SondeHub Telemetry objects. If no data for the requested serial number is available, the array will be empty.
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: "#/definitions/telemetry_format"
|
||
/amateur/listeners:
|
||
put:
|
||
summary: 'Allows a station to upload their station information to the SondeHub database, for display on the SondeHub Tracker map. This endpoint can also be used to upload chase-car positions by setting the "mobile" setting to True'
|
||
tags:
|
||
- amateur
|
||
consumes:
|
||
- "application/json"
|
||
produces:
|
||
- "text/plain"
|
||
parameters:
|
||
- in: body
|
||
required: true
|
||
name: body
|
||
schema:
|
||
$ref: "#/definitions/listener"
|
||
responses:
|
||
200:
|
||
description: Station Position successfully uploaded.
|
||
/amateur/listeners/telemetry:
|
||
get:
|
||
summary: Request Listener Telemetry Data
|
||
tags:
|
||
- amateur
|
||
description: >
|
||
Use this to get the current listener (chase car / station) telemetry
|
||
produces:
|
||
- "application/json"
|
||
parameters:
|
||
- in: query
|
||
name: duration
|
||
description: How far back in time to receive data from. A shorter time period will result is higher time resolution data.
|
||
required: false
|
||
type: string
|
||
enum:
|
||
- "3h"
|
||
- "6h"
|
||
- "1d"
|
||
- "3d"
|
||
- in: query
|
||
name: uploader_callsign
|
||
description: Specific callsign number to query (if wanted). Requests for data for a single uploader will return the highest time resolution data available.
|
||
required: false
|
||
type: string
|
||
- in: query
|
||
name: datetime
|
||
description: "End time to query as an ISO-8601 time string. Defaults to now. Example: `2021-02-02T11:27:38.634Z`"
|
||
required: false
|
||
type: string
|
||
format: date-time
|
||
responses:
|
||
200:
|
||
description: Returns a dictionary keyed by uploader_callsign of a dictionary of times with listener data.
|
||
schema:
|
||
$ref: "#/definitions/listener_results_format"
|
||
/listeners:
|
||
put:
|
||
summary: 'Allows a station to upload their station information to the SondeHub database, for display on the SondeHub Tracker map. This endpoint can also be used to upload chase-car positions by setting the "mobile" setting to True'
|
||
consumes:
|
||
- "application/json"
|
||
produces:
|
||
- "text/plain"
|
||
parameters:
|
||
- in: body
|
||
required: true
|
||
name: body
|
||
schema:
|
||
$ref: "#/definitions/listener"
|
||
responses:
|
||
200:
|
||
description: Station Position successfully uploaded.
|
||
/listeners/telemetry:
|
||
get:
|
||
summary: Request Listener Telemetry Data
|
||
description: >
|
||
Use this to get the current listener (chase car / station) telemetry
|
||
produces:
|
||
- "application/json"
|
||
parameters:
|
||
- in: query
|
||
name: duration
|
||
description: How far back in time to receive data from. A shorter time period will result is higher time resolution data.
|
||
required: false
|
||
type: string
|
||
enum:
|
||
- "3h"
|
||
- "6h"
|
||
- "1d"
|
||
- "3d"
|
||
- in: query
|
||
name: uploader_callsign
|
||
description: Specific callsign number to query (if wanted). Requests for data for a single uploader will return the highest time resolution data available.
|
||
required: false
|
||
type: string
|
||
- in: query
|
||
name: datetime
|
||
description: "End time to query as an ISO-8601 time string. Defaults to now. Example: `2021-02-02T11:27:38.634Z`"
|
||
required: false
|
||
type: string
|
||
format: date-time
|
||
responses:
|
||
200:
|
||
description: Returns a dictionary keyed by uploader_callsign of a dictionary of times with listener data.
|
||
schema:
|
||
$ref: "#/definitions/listener_results_format"
|
||
/listeners/stats:
|
||
get:
|
||
summary: Basic version stats
|
||
description: >
|
||
Use this to get stats on how many users are using specific software
|
||
produces:
|
||
- "application/json"
|
||
responses:
|
||
200:
|
||
description: Returns a dictionary of softwares and versions
|
||
schema:
|
||
$ref: "#/definitions/listener_stats"
|
||
/sondes/websocket:
|
||
get:
|
||
description: Gets a presigned URL for use in connecting to the MQTT websocket endpoint.
|
||
produces:
|
||
- "text/plain"
|
||
responses:
|
||
200:
|
||
description: A presigned URL for connecting to the websocket MQTT feed.
|
||
/predictions:
|
||
get:
|
||
description: Radiosonde landing predictions
|
||
produces:
|
||
- "application/json"
|
||
parameters:
|
||
- in: query
|
||
name: vehicles
|
||
type: string
|
||
description: If provided, filters predictions to a single provided serial number. Should be provided, but left blank if no filtering is required.
|
||
responses:
|
||
200:
|
||
description: Prediction results
|
||
schema:
|
||
$ref: "#/definitions/predictions"
|
||
/predictions/reverse:
|
||
get:
|
||
description: Radiosonde launch site predictions
|
||
produces:
|
||
- "application/json"
|
||
parameters:
|
||
- in: query
|
||
name: vehicles
|
||
type: string
|
||
description: If provided, filters predictions to a single provided serial number. Should be provided, but left blank if no filtering is required.
|
||
responses:
|
||
200:
|
||
description: Prediction results
|
||
schema:
|
||
$ref: "#/definitions/predictions"
|
||
/recovered:
|
||
put:
|
||
summary: Adds a recovery object to the SondeHub database to indicate if a radiosonde was recovered
|
||
consumes:
|
||
- "application/json"
|
||
produces:
|
||
- "text/plain"
|
||
parameters:
|
||
- in: header
|
||
name: Date
|
||
description: <day-name>, <day> <month> <year> <hour>:<minute>:<second> UTC as per RFC7231. This is used to calculate receiver time offset for correcting clients that have the incorrect time.
|
||
required: true
|
||
type: string
|
||
format: date-time
|
||
- in: header
|
||
name: User-Agent
|
||
type: string
|
||
description: "The software and version performing the telemetry upload, eg: `autorx-1.4.1-beta5`"
|
||
- in: body
|
||
required: true
|
||
name: body
|
||
schema:
|
||
$ref: "#/definitions/recovery_object"
|
||
|
||
responses:
|
||
200:
|
||
description: Recovery logged
|
||
500:
|
||
description: Other Server error (including malformed data submissions)
|
||
get:
|
||
summary: Request Recovery Data
|
||
description: >
|
||
Use this to get the recovery data
|
||
produces:
|
||
- "application/json"
|
||
parameters:
|
||
- in: query
|
||
name: serial
|
||
type: string
|
||
description: radiosonde serial number (or multiple serial numbers separated by a comma) to filter on. If none provided all serials will be presented.
|
||
- in: query
|
||
name: lat
|
||
type: number
|
||
description: "Latitude - if specified, lon and distance are required. Eg: -34.9285"
|
||
- in: query
|
||
name: lon
|
||
description: "Longitude - if specified, lat and distance are required Eg: 138.6007"
|
||
type: number
|
||
- in: query
|
||
name: distance
|
||
description: "Distance in meters - if specified, lat and lon are required"
|
||
type: number
|
||
- in: query
|
||
name: last
|
||
description: "How far back to search in seconds. Defaults to 3 days. Set to 0 for all"
|
||
type: number
|
||
|
||
responses:
|
||
200:
|
||
description: Returns a list of recovery objects
|
||
schema:
|
||
$ref: "#/definitions/recovery_results_format"
|
||
/recovered/stats:
|
||
get:
|
||
summary: Request Recovery Stats
|
||
description: >
|
||
Use this to get the recovery stats
|
||
produces:
|
||
- "application/json"
|
||
parameters:
|
||
- in: query
|
||
name: lat
|
||
type: number
|
||
description: "Latitude - if specified, lon and distance are required. Eg: -34.9285"
|
||
- in: query
|
||
name: lon
|
||
description: "Longitude - if specified, lat and distance are required Eg: 138.6007"
|
||
type: number
|
||
- in: query
|
||
name: distance
|
||
description: "Distance in meters - if specified, lat and lon are required"
|
||
type: number
|
||
- in: query
|
||
name: duration
|
||
description: "How far back to search in seconds. Defaults to foreverl"
|
||
type: number
|
||
- in: query
|
||
name: datetime
|
||
description: "End time to query as an ISO-8601 time string. Defaults to now. Example: `2021-02-02T11:27:38.634Z`"
|
||
type: string
|
||
format: date-time
|
||
responses:
|
||
200:
|
||
description: Returns a list of recovery objects
|
||
schema:
|
||
$ref: "#/definitions/recovery_stats"
|
||
/sites:
|
||
get:
|
||
description: Radiosonde launch sites
|
||
produces:
|
||
- "application/json"
|
||
responses:
|
||
200:
|
||
description: Prediction results
|
||
schema:
|
||
type: object
|
||
additionalProperties:
|
||
$ref: "#/definitions/site"
|
||
|
||
parameters:
|
||
input_payloads:
|
||
in: body
|
||
required: true
|
||
name: body
|
||
schema:
|
||
description: SondeHub telemetry format
|
||
items:
|
||
$ref: "#/definitions/telemetry_format"
|
||
input_amateur_payloads:
|
||
in: body
|
||
required: true
|
||
name: body
|
||
schema:
|
||
description: SondeHub amateur telemetry format
|
||
items:
|
||
$ref: "#/definitions/amateur_telemetry_format"
|
||
recovery_object:
|
||
in: body
|
||
required: true
|
||
name: body
|
||
schema:
|
||
description: SondeHub recovery format
|
||
items:
|
||
$ref: "#/definitions/recovery_object"
|
||
|
||
definitions:
|
||
site:
|
||
type: object
|
||
description: "Site"
|
||
properties:
|
||
position:
|
||
type: "array"
|
||
description: Lat Lng
|
||
items:
|
||
type: number
|
||
format: double
|
||
station:
|
||
description: Station ID number
|
||
type: string
|
||
station_name:
|
||
description: Name of the station
|
||
type: "string"
|
||
alt:
|
||
description: Altitude of the station in meters
|
||
type: "number"
|
||
format: "double"
|
||
times:
|
||
description: >
|
||
A list of strings where each string represents a UTC launch schedule created in the following format:
|
||
|
||
0:00:00 (day:hour:minute)
|
||
When day is set to 0 it means that the following launch time occurs every day
|
||
When day is set to 1-7 it means the following launch occurs weekly on that day (Monday - Sunday)
|
||
|
||
Hour is expressed in 24 hour time and we stick with 3 hour windows to keep things simple so 03, 06, 09, 12, 15, 18, 21, 24
|
||
|
||
Minutes can be any value between 0 and 60 but we always leave this value at 00 (in the tracker we subtract 45 minutes from the time to generate predictions).
|
||
type: array
|
||
items:
|
||
type: string
|
||
rs_types:
|
||
description: >
|
||
The radiosonde types for this site:
|
||
Supported : "07":"iMet-1", "11":"LMS6-403", "13":"RS92", "14":"RS92", "17":"DFM-09", "18":"DFM-06", "19":"MRZ-N1", "22":"RS-11G", "23":"RS41", "24":"RS41", "34":"iMet-4", "35":"iMS-100", "41":"RS41", "42":"RS41", "52":"RS92-NGP", "54":"DFM-17", "62":"MRZ-3MK", "63":"M20", "77":"M10", "82":"LMS6-1680", "84":"iMet-54"
|
||
Unsupported : "15":"PAZA-12M", "16":"PAZA-22", "20":"MK3", "21":"1524LA LORAN-C/GL5000", "26":"SRS-C34", "27":"AVK-MRZ", "28":"AVK–AK2-02", "29":"MARZ2-2", "30":"RS2-80", "33":"GTS1-2/GFE(L)", "45":"CF-06", "58":"AVK-BAR", "59":"M2K2-R", "68":"AVK-RZM-2", "69":"MARL-A/Vektor-M-RZM-2", "73":"MARL-A", "78":"RS90", "80":"RS92", "88":"MARL-A/Vektor-M-MRZ", "89":"MARL-A/Vektor-M-BAR", "97":"iMet-2", "99":"iMet-2"
|
||
|
||
They can either be provided as a single list of strings containing one or more codes: "rs_types": ["41", "07"]
|
||
|
||
If the sondes always transmit on the same known frequency this can also be provided by having each code within a nested list containing the code and frequency: "rs_types": [["41", "404.300"], ["07", "404.200"]]
|
||
type: array
|
||
items:
|
||
type: string
|
||
burst_altitude:
|
||
description: Average burst altitude for this site. Used for predictions
|
||
type: number
|
||
format: "double"
|
||
ascent_rate:
|
||
description: Typical ascent rate in m/s
|
||
type: number
|
||
format: "double"
|
||
descent_rate:
|
||
description: Typical descent rate in m/s
|
||
type: number
|
||
format: "double"
|
||
burst_std:
|
||
description: Standard deviation from analytics of burst
|
||
type: number
|
||
format: "double"
|
||
descent_std:
|
||
description: Standard deviation from analytics of descent rate
|
||
type: number
|
||
format: "double"
|
||
burst_samples:
|
||
description: Number of samples used to calculate the burst altitude
|
||
type: number
|
||
format: "double"
|
||
descent_samples:
|
||
description: Number of samples used to calculate the descent rate
|
||
type: number
|
||
format: "double"
|
||
recovery_object:
|
||
type: object
|
||
required:
|
||
- serial
|
||
- lat
|
||
- lon
|
||
- alt
|
||
- recovered_by
|
||
- recovered
|
||
properties:
|
||
datetime:
|
||
type: "string"
|
||
format: "date-time"
|
||
description: Time that the radiosonde was recovered
|
||
serial:
|
||
description: Serial number of the radiosonde
|
||
type: string
|
||
lat:
|
||
description: Latitude (decimal degrees) of the recovery location
|
||
type: "number"
|
||
format: "double"
|
||
lon:
|
||
description: Longitude (decimal degrees) of the recovery location
|
||
type: "number"
|
||
format: "double"
|
||
alt:
|
||
description: Altitude (metres) of the recovery location
|
||
type: "number"
|
||
format: "double"
|
||
recovered:
|
||
description: was this recovery attempt was successful
|
||
type: boolean
|
||
recovered_by:
|
||
description: callsign or name of the person who recovered the sonde
|
||
type: string
|
||
description:
|
||
description: Description of the recovery effort
|
||
type: string
|
||
recovery_stats:
|
||
type: object
|
||
required:
|
||
- total
|
||
- recovered
|
||
- failed
|
||
- chaser_count
|
||
- top_chasers
|
||
properties:
|
||
total:
|
||
type: number
|
||
description: Total number of serial numbers that have had at least one attempt
|
||
recovered:
|
||
description: Total number of serial numbers that have been recovered
|
||
type: number
|
||
failed:
|
||
description: Total number of serial numbers that have a failed recovered attempt
|
||
type: number
|
||
chaser_count:
|
||
description: Total number of unique recovery names
|
||
type: number
|
||
top_chasers:
|
||
description: "chaser name : number of attempted recoveries"
|
||
type: object
|
||
sonde_query_results_format:
|
||
type: object
|
||
properties:
|
||
serial:
|
||
type: object
|
||
properties:
|
||
datetime:
|
||
$ref: "#/definitions/telemetry_format"
|
||
sonde_telm_results_format:
|
||
type: object
|
||
properties:
|
||
serial:
|
||
$ref: "#/definitions/telemetry_format"
|
||
listener_results_format:
|
||
type: object
|
||
properties:
|
||
serial:
|
||
type: object
|
||
properties:
|
||
datetime:
|
||
$ref: "#/definitions/listener"
|
||
amateur_query_full_results_format:
|
||
type: array
|
||
items:
|
||
$ref: "#/definitions/amateur_telemetry_format"
|
||
amateur_query_results_format:
|
||
type: object
|
||
properties:
|
||
serial:
|
||
type: object
|
||
properties:
|
||
datetime:
|
||
$ref: "#/definitions/amateur_telemetry_format"
|
||
amateur_telm_results_format:
|
||
type: object
|
||
properties:
|
||
serial:
|
||
$ref: "#/definitions/amateur_telemetry_format"
|
||
recovery_results_format:
|
||
type: array
|
||
items:
|
||
$ref: "#/definitions/recovery_object"
|
||
telemetry_format:
|
||
description: SondeHub telemetry format
|
||
type: "object"
|
||
required:
|
||
- software_name
|
||
- software_version
|
||
- uploader_callsign
|
||
- time_received
|
||
- manufacturer
|
||
- type
|
||
- serial
|
||
- frame
|
||
- datetime
|
||
- lat
|
||
- lon
|
||
- alt
|
||
properties:
|
||
dev:
|
||
description: >
|
||
If this field is set then the payload will not be uploaded to the database. This is useful for development and testing.
|
||
type: "string"
|
||
software_name:
|
||
description: >
|
||
Name of the decoding software
|
||
|
||
e.g. 'radiosonde_auto_rx', 'dxlAPRS', 'RS41Tracker', 'mySondy'
|
||
type: "string"
|
||
software_version:
|
||
description: >
|
||
Version of the decoding software
|
||
|
||
e.g. '1.4.0', '20210115'
|
||
type: "string"
|
||
uploader_callsign:
|
||
type: "string"
|
||
description: >
|
||
Callsign of the uploader
|
||
|
||
Arbitrary string. Uploader position information and other metadata will be handled separately, but will need to match this callsign to enable calculation of listener statistics.
|
||
time_received:
|
||
description: >
|
||
The time the telemetry packet was received. UTC time in YYYY-MM-DDTHH:MM:SS.SSSSSSZ format.
|
||
type: "string"
|
||
format: "date-time"
|
||
manufacturer:
|
||
type: "string"
|
||
description: "Radiosonde Manufacturer, as determined from the transmit modulation and high-level packet format."
|
||
enum:
|
||
- Vaisala
|
||
- Graw
|
||
- Meteomodem
|
||
- Intermet Systems
|
||
- Lockheed Martin
|
||
- Meteo-Radiy
|
||
type:
|
||
type: "string"
|
||
description: "The high-level radiosonde model, as can be determined just from the transmit modulation and high-level packet format."
|
||
enum:
|
||
- RS41
|
||
- DFM
|
||
- M10
|
||
- M20
|
||
- iMet-4
|
||
- iMet-54
|
||
- LMS6-400
|
||
- LMS6-1680
|
||
- MRZ
|
||
serial:
|
||
type: "string"
|
||
description: >
|
||
Radiosonde Serial Number. Where possible this should be in the format which matches the sticker/label on the radiosonde itself
|
||
|
||
iMet-1/iMet-4 sondes do not provide a serial number, and so auto_rx [generates](https://github.com/projecthorus/radiosonde_auto_rx/wiki/Model-Specific-Notes#intermet-imet-1--imet-4) a serial number based on launch time and transmit frequency. DFM sondes do not regularly transmit their serial number, and so data from these sondes should not be uploaded before the serial number is known.
|
||
|
||
frame:
|
||
type: "number"
|
||
format: "integer"
|
||
description: >
|
||
Frame Number, ideally unique over the entire flight. Should be taken from the telemetry. For some radiosondes (DFM, M10, M20), the datetime (converted to a unix time) is used instead of the provided frame number.
|
||
|
||
datetime:
|
||
type: "string"
|
||
format: "date-time"
|
||
description: >
|
||
Date/Time from the sonde's GPS, provided in YYYY-MM-DDTHH:MM:SS.SSSSSSZ format
|
||
|
||
Some sondes (e.g. iMet, LMS6) do not provide the date portion of the timestamp. In this situation, the date portion should be added on by the receiver. An example of how to handle this problem is [available here](https://github.com/projecthorus/radiosonde_auto_rx/blob/master/auto_rx/autorx/sonde_specific.py#L13).
|
||
|
||
lat:
|
||
description: Latitude (decimal degrees)
|
||
type: "number"
|
||
format: "double"
|
||
lon:
|
||
description: Longitude (decimal degrees)
|
||
type: "number"
|
||
format: "double"
|
||
alt:
|
||
description: Altitude (metres)
|
||
type: "number"
|
||
format: "double"
|
||
|
||
subtype:
|
||
description: Detailed Radiosonde Model Type, as determined through analysis of the telemetry.
|
||
type: "string"
|
||
enum:
|
||
- 'RS41-SG'
|
||
- 'RS41-SGP'
|
||
- 'RS41-SGM'
|
||
- 'DFM06'
|
||
- 'DFM09'
|
||
- 'DFM09P'
|
||
- 'DFM17'
|
||
- 'M10'
|
||
- 'M20'
|
||
- 'MRZ-H1'
|
||
|
||
frequency:
|
||
type: "number"
|
||
format: "float"
|
||
description: Transmit frequency of the radiosonde in MHz.
|
||
temp:
|
||
type: "number"
|
||
format: "float"
|
||
description: Measured Temperature (deg C)
|
||
humidity:
|
||
type: "number"
|
||
format: "float"
|
||
description: Measured Relative Humidity (%)
|
||
vel_h:
|
||
type: "number"
|
||
format: "float"
|
||
description: Horizontal Velocity (m/s)
|
||
vel_v:
|
||
type: "number"
|
||
format: "float"
|
||
description: Horizontal Velocity (m/s)
|
||
pressure:
|
||
description: Measured Pressure (hPa)
|
||
type: "number"
|
||
format: "float"
|
||
|
||
heading:
|
||
type: "number"
|
||
format: "float"
|
||
description: Heading (degrees True)
|
||
batt:
|
||
type: "number"
|
||
format: "float"
|
||
description: Battery Voltage (volts)
|
||
sats:
|
||
type: "number"
|
||
format: "integer"
|
||
description: Number of SVs used in position solution
|
||
|
||
xdata:
|
||
type: "string"
|
||
format: "ascii hex"
|
||
description: Auxiliary Data (e.g Ozone data) as a hexadecimal string.
|
||
|
||
snr:
|
||
type: number
|
||
format: float
|
||
description: Signal-to-Noise ratio of the received signal, in dB
|
||
rssi:
|
||
type: number
|
||
format: float
|
||
description: Received-Signal-Strength-Indication of the radiosonde signal, nominally in dBm
|
||
uploader_position:
|
||
type: array
|
||
items:
|
||
type: number
|
||
format: double
|
||
minItems: 3
|
||
maxItems: 3
|
||
description: Station position, as a list [lat, lon, alt].
|
||
uploader_antenna:
|
||
type: string
|
||
description: Station antenna/receiver information, free-text string.
|
||
|
||
amateur_telemetry_format:
|
||
description: SondeHub amateur balloon telemetry format
|
||
type: "object"
|
||
required:
|
||
- software_name
|
||
- software_version
|
||
- uploader_callsign
|
||
- time_received
|
||
- payload_callsign
|
||
- datetime
|
||
- lat
|
||
- lon
|
||
- alt
|
||
- upload_time
|
||
properties:
|
||
dev:
|
||
description: >
|
||
If this field is set then the payload will not be uploaded to the database. This is useful for development and testing.
|
||
type: "string"
|
||
software_name:
|
||
description: >
|
||
Name of the decoding software
|
||
|
||
e.g. 'horusgui'
|
||
type: "string"
|
||
software_version:
|
||
description: >
|
||
Version of the decoding software
|
||
|
||
e.g. '1.4.0', '20210115'
|
||
type: "string"
|
||
uploader_callsign:
|
||
type: "string"
|
||
description: >
|
||
Callsign of the uploader
|
||
|
||
Arbitrary string. Uploader position information and other metadata will be handled separately, but will need to match this callsign to enable calculation of listener statistics.
|
||
time_received:
|
||
description: >
|
||
The time the telemetry packet was received. UTC time in YYYY-MM-DDTHH:MM:SS.SSSSSSZ format.
|
||
type: "string"
|
||
format: "date-time"
|
||
payload_callsign:
|
||
type: "string"
|
||
description: >
|
||
Callsign for the payload
|
||
|
||
datetime:
|
||
type: "string"
|
||
format: "date-time"
|
||
description: >
|
||
Date/Time from the sonde's GPS, provided in YYYY-MM-DDTHH:MM:SS.SSSSSSZ format
|
||
|
||
Some sondes (e.g. iMet, LMS6) do not provide the date portion of the timestamp. In this situation, the date portion should be added on by the receiver. An example of how to handle this problem is [available here](https://github.com/projecthorus/radiosonde_auto_rx/blob/master/auto_rx/autorx/sonde_specific.py#L13).
|
||
|
||
lat:
|
||
description: Latitude (decimal degrees)
|
||
type: "number"
|
||
format: "double"
|
||
lon:
|
||
description: Longitude (decimal degrees)
|
||
type: "number"
|
||
format: "double"
|
||
alt:
|
||
description: Altitude (metres)
|
||
type: "number"
|
||
format: "double"
|
||
|
||
frequency:
|
||
type: "number"
|
||
format: "float"
|
||
description: Transmit frequency of the radiosonde in MHz.
|
||
temp:
|
||
type: "number"
|
||
format: "float"
|
||
description: Measured Temperature (deg C)
|
||
humidity:
|
||
type: "number"
|
||
format: "float"
|
||
description: Measured Relative Humidity (%)
|
||
vel_h:
|
||
type: "number"
|
||
format: "float"
|
||
description: Horizontal Velocity (m/s)
|
||
vel_v:
|
||
type: "number"
|
||
format: "float"
|
||
description: Horizontal Velocity (m/s)
|
||
pressure:
|
||
description: Measured Pressure (hPa)
|
||
type: "number"
|
||
format: "float"
|
||
|
||
heading:
|
||
type: "number"
|
||
format: "float"
|
||
description: Heading (degrees True)
|
||
batt:
|
||
type: "number"
|
||
format: "float"
|
||
description: Battery Voltage (volts)
|
||
sats:
|
||
type: "number"
|
||
format: "integer"
|
||
description: Number of SVs used in position solution
|
||
|
||
snr:
|
||
type: number
|
||
format: float
|
||
description: Signal-to-Noise ratio of the received signal, in dB
|
||
rssi:
|
||
type: number
|
||
format: float
|
||
description: Received-Signal-Strength-Indication of the radiosonde signal, nominally in dBm
|
||
uploader_position:
|
||
type: array
|
||
items:
|
||
type: number
|
||
format: double
|
||
minItems: 3
|
||
maxItems: 3
|
||
description: Station position, as a list [lat, lon, alt].
|
||
uploader_antenna:
|
||
type: string
|
||
description: Station antenna/receiver information, free-text string.
|
||
listener_stats:
|
||
type: object
|
||
additionalProperties:
|
||
description: softwareName
|
||
type: object
|
||
example:
|
||
radiosonde_auto_rx:
|
||
telemetry_count: 500
|
||
unique_callsigns: 10
|
||
versions:
|
||
"1.5.8":
|
||
telemetry_count: 25463802
|
||
unique_callsigns: 327
|
||
listener:
|
||
type: object
|
||
properties:
|
||
software_name:
|
||
description: 'Software Name, # e.g. radiosonde_auto_rx'
|
||
type: "string"
|
||
software_version:
|
||
description: "Software version number, e.g. 1.5.1"
|
||
type: "string"
|
||
uploader_callsign:
|
||
description: "Station callsign, # e.g. CHANGEME_AUTO_RX"
|
||
type: "string"
|
||
uploader_position:
|
||
description: "Station position, as a list [lat, lon, alt] Note: This may be set to null, which will result in the station position not appearing on the map."
|
||
type: array
|
||
items:
|
||
type: number
|
||
format: double
|
||
minItems: 3
|
||
maxItems: 3
|
||
uploader_antenna:
|
||
description: Uploader's antenna description
|
||
type: "string"
|
||
uploader_contact_email:
|
||
description: "Optional contact e-mail, to assist SondeHub admins in resolving faults. e.g. user_contact_email@host.com"
|
||
type: "string"
|
||
mobile:
|
||
type: boolean
|
||
description: "Indicates that the station is mobile, and should appear as a chase car on the tracker map. Set to false if this is a fixed station."
|
||
predictions:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
vehicle:
|
||
type: string
|
||
description: callsign / serial of the radiosonde
|
||
time:
|
||
type: string
|
||
format: date-time
|
||
latitude:
|
||
type: number
|
||
longitude:
|
||
type: number
|
||
altitude:
|
||
type: number
|
||
ascent_rate:
|
||
type: number
|
||
descent_rate:
|
||
type: number
|
||
burst_altitude:
|
||
type: number
|
||
landed:
|
||
enum:
|
||
- 1
|
||
- 0
|
||
data:
|
||
description: This is the json output from the Tāwhirimātea predictor http://tawhiri.cusf.co.uk
|
||
type: string
|
||
|
||
|
||
externalDocs:
|
||
description: "Sondehub Infra"
|
||
url: "http://github.com/projecthorus/sondehub-infra" |