Skip to main content

This package is a python interface for laboratory adaptive optics systems, with a focus on the calibration of deformable mirrors (DMs) and the acquisition of wavefront data using wavefront sensors.

Project description

OptiCalib : python framework for OPTical CALibration of deformable mirror and AO experimentation

GitHub Actions Workflow Status

Adaptive Optics Group, INAF - Osservatorio Astrofisico di Arcetri

OptiCalib is a python package which first goal is to make easy deformable mirror's calibration in the laboratory (and not only).

It was born as a general extrapolation of the software built for the control and calibration of the ELT @ M4 adaptive mirror and it's calibration tower, OTT (Optical Test Tower).

Note: to cite this package check CITATION.bib

Description

The OPTICALIB package serves two main purposes:

  • Making connection to the hardware (interferometers, DMs, ...) easy;

  • Providing routines for Deformable Mirrors calibrations.

The latests, stable, version can be installed from pypi:

pip install opticalib

The in-development version can be installed directly from this repository:

pip install git+"https://github.com/ArcetriAdaptiveOptics/opticalib.git"

But do expect some bugs!

Upon installation, the software will create an entry point script called calpy, which is usefull to set up a specific experiment's environment. Let's say we have an optical bench composed of an interferometer 4D PhaseCam6110 and an Alpao Deformable mirror, say DM820. We can create the experiment's environment just like:

calpy -f ~/alpao_experiment --create

This will create, in the ~/alpao_experiment folder, the package's data folder tree, together with a configuration file in the SysConfig folder. The configuration file, documented in configuration documentation, is where all devices must be specified.

Example usage

Once done with the configuration, we can then start using out instruments:

calpy -f ~/alpao_experiment
# The `calpy` function will automatically import opticalib (with `opt` 
# as alias), as well as the `opticalib.dmutils` as dmutils

interf = opt.PhaseCam(6110) # set in the configuration file
dm = opt.AlpaoDm(820)       # set in the configuration file

# Having the bench set up and the configuration file set, we can acquire
# an Influence Function by just doing

tn = dmutils.iff_module.iffDataAcquisition(dm, interf) # Optional paramenters
# are `modesList, modesAmplitude, template`, which if not specified are 
# read from the configuration file

Documentation

For the API references, check Opticalib API PDF (work in progress...), while for configuration details check configuration documentation.

Simulator data

Simulator data is no longer shipped inside the repository or Python package. All files used by the simulator are fetched on demand and cached locally.

You can pre-download all known simulator files:

from opticalib.simulator import prefetch_simdata

prefetch_simdata()

This avoids runtime downloads when simulators are instantiated.

The repository intentionally does not include the opticalib/simulator/_API/SimData payload anymore.

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

opticalib-1.3.3.tar.gz (235.0 kB view details)

Uploaded Source

Built Distribution

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

opticalib-1.3.3-py3-none-any.whl (273.3 kB view details)

Uploaded Python 3

File details

Details for the file opticalib-1.3.3.tar.gz.

File metadata

  • Download URL: opticalib-1.3.3.tar.gz
  • Upload date:
  • Size: 235.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for opticalib-1.3.3.tar.gz
Algorithm Hash digest
SHA256 4243ec0be38e986ff863748c9f5ecad5e964b6212ccd3e2258baeb4ea78c2b8b
MD5 8eeb4ea738b7ab53e95e7d4bf1a7b12b
BLAKE2b-256 843c871d02bcf5cb6abaa4b524fab520c5a64e09b8cc6d58fe9a453232ed15b0

See more details on using hashes here.

File details

Details for the file opticalib-1.3.3-py3-none-any.whl.

File metadata

  • Download URL: opticalib-1.3.3-py3-none-any.whl
  • Upload date:
  • Size: 273.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for opticalib-1.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e9338a4bcba3cbf4243cbf0740a205416b449bf6e26ab5e5d068912e7169d093
MD5 c1728b38eefb25d24bc88c70028eb6df
BLAKE2b-256 2d1ccfbe41109f4daec8232a94bd69589693c390f5df6dc5748cbcb942bcada4

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