SAXS/WAXS tasks#

How to use

These tasks come from ewoksxrpd. It can be installed with

pip install ewoksxrpd

ℹ️ These tasks are used at the following ESRF beamlines: BM02, ID11, ID09, ID16B, ID31

SaveAsciiPattern1D#

Save single diffractogram in ASCII format

Identifier:

ewoksxrpd.tasks.ascii.SaveAsciiPattern1D

Task type:

class

Required inputs:

filename, x, xunits, y

Optional inputs:

header, metadata, yerror

Outputs:

saved

SaveAsciiMultiPattern1D#

Identifier:

ewoksxrpd.tasks.ascii.SaveAsciiMultiPattern1D

Task type:

class

Required inputs:

filenames, x_list, xunits_list, y_list

Optional inputs:

header_list, metadata_list, yerror_list

Outputs:

saved

SaveNexusPatternsAsAscii#

Convert azimuthal integration results from NeXus to ASCII files

One ASCII file is created for each integration pattern in nxdata_url. ASCII files are named from the output_filename_template and the pattern index.

If output_archive_filename is provided, all ASCII files are stored in a single ZIP file. In this case, output_filename_template is the template path of ASCII files inside the ZIP file.

Required inputs:

  • nxdata_url (str): The url of the NXData group storing the azimuthal integration results

  • output_filename_template (str): A string template containing one ‘%d’ field. It is used to generate the filename from the frame number.

  • output_archive_filename (str): Filename of the ZIP file containing all ASCII files. If this is None or the empty string, ZIP compression is disabled.

Optional inputs:

  • header (dict): Information to store in ASCII file header (default: {})

  • enabled (bool): True to enable saving as ASCII files, False to skip task (default: True)

Outputs:

  • filenames (tuple[str]): The names of the created ASCII files or ZIP file

Identifier:

ewoksxrpd.tasks.ascii.SaveNexusPatternsAsAscii

Task type:

class

Required inputs:

nxdata_url, output_filename_template

Optional inputs:

enabled, header, lima_url_template, lima_url_template_args, output_archive_filename, retry_period, retry_timeout

Outputs:

filenames

SubtractBackground#

Background removal with normalization

.. code:

Icor = I  - B / Bmon * Imon
Identifier:

ewoksxrpd.tasks.background.SubtractBackground

Task type:

class

Required inputs:

background, background_monitor, image, monitor

Optional inputs:

lima_url_template, lima_url_template_args, retry_period, retry_timeout

Outputs:

image, monitor

LastLimaImage#

Get the last Lima image from Redis

Identifier:

ewoksxrpd.tasks.bliss.LastLimaImage

Task type:

class

Required inputs:

db_name

Optional inputs:

demo

Outputs:

image

CalibrateSingle#

Single distance and energy calibration. Accepts multiple values for max_rings for sequential refinement.

Identifier:

ewoksxrpd.tasks.calibrate.CalibrateSingle

Task type:

class

Required inputs:

calibrant, detector, energy, geometry, image

Optional inputs:

detector_config, fixed, lima_url_template, lima_url_template_args, max_rings, retry_period, retry_timeout, ring_detector, robust

Outputs:

chi2, detector, detector_config, energy, geometry, rings

CalibrateMulti#

Single energy, multi distance calibration with 1 distance motor.

The images and positions are the diffraction patterns and the motor positions at which those were measured.

The reference_position is the detector position that corresponds to geometry (positions[0] by default).

The sample_position is the position where sample and detector would theoretically coincide (0 by default).

The output energy and geometry correspond to sample_position.

The units of positions, sample_position and reference_position are defined by positionunits_in_meter (1e-3 by default which means the unit is in millimeter).

The parametrization allow deriving energy+geometry from the detector position.

.. code-block:: python

energy, geometry = parametrization(parameters, position)
Identifier:

ewoksxrpd.tasks.calibrate.CalibrateMulti

Task type:

class

Required inputs:

calibrant, detector, energy, geometry, images, positions

Optional inputs:

detector_config, fixed, lima_url_template, lima_url_template_args, max_rings, positionunits_in_meter, reference_position, retry_period, retry_timeout, robust, sample_position

Outputs:

chi2, detector, detector_config, energy, geometry, parameters, parametrization, rings

CalculateGeometry#

Calculate energy and geometry from pyFAI parametrization

Identifier:

