The SpecModel Module

This module introduces the SpecModel class and its functionality. The SpecModel class is designed to fit models to an astronomical spectrum using LMFIT.

The SpecModel is always associated with a SpecFit object, which provides the foundational functionality for the fitting.

Notes

This module is in active development.

class sculptor.specmodel.SpecModel(specfit, spectrum=None, redshift=0)

Class holding information on models for the SpecFit class

specfit

Associated SpecFit object

Type

SpecFit

xlim

Wavelength limits for plotting

Type

list of float

ylim

Flux density limits for plotting

Type

list of float

spec

Astronomical spectrum as a SpecOneD object

Type

SpecOneD

redshift

Cosmological redshift of the astronomical object

Type

float

use_weights

Boolean to indicate whether fluxden errors will be used as weights for the fit.

Type

bool

model_list

List of LMFIT models

Type

list of Models

params_list

List of LMFIT Parameters for all LMFIT models.

Type

list of Parameters

global_params

Global parameters to be added to the all models in the Specmodel. Their main use is to provide variables and constraints for multiple individual models.

Type

Parameters

color

Color to use in the SpecModel plot.

Type

str

model

LMFIT SpecModel model. The global model including all models in the model_list.

Type

Model

params

LMFIT SpecModel parameters. The global parameter list including all parameters from all models.

Type

Parameters

fit_result

LMFIT ModelResult for the fit to the SpecModel

Type

ModelResult

add_global_param(param_name, value=None, vary=True, min=-inf, max=inf, expr=None)

Adding a “Global Parameter” to the SpecModel object

Parameters
  • param_name (str) – Name of the global parameter

  • value (float,optional) – Initial value of the global parameter

  • vary (bool,optional) – Boolean to indicate whether the global parameter should be varied during the fit

  • min (float,optional) – Minimum value for the global parameter

  • max (float,optional) – Maximum value for the global parameter

  • expr (str, optional) – Optional expression for the global parameter

Returns

None

add_mask_preset_to_fit_mask(mask_preset_key)

Adding a preset mask from the models_and_masks module to the fit.

Parameters

mask_preset_key (str) – Name of the preset mask in the mask_preset dictionary.

Returns

None

add_model(model_name, prefix, **kwargs)

Add a model to the SpecModel by using the built-in Sculptor models.

Parameters
  • model_name

  • prefix

Returns

add_wavelength_range_to_fit_mask(disp_x1, disp_x2)

Adding a wavelength region to the fit mask.

The dispersion region between the two dispersion values will be added to the fit mask.

Parameters
  • disp_x1 ((float)) – Dispersion value 1

  • disp_x2 ((float)) – Dispersion value 2

Returns

build_model()

Build the Specmodel model and parameters for the fit

Returns

None

delete_model(index=None)

Delete model (Model, Parameters) from the SpecModel object.

Parameters

index ((int)) – Index of model to remove from model_list and Parameters to remove from params_list (default index==”None”). If the index is None the last added model will be removed.

Returns

None

fit()

Fit the SpecModel to the astronomical spectrum

Returns

None

load(foldername, specmodel_id)

Load a SpecModel from the specified folder.

Parameters
  • foldername (str) – Specified folder in which the SpecModel will be saved.

  • specmodel_id (str) – Unique SpecModel identifier used in creating the filenames for the save files.

Returns

None

plot(xlim=None, ylim=None)

Plot the SpecModel

Returns

None

remove_global_param(param_name)

Remove “Global Parameter” from SpecModel object

Parameters

param_name (str) – Parameter name of the global parameter to remove.

Returns

None

reset_fit_mask()

Reset the fit mask based on the supplied astronomical spectrum.

Returns

None

reset_plot_limits(fluxden=True, dispersion=True)

Reset the plot limits based on the dispersion and flux density ranges of the spectrum.

Parameters
  • fluxden (boolean) – Boolean to indicate whether to reset the flux density axis limits (default: True).

  • dispersion (boolean) – Boolean to indicate whether to reset the dispersion axis limits (default: True).

Returns

None

save(foldername, specmodel_id=0)

Save the SpecModel object to a specified folder

Parameters
  • foldername (str) – Specified folder in which the SpecModel will be saved.

  • specmodel_id (str) – Unique SpecModel identifier used in creating the filenames for the save files.

Returns

None

save_fit_report(foldername, specmodel_id=None, show=False)

Save the fit report to a file in the specified folder

Parameters
  • foldername (str) – Specified folder in which the fit report will be saved.

  • specmodel_id (str) – Unique SpecModel identifier used in creating the filename for the fit report.

  • show (bool) – Boolean to indicate whether the fit report should also be printed to the screen.

Returns

None

save_mcmc_chain(foldername, specmodel_id=None)

Save the values of the MCMC flat chain as an hdf5 file.

Fixed parameters in the model fit will be automatically added to the output file.

Parameters
  • foldername (str) – Specified folder in which the fit report will be saved.

  • specmodel_id (str) – Unique SpecModel identifier used in creating the filename for the fit report.

Returns

None

update_model_params_for_global_params()

Global parameters are added to the Model parameters.

Returns

None

update_params_from_fit_result()

Update all parameter values in the parameter list based on the fit result.

Individual model parameter, global parameters and even the super parameters of the associated SpecFit object will be updated based on the fit.

Returns

None

sculptor.specmodel.fitting_methods = {'Adaptive Memory Programming for Global Optimization': 'ampgo', 'BFGS': 'bfgs', 'Basinhopping': 'basinhopping', 'Brute force method': 'brute', 'Cobyla': 'cobyla', 'Conjugate-Gradient': 'cg', 'Differential evolution': 'differential_evolution', 'Dual Annealing Optimization': 'dual_annealing', 'L-BFGS-B': 'lbfgsb', 'Least-Squares minimization': 'least_squares', 'Levenberg-Marquardt': 'leastsq', 'Maximum likelihood via Monte-Carlo Markov Chain': 'emcee', 'Nelder-Mead': 'nelder', 'Newton GLTR trust-region': 'trust-krylov', 'Powell': 'powell', 'Sequential Linear Squares Programming': 'slsqp', 'Simplicial Homology Global Optimization': 'shgo', 'Truncated Newton': 'tnc', 'Trust-region for constrained obtimization': 'trust-constr'}

Dictionary of fitting methods

Fitting methods available for fitting in SpecFit based on the list of methods in LMFIT.

Type

dict