class documentation

Class that calculates a model point spread function.

Method __call__ Calculate psf in terms of rho/wavelength for given parameters. We are making an implicit assumption that all of the calculations can be done in rho/wavelength units.
Method __init__ Undocumented
Method ao_corrections_to_phase_psd Apply adaptive optics corrections to the phase power spectrum distribution of the atmosphere
Method at Calculate psf for a given angular scale and wavelength, i.e., convert from rho/wavelength units to rho units.
Method optical_transfer_fuction_from_phase_psd From a phase power spectral distribution, derive an optical transfer function.
Instance Variable adaptive_optics_psd t_otf_wav_axes = tuple(a/ang_wav_factor for a in self.telescope_otf.axes) interp = sp.interpolate.RegularGridInterpolator(
Instance Variable adaptive_optics_psd_model Undocumented
Instance Variable adaptive_optics_psd_model_args Undocumented
Instance Variable ao_correction_amplitude Undocumented
Instance Variable ao_correction_frac_offset Undocumented
Instance Variable atmospheric_turbulence_psd Undocumented
Instance Variable atmospheric_turbulence_psd_model Undocumented
Instance Variable atmospheric_turbulence_psd_model_args Undocumented
Instance Variable expansion_factor Undocumented
Instance Variable f_ao Undocumented
Instance Variable instrument Undocumented
Instance Variable mode Undocumented
Instance Variable s_factor Undocumented
Instance Variable shape Undocumented
Instance Variable specific_model_ready Undocumented
Instance Variable supersample_factor Undocumented
Instance Variable telescope_otf Undocumented
Instance Variable telescope_otf_model Undocumented
Instance Variable telescope_otf_model_args Undocumented
def __call__(self, telescope_otf_model_args, atmospheric_turbulence_psd_model_args, adaptive_optics_psd_model_args, f_ao, ao_correction_amplitude=1, ao_correction_frac_offset=0, s_factor=0, mode='adjust'):

Calculate psf in terms of rho/wavelength for given parameters. We are making an implicit assumption that all of the calculations can be done in rho/wavelength units.

def __init__(self, telescope_otf_model: Callable[[tuple[int, ...], float, float, ...], OpticalTransferFunction] | OpticalTransferFunction, atmospheric_turbulence_psd_model: Callable[[np.ndarray, ...], PhasePowerSpectralDensity] | PhasePowerSpectralDensity, adaptive_optics_psd_model: Callable[[np.ndarray, ...], PhasePowerSpectralDensity] | PhasePowerSpectralDensity, instrument: InstrumentBase):

Undocumented

def ao_corrections_to_phase_psd(self, phase_psd, ao_phase_psd, f_ao, ao_correction_amplitude=1, ao_correction_frac_offset=0):

Apply adaptive optics corrections to the phase power spectrum distribution of the atmosphere

def at(self, wavelength, plots=True):

Calculate psf for a given angular scale and wavelength, i.e., convert from rho/wavelength units to rho units.

def optical_transfer_fuction_from_phase_psd(self, phase_psd, mode='classic', s_factor=0):

From a phase power spectral distribution, derive an optical transfer function.

adaptive_optics_psd =

t_otf_wav_axes = tuple(a/ang_wav_factor for a in self.telescope_otf.axes) interp = sp.interpolate.RegularGridInterpolator(

self.telescope_otf.axes, self.telescope_otf.data,method='linear', bounds_error=False, fill_value=np.min(self.telescope_otf.data)

) points = np.swapaxes(np.array(np.meshgrid(*t_otf_wav_axes)), 0,-1) t_otf_wav = GeoArray(np.array(interp(points)), t_otf_wav_axes) if plots: plot_ga(t_otf_wav, lambda x: np.log(np.abs(x)), 't_otf_wav', 'arbitrary units', '1/rho') if plots: plot_ga(t_otf_wav.ifft(), lambda x: np.log(np.abs(x)), 't_psf_wav', 'arbitrary units', 'rho')

adaptive_optics_psd_model =

Undocumented

adaptive_optics_psd_model_args =

Undocumented

ao_correction_amplitude =

Undocumented

ao_correction_frac_offset =

Undocumented

atmospheric_turbulence_psd =

Undocumented

atmospheric_turbulence_psd_model =

Undocumented

atmospheric_turbulence_psd_model_args =

Undocumented

expansion_factor =

Undocumented

f_ao =

Undocumented

instrument =

Undocumented

mode =

Undocumented

s_factor =

Undocumented

shape =

Undocumented

specific_model_ready: bool =

Undocumented

supersample_factor =

Undocumented

telescope_otf =

Undocumented

telescope_otf_model =

Undocumented

telescope_otf_model_args =

Undocumented