ENLIGHTEN
Cross-platform desktop GUI for Wasatch Photonics spectrometers
Loading...
Searching...
No Matches
enlighten.post_processing.RichardsonLucy.RichardsonLucy Class Reference

This class provides a deconvolution filter which sharpens peaks back to their original optical resolution by removing the Gaussian blur point-spread function. More...

Public Member Functions

 __init__ (self, ctl)
 
 change_axis_callback (self, old_axis, new_axis)
 
 generate_gaussian (self, spec, unit)
 
 get_gaussian (self, spec)
 There are various ways we could decide what unit to use for average FWHM.
 
 is_supported (self, spec)
 
 process (self, pr, spec)
 
 reset (self)
 Generating the Gaussian is somewhat intensive, so cache it.
 
 update_from_config (self)
 
 update_from_gui (self)
 
 update_visibility (self, spec=None)
 

Public Attributes

dict cache
 
 cb_enable = cfu.checkBox_richardson_lucy
 
 change_axis_callback
 
 ctl = ctl
 
 downgrade = self.ctl.config.get_float(self.SECTION, "downgrade", default=1.0)
 
 enabled = self.cb_enable.isChecked()
 
 iterations = self.ctl.config.get_int (self.SECTION, "iterations", default=5)
 
 reset
 
 update_from_gui
 

Static Public Attributes

str SECTION = "RichardsonLucy"
 

Detailed Description

This class provides a deconvolution filter which sharpens peaks back to their original optical resolution by removing the Gaussian blur point-spread function.

This class is responsible for the "[x] Sharpen Peaks" checkbox on the KnowItAll settings.

See also
https://en.wikipedia.org/wiki/Richardson%E2%80%93Lucy_deconvolution

Constructor & Destructor Documentation

◆ __init__()

enlighten.post_processing.RichardsonLucy.RichardsonLucy.__init__ ( self,
ctl )
Parameters
iterationshow many Richardson-Lucy iterations to run
downgradehow much to downgrade the spectrometer's spec'd (claimed) resolution

Last updated from "Turn Raman Sample Library into KIA Input Files WP-00413.Rmd" received 30-Sep-2019 from Dieter.

Member Function Documentation

◆ change_axis_callback()

enlighten.post_processing.RichardsonLucy.RichardsonLucy.change_axis_callback ( self,
old_axis,
new_axis )

◆ generate_gaussian()

enlighten.post_processing.RichardsonLucy.RichardsonLucy.generate_gaussian ( self,
spec,
unit )

◆ get_gaussian()

enlighten.post_processing.RichardsonLucy.RichardsonLucy.get_gaussian ( self,
spec )

There are various ways we could decide what unit to use for average FWHM.

We could just use whatever was currently displayed on-screen (graph.get_x_axis_unit), but the on-screen x-asis is essentially irrelevant to the calculation. Since this feature is basically being provided for Raman, let's just say use wavenumbers for Raman models – regardless of whether the laser is engaged, or we're looking at an emission source (like we'd know) – and wavelengths otherwise.

◆ is_supported()

enlighten.post_processing.RichardsonLucy.RichardsonLucy.is_supported ( self,
spec )

◆ process()

enlighten.post_processing.RichardsonLucy.RichardsonLucy.process ( self,
pr,
spec )
Parameters
pr(In/Out) ProcessedReading
spec(Input) Spectrometer
See also
Dieter for algorithm explanation
Note
supports cropped ProcessedReading if available

◆ reset()

enlighten.post_processing.RichardsonLucy.RichardsonLucy.reset ( self)

Generating the Gaussian is somewhat intensive, so cache it.

However, when an input to the Guassian changes (like the user has changed the ROI), flush so it will be regenerated.

◆ update_from_config()

enlighten.post_processing.RichardsonLucy.RichardsonLucy.update_from_config ( self)

◆ update_from_gui()

enlighten.post_processing.RichardsonLucy.RichardsonLucy.update_from_gui ( self)

◆ update_visibility()

enlighten.post_processing.RichardsonLucy.RichardsonLucy.update_visibility ( self,
spec = None )

Member Data Documentation

◆ cache

dict enlighten.post_processing.RichardsonLucy.RichardsonLucy.cache

◆ cb_enable

enlighten.post_processing.RichardsonLucy.RichardsonLucy.cb_enable = cfu.checkBox_richardson_lucy

◆ change_axis_callback

enlighten.post_processing.RichardsonLucy.RichardsonLucy.change_axis_callback

◆ ctl

enlighten.post_processing.RichardsonLucy.RichardsonLucy.ctl = ctl

◆ downgrade

enlighten.post_processing.RichardsonLucy.RichardsonLucy.downgrade = self.ctl.config.get_float(self.SECTION, "downgrade", default=1.0)

◆ enabled

enlighten.post_processing.RichardsonLucy.RichardsonLucy.enabled = self.cb_enable.isChecked()

◆ iterations

enlighten.post_processing.RichardsonLucy.RichardsonLucy.iterations = self.ctl.config.get_int (self.SECTION, "iterations", default=5)

◆ reset

enlighten.post_processing.RichardsonLucy.RichardsonLucy.reset

◆ SECTION

str enlighten.post_processing.RichardsonLucy.RichardsonLucy.SECTION = "RichardsonLucy"
static

◆ update_from_gui

enlighten.post_processing.RichardsonLucy.RichardsonLucy.update_from_gui

The documentation for this class was generated from the following file: