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
unittestframework.
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:
- Fork this repository.
- Create a branch:
git checkout -b <branch_name> - Make your changes and add tests for the new functionality.
- Commit your changes:
git commit -m '<commit_message>' - Push to the branch:
git push - Create the pull request.
We require tests for all new features to ensure the stability of the project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file specula-1.0.0a9.tar.gz.
File metadata
- Download URL: specula-1.0.0a9.tar.gz
- Upload date:
- Size: 18.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12c53eb2a67b262d2c59bd3695194eaaed2319eaa0519061d61ad4079b51b578
|
|
| MD5 |
cef26808c0d506248d7db572e2bff3ee
|
|
| BLAKE2b-256 |
08fddfeb659fc71ee94e892c3415f77950215adfdcbb9c66fcc98659a7e75416
|
File details
Details for the file specula-1.0.0a9-py3-none-any.whl.
File metadata
- Download URL: specula-1.0.0a9-py3-none-any.whl
- Upload date:
- Size: 373.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6134e766df4f62d135597cc30346534f2054274a3d8a64449dc9cc65ca85b839
|
|
| MD5 |
4a946701ab865dfa67518d611df975f0
|
|
| BLAKE2b-256 |
27399eb488bfcdaa1bb7248187c0d04d8a5f9deeca388a655486543158c0c917
|