Transforms¶
- class ionworkspipeline.data_fits.transforms.Transform(parameter, name, monotonic_transform, normalize)¶
Base class for parameter transformations.
This class provides functionality to transform parameters between different spaces (e.g., log space, exponential space) while maintaining the parameter bounds and initial values. Transforms can be chained together.
Parameters¶
- parameterTransform or Parameter
The parameter to transform. Can be either a Transform object or a Parameter object.
- namestr
Name of the transformed parameter. If None, will be generated from the transform type.
- monotonic_transformbool
Whether the transform is monotonic. Affects how bounds are transformed.
- normalizebool, optional
Whether to normalize the parameter values.
Attributes¶
- parentTransform or None
The parent transform in a chain of transforms.
- childTransform or Parameter
The child transform/parameter in a chain of transforms.
- base_parameterParameter
The original parameter being transformed.
- monotonic_transformbool
Whether this transform is monotonic.
Extends:
ionworkspipeline.data_fits.parameter.Parameter
- property bounds¶
Returns the corrected parameter bounds
- property initial_value¶
Returns the corrected initial value
- inverse_transform(value)¶
Apply the inverse transform through the chain.
Applies inverse transforms in reverse order from current transform down to base parameter.
Parameters¶
- valuefloat or None
Value to inverse transform. If None, returns None.
Returns¶
- float or None
The inverse transformed value.
- is_monotonic_transform()¶
Check if the complete transform chain is monotonic.
A transform chain is monotonic if it has an even number of non-monotonic transforms. For example: Inverse(Negate(x)) is monotonic because both transforms are non-monotonic.
Returns¶
- bool
True if the complete transform chain is monotonic.
- property prior¶
Returns the prior
- to_dict(name)¶
Convert the transform to a dictionary of parameters for fitting.
This method creates two entries: 1. A transformed parameter with the transformed name and bounds 2. An expression that defines how to convert back from the transformed parameter to the original parameter
This is used by the DataFit class to handle parameter transformations during the fitting process.
Parameters¶
- namestr
The name to use for the parameter in the model. This may be different from the parameter’s internal name.
Returns¶
- dict
A dictionary with two entries: - transformed_name: Parameter object with transformed bounds/initial values - original_name: PyBaMM expression for converting back to original space
- transform(value)¶
Transform a value through the chain of transforms.
Applies all transforms in the chain from base parameter up to the current transform.
Parameters¶
- valuefloat or None
Value to transform. If None, returns None.
Returns¶
- float or None
The transformed value.
- static transform_name(name)¶
Transform a parameter name for this transform type.
Must be implemented by subclasses.
Parameters¶
- namestr
Name to transform.
Returns¶
- str
The transformed name.
- class ionworkspipeline.data_fits.transforms.Log(parameter, name=None, normalize=None)¶
Natural logarithm transform.
Transforms a parameter by taking its natural logarithm. Only works with positive values.
Parameters¶
- parameterTransform or Parameter
The parameter to transform.
- namestr, optional
Name of the transformed parameter. If None, will be “log(parameter_name)”.
- normalizebool, optional
Whether to normalize the parameter values.
Notes¶
The transform is monotonic
Input values must be positive
- class ionworkspipeline.data_fits.transforms.Exp(parameter, name=None, normalize=None)¶
Exponential transform.
Transforms a parameter by taking e raised to the power of the parameter value.
Parameters¶
- parameterTransform or Parameter
The parameter to transform.
- namestr, optional
Name of the transformed parameter. If None, will be “exp(parameter_name)”.
- normalizebool, optional
Whether to normalize the parameter values.
Notes¶
The transform is monotonic
- class ionworkspipeline.data_fits.transforms.Log10(parameter, name=None, normalize=None)¶
Logarithm base 10 transform.
Transforms a parameter by taking its base-10 logarithm. Only works with positive values.
Parameters¶
- parameterTransform or Parameter
The parameter to transform.
- namestr, optional
Name of the transformed parameter. If None, will be “log10(parameter_name)”.
- normalizebool, optional
Whether to normalize the parameter values.
Notes¶
The transform is monotonic
Input values must be positive
- class ionworkspipeline.data_fits.transforms.Pow10(parameter, name=None, normalize=None)¶
Power of 10 transform.
Transforms a parameter by raising 10 to the power of the parameter value.
Parameters¶
- parameterTransform or Parameter
The parameter to transform.
- namestr, optional
Name of the transformed parameter. If None, will be “pow10(parameter_name)”.
- normalizebool, optional
Whether to normalize the parameter values.
Notes¶
The transform is monotonic
- class ionworkspipeline.data_fits.transforms.Inverse(parameter, name=None, normalize=None)¶
Inverse (1/x) transform.
Transforms a parameter by taking its reciprocal (1/x). Cannot be used with zero values.
Parameters¶
- parameterTransform or Parameter
The parameter to transform.
- namestr, optional
Name of the transformed parameter. If None, will be “inv(parameter_name)”.
- normalizebool, optional
Whether to normalize the parameter values.
Notes¶
The transform is not monotonic
Input values cannot be zero
- class ionworkspipeline.data_fits.transforms.Negate(parameter, name=None, normalize=None)¶
Negate transform.
Transforms a parameter by negating its value (-x).
Parameters¶
- parameterTransform or Parameter
The parameter to transform.
- namestr, optional
Name of the transformed parameter. If None, will be “neg(parameter_name)”.
- normalizebool, optional
Whether to normalize the parameter values.
Notes¶
The transform is not monotonic
- class ionworkspipeline.data_fits.transforms.Identity(parameter, name=None, normalize=None)¶
Identity transform.
A transform that returns the input unchanged. Useful as a placeholder or for testing.
Parameters¶
- parameterTransform or Parameter
The parameter to transform.
- namestr, optional
Name of the transformed parameter. If None, will be “Identity(parameter_name)”.
- normalizebool, optional
Whether to normalize the parameter values.
Notes¶
The transform is monotonic