Engine Definition (p.engines.engine_00)#

DM#

DM(Param)#

default = Param({})

DM.numiter(int)#

Total number of iterations

For on-the-fly (live) processing, the reconstruction engine will iterate at least this many times after all data has been loaded.

default = 20 (>1)

DM.numiter_contiguous(int)#

Number of iterations without interruption

The engine will not return control to the caller until this number of iterations is completed (not processing server requests, I/O operations, …).

default = 1 (>1)

DM.probe_support(float, NoneType)#

Valid probe area as fraction of the probe frame

Defines a circular area centered on the probe frame, in which the probe is allowed to be nonzero.

default = 0.7 (>0.0)

DM.probe_fourier_support(float, NoneType)#

Valid probe area in frequency domain as fraction of the probe frame

Defines a circular area centered on the probe frame (in frequency domain), in which the probe is allowed to be nonzero.

default = None (>0.0)

DM.record_local_error(bool)#

If True, save the local map of errors into the runtime dictionary.

default = False

DM.position_refinement(Param, bool)#

If True refine scan positions

default = Param({})

DM.position_refinement.method(str)#

Annealing or GridSearch

default = 'Annealing'

DM.position_refinement.start(int)#

Number of iterations until position refinement starts

If None, position refinement starts at first iteration

default = None

DM.position_refinement.stop(int)#

Number of iterations after which positon refinement stops

If None, position refinement stops after last iteration

default = None

DM.position_refinement.interval(int)#

Frequency of position refinement

default = 1

DM.position_refinement.nshifts(int)#

Number of random shifts calculated in each position refinement step (has to be multiple of 4)

default = 4

DM.position_refinement.amplitude(float)#

Distance from original position per random shift [m]

default = 1e-06

DM.position_refinement.amplitude_decay(bool)#

After each interation, multiply amplitude by factor (stop - iteration) / (stop - start)

default = True

DM.position_refinement.max_shift(float)#

Maximum distance from original position [m]

default = 2e-06

DM.position_refinement.metric(str)#

Error metric, can choose between “fourier” and “photon”

default = 'fourier'

DM.position_refinement.record(bool)#

record movement of positions

default = False

DM.probe_update_start(int)#

Number of iterations before probe update starts

default = 2 (>0)

DM.subpix_start(int)#

Number of iterations before starting subpixel interpolation

default = 0 (>0)

DM.subpix(str)#

Subpixel interpolation; ‘fourier’,’linear’ or None for no interpolation

default = 'linear'

DM.update_object_first(bool)#

If True update object before probe

default = True

DM.overlap_converge_factor(float)#

Threshold for interruption of the inner overlap loop

The inner overlap loop refines the probe and the object simultaneously. This loop is escaped as soon as the overall change in probe, relative to the first iteration, is less than this value.

default = 0.05 (>0.0)

DM.overlap_max_iterations(int)#

Maximum of iterations for the overlap constraint inner loop

default = 10 (>1)

DM.probe_inertia(float)#

Weight of the current probe estimate in the update

default = 1e-09 (>0.0)

DM.object_inertia(float)#

Weight of the current object in the update

default = 0.0001 (>0.0)

DM.fourier_power_bound(float)#

If rms error of model vs diffraction data is smaller than this value, Fourier constraint is met

For Poisson-sampled data, the theoretical value for this parameter is 1/4. Set this value higher for noisy data. By default, power bound is calculated using fourier_relax_factor

default = None

DM.fourier_relax_factor(float)#

A factor used to calculate the Fourier power bound as 0.25 * fourier_relax_factor**2 * maximum power in diffraction data

Set this value higher for noisy data.

default = 0.05 (>0.0)

DM.obj_smooth_std(float)#

Gaussian smoothing (pixel) of the current object prior to update

If None, smoothing is deactivated. This smoothing can be used to reduce the amplitude of spurious pixels in the outer, least constrained areas of the object.

default = None (>0.0)

DM.clip_object(tuple)#

Clip object amplitude into this interval

default = None

DM.probe_center_tol(float)#

Pixel radius around optical axes that the probe mass center must reside in

default = None (>0.0)

DM.compute_log_likelihood(bool)#

A switch for computing the log-likelihood error (this can impact the performance of the engine)

