pyrtc.hardware.hcipy_interface

Bridge between pyrtc components and an HCIPy optical simulation.

HCIPy is a pip-installable AO and high-contrast imaging simulator (pip install pyrtcao[hcipy]). This module builds one shared HCIPy system (telescope pupil, deformable mirror, Shack-Hartmann or modulated pyramid WFS, a frozen-flow atmospheric layer and a science camera) from a flat parameter mapping, and adapts it to the pyrtc WavefrontSensor, WavefrontCorrector and ScienceCamera interfaces, like the OOPAO and SPECULA bridges.

Parameters (param mapping or param_file YAML; defaults in brackets):

telescope_diameter [2.0 m], central_obscuration [0.0, fraction of D], wfs_type [shwfs; or pywfs], wfs_wavelength [700e-9 m], num_lenslets [10], pixels_per_lenslet [12] (the pupil grid is num_lenslets * pixels_per_lenslet pixels across, so each sub-aperture is a whole number of pixels), spot_fwhm_pixels [2.5] (the lenslet focal ratio is chosen so a diffraction-limited spot is this wide), pyramid_modulation [3.0 lambda/D], pyramid_modulation_steps [8], pyramid_pupil_pixels [32], wfs_photons [1e6 per frame], photon_noise [false], num_actuators_across [11], actuator_crosstalk [0.15], r0 [0.15 m at 500 nm], L0 [25 m], wind_speed [10 m/s], frame_rate [1000 Hz], science_wavelength [1.6e-6 m], science_q [4], science_num_airy [16], seed [1].

DM commands are actuator surface heights in metres (HCIPy convention). Keep the sub-aperture size telescope_diameter / num_lenslets near r0 at the WFS wavelength, as in a real Shack-Hartmann design: much larger sub-apertures see speckled spots and the loop cannot close on the atmosphere.

Classes

HCIPyInterface(conf[, param])

Provider component owning the shared HCIPy simulation.

HCIPyScienceCamera(science_conf, context)

Science camera rendering the shared HCIPy system's PSF.

HCIPySystemContext([param, param_file])

Build and own one shared HCIPy simulation for several pyrtc components.

HCIPyWFCorrector(corrector_conf, context)

Deformable mirror of the shared HCIPy simulation.

HCIPyWFSensor(wfs_conf, context)

Wavefront sensor fed by the shared HCIPy simulation.