fixed_sampling_optic

poppy.fixed_sampling_optic(optic, wavefront, oversample=2)[source]

Convert a variable-sampling AnalyticOpticalElement to a fixed-sampling ArrayOpticalElement

For a given input optic this produces an equivalent output optic stored in simple arrays rather than created each time via function calls.

If you know a priori the desired sampling will remain constant for some application, and don’t need any of the other functionality of the AnalyticOpticalElement machinery with get_opd and get_transmission functions, you can save time by setting the sampling to a fixed value and saving arrays computed on that sampling.

Also, you can use this to evaluate any optic on a finer sampling scale and then bin the results to the desired scale, using the so-called gray-pixel approximation. (i.e. the value for each output pixel is computed as the average of N*N finer pixels in an intermediate array.)

Parameters:
opticpoppy.AnalyticOpticalElement

Some optical element

wavepoppy.Wavefront

A wavefront to define the desired sampling pixel size and number.

oversampleint

Subpixel sampling factor for “gray pixel” approximation: the optic will be evaluated on a finer pixel scale and then binned down to the desired sampling.

Returns:
new_array_opticpoppy.ArrayOpticalElement

A version of the input optic with fixed arrays for OPD and transmission.