Tutorial: Fitting a spectrum

We’ll now show how to fit a spectrum. This is using the generated spectrum from the generating a spectrum tutorial, but feel free to try out your own.

McFine operates by reading in TOML configuration files – one to define local parameters such as where to save the files, and the other various parameters in the fit. We’ll call these local.toml and config.toml. A local.toml file will look something like:

[local]

base_dir = '/Users/username/mcfine_fits'

fit_dir = 'fit'
plot_dir = 'plot'

And a config.toml file like:

[fitting_params]
fit_type = 'lte'
fit_method = 'mcmc'

line = 'n2hp10'

[initial_guess]

lte = [10, 0, -40, 1]

Taking the data, vel, and error_spectrum from the generating a spectrum tutorial, we can then run the fit very simply:

from mcfine.fitting import HyperfineFitter

fit_dict_filename = os.path.join(fit_dir, 'fit_dict')

if not os.path.exists(fit_dict_filename + '.pkl') or overwrite_fits:
    hf = HyperfineFitter(
        data=spectrum_obs,
        vel=vel,
        error=error_spectrum,
        config_file=config_file,
        local_file=local_file,
    )

    hf.multicomponent_fitter(fit_dict_filename=fit_dict_filename)

If you need inspiration, you can print out all parameters and their default parameters (see advanced topics).