Skip to main content

PYramid Simulator Software for Adaptive OpTics Arcetri

Project description

SPECULA

Python AO end-to-end simulator

SPECULA is a Python-based, object-oriented software derived from PASSATA and developed by the Adaptive Optics group at the Arcetri Observatory for end-to-end Monte-Carlo simulations of adaptive optics systems. It can be accelerated using GPU-CUDA via CuPy.

See the documentation here: specula.readthedocs.io

Directories

  • docs: contains the documentation.
  • main: contains functions and parameter files to calibrate and run a closed loop of an adaptive optics system (single-conjugated, multi-conjugated, natural, laser, ...).
  • specula: the main library, structured as follows:
    • data_objects: classes that wrap the data and provide methods to access them.
    • display: classes for data visualization.
    • lib: utility functions used by multiple objects.
    • processing_objects: classes that model the simulation elements as a function of inputs and time.
    • scripts: various scripts.
  • test: contains functions to test SPECULA using the unittest framework.

Requirements

  • Python 3.8+
  • numpy
  • scipy
  • matplotlib
  • flask
  • flask-socketio
  • socketio
  • scikit-image (for physical propagation)
  • cupy (for GPU acceleration, optional)

Optional libraries

Some features require additional libraries:

  • pycairo: needed for block diagram generation with orthogram
  • orthogram: for automatic block diagram creation (see orthogram)
  • control: for conversion of transfer function system in SPECULA format and vice-versa and analysis of transfer function

Install optional dependencies (pycairo will be installed as dependency of orthogram) with:

pip install orthogram
pip install control

Contributing to SPECULA

To contribute to SPECULA, follow these steps:

  1. Fork this repository.
  2. Create a branch: git checkout -b <branch_name>
  3. Make your changes and add tests for the new functionality.
  4. Commit your changes: git commit -m '<commit_message>'
  5. Push to the branch: git push
  6. Create the pull request.

We require tests for all new features to ensure the stability of the project.

Project details


Download files

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

Source Distribution

specula-0.0.0.tar.gz (313.7 kB view details)

Uploaded Source

Built Distribution

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

specula-0.0.0-py3-none-any.whl (212.1 kB view details)

Uploaded Python 3

File details

Details for the file specula-0.0.0.tar.gz.

File metadata

  • Download URL: specula-0.0.0.tar.gz
  • Upload date:
  • Size: 313.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for specula-0.0.0.tar.gz
Algorithm Hash digest
SHA256 92694615d097e0f1c971fb20f782d894aa29eb7e1a135a15c172859363c0f6cf
MD5 0f2bdb37a6c81fd34a9c7ca9e8ed8b95
BLAKE2b-256 45e79d9e9f9d3dc3fc803d0c8b83349bba22a02cc7c8f78917bc04390d2d1418

See more details on using hashes here.

File details

Details for the file specula-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: specula-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 212.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for specula-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2853c9804d598d777837a0597081c523384257cf15904c61d58a7be336792567
MD5 c86d778c325b8b8504baa5ba33c04539
BLAKE2b-256 4e92a8e7641884a8b6e203b4a7a64a4dd81aa4af598484e66796b9a1df561dcf

See more details on using hashes here.

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