default = True

DM.alpha(float)#

Mix parameter between Difference Map (alpha=1.) and Alternating Projections (alpha=0.)

default = 1.0 (>0.0)

DM.name(str)#

default = 'DM'

RAAR#

RAAR(Param)#

default = Param({})

RAAR.numiter(int)#

Total number of iterations

For on-the-fly (live) processing, the reconstruction engine will iterate at least this many times after all data has been loaded.

default = 20 (>1)

RAAR.numiter_contiguous(int)#

Number of iterations without interruption

The engine will not return control to the caller until this number of iterations is completed (not processing server requests, I/O operations, …).

default = 1 (>1)

RAAR.probe_support(float, NoneType)#

Valid probe area as fraction of the probe frame

Defines a circular area centered on the probe frame, in which the probe is allowed to be nonzero.

default = 0.7 (>0.0)

RAAR.probe_fourier_support(float, NoneType)#

Valid probe area in frequency domain as fraction of the probe frame

Defines a circular area centered on the probe frame (in frequency domain), in which the probe is allowed to be nonzero.

default = None (>0.0)

RAAR.record_local_error(bool)#

If True, save the local map of errors into the runtime dictionary.

default = False

RAAR.position_refinement(Param, bool)#

If True refine scan positions

default = Param({})

RAAR.position_refinement.method(str)#

Annealing or GridSearch

default = 'Annealing'

RAAR.position_refinement.start(int)#

Number of iterations until position refinement starts

If None, position refinement starts at first iteration

default = None

RAAR.position_refinement.stop(int)#

Number of iterations after which positon refinement stops

If None, position refinement stops after last iteration

default = None

RAAR.position_refinement.interval(int)#

Frequency of position refinement

default = 1

RAAR.position_refinement.nshifts(int)#

Number of random shifts calculated in each position refinement step (has to be multiple of 4)

default = 4

RAAR.position_refinement.amplitude(float)#

Distance from original position per random shift [m]

default = 1e-06

RAAR.position_refinement.amplitude_decay(bool)#

After each interation, multiply amplitude by factor (stop - iteration) / (stop - start)

default = True

RAAR.position_refinement.max_shift(float)#

Maximum distance from original position [m]

default = 2e-06

RAAR.position_refinement.metric(str)#

Error metric, can choose between “fourier” and “photon”

default = 'fourier'

RAAR.position_refinement.record(bool)#

record movement of positions

default = False

RAAR.probe_update_start(int)#

Number of iterations before probe update starts

default = 2 (>0)

RAAR.subpix_start(int)#

Number of iterations before starting subpixel interpolation

default = 0 (>0)

RAAR.subpix(str)#

Subpixel interpolation; ‘fourier’,’linear’ or None for no interpolation

default = 'linear'

RAAR.update_object_first(bool)#

If True update object before probe

default = True

RAAR.overlap_converge_factor(float)#

Threshold for interruption of the inner overlap loop

The inner overlap loop refines the probe and the object simultaneously. This loop is escaped as soon as the overall change in probe, relative to the first iteration, is less than this value.

default = 0.05 (>0.0)

RAAR.overlap_max_iterations(int)#

Maximum of iterations for the overlap constraint inner loop

default = 10 (>1)

RAAR.probe_inertia(float)#

Weight of the current probe estimate in the update

default = 1e-09 (>0.0)

RAAR.object_inertia(float)#

Weight of the current object in the update

default = 0.0001 (>0.0)

RAAR.fourier_power_bound(float)#

If rms error of model vs diffraction data is smaller than this value, Fourier constraint is met

For Poisson-sampled data, the theoretical value for this parameter is 1/4. Set this value higher for noisy data. By default, power bound is calculated using fourier_relax_factor

default = None

RAAR.fourier_relax_factor(float)#

A factor used to calculate the Fourier power bound as 0.25 * fourier_relax_factor**2 * maximum power in diffraction data

Set this value higher for noisy data.

default = 0.05 (>0.0)

RAAR.obj_smooth_std(float)#

Gaussian smoothing (pixel) of the current object prior to update

If None, smoothing is deactivated. This smoothing can be used to reduce the amplitude of spurious pixels in the outer, least constrained areas of the object.

