sas.sascalc.corfunc package

Submodules

sas.sascalc.corfunc.calculation_data module

class sas.sascalc.corfunc.calculation_data.EntryListEnum(new_class_name, /, names, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

Enum with a helper method that gives a string containing all the options

__doc__ = 'Enum with a helper method that gives a string containing all the options'
__module__ = 'sas.sascalc.corfunc.calculation_data'
classmethod options() str
class sas.sascalc.corfunc.calculation_data.ExtrapolationInteractionState(extrapolation_parameters: ExtrapolationParameters, working_line_id: int | None = None, dragging_line_position: float | None = None)

Bases: object

Represents the state of the slider used to control extrapolation parameters

Contains extrapolation parameters along with the representation of the hover state.

__annotate_func__()
__annotations_cache__ = {'dragging_line_position': float | None, 'extrapolation_parameters': <class 'sas.sascalc.corfunc.calculation_data.ExtrapolationParameters'>, 'working_line_id': int | None}
__dataclass_fields__ = {'dragging_line_position': Field(name='dragging_line_position',type=float | None,default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'extrapolation_parameters': Field(name='extrapolation_parameters',type=<class 'sas.sascalc.corfunc.calculation_data.ExtrapolationParameters'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'working_line_id': Field(name='working_line_id',type=int | None,default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)
__dict__ = mappingproxy({'__module__': 'sas.sascalc.corfunc.calculation_data', '__firstlineno__': 107, '__doc__': 'Represents the state of the slider used to control extrapolation parameters\n\nContains extrapolation parameters along with the representation of the hover state.\n', 'working_line_id': None, 'dragging_line_position': None, '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'ExtrapolationInteractionState' objects>, '__weakref__': <attribute '__weakref__' of 'ExtrapolationInteractionState' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__annotations_cache__': {'extrapolation_parameters': <class 'sas.sascalc.corfunc.calculation_data.ExtrapolationParameters'>, 'working_line_id': int | None, 'dragging_line_position': float | None}, '__dataclass_fields__': {'extrapolation_parameters': Field(name='extrapolation_parameters',type=<class 'sas.sascalc.corfunc.calculation_data.ExtrapolationParameters'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'working_line_id': Field(name='working_line_id',type=int | None,default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'dragging_line_position': Field(name='dragging_line_position',type=float | None,default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function ExtrapolationInteractionState.__init__>, '__repr__': <function ExtrapolationInteractionState.__repr__>, '__eq__': <function ExtrapolationInteractionState.__eq__>, '__match_args__': ('extrapolation_parameters', 'working_line_id', 'dragging_line_position'), '__annotate_func__': None})
__doc__ = 'Represents the state of the slider used to control extrapolation parameters\n\nContains extrapolation parameters along with the representation of the hover state.\n'
__eq__(other)

Return self==value.

__firstlineno__ = 107
__hash__ = None
__init__(extrapolation_parameters: ExtrapolationParameters, working_line_id: int | None = None, dragging_line_position: float | None = None) None
__match_args__ = ('extrapolation_parameters', 'working_line_id', 'dragging_line_position')
__module__ = 'sas.sascalc.corfunc.calculation_data'
__replace__(**changes)
__repr__()

Return repr(self).

__static_attributes__ = ()
__weakref__

list of weak references to the object

dragging_line_position: float | None = None
extrapolation_parameters: ExtrapolationParameters
working_line_id: int | None = None
class sas.sascalc.corfunc.calculation_data.ExtrapolationParameters(data_q_min: float, point_1: float, point_2: float, point_3: float, data_q_max: float)

Bases: NamedTuple

Represents the parameters defining extrapolation

__annotate_func__()
__annotations_cache__ = {'data_q_max': <class 'float'>, 'data_q_min': <class 'float'>, 'point_1': <class 'float'>, 'point_2': <class 'float'>, 'point_3': <class 'float'>}
__classdictcell__ = <cell at 0x7f88841ab430: dict object>
__doc__ = 'Represents the parameters defining extrapolation'
__firstlineno__ = 99
__getnewargs__()

Return self as a plain tuple. Used by copy and pickle.

__match_args__ = ('data_q_min', 'point_1', 'point_2', 'point_3', 'data_q_max')
__module__ = 'sas.sascalc.corfunc.calculation_data'
static __new__(_cls, data_q_min: float, point_1: float, point_2: float, point_3: float, data_q_max: float)

Create new instance of ExtrapolationParameters(data_q_min, point_1, point_2, point_3, data_q_max)

__orig_bases__ = (<function NamedTuple>,)
__replace__(**kwds)

Return a new ExtrapolationParameters object replacing specified fields with new values

__repr__()

Return a nicely formatted representation string

__slots__ = ()
__static_attributes__ = ()
_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {}
_fields = ('data_q_min', 'point_1', 'point_2', 'point_3', 'data_q_max')
classmethod _make(iterable)

Make a new ExtrapolationParameters object from a sequence or iterable

_replace(**kwds)

Return a new ExtrapolationParameters object replacing specified fields with new values

data_q_max: float

Alias for field number 4

data_q_min: float

Alias for field number 0

point_1: float

Alias for field number 1

point_2: float

Alias for field number 2

point_3: float

Alias for field number 3

class sas.sascalc.corfunc.calculation_data.Fittable(data: T | None = None, allow_fit: bool = True)

Bases: Generic[T]

Container for parameters that can be fitted by the corfunc perspective

__annotate_func__ = None
__annotations_cache__ = {'allow_fit': 'bool', 'data': 'T | None'}
__dict__ = mappingproxy({'__module__': 'sas.sascalc.corfunc.calculation_data', '__firstlineno__': 9, '__doc__': 'Container for parameters that can be fitted by the corfunc perspective', '__init__': <function Fittable.__init__>, 'clear': <function Fittable.clear>, '__repr__': <function Fittable.__repr__>, '__static_attributes__': ('allow_fit', 'data'), '__orig_bases__': (typing.Generic[~T],), '__dict__': <attribute '__dict__' of 'Fittable' objects>, '__weakref__': <attribute '__weakref__' of 'Fittable' objects>, '__parameters__': (~T,), '__annotations_cache__': {'data': 'T | None', 'allow_fit': 'bool'}})
__doc__ = 'Container for parameters that can be fitted by the corfunc perspective'
__firstlineno__ = 9
__init__(data: T | None = None, allow_fit: bool = True)
__module__ = 'sas.sascalc.corfunc.calculation_data'
__orig_bases__ = (typing.Generic[~T],)
__parameters__ = (~T,)
__repr__()

Return repr(self).

__static_attributes__ = ('allow_fit', 'data')
__weakref__

list of weak references to the object

clear()
class sas.sascalc.corfunc.calculation_data.GuinierData(A: float, B: float)

Bases: object

Parameters for a Guinier model

A: float
B: float
__annotate_func__()
__annotations_cache__ = {'A': <class 'float'>, 'B': <class 'float'>}
__dataclass_fields__ = {'A': Field(name='A',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'B': Field(name='B',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)
__dict__ = mappingproxy({'__module__': 'sas.sascalc.corfunc.calculation_data', '__firstlineno__': 58, '__doc__': 'Parameters for a Guinier model ', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'GuinierData' objects>, '__weakref__': <attribute '__weakref__' of 'GuinierData' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__annotations_cache__': {'A': <class 'float'>, 'B': <class 'float'>}, '__dataclass_fields__': {'A': Field(name='A',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'B': Field(name='B',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function GuinierData.__init__>, '__repr__': <function GuinierData.__repr__>, '__eq__': <function GuinierData.__eq__>, '__match_args__': ('A', 'B'), '__annotate_func__': None})
__doc__ = 'Parameters for a Guinier model '
__eq__(other)

Return self==value.

__firstlineno__ = 58
__hash__ = None
__init__(A: float, B: float) None
__match_args__ = ('A', 'B')
__module__ = 'sas.sascalc.corfunc.calculation_data'
__replace__(**changes)
__repr__()

Return repr(self).

__static_attributes__ = ()
__weakref__

list of weak references to the object

class sas.sascalc.corfunc.calculation_data.LamellarParameters(long_period: float, interface_thickness: float, hard_block_thickness: float, soft_block_thickness: float, core_thickness: float, polydispersity_ryan: float, polydispersity_stribeck: float, local_crystallinity: float)

Bases: object

Lamellar parameters

__annotate_func__()
__annotations_cache__ = {'core_thickness': <class 'float'>, 'hard_block_thickness': <class 'float'>, 'interface_thickness': <class 'float'>, 'local_crystallinity': <class 'float'>, 'long_period': <class 'float'>, 'polydispersity_ryan': <class 'float'>, 'polydispersity_stribeck': <class 'float'>, 'soft_block_thickness': <class 'float'>}
__dataclass_fields__ = {'core_thickness': Field(name='core_thickness',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'hard_block_thickness': Field(name='hard_block_thickness',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'interface_thickness': Field(name='interface_thickness',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'local_crystallinity': Field(name='local_crystallinity',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'long_period': Field(name='long_period',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'polydispersity_ryan': Field(name='polydispersity_ryan',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'polydispersity_stribeck': Field(name='polydispersity_stribeck',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'soft_block_thickness': Field(name='soft_block_thickness',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)
__dict__ = mappingproxy({'__module__': 'sas.sascalc.corfunc.calculation_data', '__firstlineno__': 46, '__doc__': 'Lamellar parameters', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'LamellarParameters' objects>, '__weakref__': <attribute '__weakref__' of 'LamellarParameters' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__annotations_cache__': {'long_period': <class 'float'>, 'interface_thickness': <class 'float'>, 'hard_block_thickness': <class 'float'>, 'soft_block_thickness': <class 'float'>, 'core_thickness': <class 'float'>, 'polydispersity_ryan': <class 'float'>, 'polydispersity_stribeck': <class 'float'>, 'local_crystallinity': <class 'float'>}, '__dataclass_fields__': {'long_period': Field(name='long_period',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'interface_thickness': Field(name='interface_thickness',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'hard_block_thickness': Field(name='hard_block_thickness',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'soft_block_thickness': Field(name='soft_block_thickness',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'core_thickness': Field(name='core_thickness',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'polydispersity_ryan': Field(name='polydispersity_ryan',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'polydispersity_stribeck': Field(name='polydispersity_stribeck',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'local_crystallinity': Field(name='local_crystallinity',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function LamellarParameters.__init__>, '__repr__': <function LamellarParameters.__repr__>, '__eq__': <function LamellarParameters.__eq__>, '__match_args__': ('long_period', 'interface_thickness', 'hard_block_thickness', 'soft_block_thickness', 'core_thickness', 'polydispersity_ryan', 'polydispersity_stribeck', 'local_crystallinity'), '__annotate_func__': None})
__doc__ = 'Lamellar parameters'
__eq__(other)

Return self==value.

__firstlineno__ = 46
__hash__ = None
__init__(long_period: float, interface_thickness: float, hard_block_thickness: float, soft_block_thickness: float, core_thickness: float, polydispersity_ryan: float, polydispersity_stribeck: float, local_crystallinity: float) None
__match_args__ = ('long_period', 'interface_thickness', 'hard_block_thickness', 'soft_block_thickness', 'core_thickness', 'polydispersity_ryan', 'polydispersity_stribeck', 'local_crystallinity')
__module__ = 'sas.sascalc.corfunc.calculation_data'
__replace__(**changes)
__repr__()

Return repr(self).

__static_attributes__ = ()
__weakref__

list of weak references to the object

core_thickness: float
hard_block_thickness: float
interface_thickness: float
local_crystallinity: float
long_period: float
polydispersity_ryan: float
polydispersity_stribeck: float
soft_block_thickness: float
class sas.sascalc.corfunc.calculation_data.LongPeriodMethod(*values)

Bases: EntryListEnum

Methods for estimating the long period

DOUBLE_MIN = 'double-min'
MAX = 'max'
__doc__ = 'Methods for estimating the long period '
__module__ = 'sas.sascalc.corfunc.calculation_data'
__new__(value)
class sas.sascalc.corfunc.calculation_data.PorodData(K: float, sigma: float)

Bases: object

Parameters for a Porod model

K: float
__annotate_func__()
__annotations_cache__ = {'K': <class 'float'>, 'sigma': <class 'float'>}
__dataclass_fields__ = {'K': Field(name='K',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'sigma': Field(name='sigma',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)
__dict__ = mappingproxy({'__module__': 'sas.sascalc.corfunc.calculation_data', '__firstlineno__': 64, '__doc__': 'Parameters for a Porod model ', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'PorodData' objects>, '__weakref__': <attribute '__weakref__' of 'PorodData' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__annotations_cache__': {'K': <class 'float'>, 'sigma': <class 'float'>}, '__dataclass_fields__': {'K': Field(name='K',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'sigma': Field(name='sigma',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function PorodData.__init__>, '__repr__': <function PorodData.__repr__>, '__eq__': <function PorodData.__eq__>, '__match_args__': ('K', 'sigma'), '__annotate_func__': None})
__doc__ = 'Parameters for a Porod model '
__eq__(other)

Return self==value.

__firstlineno__ = 64
__hash__ = None
__init__(K: float, sigma: float) None
__match_args__ = ('K', 'sigma')
__module__ = 'sas.sascalc.corfunc.calculation_data'
__replace__(**changes)
__repr__()

Return repr(self).

__static_attributes__ = ()
__weakref__

list of weak references to the object

sigma: float
class sas.sascalc.corfunc.calculation_data.SettableExtrapolationParameters(point_1: float, point_2: float, point_3: float)

Bases: object

Extrapolation parameters that can be set by the user

__annotate_func__()
__annotations_cache__ = {'point_1': <class 'float'>, 'point_2': <class 'float'>, 'point_3': <class 'float'>}
__dataclass_fields__ = {'point_1': Field(name='point_1',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'point_2': Field(name='point_2',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'point_3': Field(name='point_3',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)
__dict__ = mappingproxy({'__module__': 'sas.sascalc.corfunc.calculation_data', '__firstlineno__': 90, '__doc__': 'Extrapolation parameters that can be set by the user', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'SettableExtrapolationParameters' objects>, '__weakref__': <attribute '__weakref__' of 'SettableExtrapolationParameters' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__annotations_cache__': {'point_1': <class 'float'>, 'point_2': <class 'float'>, 'point_3': <class 'float'>}, '__dataclass_fields__': {'point_1': Field(name='point_1',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'point_2': Field(name='point_2',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'point_3': Field(name='point_3',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function SettableExtrapolationParameters.__init__>, '__repr__': <function SettableExtrapolationParameters.__repr__>, '__eq__': <function SettableExtrapolationParameters.__eq__>, '__match_args__': ('point_1', 'point_2', 'point_3'), '__annotate_func__': None})
__doc__ = 'Extrapolation parameters that can be set by the user'
__eq__(other)

Return self==value.

__firstlineno__ = 90
__hash__ = None
__init__(point_1: float, point_2: float, point_3: float) None
__match_args__ = ('point_1', 'point_2', 'point_3')
__module__ = 'sas.sascalc.corfunc.calculation_data'
__replace__(**changes)
__repr__()

Return repr(self).

__static_attributes__ = ()
__weakref__

list of weak references to the object

point_1: float
point_2: float
point_3: float
class sas.sascalc.corfunc.calculation_data.SupplementaryParameters(tangent_point_z: float, tangent_point_gamma: float, tangent_gradient: float, first_minimum_z: float, first_minimum_gamma: float, first_maximum_z: float, first_maximum_gamma: float, hard_block_z: float, hard_block_gamma: float, interface_z: float, core_z: float, z_range: tuple[float, float], gamma_range: tuple[float, float])

Bases: object

Parameters used for drawing the diagram

__annotate_func__()
__annotations_cache__ = {'core_z': <class 'float'>, 'first_maximum_gamma': <class 'float'>, 'first_maximum_z': <class 'float'>, 'first_minimum_gamma': <class 'float'>, 'first_minimum_z': <class 'float'>, 'gamma_range': tuple[float, float], 'hard_block_gamma': <class 'float'>, 'hard_block_z': <class 'float'>, 'interface_z': <class 'float'>, 'tangent_gradient': <class 'float'>, 'tangent_point_gamma': <class 'float'>, 'tangent_point_z': <class 'float'>, 'z_range': tuple[float, float]}
__dataclass_fields__ = {'core_z': Field(name='core_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'first_maximum_gamma': Field(name='first_maximum_gamma',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'first_maximum_z': Field(name='first_maximum_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'first_minimum_gamma': Field(name='first_minimum_gamma',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'first_minimum_z': Field(name='first_minimum_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'gamma_range': Field(name='gamma_range',type=tuple[float, float],default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'hard_block_gamma': Field(name='hard_block_gamma',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'hard_block_z': Field(name='hard_block_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'interface_z': Field(name='interface_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'tangent_gradient': Field(name='tangent_gradient',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'tangent_point_gamma': Field(name='tangent_point_gamma',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'tangent_point_z': Field(name='tangent_point_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'z_range': Field(name='z_range',type=tuple[float, float],default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)
__dict__ = mappingproxy({'__module__': 'sas.sascalc.corfunc.calculation_data', '__firstlineno__': 29, '__doc__': 'Parameters used for drawing the diagram ', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'SupplementaryParameters' objects>, '__weakref__': <attribute '__weakref__' of 'SupplementaryParameters' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__annotations_cache__': {'tangent_point_z': <class 'float'>, 'tangent_point_gamma': <class 'float'>, 'tangent_gradient': <class 'float'>, 'first_minimum_z': <class 'float'>, 'first_minimum_gamma': <class 'float'>, 'first_maximum_z': <class 'float'>, 'first_maximum_gamma': <class 'float'>, 'hard_block_z': <class 'float'>, 'hard_block_gamma': <class 'float'>, 'interface_z': <class 'float'>, 'core_z': <class 'float'>, 'z_range': tuple[float, float], 'gamma_range': tuple[float, float]}, '__dataclass_fields__': {'tangent_point_z': Field(name='tangent_point_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'tangent_point_gamma': Field(name='tangent_point_gamma',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'tangent_gradient': Field(name='tangent_gradient',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'first_minimum_z': Field(name='first_minimum_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'first_minimum_gamma': Field(name='first_minimum_gamma',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'first_maximum_z': Field(name='first_maximum_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'first_maximum_gamma': Field(name='first_maximum_gamma',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'hard_block_z': Field(name='hard_block_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'hard_block_gamma': Field(name='hard_block_gamma',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'interface_z': Field(name='interface_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'core_z': Field(name='core_z',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'z_range': Field(name='z_range',type=tuple[float, float],default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'gamma_range': Field(name='gamma_range',type=tuple[float, float],default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function SupplementaryParameters.__init__>, '__repr__': <function SupplementaryParameters.__repr__>, '__eq__': <function SupplementaryParameters.__eq__>, '__match_args__': ('tangent_point_z', 'tangent_point_gamma', 'tangent_gradient', 'first_minimum_z', 'first_minimum_gamma', 'first_maximum_z', 'first_maximum_gamma', 'hard_block_z', 'hard_block_gamma', 'interface_z', 'core_z', 'z_range', 'gamma_range'), '__annotate_func__': None})
__doc__ = 'Parameters used for drawing the diagram '
__eq__(other)

Return self==value.

__firstlineno__ = 29
__hash__ = None
__init__(tangent_point_z: float, tangent_point_gamma: float, tangent_gradient: float, first_minimum_z: float, first_minimum_gamma: float, first_maximum_z: float, first_maximum_gamma: float, hard_block_z: float, hard_block_gamma: float, interface_z: float, core_z: float, z_range: tuple[float, float], gamma_range: tuple[float, float]) None
__match_args__ = ('tangent_point_z', 'tangent_point_gamma', 'tangent_gradient', 'first_minimum_z', 'first_minimum_gamma', 'first_maximum_z', 'first_maximum_gamma', 'hard_block_z', 'hard_block_gamma', 'interface_z', 'core_z', 'z_range', 'gamma_range')
__module__ = 'sas.sascalc.corfunc.calculation_data'
__replace__(**changes)
__repr__()

Return repr(self).

__static_attributes__ = ()
__weakref__

list of weak references to the object

core_z: float
first_maximum_gamma: float
first_maximum_z: float
first_minimum_gamma: float
first_minimum_z: float
gamma_range: tuple[float, float]
hard_block_gamma: float
hard_block_z: float
interface_z: float
tangent_gradient: float
tangent_point_gamma: float
tangent_point_z: float
z_range: tuple[float, float]
class sas.sascalc.corfunc.calculation_data.TangentMethod(*values)

Bases: EntryListEnum

Methods for estimating the tangent

HALF_MIN = 'half-min'
INFLECTION = 'inflection'
__doc__ = 'Methods for estimating the tangent '
__module__ = 'sas.sascalc.corfunc.calculation_data'
__new__(value)
class sas.sascalc.corfunc.calculation_data.TransformedData(gamma_1: Data1D, gamma_3: Data1D, idf: Data1D)

Bases: object

Container for the data that is returned by the corfunc transform method

__annotate_func__()
__annotations_cache__ = {'gamma_1': <class 'sasdata.dataloader.data_info.Data1D'>, 'gamma_3': <class 'sasdata.dataloader.data_info.Data1D'>, 'idf': <class 'sasdata.dataloader.data_info.Data1D'>}
__dataclass_fields__ = {'gamma_1': Field(name='gamma_1',type=<class 'sasdata.dataloader.data_info.Data1D'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'gamma_3': Field(name='gamma_3',type=<class 'sasdata.dataloader.data_info.Data1D'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'idf': Field(name='idf',type=<class 'sasdata.dataloader.data_info.Data1D'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)
__dict__ = mappingproxy({'__module__': 'sas.sascalc.corfunc.calculation_data', '__firstlineno__': 21, '__doc__': 'Container for the data that is returned by the corfunc transform method', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'TransformedData' objects>, '__weakref__': <attribute '__weakref__' of 'TransformedData' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__annotations_cache__': {'gamma_1': <class 'sasdata.dataloader.data_info.Data1D'>, 'gamma_3': <class 'sasdata.dataloader.data_info.Data1D'>, 'idf': <class 'sasdata.dataloader.data_info.Data1D'>}, '__dataclass_fields__': {'gamma_1': Field(name='gamma_1',type=<class 'sasdata.dataloader.data_info.Data1D'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'gamma_3': Field(name='gamma_3',type=<class 'sasdata.dataloader.data_info.Data1D'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD), 'idf': Field(name='idf',type=<class 'sasdata.dataloader.data_info.Data1D'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,doc=None,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function TransformedData.__init__>, '__repr__': <function TransformedData.__repr__>, '__eq__': <function TransformedData.__eq__>, '__match_args__': ('gamma_1', 'gamma_3', 'idf'), '__annotate_func__': None})
__doc__ = 'Container for the data that is returned by the corfunc transform method'
__eq__(other)

Return self==value.

__firstlineno__ = 21
__hash__ = None
__init__(gamma_1: Data1D, gamma_3: Data1D, idf: Data1D) None
__match_args__ = ('gamma_1', 'gamma_3', 'idf')
__module__ = 'sas.sascalc.corfunc.calculation_data'
__replace__(**changes)
__repr__()

Return repr(self).

__static_attributes__ = ()
__weakref__

list of weak references to the object

gamma_1: Data1D
gamma_3: Data1D
idf: Data1D

sas.sascalc.corfunc.corfunc_calculator module

This module implements corfunc

exception sas.sascalc.corfunc.corfunc_calculator.CalculationError(msg: str)

Bases: Exception

Error doing calculation

__annotate_func__ = None
__annotations_cache__ = {}
__doc__ = 'Error doing calculation'
__firstlineno__ = 32
__init__(msg: str)
__module__ = 'sas.sascalc.corfunc.corfunc_calculator'
__static_attributes__ = ('msg',)
__weakref__

list of weak references to the object

class sas.sascalc.corfunc.corfunc_calculator.CorfuncCalculator(data: Data1D | None = None, extrapolation_parameters: SettableExtrapolationParameters | None = None, long_period_method: LongPeriodMethod | None = None, tangent_method: TangentMethod | None = None)

Bases: object

__annotate_func__ = None
__annotations_cache__ = {'_background': 'Fittable[float]', '_background_subtracted': 'np.ndarray | None', '_extrapolation_data': 'Data1D | None', '_extrapolation_function': 'SmoothJoin | None', '_extrapolation_parameters': 'SettableExtrapolationParameters | None', '_guinier': 'Fittable[GuinierData]', '_lamellar_parameters': 'LamellarParameters | None', '_porod': 'Fittable[PorodData]', '_supplementary_parameters': 'SupplementaryParameters | None', '_transformed_data': 'TransformedData | None', 'long_period_method': 'LongPeriodMethod | None', 'tangent_method': 'TangentMethod | None'}
__dict__ = mappingproxy({'__module__': 'sas.sascalc.corfunc.corfunc_calculator', '__firstlineno__': 38, '__init__': <function CorfuncCalculator.__init__>, 'reset_calculated_values': <function CorfuncCalculator.reset_calculated_values>, 'extrapolation_parameters': <property object>, 'data': <property object>, 'q_range': <property object>, 'background': <property object>, 'guinier': <property object>, 'porod': <property object>, 'transformed': <property object>, 'lamellar_parameters': <property object>, 'supplementary_parameters': <property object>, 'extrapolation_function': <property object>, 'min_extrapolated': <property object>, 'fit_background': <property object>, 'fit_guinier': <property object>, 'fit_porod': <property object>, 'extrapolated': <property object>, 'run': <function CorfuncCalculator.run>, '_calculate_background': <function CorfuncCalculator._calculate_background>, '_calculate_background_subtracted': <function CorfuncCalculator._calculate_background_subtracted>, '_calculate_porod_parameters': <function CorfuncCalculator._calculate_porod_parameters>, '_calculate_guinier_parameters': <function CorfuncCalculator._calculate_guinier_parameters>, '_calculate_extrapolation_function': <function CorfuncCalculator._calculate_extrapolation_function>, '_calculate_extrapolation_data': <function CorfuncCalculator._calculate_extrapolation_data>, '_calculate_transforms': <function CorfuncCalculator._calculate_transforms>, '_calculate_parameters': <function CorfuncCalculator._calculate_parameters>, 'porod_function': <staticmethod(<function CorfuncCalculator.porod_function>)>, 'guinier_function': <staticmethod(<function CorfuncCalculator.guinier_function>)>, 'porod_fitting_function': <staticmethod(<function CorfuncCalculator.porod_fitting_function>)>, 'porod_fitting_function_expected': <staticmethod(<function CorfuncCalculator.porod_fitting_function_expected>)>, 'porod_fitting_function_observed': <staticmethod(<function CorfuncCalculator.porod_fitting_function_observed>)>, 'calculate_guinier_parameters': <staticmethod(<function CorfuncCalculator.calculate_guinier_parameters>)>, 'calculate_porod_parameters': <staticmethod(<function CorfuncCalculator.calculate_porod_parameters>)>, '__static_attributes__': ('_background', '_background_subtracted', '_data', '_extrapolation_data', '_extrapolation_function', '_extrapolation_parameters', '_guinier', '_lamellar_parameters', '_porod', '_supplementary_parameters', '_transformed_data', 'long_period_method', 'tangent_method'), '__dict__': <attribute '__dict__' of 'CorfuncCalculator' objects>, '__weakref__': <attribute '__weakref__' of 'CorfuncCalculator' objects>, '__doc__': None, '__annotations_cache__': {'_extrapolation_parameters': 'SettableExtrapolationParameters | None', 'tangent_method': 'TangentMethod | None', 'long_period_method': 'LongPeriodMethod | None', '_background': 'Fittable[float]', '_porod': 'Fittable[PorodData]', '_guinier': 'Fittable[GuinierData]', '_background_subtracted': 'np.ndarray | None', '_extrapolation_function': 'SmoothJoin | None', '_extrapolation_data': 'Data1D | None', '_transformed_data': 'TransformedData | None', '_lamellar_parameters': 'LamellarParameters | None', '_supplementary_parameters': 'SupplementaryParameters | None'}})
__doc__ = None
__firstlineno__ = 38
__init__(data: Data1D | None = None, extrapolation_parameters: SettableExtrapolationParameters | None = None, long_period_method: LongPeriodMethod | None = None, tangent_method: TangentMethod | None = None)

Back-end for corfunc calculations

Parameters:
  • data – Input data (Data1D)

  • extrapolation_parameters – SettableExtrapolationParameters object containing the q values use to extrapolate

__module__ = 'sas.sascalc.corfunc.corfunc_calculator'
__static_attributes__ = ('_background', '_background_subtracted', '_data', '_extrapolation_data', '_extrapolation_function', '_extrapolation_parameters', '_guinier', '_lamellar_parameters', '_porod', '_supplementary_parameters', '_transformed_data', 'long_period_method', 'tangent_method')
__weakref__

list of weak references to the object

_calculate_background()

Compute the background level from the Porod region of the data, only do this if background fitting is allowed

_calculate_background_subtracted()

Calculate the data with the background removed

_calculate_extrapolation_data()

Numerically evaluate the extrapolation curve

_calculate_extrapolation_function()
_calculate_guinier_parameters()
_calculate_parameters()

Extract the interesting measurements from a correlation function

_calculate_porod_parameters()

Calculate the Porod parameters

_calculate_transforms()

Calculate the transforms

property background
static calculate_guinier_parameters(q, I)

Fit the Guinier region of the curve using linear least squares

static calculate_porod_parameters(q, I)

Fit the Porod region of the curve

property data: Data1D | None
property extrapolated
property extrapolation_function: Callable | None
property extrapolation_parameters: ExtrapolationParameters | None
property fit_background
property fit_guinier
property fit_porod
property guinier
static guinier_function(A, B, background)
property lamellar_parameters: LamellarParameters
property min_extrapolated: float | None
property porod
static porod_fitting_function(q, K, sigma, background)

Equation for the Porod region of the data

static porod_fitting_function_expected(q, K, sigma, background)

Expected value function used for fitting Porod region (has a q^2 weighting)

static porod_fitting_function_observed(q, I)

Observed value function used for fitting Porod region

static porod_function(K, sigma, background)
property q_range: tuple[float, float]
reset_calculated_values()

Resets the calculated values, but does not clear the data or reset the user specified parameters

run()

Execute the calculation

property supplementary_parameters: SupplementaryParameters | None
property transformed
sas.sascalc.corfunc.corfunc_calculator.extract_lamellar_parameters(data: Data1D, guinier_to_data_transition_right: float, data_to_porod_transition_left: float, data_to_porod_transition_right: float, long_period_method: LongPeriodMethod | None = None, tangent_method: TangentMethod | None = None)

Extract lamellar parameters from data using the corfunc calculator

Parameters:
  • data – Data1D object containing QSpace data

  • guinier_to_data_transition_right – Q value at which to end the extrapolation from Guiner to data

  • data_to_porod_transition_left – Q value at which to begin the extrapolation from data to Porod

  • data_to_porod_transition_right – Q value at which to end the extrapolation from data to Porod

  • long_period_method – LongPeriodMethod enum value specifying how to calculate the long period (None autodetects)

  • tangent_method – TangentMethod enum value specifying how to calculate the long period (None autodetects)

Returns:

LamellarParameters object with calculated lamellar parameters

sas.sascalc.corfunc.smoothing module

class sas.sascalc.corfunc.smoothing.Cache(x, y)

Bases: tuple

__annotate_func__ = None
__annotations_cache__ = {}
__doc__ = 'Cache(x, y)'
__getnewargs__()

Return self as a plain tuple. Used by copy and pickle.

__match_args__ = ('x', 'y')
__module__ = 'sas.sascalc.corfunc.smoothing'
static __new__(_cls, x, y)

Create new instance of Cache(x, y)

__replace__(**kwds)

Return a new Cache object replacing specified fields with new values

__repr__()

Return a nicely formatted representation string

__slots__ = ()
_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {}
_fields = ('x', 'y')
classmethod _make(iterable)

Make a new Cache object from a sequence or iterable

_replace(**kwds)

Return a new Cache object replacing specified fields with new values

x

Alias for field number 0

y

Alias for field number 1

class sas.sascalc.corfunc.smoothing.SmoothJoin(left_hand_function: Callable[[ndarray | float | int], ndarray | float | int], right_hand_function: Callable[[ndarray | float | int], ndarray | float | int], start: float, stop: float)

Bases: object

Function that merges two functions, one on the left (small x), one on the right (high x) with a transition region inbetween, specified by [start, stop]

Parameters:
  • left_hand_function – The first curve to interpolate

  • right_hand_function – The second curve to interpolate

  • start – The value at which to start the interpolation

  • stop – The value at which to stop the interpolation

__annotate_func__ = None
__annotations_cache__ = {'_cache': 'Cache | None'}
__call__(*args, **kwargs)

Call self as a function.

__dict__ = mappingproxy({'__module__': 'sas.sascalc.corfunc.smoothing', '__firstlineno__': 10, '__doc__': '\nFunction that merges two functions, one on the left (small x),\none on the right (high x) with a transition region inbetween,\nspecified by [start, stop]\n\n\n:param left_hand_function: The first curve to interpolate\n:param right_hand_function: The second curve to interpolate\n:param start: The value at which to start the interpolation\n:param stop: The value at which to stop the interpolation\n', '__init__': <function SmoothJoin.__init__>, '__call__': <function assure_vectorised_argument.<locals>.wrapper>, '__static_attributes__': ('_cache', 'left_function', 'right_function', 'start', 'stop'), '__dict__': <attribute '__dict__' of 'SmoothJoin' objects>, '__weakref__': <attribute '__weakref__' of 'SmoothJoin' objects>, '__annotations_cache__': {'_cache': 'Cache | None'}})
__doc__ = '\nFunction that merges two functions, one on the left (small x),\none on the right (high x) with a transition region inbetween,\nspecified by [start, stop]\n\n\n:param left_hand_function: The first curve to interpolate\n:param right_hand_function: The second curve to interpolate\n:param start: The value at which to start the interpolation\n:param stop: The value at which to stop the interpolation\n'
__firstlineno__ = 10
__init__(left_hand_function: Callable[[ndarray | float | int], ndarray | float | int], right_hand_function: Callable[[ndarray | float | int], ndarray | float | int], start: float, stop: float)
__module__ = 'sas.sascalc.corfunc.smoothing'
__static_attributes__ = ('_cache', 'left_function', 'right_function', 'start', 'stop')
__weakref__

list of weak references to the object

sas.sascalc.corfunc.smoothing.main()
sas.sascalc.corfunc.smoothing.show_smoothing_function()

Local sanity-check plots for the joiner

sas.sascalc.corfunc.transform_thread module

class sas.sascalc.corfunc.transform_thread.FourierThread(raw_data, extrapolated_data, bg, updatefn=None, completefn=None)

Bases: CalcThread

__annotate_func__ = None
__annotations_cache__ = {}
__doc__ = None
__firstlineno__ = 10
__init__(raw_data, extrapolated_data, bg, updatefn=None, completefn=None)
__module__ = 'sas.sascalc.corfunc.transform_thread'
__static_attributes__ = ('background', 'data', 'extrapolation')
check_if_cancelled()
compute()

Perform a work unit. The subclass will provide details of the arguments.

class sas.sascalc.corfunc.transform_thread.HilbertThread(raw_data, extrapolated_data, bg, updatefn=None, completefn=None)

Bases: CalcThread

__annotate_func__ = None
__annotations_cache__ = {}
__doc__ = None
__firstlineno__ = 91
__init__(raw_data, extrapolated_data, bg, updatefn=None, completefn=None)
__module__ = 'sas.sascalc.corfunc.transform_thread'
__static_attributes__ = ('background', 'data', 'extrapolation')
compute()

Perform a work unit. The subclass will provide details of the arguments.

sas.sascalc.corfunc.vectorisation module

sas.sascalc.corfunc.vectorisation.assure_vectorised_argument(f: Callable)

Allow arguments to a function mapping numpy vectors that would otherwise strictly require numpy vectors, to accept and return floats

Module contents