Skip to main content

FAST (Fourier domain Adaptive optics Simulation Tool)

codecov

FAST is a simulation tool that utilises a Fourier domain AO model to enable rapid Monte Carlo characterisation of free space optical links between the Earth and satellites. For more details, see the paper https://doi.org/10.1364/OE.458659.

Documentation is hosted at ojdf.github.io/fast.

WARNING: FAST is under active development and the simulation API and configuration is not fixed. If you find a bug, or something is not working as you would expect, please email me or make an issue on GitHub, it's likely I've broken something!

Requirements

See requirements.txt

It is recommended to install pyFFTW to speed up FFTs.

Installation

PyPI

pip install fast-aosim

From Source

For the latest developments, clone this repository run pip install -r requirements.txt to get the required dependencies. Then, ensure that the FAST directory is on your PYTHONPATH, or navigate to the directory and run

pip install .

To confirm correct installation, try running

cd test && python test_script.py

in the FAST directory, which should run a short simulation. You can also run the unit tests with

pytest -v test/tests_pytest.py

Configuration

Config is handled currently by python scripts, an example of which is shown in test_params.py. The config file should define a dictionary p which contains all of the configuration information required. If any values are missed, they will be replaced by defaults.

To start a simulation either in the python shell or in a script, you can either pass the filename of the script defining the config dictionary, or you can provide the dictionary itself, which can be useful if you are scanning through parameters. So

import fast
sim = fast.Fast("your_config_file.py")

or

import fast
p = {your config}
sim = fast.Fast(p)

Running the simulation

The simulation is run by calling the run() function on the sim object. This will compute the phase screens and log-amplitude values, and then compute the detected power or phase/amplitude for coherent detection. The results are stored in sim.result and are also returned from run(), i.e. res = sim.run(). Results in either dB or power units can be obtained from e.g. sim.result.dB_rel (for dB relative to the diffraction limit) or sim.result.power. See the documentation for more details.

To save the simulation results as a fits file with header information, use sim.save(filename).

Metadata

Release files for fast-aosim 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fast-aosim 0.1.7
File Size Uploaded Provenance Actions
fast_aosim-0.1.7.tar.gz 77.1 kB Without provenance Details for fast_aosim-0.1.7.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fast-aosim 0.1.7
File Interpreter ABI Platform Actions
fast_aosim-0.1.7-py3-none-any.whl Python 3 none any Details for fast_aosim-0.1.7-py3-none-any.whl

Total release size: 135.7 kB

Release files / fast_aosim-0.1.7.tar.gz

Download URL fast_aosim-0.1.7.tar.gz
Size 77.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7c8410bb131cd0cd63e1825c7f3b895fc976cb6d0e61d32140ed3df6fbc9dfa8
BLAKE2b-256 checksum
How to use checksums
b0a6f2bf510229ba7aa52d6cdf3762343eeabbce1235b7704026e583b997ccb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.12

Release files / fast_aosim-0.1.7-py3-none-any.whl

Download URL fast_aosim-0.1.7-py3-none-any.whl
Size 58.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0caf10163d1f7071c396087283d5c94ab2dc0586c3d657dc23158348d41a6044
BLAKE2b-256 checksum
How to use checksums
c965684afa0cd8a96b8110d10afac005355a1f765d5f982d25ab7c04ce644e3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.12

Security for fast-aosim 0.1.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page