ewoksxrpd.tasks.calibrate.CalculateGeometry

Task type:

class

Required inputs:

parameters, parametrization, position

Optional inputs:

lima_url_template, lima_url_template_args, retry_period, retry_timeout

Outputs:

energy, geometry

DiagnoseCalibrateSingleResults#

Quality of a single-distance pyFAI calibration

Identifier:

ewoksxrpd.tasks.diagnostics.DiagnoseCalibrateSingleResults

Task type:

class

Required inputs:

calibrant, detector, energy, geometry, image

Optional inputs:

detector_config, dpi, figsize, filename, fontsize, lima_url_template, lima_url_template_args, pause, retry_period, retry_timeout, rings, scaling, show

Outputs:

saved

DiagnoseCalibrateMultiResults#

Quality of a multi-distance pyFAI calibration

Identifier:

ewoksxrpd.tasks.diagnostics.DiagnoseCalibrateMultiResults

Task type:

class

Required inputs:

calibrant, detector, images, parameters, parametrization, positions

Optional inputs:

detector_config, dpi, figsize, filename, fontsize, lima_url_template, lima_url_template_args, pause, retry_period, retry_timeout, rings, scaling, show

Outputs:

saved

DiagnoseIntegrate1D#

Quality of a pyFAI integration

Identifier:

ewoksxrpd.tasks.diagnostics.DiagnoseIntegrate1D

Task type:

class

Required inputs:

x, xunits, y

Optional inputs:

calibrant, dpi, energy, figsize, filename, fontsize, lima_url_template, lima_url_template_args, pause, retry_period, retry_timeout, scaling, show, yerror

Outputs:

saved

IntegrateSinglePattern#

1D or 2D integration of a single diffraction pattern.

Identifier:

ewoksxrpd.tasks.integrate.IntegrateSinglePattern

Task type:

class

Required inputs:

detector, energy, geometry, image

Optional inputs:

darkcurrent, demo, detector_config, fixed_integration_options, flatfield, integration_options, lima_url_template, lima_url_template_args, mask, maximum_persistent_workers, monitor, monitors, reference, references, retry_period, retry_timeout

Outputs:

azimuthal, azimuthal_units, info, intensity, intensity_error, radial, radial_units

Integrate1D#

DEPRECATED. Use IntegrateSinglePattern instead.

Identifier:

ewoksxrpd.tasks.integrate.Integrate1D

Task type:

class

Required inputs:

detector, energy, geometry, image

Optional inputs:

darkcurrent, demo, detector_config, fixed_integration_options, flatfield, integration_options, lima_url_template, lima_url_template_args, mask, maximum_persistent_workers, monitor, monitors, reference, references, retry_period, retry_timeout

Outputs:

azimuthal, azimuthal_units, info, intensity, intensity_error, radial, radial_units, x, xunits, y, yerror

Integrate1DList#

1D integration of a list of diffraction patterns.

Identifier:

ewoksxrpd.tasks.integrate.Integrate1DList

Task type:

class

Required inputs:

detector, energy, geometry, images, output_file

Optional inputs:

darkcurrent, demo, detector_config, entry_name, fixed_integration_options, flatfield, flush_period, integration_options, lima_url_template, lima_url_template_args, mask, maximum_persistent_workers, monitors, reference, retry_period, retry_timeout

Outputs:

output_uri

IntegrateBlissScan#

1D or 2D integration of a single detector in a single Bliss scan with saving.

Identifier:

ewoksxrpd.tasks.integrate.IntegrateBlissScan

Task type:

class

Required inputs:

detector, detector_name, energy, filename, geometry, output_filename, scan

Optional inputs:

counter_names, darkcurrent, demo, detector_config, external_output_filename, fixed_integration_options, flatfield, flush_period, integration_options, lima_url_template, lima_url_template_args, mask, maximum_persistent_workers, monitor_name, monitors, nxmeasurement_name, nxprocess_as_default, nxprocess_name, reference, references, retry_period, retry_timeout, scan_memory_url, subscan

Outputs:

info, nxdata_url

IntegrateBlissScanWithoutSaving#

1D or 2D integration of a single detector in a single Bliss scan without saving.

Identifier:

ewoksxrpd.tasks.integrate.IntegrateBlissScanWithoutSaving

Task type:

class

Required inputs:

detector, detector_name, energy, filename, geometry, scan

