Modules reference
satnogsclient
SatNOGS Client module initialization
satnogsclient.locator.locator
satnogsclient.observer.observer
- satnogsclient.observer.observer.post_and_save_artifacts(artifacts_file, observation_id)[source]
Accepts a TemporaryFile artifacts_file opened at the beginning of the file, saves it to disk if enabled, then tries to upload it to satnogs-db. Finally closes this file.
- Parameters:
artifacts_file (file) – The Artifact file (opened at position 0).
observation_id (str) – The observation id of the associated observation (for enhanced logging).
- satnogsclient.observer.observer.save_artifacts(artifacts_file, filename)[source]
Accepts a TemporaryFile artifacts_file opened at the beginning of the file and writes this file to disk. Finally seeks back to the beginning of the file.
NOTE: Does NOT close this file.
- Parameters:
artifacts_file (file) – TemporaryFile, open at position 0
filename (str) – Filename of artifacts file
satnogsclient.observer.orbital
- satnogsclient.observer.orbital.pinpoint(observer_dict, satellite_dict, timestamp=None)[source]
Provides azimuth and altitude of tracked object.
- args:
observer_dict: dictionary with details of observation point. satellite_dict: dictionary with details of satellite. time: timestamp we want to use for pinpointing the observed object.
- returns:
Dictionary containing azimuth, altitude and “ok” for error detection.
satnogsclient.artifacts
satnogsclient.waterfall
- class satnogsclient.waterfall.Waterfall(datafile_path)[source]
Parse waterfall data file
- Parameters:
datafile_path (str_array) – Path to data file
- satnogsclient.waterfall._compress_waterfall(waterfall)[source]
Compress spectra of waterfall
- Parameters:
waterfall (dict) – Watefall data
- Returns:
Compressed spectra
- Return type:
dict
- satnogsclient.waterfall._get_waterfall(datafile_path)[source]
Get waterfall data
- Parameters:
datafile_path (str_array) – Path to data file
- Returns:
Waterfall data including compressed data
- Return type:
dict
- satnogsclient.waterfall._read_waterfall(datafile_path)[source]
Read waterfall data file
- Parameters:
datafile_path (str) – Path to data file
- Raises:
EmptyArrayError – Empty waterfall data
IndexError – Invalid waterfall data
FileNotFoundError – No waterfall data file found
OSError – Could not open waterfall data file
- Returns:
Waterfall data and metadata
- Return type:
tuple (dict, dict)
satnogsclient.observer.worker
- class satnogsclient.observer.worker.Worker(time_to_stop=None, sleep_time=None)[source]
Class to facilitate as a worker for rotctl/rigctl.
- _observation_end = None
- _sleep_time = 0.1
- _stay_alive = False
- property is_alive
Returns if tracking loop is alive or not.
- observer_dict = {}
- satellite_dict = {}
- trackobject(observer_dict, satellite_dict)[source]
Sets tracking object. Can also be called while tracking to manipulate observation.
- Parameters:
observer_dict (dict) – Location of the Observer, example: {‘lon’: 0.0, ‘lat’: 0.0, ‘elev’:0.0}
satellite_dict (dict) – TLE of the satellite, example: {‘tle0’: ‘’, ‘tle1’: ‘’, ‘tle2’: ‘’}
- class satnogsclient.observer.worker.WorkerFreq(ip, port, **kwargs)[source]
- _communicate_tracking_info()[source]
Runs as a daemon thread, communicating tracking info to remote socket. Uses observer and satellite objects set by trackobject(). Will exit when observation_end timestamp is reached.
- _frequency = None
- trackobject(frequency, observer_dict, satellite_dict)[source]
Track object
- Parameters:
frequency (int) – Frequency of original signal in Hz
observer_dict (dict) – Location of the Observer example: {‘lon’: 0.0, ‘lat’: 0.0, ‘elev:0.0}
satellite_dict (dict) – TLE of the satellite example: {‘tle0’: ‘’, ‘tle1’: ‘’, ‘tle2’: ‘’}
- class satnogsclient.observer.worker.WorkerTrack(port, **kwargs)[source]
- _altitude = None
- _azimuth = None
- _communicate_tracking_info()[source]
Runs as a daemon thread, communicating tracking info to remote socket. Uses observer and satellite objects set by trackobject(). Will exit when observation_end timestamp is reached.
- _flip = False
- _midpoint = None
satnogsclient.rig
- class satnogsclient.rig.Rig(model=Hamlib.RIG_MODEL_DUMMY, path='', debug=Hamlib.RIG_DEBUG_WARN)[source]
Communicate and interface with rigs
- Parameters:
model – Model of Hamlib rig
path (str, optional) – Path or address to Hamlib rig device
debug (int, optional) – Hamlib rig debug level
- property frequency
Get rig frequency
- Returns:
Rig frequency
- Return type:
float
- property vfo
Get active VFO
- Returns:
Active VFO
- Return type:
int
satnogsclient.rotator
- class satnogsclient.rotator.Rotator(model, baud, port)[source]
Communicate and interface with rotators
- Parameters:
model (str) – Model of rotator e.g. “ROT_MODEL_EASYCOMM3” or “ROT_MODEL_DUMMY”
baud (int, optional) – The baud rate of serial communication, e.g. 19200
port (str) – The port of the rotator, e.g. “/dev/ttyUSB0”
- get_conf(cmd)[source]
Return the configuration of a register
- Parameters:
cmd (int) – Number of the register
- Returns:
Value of register
- Return type:
str
- get_info()[source]
Return information about the rotator
- Returns:
Information about the rotator
- Return type:
str
- move(direction, speed)[source]
Move the rotator with speed (mdeg/s) to specific direction
- Parameters:
direction (str) – The direction of movement, e.g. ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_RIGHT
speed (int) – The velocity set point in mdeg/s
- park()[source]
Move the rotator to park position and return the current position
- Returns:
Current position in degrees
- Return type:
None or list[float, float]
- property position
Return the position in degrees of azimuth and elevation
- Returns:
Position in degrees
- Return type:
list[float, float]
satnogsclient.scheduler.tasks
- satnogsclient.scheduler.tasks.spawn_observer(**kwargs)[source]
Run an observation.
- Parameters:
kwargs – Keyword arguments containing ‘obj’ dict with observation parameters
Example:
kwargs['obj'] = { 'id': 38215, 'start': '2025-07-31T16:30:02Z', 'end': '2025-07-31T16:33:50Z', 'ground_station': 338, 'tle0': 'FOX-1A (AO-85)', 'tle1': '1 40967U 15058D 25212.20879382 .00001969 00000+0 18605-3 0 9993', 'tle2': '2 40967 64.7744 194.6401 0153690 178.4861 181.6749 14.88342386 65750', 'frequency': 145978500, 'mode': 'DUV', 'transmitter': 'ZyjKNJ9KqnTHBCUzAPN5G5', 'baud': 200.0, 'max_altitude': 19.0, 'norad_cat_id': 40967 }
satnogsclient.settings
SatNOGS Client settings file
- satnogsclient.settings.validate(logger)[source]
Validate the provided settings: - Check for the existance of all required variables - Validate format of the provided value for some required variables
Since this module has to be loaded before the logger has been initialized, this method requires a configured logger to be passed.
Arguments: logger – the output logger
satnogsclient.radio.flowgraphs
- class satnogsclient.radio.flowgraphs.Flowgraph(device, sampling_rate, frequency, mode, baud, output_data)[source]
Execute SatNOGS Flowgraphs
- Parameters:
device (str) – SoapySDR device
sampling_rate (int) – Sampling rate
frequency (int) – RX frequency
mode (str) – Mode of operation
baud (int) – Baud rate or WPM
output_data (dict) – Dictionary of output data
- property enabled
Get flowgraph running status
- Returns:
Flowgraph running status
- Return type:
bool
- property info
Get information and parameters of flowgraph and radio
- Returns:
Information about flowgraph and radio
- Return type:
dict