Usage
The package exposes the radiative-transfer class and re-exports the
gaussFitSpec Gaussian fitting API:
SpectraDecomposingfor combined absorption and emission decompositionfit_spectrumfromgaussFitSpecfor direct Gaussian component fitting
Basic imports:
from spec_rt import (
SpectraDecomposing,
create_legacy_axes,
fit_spectrum,
load_six_column_spectrum,
)
Direct Gaussian fitting
Use fit_spectrum when you only need a Gaussian decomposition of one
one-dimensional spectrum:
result = fit_spectrum(velocity, spectrum, spectrum_err, method="bic")
print(result.components)
Radiative-transfer fitting
Use SpectraDecomposing when you have matched absorption and emission
spectra:
x, y, yerr, xemi, yemi, yemi_err = load_six_column_spectrum(
"examples/example_spec.txt",
absorption_format="one_minus_exp_tau",
)
fig, axes = create_legacy_axes()
spec_fit = SpectraDecomposing(x, y, yerr, xemi, yemi, yemi_err)
spec_fit.name = "example_spec"
spec_fit.ax = axes
spec_fit.align_data = True
spec_fit.peak_abs = []
spec_fit.peak_emi = []
spec_fit.max_auto_warm_components = 1
spec_fit.Tsmin = 10
spec_fit.Tsky = 2.73
spec_fit.fit_mode = "BIC"
spec_fit.fit_and_plot()
Saving CSV outputs
Set savecsv=True and choose an output directory:
spec_fit.savecsv = True
spec_fit.renew = True
spec_fit.datapath = "examples/example_spec_csv_outputs"
spec_fit.fit_and_plot()
renew=True removes old rows for the same source name before appending new
results, which is useful when you redo a fit.