prysm v0.13#
This release brings a number of new features and enhancements. Users are encouraged to upgrade from older releases.
New Features#
SlantedEdge
object for image simulationdeconv()
on theConvolvable
class to perform Wiener-Hunt deconvolution.convenience properties on
OpticalPhase
(FringeZernike
,Interferogram
, …) andConvolvable
objects.shape
,diameter_x
,diameter_y
, anddiameter
on the former.shape
,support_x
,support_y
, andsupport
on the latter.
std
property for the standard deviation onOpticalPhase
instances andstrehl
for the approximate Strehl Ratio onPupil
instances.band-limited RMS evaluation on
Interferogram
objects based on the 2D PSDanalytical Fourier transform on the AiryDisk class for faster, more accurate convolutions
flexible linewidth on many plots
log scaling on 2D PSF plots
residual
parameter in thefit()
function from thefringezernike
moduleazimuthally averaged MTF via the
azimuthal_average()
method on theMTF
classconvolvables can now be saved with 16-bit precision
Under-the-hood changes and bug fixes#
Interferogram
instances no longer cache PSD calculations internallyThe wavefunction associated with an optical pupil is now a property,
Pupil
.fcn instead of an attribute. It will be calculated on an as-needed basis which eliminates synchronization problems when Pupil instances are modified.FZCache
andMCache
for Fringe Zernikes and masks now implement__call__()
, you can usemcache(128, 'hexagon')
instead ofmcache.get_mask(128, 'hexagon')
and the equivalent for zcache.importing of Zygo datx files is now more robust. Files from the NexView NX2 now import properly.
Convolvable
is now exported at the top levelprysm.convolution.Convolvable.from_file()
no longer errors. Users must now scale the data after importing on their own, e.g.Convolvable.data /= 255
for an 8 bit per pixel file, or/= 65535
for a 16-bit file.
Removed Features#
bandreject_filter()
has been removed on theInterferogram
class; the implementation was not well done and the results of low quality.MultispectralPSF
andRGBPSF
have been dropped; they have been neglected for a significant amount of time. MultispectralPSF only differed from a PSF in the call to__init__()
, users can replicate this behavior independently.