de_twin.processing.Processor#
- class de_twin.processing.Processor(twin, dark_frames=20, gain_frames=20, gain_dose_e_per_px=2000.0)[source]#
Bases:
objectReference acquisition + correction, keyed like DE-Server’s RefFinder.
Methods
__init__(twin[, dark_frames, gain_frames, ...])acquire(request, *[, units, gain, pace])Integrated, dark/gain-corrected image of
request.clear()correct(raw, refs)lookup(request)Stored references matching
request(no acquisition).references(request, *[, gain])References for
request; missing ones are provided like a prepared operator would.store_dark(request, mean_dark, n_frames)store_gain(request, mean_flood, n_frames)Store a gain reference from a mean flood frame (dark-subtracted here).
synthesize_gain(request[, dose_e_per_px])A well-dosed gain reference without simulating hundreds of flood frames.
take_dark(request[, n_frames])take_gain(request[, n_frames])- lookup(request)[source]#
Stored references matching
request(no acquisition).- Parameters:
request (AcquisitionRequest)
- Return type:
References | None
- store_dark(request, mean_dark, n_frames)[source]#
- Parameters:
request (AcquisitionRequest)
mean_dark (ndarray)
n_frames (int)
- Return type:
References
- store_gain(request, mean_flood, n_frames)[source]#
Store a gain reference from a mean flood frame (dark-subtracted here).
- Parameters:
request (AcquisitionRequest)
mean_flood (ndarray)
n_frames (int)
- Return type:
References
- take_dark(request, n_frames=None)[source]#
- Parameters:
request (AcquisitionRequest)
n_frames (int | None)
- Return type:
References
- take_gain(request, n_frames=None)[source]#
- Parameters:
request (AcquisitionRequest)
n_frames (int | None)
- Return type:
References
- synthesize_gain(request, dose_e_per_px=None)[source]#
A well-dosed gain reference without simulating hundreds of flood frames.
A good gain reference integrates thousands of electrons per pixel, which at a DE sensor’s ~10 e/px/frame full well means hundreds of frames. This returns the detector’s true flat field with the residual shot noise such a reference would have: relative noise sqrt((1 + cv^2) / dose).
- Parameters:
request (AcquisitionRequest)
dose_e_per_px (float | None)
- Return type:
References
- references(request, *, gain=True)[source]#
References for
request; missing ones are provided like a prepared operator would.The dark reference is measured through the twin. A missing gain reference is
synthesize_gain()(well dosed); usetake_gain()or a Gain-mode acquisition to measure one frame by frame instead.- Parameters:
request (AcquisitionRequest)
gain (bool)
- Return type:
References
- acquire(request, *, units='electrons', gain=True, pace=False)[source]#
Integrated, dark/gain-corrected image of
request.units: “electrons” (divide by the camera’s ADU/e at the column’s HT), “adu” (corrected ADU) or “raw” (plain sum, no correction).- Parameters:
request (AcquisitionRequest)
units (str)
gain (bool)
pace (bool)
- Return type: