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
|
Provider component owning the shared HCIPy simulation. |
|
Science camera rendering the shared HCIPy system's PSF. |
|
Build and own one shared HCIPy simulation for several pyrtc components. |
|
Deformable mirror of the shared HCIPy simulation. |
|
Wavefront sensor fed by the shared HCIPy simulation. |