SpectralStandard¶
- class sbpy.calib.SpectralStandard(source, description=None, bibcode=None)[source]¶
Bases:
SpectralSource
,ABC
Abstract base class for SBPy spectral standards.
- Parameters:
- spectrum_state
ScienceState
Context manager for this source’s spectrum.
- fluxd_state
ScienceState
Context manager for this source’s calibration by filter.
- source
SourceSpectrum
orNone
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
).
- spectrum_state
- 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 of the source spectrum.
The source spectrum.
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.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:
- Returns:
- fluxd
Quantity
The spectrum evaluated/interpolated to the requested wavelengths or frequencies.
- fluxd
- color_index(wfb, unit)[source]¶
Color index (magnitudes) and effective wavelengths.
- Parameters:
- Returns:
- classmethod from_array(wave, fluxd, meta=None, **kwargs)¶
Create standard from arrays.
- 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
ifsynphot
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
, orself()
, as appropriate.- Parameters:
- wfb
Quantity
,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
.
- wfb
- Returns:
- fluxd
Quantity
- fluxd
- observe_bandpass(bp, unit=None, **kwargs)¶
Observe through a bandpass.
- Parameters:
- bp
SpectralElement
, 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
.
- bp
- Returns:
- 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:
- 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_freq
Quantity
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
.
- wave_or_freq
- Returns:
- fluxd
Quantity
The spectrum rebinned.
- fluxd
- 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:
- S
SpectralGradient
The spectral gradient to redden.
- S
- Returns:
- spec
SpectralSource
Reddened spectrum
- spec