prysm v0.13#
This release brings a number of new features and enhancements. Users are encouraged to upgrade from older releases.
New Features#
SlantedEdgeobject for image simulationdeconv()on theConvolvableclass to perform Wiener-Hunt deconvolution.convenience properties on
OpticalPhase(FringeZernike,Interferogram, …) andConvolvableobjects.shape,diameter_x,diameter_y, anddiameteron the former.shape,support_x,support_y, andsupporton the latter.
stdproperty for the standard deviation onOpticalPhaseinstances andstrehlfor the approximate Strehl Ratio onPupilinstances.band-limited RMS evaluation on
Interferogramobjects 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
residualparameter in thefit()function from thefringezernikemoduleazimuthally averaged MTF via the
azimuthal_average()method on theMTFclassconvolvables can now be saved with 16-bit precision
Under-the-hood changes and bug fixes#
Interferograminstances 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.FZCacheandMCachefor 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.
Convolvableis 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 /= 255for an 8 bit per pixel file, or/= 65535for a 16-bit file.
Removed Features#
bandreject_filter()has been removed on theInterferogramclass; the implementation was not well done and the results of low quality.MultispectralPSFandRGBPSFhave 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.