Optional inputs:

counter_names, darkcurrent, demo, detector_config, fixed_integration_options, flatfield, integration_options, lima_url_template, lima_url_template_args, mask, maximum_persistent_workers, monitor_name, monitors, reference, references, retry_period, retry_timeout, scan_memory_url, subscan

Outputs:

azimuthal, azimuthal_units, info, intensity, intensity_error, radial, radial_units

MultiConfigIntegrateSinglePattern#

Multiple integrations of a single diffraction pattern with different configurations

Identifier:

ewoksxrpd.tasks.integrate.MultiConfigIntegrateSinglePattern

Task type:

class

Required inputs:

configs, detector, energy, geometry, image

Optional inputs:

darkcurrent, demo, detector_config, fixed_integration_options, flatfield, integration_options, lima_url_template, lima_url_template_args, mask, maximum_persistent_workers, monitor, monitors, reference, references, retry_period, retry_timeout

Outputs:

azimuthal, azimuthal_units, info, intensity, intensity_error, radial, radial_units

MultiConfigIntegrate1D#

DEPRECATED. Use MultiConfigIntegrateSinglePattern instead.

Identifier:

ewoksxrpd.tasks.integrate.MultiConfigIntegrate1D

Task type:

class

Required inputs:

configs, detector, energy, geometry, image

Optional inputs:

darkcurrent, demo, detector_config, fixed_integration_options, flatfield, integration_options, lima_url_template, lima_url_template_args, mask, maximum_persistent_workers, monitor, monitors, reference, references, retry_period, retry_timeout

Outputs:

azimuthal, azimuthal_units, info, intensity, intensity_error, radial, radial_units, x, xunits, y, yerror

MaskDetection#

The pixels with the same ratio as the monitor ratio within an error margin are considered “good pixels”. The others are masked off.

The error margin monitor_ratio_margin is a fraction of the monitor ratio (0.1 by default).

Masked pixels have value 1. The mask can be smoothed with smooth > 0 to avoid border effects.

.. code:

monitor_ratio = monitor_high / monitor_low
image_ratio = image_high / image_low

bad = abs(image_ratio - monitor_ratio) > monitor_ratio * monitor_ratio_margin
Identifier:

ewoksxrpd.tasks.mask.MaskDetection

Task type:

class

Required inputs:

image1, image2, monitor1, monitor2

Optional inputs:

lima_url_template, lima_url_template_args, monitor_ratio_margin, retry_period, retry_timeout, smooth

Outputs:

mask

SaveNexusPattern1D#

Save single diffractogram in HDF5/NeXus format

Identifier:

ewoksxrpd.tasks.nexus.SaveNexusPattern1D

Task type:

class

Required inputs:

url, x, xunits, y

Optional inputs:

bliss_scan_url, external_url, header, lima_url_template, lima_url_template_args, metadata, nxmeasurement_name, nxprocess_as_default, nxprocess_name, retry_period, retry_timeout, yerror

Outputs:

saved

SaveNexusIntegrated#

Save 1D or 2D integration diffraction patterns in HDF5/NeXus format

Identifier:

ewoksxrpd.tasks.nexus.SaveNexusIntegrated

Task type:

class

Required inputs:

intensity, radial, radial_units, url

Optional inputs:

azimuthal, azimuthal_units, bliss_scan_url, external_url, info, intensity_error, lima_url_template, lima_url_template_args, metadata, nxmeasurement_name, nxprocess_as_default, nxprocess_name, retry_period, retry_timeout

Outputs:

saved

SaveNexusMultiPattern1D#

Identifier:

ewoksxrpd.tasks.nexus.SaveNexusMultiPattern1D

Task type:

class

Required inputs:

url, x_list, xunits, y_list

Optional inputs:

bliss_scan_url, external_url, header_list, lima_url_template, lima_url_template_args, metadata, nxmeasurement_name, nxprocess_as_default, nxprocess_name, retry_period, retry_timeout, yerror_list

Outputs:

saved

PyFaiConfig#

Parse pyFAI calibration and integration parameters.

