Skip to main content

Python Simulator

This folder contains a standard-library Python version of the optical link-budget simulator. It follows the same scenario, hardware, atmospheric-loss, snapshot, continuous-jitter, and outage models as the MATLAB application.

Requirements

  • Python 3.10 or newer
  • Tkinter, which is included with the standard Python installers from python.org
  • Internet access when Live API weather is selected

No pip packages, virtual environment, MATLAB installation, or API key are required.

Run from a downloaded ZIP

  1. Download and extract the project ZIP.
  2. Open Terminal or Command Prompt in the extracted project folder.
  3. Run:
python3 python/run.py

On Windows, use this command if python3 is not recognized:

py python\run.py

Install from PyPI

The packaged application can be installed and launched with:

python3 -m pip install ogs-linkbudget-live
ogs-linkbudget

Features

  • Downlink, uplink, and inter-satellite links
  • User-selected worst-case elevation for ground-space links
  • Manual weather or live Open-Meteo conditions
  • Past Replay and Current Hold continuous weather timelines
  • Independent transmitter and receiver jitter-profile selection
  • Configured random, OLYMPUS open-loop/reference ATP, and Micius before/after-ATP jitter
  • Ideal no-weather/no-jitter reference margin
  • User-configurable operational outage margin with a 3 dB default
  • Dynamic margin, probability-density, and outage charts

Each continuous run creates a fresh random jitter sequence. No seed is requested from the user.

Interface

The Scenario Settings tab selects the link direction, conservative elevation, weather source, station location, simulation mode, weather timeline, and duration.

  • OLYMPUS Platform PSD (Open Loop) uses S(f) = 160/(1 + f²) µrad²/Hz, approximately 15.85 µrad radial RMS, at 200 Hz.
  • OLYMPUS After ATP (Reference Design) uses the same modeled disturbance shape calibrated to a published 0.34 µrad optical-terminal residual target. It is a design reference rather than a measured OLYMPUS closed-loop flight spectrum.
  • Micius Before ATP (Open Loop) reproduces its published 0–1, 1–10, 10–50, and 50–100 Hz band RMS values, approximately 9.26 µrad combined, at 250 Hz.
  • Micius After ATP (Measured) reproduces the published residual values in the same bands, approximately 0.48 µrad combined (0.47 µrad reported full-band).

Python Scenario Settings tab
Python scenario and continuous-simulation controls.

The Hardware Configuration tab defines transmitter power, wavelength, terminal apertures, configured-random per-axis jitter, relative boresight bias, and the required operational margin. The margin defaults to 3 dB and can be configured from 0 to 30 dB. A terminal's entered jitter value is only used when Configured Random is selected.

ATP profiles contain residual tracking error after a closed-loop pointing system, whose rejection varies with frequency and controller behavior. Manual suppression instead scales every angular sample by 10^(-dB/20) and PSD power by 10^(-dB/10). Leave it at 0 dB to use an after-ATP reference by itself; a nonzero value adds hypothetical frequency-independent suppression after that residual.

Because the available OLYMPUS-based reference gives an integrated residual target rather than a closed-loop residual spectrum, its after-ATP option is equivalent here to approximately 33.4 dB of uniform suppression. The Micius after-ATP option instead uses measured band-dependent residuals and therefore changes the spectral shape.

The Jitter Models tab contains the independent Tx/Rx profile selectors and their 0–60 dB additional-suppression controls. It keeps all Configured Random, OLYMPUS, and Micius choices together. The tab’s controls are enabled only for Continuous Tracking.

Python Hardware Configuration tab
Python optical hardware and pointing controls.

Continuous simulations display the randomized link-margin profile, the ideal no-weather/no-jitter reference, the configurable operational outage threshold, the 0 dB receiver-sensitivity boundary, the margin probability density, and the calculated outage rate.

Python continuous simulation analytics
Python continuous link-margin and outage analytics.

Run the tests

From the project folder:

python3 -m unittest discover -s python/tests -t python

The test suite uses local TLE data and does not require an internet connection.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ogs_linkbudget_live-3.1.0.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ogs_linkbudget_live-3.1.0-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file ogs_linkbudget_live-3.1.0.tar.gz.

File metadata

  • Download URL: ogs_linkbudget_live-3.1.0.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ogs_linkbudget_live-3.1.0.tar.gz
Algorithm Hash digest
SHA256 db8990468c7dfe74cc5b80e11c4f82d41eb4a2c9f745d8beae65ff78073e22b7
MD5 0f2128f3e890ab3b880c9060d1a7b54b
BLAKE2b-256 7fe70d6d8a99be6c9b3af3e218f150febd359d399b8d3a0bd273bd082270f26a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogs_linkbudget_live-3.1.0.tar.gz:

Publisher: publish-to-pypi.yml on reptide/ogs-linkbudget-live

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ogs_linkbudget_live-3.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ogs_linkbudget_live-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6cf56a96909bea44e04f1daeeb351c3ff8331f86a35329c2c0a12a0fc6f730a1
MD5 8297a1341c73195945036df2261b6b7f
BLAKE2b-256 140d24cfdbad174388c76776e240d2b324674431dffb8c70035b001b07a2776b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogs_linkbudget_live-3.1.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on reptide/ogs-linkbudget-live

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page