default = None (>0.0)

RAAR.clip_object(tuple)#

Clip object amplitude into this interval

default = None

RAAR.probe_center_tol(float)#

Pixel radius around optical axes that the probe mass center must reside in

default = None (>0.0)

RAAR.compute_log_likelihood(bool)#

A switch for computing the log-likelihood error (this can impact the performance of the engine)

default = True

RAAR.beta(float)#

Beta parameter for RAAR algorithm

default = 0.75 (>0.0)

RAAR.name(str)#

default = 'RAAR'

EPIE#

EPIE(Param)#

default = Param({})

EPIE.numiter(int)#

Total number of iterations

For on-the-fly (live) processing, the reconstruction engine will iterate at least this many times after all data has been loaded.

default = 20 (>1)

EPIE.numiter_contiguous(int)#

Number of iterations without interruption

The engine will not return control to the caller until this number of iterations is completed (not processing server requests, I/O operations, …).

default = 1 (>1)

EPIE.probe_support(float, NoneType)#

Valid probe area as fraction of the probe frame

Defines a circular area centered on the probe frame, in which the probe is allowed to be nonzero.

default = 0.7 (>0.0)

EPIE.probe_fourier_support(float, NoneType)#

Valid probe area in frequency domain as fraction of the probe frame

Defines a circular area centered on the probe frame (in frequency domain), in which the probe is allowed to be nonzero.

default = None (>0.0)

EPIE.record_local_error(bool)#

If True, save the local map of errors into the runtime dictionary.

default = False

EPIE.position_refinement(Param, bool)#

If True refine scan positions

default = Param({})

EPIE.position_refinement.method(str)#

Annealing or GridSearch

default = 'Annealing'

EPIE.position_refinement.start(int)#

Number of iterations until position refinement starts

If None, position refinement starts at first iteration

default = None

EPIE.position_refinement.stop(int)#

Number of iterations after which positon refinement stops

If None, position refinement stops after last iteration

default = None

EPIE.position_refinement.interval(int)#

Frequency of position refinement

default = 1

EPIE.position_refinement.nshifts(int)#

Number of random shifts calculated in each position refinement step (has to be multiple of 4)

default = 4

EPIE.position_refinement.amplitude(float)#

Distance from original position per random shift [m]

default = 1e-06

EPIE.position_refinement.amplitude_decay(bool)#

After each interation, multiply amplitude by factor (stop - iteration) / (stop - start)

default = True

EPIE.position_refinement.max_shift(float)#

Maximum distance from original position [m]

default = 2e-06

EPIE.position_refinement.metric(str)#

Error metric, can choose between “fourier” and “photon”

default = 'fourier'

EPIE.position_refinement.record(bool)#

record movement of positions

default = False

EPIE.probe_update_start(int)#

Number of iterations before probe update starts

default = 0 (>0)

EPIE.probe_center_tol(float)#

Pixel radius around optical axes that the probe mass center must reside in

default = None (>0.0)

EPIE.compute_log_likelihood(bool)#

A switch for computing the log-likelihood error (this can impact the performance of the engine)

default = True

EPIE.alpha(float)#

Parameter for adjusting the step size of the object update

default = 1.0 (>0.0)

EPIE.beta(float)#

Parameter for adjusting the step size of the probe update

default = 1.0 (>0.0)

EPIE.object_norm_is_global(bool)#

Calculate the object norm based on the global object instead of the local object

default = False

EPIE.name(str)#

default = 'EPIE'

SDR#

SDR(Param)#

default = Param({})

SDR.numiter(int)#

Total number of iterations

For on-the-fly (live) processing, the reconstruction engine will iterate at least this many times after all data has been loaded.

default = 20 (>1)

SDR.numiter_contiguous(int)#

Number of iterations without interruption

The engine will not return control to the caller until this number of iterations is completed (not processing server requests, I/O operations, …).

default = 1 (>1)

SDR.probe_support(float, NoneType)#

Valid probe area as fraction of the probe frame

Defines a circular area centered on the probe frame, in which the probe is allowed to be nonzero.

default = 0.7 (>0.0)

SDR.probe_fourier_support(float, NoneType)#

Valid probe area in frequency domain as fraction of the probe frame

