SpectralStandard

class sbpy.calib.SpectralStandard(source, description=None, bibcode=None)[source]

Bases: SpectralSource, ABC

Abstract base class for SBPy spectral standards.

Parameters:
spectrum_stateScienceState

Context manager for this source’s spectrum.

fluxd_stateScienceState

Context manager for this source’s calibration by filter.

sourceSourceSpectrum or None

The source spectrum or None if unspecified.

descriptionstring, optional

A brief description of the source spectrum.

bibcodestring, optional

Bibliography code for citation (see sbpy.bib.register).

Attributes:
wave - Wavelengths of the source spectrum.
fluxd - Source spectrum.
description - Brief description of the source spectrum.
meta - Meta data from `source`, if any.

Attributes Summary

description

Description of the source spectrum.

fluxd

The source spectrum.

meta

source

wave

Wavelengths of the source spectrum.

Methods Summary

__call__(wave_or_freq[, unit])

Evaluate/interpolate the source spectrum.

color_index(wfb, unit)

Color index (magnitudes) and effective wavelengths.

from_array(wave, fluxd[, meta])

Create standard from arrays.

from_builtin(name)

Spectrum from a built-in sbpy source.

from_default()

Initialize new spectral standard from current default.

from_file(filename[, wave_unit, flux_unit, ...])

Load the source spectrum from a file.

observe(wfb[, unit, interpolate])

Observe as through filters or spectrometer.

observe_bandpass(bp[, unit])

Observe through a bandpass.

observe_filter_name(filt[, unit])

Flux density through this filter.

observe_spectrum(wave_or_freq[, unit])

Observe source as through a spectrometer.

redden(S)

Redden the spectrum.

show_builtin([print])

List built-in spectra.

Attributes Documentation

description

Description of the source spectrum.

fluxd

The source spectrum.

meta
source
wave

Wavelengths of the source spectrum.

Methods Documentation

__call__(wave_or_freq, unit=None)

Evaluate/interpolate the source spectrum.

Parameters:
wave_or_freqQuantity

Requested wavelengths or frequencies of the resulting spectrum.

unitstring, Unit, optional

Spectral units of the output (flux density). If None, the default depends on wave_or_freq: W/(m2 μm) for wavelengths, Jy for frequencies.

Returns:
fluxdQuantity

The spectrum evaluated/interpolated to the requested wavelengths or frequencies.

color_index(wfb, unit)[source]

Color index (magnitudes) and effective wavelengths.

Parameters:
wfbQuantity, or tuple/list of SectralElement, string

Two wavelengths, frequencies, or bandpasses.

unitstring or MagUnit

Units for the calculation, e.g., astropy.units.ABmag or sbpy.units.VEGAmag.

Returns:
eff_waveQuantity

Effective wavelengths for each wfb.

ciQuantity

Color index, m_0 - m_1, where 0 and 1 are element indexes for wfb.

classmethod from_array(wave, fluxd, meta=None, **kwargs)

Create standard from arrays.

Parameters:
waveQuantity

The spectral wavelengths.

fluxdQuantity

The spectral flux densities.

metadict, optional

Meta data.

**kwargs

Passed to object initialization.

classmethod from_builtin(name)[source]

Spectrum from a built-in sbpy source.

Parameters:
namestring

The name of the spectrum. See show_builtin() for available sources.

classmethod from_default()[source]

Initialize new spectral standard from current default.

The spectrum will be None if synphot is not available.

classmethod from_file(filename, wave_unit=None, flux_unit=None, cache=True, **kwargs)

Load the source spectrum from a file.

NaNs are dropped.

Parameters:
filenamestring

The name of the file. See from_file for details.

wave_unit, flux_unitstr or Unit, optional

Wavelength and flux units in the file.

cachebool, optional

If True, cache the contents of URLs.

**kwargs

Passed to object initialization.

observe(wfb, unit=None, interpolate=False, **kwargs)[source]

Observe as through filters or spectrometer.

Calls observe_bandpass, observe_spectrum, or self(), as appropriate.

Parameters:
wfbQuantity, SpectralElement, string

Wavelengths, frequencies, or bandpasses. Bandpasses may be a filter name (string). May also be a list of SpectralElement or strings.

unitstring, Unit, optional

Units of the output (spectral flux density).

interpolatebool, optional

For wavelengths/frequencies, set to True for interpolation instead of rebinning. Use this when the spectral resolution of the source is close to that of the requested wavelengths.

**kwargs

Additional keyword arguments for Observation, e.g., force.

Returns:
fluxdQuantity
observe_bandpass(bp, unit=None, **kwargs)

Observe through a bandpass.

Parameters:
bpSpectralElement, list, or tuple

Bandpass.

unitstring, Unit, optional

Spectral flux density units for the output. The default is W/(m2 μm).

**kwargs

Additional keyword arguments for Observation, e.g., force.

Returns:
lambda_effQuantity

Effective wavelength(s) of the observation(s).

fluxdQuantity

The spectrum rebinned.

observe_filter_name(filt, unit=None)[source]

Flux density through this filter.

Does not use the spectrum, but instead the flux density calibration manager. If the name of the filter is BP, then the expected keys are:

BP : flux density BP(lambda eff) : effective wavelength, optional BP(lambda pivot) : pivot wavelength, optional

Parameters:
filtstring

Name of the filter.

unitstring, Unit, optional

Spectral flux density units for the output.

Returns:
lambda_eff: Quantity

Effective wavelength. None if it is not provided.

lambda_pivot: Quantity

Pivot wavelength. None if it is not provided.

fluxdQuantity

Spectral flux density.

Raises:
FilterLookupError if the filter is not defined.
observe_spectrum(wave_or_freq, unit=None, **kwargs)

Observe source as through a spectrometer.

Important

This method works best when the requested spectral resolution is lower than the spectral resolution of the internal data. If the requested wavelengths/frequencies are exactly the same as the internal spectrum, then the internal spectrum will be returned without binning. This special case does not work for subsets of the wavelengths.

Parameters:
wave_or_freqQuantity

Wavelengths or frequencies of the spectrum. Spectral bins will be centered at these values. The length must be larger than 1.

unitstring, Unit, optional

Spectral flux density units for the output. If None, the default is W/(m2 μm) for wavelengths, Jy for frequencies.

**kwargs

Additional keyword arguments for Observation, e.g., force.

Returns:
fluxdQuantity

The spectrum rebinned.

Raises:
SinglePointSpectrumError - If requested wavelengths or

frequencies has only one value.

Notes

Method for spectra adapted from AstroBetter post by Jessica Lu: https://www.astrobetter.com/blog/2013/08/12/python-tip-re-sampling-spectra-with-pysynphot/

redden(S)

Redden the spectrum.

Parameters:
SSpectralGradient

The spectral gradient to redden.

Returns:
specSpectralSource

Reddened spectrum

classmethod show_builtin(print=True)[source]

List built-in spectra.