PdfGetXProcessor#

PdfGetXProcessor is the core numerical task: it feeds the averaged intensity profiles into PDFgetX3 and collects the requested scattering functions.

Inputs#

  • radial: numpy.ndarray describing the scattering axis (Q or r).

  • intensity: Either a single profile (ndim == 1) or a stack of profiles (ndim == 2).

  • info: Metadata dictionary propagated from the averaging stage (wavelength, nb_avg, etc.).

  • pdfgetx_options: Prepared PDFConfig object (see PdfGetXConfig).

Outputs#

  • results: List of PDFGetter instances (one per processed profile). Each instance exposes attributes such as .iq, .sq, .fq, and .gr.

  • info: The same metadata dictionary received as input.

  • pdfgetx_options: The effective configuration, returned for downstream consumers (e.g. exporters).

Notes#

  • diffpy.pdfgetx must be installed; otherwise the task raises an informative import error.

  • Multiple frames are processed sequentially with a single PDFGetter instance whose state is copied after each run.

from ewokspdf.tasks.processor import PdfGetXProcessor

processor = PdfGetXProcessor()
processor(radial=radial_array,
          intensity=intensity_array,
          info=metadata,
          pdfgetx_options=cfg)

results = processor.outputs.results  # list of PDFGetter copies
fq = results[0].fq  # (Q, F(Q)) tuple