Defines a circular area centered on the probe frame (in frequency domain), in which the probe is allowed to be nonzero.

default = None (>0.0)

SDR.record_local_error(bool)#

If True, save the local map of errors into the runtime dictionary.

default = False

SDR.position_refinement(Param, bool)#

If True refine scan positions

default = Param({})

SDR.position_refinement.method(str)#

Annealing or GridSearch

default = 'Annealing'

SDR.position_refinement.start(int)#

Number of iterations until position refinement starts

If None, position refinement starts at first iteration

default = None

SDR.position_refinement.stop(int)#

Number of iterations after which positon refinement stops

If None, position refinement stops after last iteration

default = None

SDR.position_refinement.interval(int)#

Frequency of position refinement

default = 1

SDR.position_refinement.nshifts(int)#

Number of random shifts calculated in each position refinement step (has to be multiple of 4)

default = 4

SDR.position_refinement.amplitude(float)#

Distance from original position per random shift [m]

default = 1e-06

SDR.position_refinement.amplitude_decay(bool)#

After each interation, multiply amplitude by factor (stop - iteration) / (stop - start)

default = True

SDR.position_refinement.max_shift(float)#

Maximum distance from original position [m]

default = 2e-06

SDR.position_refinement.metric(str)#

Error metric, can choose between “fourier” and “photon”

default = 'fourier'

SDR.position_refinement.record(bool)#

record movement of positions

default = False

SDR.probe_update_start(int)#

Number of iterations before probe update starts

default = 0 (>0)

SDR.probe_center_tol(float)#

Pixel radius around optical axes that the probe mass center must reside in

default = None (>0.0)

SDR.compute_log_likelihood(bool)#

A switch for computing the log-likelihood error (this can impact the performance of the engine)

default = True

SDR.sigma(float)#

Relaxed Fourier reflection parameter.

default = 1 (>0.0)

SDR.tau(float)#

Relaxed modulus constraint parameter.

default = 1 (>0.0)

SDR.beta_probe(float)#

Parameter for adjusting the step size of the probe update

default = 0.1 (>0.0)

SDR.beta_object(float)#

Parameter for adjusting the step size of the object update

default = 0.9 (>0.0)

SDR.name(str)#

default = 'SDR'

ML#

ML(Param)#

default = Param({})

ML.numiter(int)#

Total number of iterations

For on-the-fly (live) processing, the reconstruction engine will iterate at least this many times after all data has been loaded.

default = 20 (>1)

ML.numiter_contiguous(int)#

Number of iterations without interruption

The engine will not return control to the caller until this number of iterations is completed (not processing server requests, I/O operations, …).

default = 1 (>1)

ML.probe_support(float, NoneType)#

Valid probe area as fraction of the probe frame

Defines a circular area centered on the probe frame, in which the probe is allowed to be nonzero.

default = 0.7 (>0.0)

ML.probe_fourier_support(float, NoneType)#

Valid probe area in frequency domain as fraction of the probe frame

Defines a circular area centered on the probe frame (in frequency domain), in which the probe is allowed to be nonzero.

default = None (>0.0)

ML.record_local_error(bool)#

If True, save the local map of errors into the runtime dictionary.

default = False

ML.position_refinement(Param, bool)#

If True refine scan positions

default = Param({})

ML.position_refinement.method(str)#

Annealing or GridSearch

default = 'Annealing'

ML.position_refinement.start(int)#

Number of iterations until position refinement starts

If None, position refinement starts at first iteration

default = None

ML.position_refinement.stop(int)#

Number of iterations after which positon refinement stops

If None, position refinement stops after last iteration

default = None

ML.position_refinement.interval(int)#

Frequency of position refinement

default = 1

ML.position_refinement.nshifts(int)#

Number of random shifts calculated in each position refinement step (has to be multiple of 4)

default = 4

ML.position_refinement.amplitude(float)#

Distance from original position per random shift [m]

default = 1e-06

ML.position_refinement.amplitude_decay(bool)#

After each interation, multiply amplitude by factor (stop - iteration) / (stop - start)

default = True

ML.position_refinement.max_shift(float)#

Maximum distance from original position [m]

default = 2e-06

ML.position_refinement.metric(str)#

Error metric, can choose between “fourier” and “photon”

