rm_lite.utils.fitting¶
Attributes¶
Classes¶
Results of a Gaussian FDF fit |
|
Results of a Stokes I fit |
|
Base class for protocol classes. |
Functions¶
|
Find the best AIC for a set of AICs using Occam's razor. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Module Contents¶
- class rm_lite.utils.fitting.FDFFitResult¶
Bases:
NamedTupleResults of a Gaussian FDF fit
- class rm_lite.utils.fitting.FitResult¶
Bases:
NamedTupleResults of a Stokes I fit
- pcov: numpy.typing.ArrayLike¶
Covariance matrix of the fit
- popt: numpy.typing.ArrayLike¶
Best fit parameters
- stokes_i_model_func: StokesIModel¶
Function of the best fit model
- class rm_lite.utils.fitting.StokesIModel¶
Bases:
ProtocolBase class for protocol classes.
Protocol classes are defined as:
class Proto(Protocol): def meth(self) -> int: ...
Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing).
For example:
class C: def meth(self) -> int: return 0 def func(x: Proto) -> int: return x.meth() func(C()) # Passes static type check
See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:
class GenProto[T](Protocol): def meth(self) -> T: ...
- __call__(x: numpy.typing.NDArray[numpy.float64], *params) numpy.typing.NDArray[numpy.float64]¶
- rm_lite.utils.fitting.best_aic_func(aics: numpy.typing.NDArray[numpy.float64], n_param: numpy.typing.NDArray[numpy.int32]) tuple[float, int, int]¶
Find the best AIC for a set of AICs using Occam’s razor.
- rm_lite.utils.fitting.dynamic_fit(freq_arr_hz: numpy.typing.NDArray[numpy.float64], ref_freq_hz: float, stokes_i_arr: numpy.typing.NDArray[numpy.float64], stokes_i_error_arr: numpy.typing.NDArray[numpy.float64], fit_order: int = 2, fit_type: Literal['log', 'linear'] = 'log') FitResult¶
- rm_lite.utils.fitting.fit_fdf(fdf_to_fit_arr: numpy.typing.NDArray[numpy.float64], phi_arr_radm2: numpy.typing.NDArray[numpy.float64], fwhm_fdf_radm2: float) FDFFitResult¶
- rm_lite.utils.fitting.fit_rmsf(rmsf_to_fit_arr: numpy.typing.NDArray[numpy.float64], phi_double_arr_radm2: numpy.typing.NDArray[numpy.float64], fwhm_rmsf_radm2: float) float¶
- rm_lite.utils.fitting.fit_stokes_i_model(freq_arr_hz: numpy.typing.NDArray[numpy.float64], ref_freq_hz: float, stokes_i_arr: numpy.typing.NDArray[numpy.float64], stokes_i_error_arr: numpy.typing.NDArray[numpy.float64], fit_order: int = 2, fit_type: Literal['log', 'linear'] = 'log') FitResult¶
- rm_lite.utils.fitting.gaussian(x: numpy.typing.NDArray[numpy.float64], amplitude: float | complex, mean: float, stddev: float | None = None, fwhm: float | None = None) numpy.typing.NDArray[numpy.float64]¶
- rm_lite.utils.fitting.gaussian_integrand(amplitude: float, stddev: float | None = None, fwhm: float | None = None) float¶
- rm_lite.utils.fitting.polynomial(order: int) StokesIModel¶
- rm_lite.utils.fitting.power_law(order: int) StokesIModel¶
- rm_lite.utils.fitting.static_fit(freq_arr_hz: numpy.typing.NDArray[numpy.float64], ref_freq_hz: float, stokes_i_arr: numpy.typing.NDArray[numpy.float64], stokes_i_error_arr: numpy.typing.NDArray[numpy.float64], fit_order: int = 2, fit_type: Literal['log', 'linear'] = 'log') FitResult¶
- rm_lite.utils.fitting.unit_centred_gaussian(x: numpy.typing.NDArray[numpy.float64], stddev: float | None = None, fwhm: float | None = None) numpy.typing.NDArray[numpy.float64]¶
- rm_lite.utils.fitting.unit_gaussian(x: numpy.typing.NDArray[numpy.float64], mean: float, stddev: float | None = None, fwhm: float | None = None) numpy.typing.NDArray[numpy.float64]¶
- rm_lite.utils.fitting.GAUSSIAN_SIGMA_TO_FWHM¶