Quick start
This example fits a synthetic in-memory spectrum. It explicitly declares the synthetic arrays as already corrected, so it does not need external dust maps.
>>> import numpy as np
>>> import qsospec
>>> wave = np.linspace(3500.0, 5500.0, 800)
>>> flux = 2.0 * (wave / 4000.0) ** -1.2
>>> err = np.full_like(wave, 0.05)
>>> spectrum = qsospec.Spectrum.from_arrays(
... wave, flux, err=err, z=0.0, wave_frame="rest",
... flux_unit="relative",
... galactic_extinction_corrected=True,
... )
>>> config = qsospec.GlobalContinuumConfig(
... uv_iron=None,
... optical_iron=None,
... balmer_pseudocontinuum=qsospec.BalmerPseudoContinuumConfig(
... enabled=False
... ),
... clip_passes=0,
... )
>>> result = qsospec.fit_global_lines(
... spectrum, global_config=config, complexes=[]
... )
>>> result.continuum_success
True
For ordinary science fitting, omit the simplified configuration and let
fit_global_lines select covered recipes:
result = qsospec.fit_global_lines(spectrum)
for recipe_id, status in result.complex_statuses.items():
print(recipe_id, status)
Inspect result.continuum, result.line_complexes, result.warnings,
and result.metadata. See Results and measurements and
Reading QA plots. For a real uncorrected spectrum with Planck
dereddening and archived QA, continue to Fit J001554.18+560257.5.