default = 'fourier'

ML.position_refinement.record(bool)#

record movement of positions

default = False

ML.name(str)#

default = 'ML'

ML.ML_type(str)#

Likelihood model

One of ‘gaussian’, poisson’ or ‘euclid’.

default = 'gaussian'

ML.floating_intensities(bool)#

Adaptive diffraction pattern rescaling

If True, allow for adaptative rescaling of the diffraction pattern intensities (to correct for incident beam intensity fluctuations).

default = False

ML.intensity_renormalization(float)#

Rescales the intensities so they can be interpreted as Poisson counts.

default = 1.0 (>0.0)

ML.reg_del2(bool)#

Whether to use a Gaussian prior (smoothing) regularizer

default = False

ML.reg_del2_amplitude(float)#

Amplitude of the Gaussian prior if used

default = 0.01 (>0.0)

ML.smooth_gradient(float)#

Smoothing preconditioner

Sigma for gaussian filter (turned off if 0.)

default = 0.0

ML.smooth_gradient_decay(float)#

Decay rate for smoothing preconditioner

Sigma for gaussian filter will reduce exponentially at this rate

default = 0.0

ML.scale_precond(bool)#

Whether to use the object/probe scaling preconditioner

This parameter can give faster convergence for weakly scattering samples.

default = False

ML.scale_probe_object(float)#

Relative scale of probe to object

default = 1.0 (>0.0)

ML.probe_update_start(int)#

Number of iterations before probe update starts

default = 2 (>0)

ML.poly_line_coeffs(str)#

How many coefficients to be used in the the linesearch

choose between the ‘quadratic’ approximation (default) or ‘all’

default = 'quadratic'

DM_3dBragg#

DM_3dBragg(Param)#

default = Param({})

DM_3dBragg.numiter(int)#

Total number of iterations

For on-the-fly (live) processing, the reconstruction engine will iterate at least this many times after all data has been loaded.

default = 20 (>1)

DM_3dBragg.numiter_contiguous(int)#

Number of iterations without interruption

The engine will not return control to the caller until this number of iterations is completed (not processing server requests, I/O operations, …).

default = 1 (>1)

DM_3dBragg.probe_support(float, NoneType)#

Valid probe area as fraction of the probe frame

Defines a circular area centered on the probe frame, in which the probe is allowed to be nonzero.

default = 0.7 (>0.0)

DM_3dBragg.probe_fourier_support(float, NoneType)#

Valid probe area in frequency domain as fraction of the probe frame

Defines a circular area centered on the probe frame (in frequency domain), in which the probe is allowed to be nonzero.

default = None (>0.0)

DM_3dBragg.record_local_error(bool)#

If True, save the local map of errors into the runtime dictionary.

default = False

DM_3dBragg.position_refinement(Param, bool)#

If True refine scan positions

default = Param({})

DM_3dBragg.position_refinement.method(str)#

Annealing or GridSearch

default = 'Annealing'

DM_3dBragg.position_refinement.start(int)#

Number of iterations until position refinement starts

If None, position refinement starts at first iteration

default = None

DM_3dBragg.position_refinement.stop(int)#

Number of iterations after which positon refinement stops

If None, position refinement stops after last iteration

default = None

DM_3dBragg.position_refinement.interval(int)#

Frequency of position refinement

default = 1

DM_3dBragg.position_refinement.nshifts(int)#

Number of random shifts calculated in each position refinement step (has to be multiple of 4)

default = 4

DM_3dBragg.position_refinement.amplitude(float)#

Distance from original position per random shift [m]

default = 1e-06

DM_3dBragg.position_refinement.amplitude_decay(bool)#

After each interation, multiply amplitude by factor (stop - iteration) / (stop - start)

default = True

DM_3dBragg.position_refinement.max_shift(float)#

Maximum distance from original position [m]

default = 2e-06

DM_3dBragg.position_refinement.metric(str)#

Error metric, can choose between “fourier” and “photon”

default = 'fourier'

DM_3dBragg.position_refinement.record(bool)#

record movement of positions

default = False

DM_3dBragg.probe_update_start(int)#

Number of iterations before probe update starts

default = 2 (>0)

DM_3dBragg.subpix_start(int)#

