Source code for paws.core.operations.PROCESSING.SAXS.SpectrumProfiler

import numpy as np
from collections import OrderedDict

from ... import Operation as opmod 
from ...Operation import Operation
from saxskit import saxs_math 

inputs = OrderedDict(
    q_I=None,
    dI=None)
outputs = OrderedDict(
    features=None)

[docs]class SpectrumProfiler(Operation): """Profile a SAXS spectrum and return some numerical metrics. This operation profiles a SAXS spectrum (I(q) vs. q) by taking various scalar quantities from the data. This Operation is somewhat robust for noisy data, but any preprocessing (background subtraction, smoothing, or other cleaning) should be performed beforehand. """ def __init__(self): super(SpectrumProfiler, self).__init__(inputs, outputs) self.input_doc['q_I'] = 'n-by-2 array of q(1/Angstrom) versus I(arb).' self.output_doc['features'] = 'dict profiling the input spectrum. '\ 'See the documentation of saxskit.saxs_fit.profile_spectrum().'
[docs] def run(self): q_I = self.inputs['q_I'] d_prof = saxs_math.profile_spectrum(q_I) self.outputs['features'] = d_prof