Optional inputs:

  • energy (float|None): Energy in KeV (priority 1)

  • geometry (dict|None): pyFAI geometry information (priority 1)

  • detector (str|None): Name of the detector (priority 1)

  • detector_config (dict|None): Configuration of the detector (priority 1)

  • mask (str|numpy.ndarray|None): Filename or data of the detector mask (priority 1)

  • flatfield (str|numpy.ndarray|None): Filename or data of the detector flat-field (priority 1)

  • darkcurrent (str|numpy.ndarray|None): Filename or data of the detector dark-current (priority 1)

  • integration_options (dict|None): Extra pyFAI worker or integration parameters (priority 2)

  • filenames (Sequence[str]|None): PyFAI poni or json file name (priority 3, last file has highest priority)

  • filename (str|None): PyFAI poni or json file name (priority 4)

  • calibrant (str|None): Calibrant name

  • darkflatmethod (str|None): Dark and flat-field correction method

Outputs:

  • energy (float): Energy in KeV

  • geometry (dict): pyFAI geometry information

  • detector (str): Name of the detector

  • detector_config (dict): Configuration of the detector

  • mask (str|numpy.ndarray|None): Filename or data of the detector mask

  • flatfield (str|numpy.ndarray|None): Filename or data of the detector flat-field

  • darkcurrent (str|numpy.ndarray|None): Filename or data of the detector dark-current

  • integration_options (dict): Extra pyFAI worker or integration parameters

  • calibrant (str|None): Calibrant name

Identifier:

ewoksxrpd.tasks.pyfaiconfig.PyFaiConfig

Task type:

class

Required inputs:

Optional inputs:

calibrant, darkcurrent, darkflatmethod, detector, detector_config, energy, filename, filenames, flatfield, geometry, integration_options, mask

Outputs:

calibrant, darkcurrent, detector, detector_config, energy, flatfield, geometry, integration_options, mask

SavePyFaiConfig#

Save inputs as pyFAI calibration and integration configuration file (.json)

The configuration is saved as a JSON file following pyFAI configuration format.

Required inputs:

  • output_filename (str): Name of the file where to save pyFAI configuration. Must include the extension

  • energy (float): Energy in KeV

  • geometry (dict): pyFAI geometry information (poni)

  • detector (str): Name of the detector

Optional inputs:

  • mask (str): Filename of the mask to used

  • detector_config (dict): Configuration of the detector

  • integration_options (dict): Extra configuration fields

Outputs:

  • filename (str): Saved filename, same as output_filename

Identifier:

ewoksxrpd.tasks.pyfaiconfig.SavePyFaiConfig

Task type:

class

Required inputs:

detector, energy, geometry, output_filename

Optional inputs:

detector_config, integration_options, mask

Outputs:

filename

SavePyFaiPoniFile#

Save inputs as pyFAI PONI file

Required inputs:

  • output_filename (str): Name of the file where to save pyFAI PONI. Must include extension.

  • energy (float): Energy in KeV

  • geometry (dict): pyFAI geometry information (poni)

  • detector (str): Name of the detector

Optional inputs:

  • detector_config (dict): Configuration of the detector

Outputs:

  • filename (str): Saved filename, same as output_filename

Identifier:

ewoksxrpd.tasks.pyfaiconfig.SavePyFaiPoniFile

Task type:

class

Required inputs:

detector, energy, geometry, output_filename

Optional inputs:

detector_config

Outputs:

filename

SaveImages#

Save images with monitor and other metadata

Identifier:

ewoksxrpd.tasks.save_images.SaveImages

Task type:

class

Required inputs:

image_uris, output_dir

Optional inputs:

ext

Outputs:

output_paths

SumBlissScanImages#

Sum images of a single camera of a single Bliss scan

Identifier:

ewoksxrpd.tasks.sum.SumBlissScanImages

Task type:

class

Required inputs:

detector_name, filename, output_filename, scan

Optional inputs:

background_step, lima_url_template, lima_url_template_args, monitor_name, output_process, retry_period, retry_timeout, scan_memory_url, subscan

Outputs:

monitor, output_uri

SumImages#

Sum images of a single camera from a Bliss scan file

For each scan, images are added in blocks of block_size images (one block with all images by default).

The result contains: * the block sums when sum_type=per_scan or sum_type=both * the sum of the block sums when sum_type=all_scans or sum_type=both

Identifier:

ewoksxrpd.tasks.sum.SumImages

Task type:

class

Required inputs:

detector_name, filename, output_filename

Optional inputs:

block_size, end_image, end_scan, monitor_name, output_entry, output_process, start_image, start_scan, sum_type

Outputs:

monitor_uris, output_uris