PdfGetXAverage#

PdfGetXAverage consumes the integrated XRPD signal stored in an NXdata group and produces one or more averaged intensity profiles.

When to use it#

Use this task as the entry point of the pipeline when you want to reduce noise on repeated scans prior to running PDFgetX3.
If you already have a single intensity curve you may skip the task and supply the radial, intensity, and info values directly to PdfGetXProcessor.

Inputs#

  • nxdata_url (required): silx:// style URL pointing to the NXdata group exported by IntegrateBlissScan.

  • average_every (optional): Number of frames to average. Accepts "all", 1, or any positive integer divisor of the frame count.

Outputs#

  • radial: One-dimensional array containing the Q (or r) axis.

  • intensity: Either a single profile or a stack of averaged profiles depending on average_every.

  • info: Dictionary of metadata mirrored from the source file (including nb_avg, radial_units, and wavelength).

Behaviour#

  • When average_every="all" the task returns a single averaged profile and updates info["nb_avg"] with the total number of frames.

  • When average_every=1 the task forwards the data unchanged.

  • For any other integer the task emits a stack of averaged profiles and records the chunk sizes in info["nb_avg"].

from ewokspdf.tasks.average import PdfGetXAverage

task = PdfGetXAverage()
task(nxdata_url="silx:///data/sample.h5::/entry/integrate/data", average_every="all")

radial = task.outputs.radial      # numpy.ndarray
intensity = task.outputs.intensity