Number of iterations before starting subpixel interpolation

default = 0 (>0)

DM_3dBragg.subpix(str)#

Subpixel interpolation; ‘fourier’,’linear’ or None for no interpolation

default = 'linear'

DM_3dBragg.update_object_first(bool)#

If True update object before probe

default = True

DM_3dBragg.overlap_converge_factor(float)#

Threshold for interruption of the inner overlap loop

The inner overlap loop refines the probe and the object simultaneously. This loop is escaped as soon as the overall change in probe, relative to the first iteration, is less than this value.

default = 0.05 (>0.0)

DM_3dBragg.overlap_max_iterations(int)#

Maximum of iterations for the overlap constraint inner loop

default = 10 (>1)

DM_3dBragg.probe_inertia(float)#

Weight of the current probe estimate in the update

default = 1e-09 (>0.0)

DM_3dBragg.object_inertia(float)#

Weight of the current object in the update

default = 0.0001 (>0.0)

DM_3dBragg.fourier_power_bound(float)#

If rms error of model vs diffraction data is smaller than this value, Fourier constraint is met

For Poisson-sampled data, the theoretical value for this parameter is 1/4. Set this value higher for noisy data. By default, power bound is calculated using fourier_relax_factor

default = None

DM_3dBragg.fourier_relax_factor(float)#

A factor used to calculate the Fourier power bound as 0.25 * fourier_relax_factor**2 * maximum power in diffraction data

Set this value higher for noisy data.

default = 0.05 (>0.0)

DM_3dBragg.obj_smooth_std(float)#

Gaussian smoothing (pixel) of the current object prior to update

If None, smoothing is deactivated. This smoothing can be used to reduce the amplitude of spurious pixels in the outer, least constrained areas of the object.

default = None (>0.0)

DM_3dBragg.clip_object(tuple)#

Clip object amplitude into this interval

default = None

DM_3dBragg.probe_center_tol(float)#

Pixel radius around optical axes that the probe mass center must reside in

default = None (>0.0)

DM_3dBragg.compute_log_likelihood(bool)#

A switch for computing the log-likelihood error (this can impact the performance of the engine)

default = True

DM_3dBragg.alpha(float)#

Mix parameter between Difference Map (alpha=1.) and Alternating Projections (alpha=0.)

default = 1.0 (>0.0)

DM_3dBragg.name(str)#

default = 'DM_3dBragg'

DM_3dBragg.sample_support(Param)#

Sample support settings

default = Param({})

DM_3dBragg.sample_support.type(str)#

Sample support geometry

Options are ‘thinlayer’ for one-dimensional support as function of z, ‘rod’ for one-dimensional radial support around the z axis.

default = 'thinlayer'

DM_3dBragg.sample_support.size(float)#

Support thickness or radius

This parameter is ignored when shrink wrapping is used.

default = 2e-07

DM_3dBragg.sample_support.coefficient(float)#

Scaling of region outside the support

Sample amplitude is multiplied by this value outside the support region

default = 0.1 (>0.0, <1.0)

DM_3dBragg.sample_support.shrinkwrap(Param)#

Shrink wrap settings. None for no shrink wrap.

default = Param({})

DM_3dBragg.sample_support.shrinkwrap.smooth(float)#

Shrink wrap smoothing parameter in pixels

Sigma of gaussian with which to smooth object profile before applying shrink wrap. Pass None for no smoothing. Values < .3 make little sense.

default = 1.0 (>0.3)

DM_3dBragg.sample_support.shrinkwrap.cutoff(float)#

Shrink wrap cutoff parameter

The support is truncated where the object profile has decayed to this value relative to the maximum.

default = 0.5

DM_3dBragg.sample_support.shrinkwrap.monotonic(bool)#

Require the object profile to be monotonic

If the object profile increases again after the maximum, then the support is cut off. Set the cutoff parameter low to make this the dominating criterion.

default = True

DM_3dBragg.sample_support.shrinkwrap.start(int)#

Start shrink wrap after this iteration

default = 10

DM_3dBragg.sample_support.shrinkwrap.plot(bool)#

Pass shrink wrap information to the plot client

Puts shrink wrap information in the runtime dict. The plot client can choose to plot it if it likes.

default = False