CompoundOpticalSystem
- class poppy.CompoundOpticalSystem(optsyslist=None, name=None, **kwargs)[source]
Bases:
OpticalSystemA concatenation of two or more optical systems, acting as a single larger optical system.
This can be used to combine together multiple existing OpticalSystem instances, including mixed lists of both Fraunhofer and Fresnel type systems.
Create combined optical system,
- Parameters:
- optsyslistlist of OpticalSystem and/or FresnelOpticalSystem instances
The ordered list of optical systems to concatenate.
- namestr, optional
Descriptive name for this compound system. If not provided, a name is generated automatically from the number of sub-systems.
- **kwargs
Additional keyword arguments are passed to the
BaseOpticalSystemconstructor (e.g.,verbose,oversample).
Attributes Summary
A merged list containing all the planes in all the included optical systems
Methods Summary
input_wavefront([wavelength, inwave])Create input wavefront for a CompoundOpticalSystem
propagate(wavefront[, normalize, ...])Core low-level routine for propagating a wavefront through an optical system
Attributes Documentation
- planes
A merged list containing all the planes in all the included optical systems
Methods Documentation
- input_wavefront(wavelength=<Quantity 1.e-06 m>, inwave=None)[source]
Create input wavefront for a CompoundOpticalSystem
Input wavefronts for a compound system are defined by the first OpticalSystem in the list. We tweak the _display_hint_expected_planes to reflect the full compound system however.
- Parameters:
- wavelengthfloat or astropy.units.Quantity
Wavelength in meters (or other units if given as a Quantity).
- inwaveWavefront, optional
If provided, use this as the input wavefront instead of generating one from the first sub-system’s entrance pupil parameters.
- Returns:
- inwaveWavefront
Input wavefront appropriate for propagating through this compound system.