Observation¶
-
class
synphot.observation.
Observation
(spec, band, binset=None, force='none')[source]¶ Bases:
synphot.spectrum.BaseSourceSpectrum
This is an observed spectrum, where a source spectrum has gone through a bandpass.
Usually, this is the end point of a chain of spectral manipulation. It has extra attributes that deal with binning, which is introduced by the detector.
Parameters: - spec :
SourceSpectrum
Source spectrum.
- band :
SpectralElement
Bandpass.
- binset : array-like,
Quantity
, orNone
Center of binned wavelengths. If not a Quantity, assumed to be in Angstrom. If
None
, inputself.waveset
values are used.- force : {
None
, ‘none’, ‘extrap’, ‘taper’} Force creation of an observation even when source spectrum and bandpass do not fully overlap:
None
or ‘none’ - Source must encompass bandpass (default)- ‘extrap’ - Extrapolate source spectrum (this changes the
underlying model of
spec
to always extrapolate, if applicable) - ‘taper’ - Taper source spectrum
Raises: - synphot.exceptions.DisjointError
Bandpass does not overlap with source spectrum.
- synphot.exceptions.PartialOverlap
Bandpass only partially overlaps with source spectrum when they must fully overlap.
- synphot.exceptions.SynphotError
Invalid inputs.
- synphot.exceptions.UndefinedBinset
Missing binned wavelength set.
Attributes Summary
bandpass
Bandpass of the observation. bin_edges
Edges of binned wavelengths. binflux
Binned flux corresponding to binset
.binset
Center of binned wavelengths. spectrum
Source spectrum of the observation. Methods Summary
as_spectrum
([binned, wavelengths])Reduce the observation to an empirical source spectrum. binned_pixelrange
(waverange, **kwargs)Calculate the number of pixels within the given wavelength range and binset
.binned_waverange
(cenwave, npix, **kwargs)Calculate the wavelength range covered by the given number of pixels centered on the given central wavelengths of binset
.countrate
(area[, binned, wavelengths, …])Calculate effective stimulus in count/s. effective_wavelength
([binned, wavelengths, mode])Calculate effective wavelength. effstim
([flux_unit, wavelengths, area, vegaspec])Calculate effective stimulus for given flux unit. plot
([binned, wavelengths, flux_unit, area, …])Plot the observation. sample_binned
([wavelengths, flux_unit])Sample binned observation without interpolation. taper
(**kwargs)Tapering is disabled. Attributes Documentation
-
bandpass
¶ Bandpass of the observation.
-
bin_edges
¶ Edges of binned wavelengths.
-
binset
¶ Center of binned wavelengths.
-
spectrum
¶ Source spectrum of the observation.
Methods Documentation
-
as_spectrum
(binned=True, wavelengths=None)[source]¶ Reduce the observation to an empirical source spectrum.
An observation is a complex object with some restrictions on its capabilities. At times, it would be useful to work with the observation as a simple object that is easier to manipulate and takes up less memory.
This is also useful for writing an observation as sampled spectrum out to a FITS file.
Parameters: Returns: - sp :
SourceSpectrum
Empirical source spectrum.
- sp :
-
binned_pixelrange
(waverange, **kwargs)[source]¶ Calculate the number of pixels within the given wavelength range and
binset
.Parameters: - waverange : tuple of float or
Quantity
Lower and upper limits of the desired wavelength range. If not a Quantity, assumed to be in Angstrom.
- kwargs : dict
Keywords accepted by
synphot.binning.pixel_range()
.
Returns: - npix : int
Number of pixels.
- waverange : tuple of float or
-
binned_waverange
(cenwave, npix, **kwargs)[source]¶ Calculate the wavelength range covered by the given number of pixels centered on the given central wavelengths of
binset
.Parameters: - cenwave : float or
Quantity
Desired central wavelength. If not a Quantity, assumed to be in Angstrom.
- npix : int
Desired number of pixels, centered on
cenwave
.- kwargs : dict
Keywords accepted by
synphot.binning.wave_range()
.
Returns: - waverange :
Quantity
Lower and upper limits of the wavelength range, in the unit of
cenwave
.
- cenwave : float or
-
countrate
(area, binned=True, wavelengths=None, waverange=None, force=False)[source]¶ Calculate effective stimulus in count/s.
Parameters: - area : float or
Quantity
Area that flux covers. If not a Quantity, assumed to be in \(cm^{2}\).
- binned : bool
Sample data in native wavelengths if
False
. Else, sample binned data (default).- wavelengths : array-like,
Quantity
, orNone
Wavelength values for sampling. This must be given if
self.waveset
is undefined for the underlying spectrum model(s). If not a Quantity, assumed to be in Angstrom. IfNone
,self.waveset
orbinset
is used, depending onbinned
.- waverange : tuple of float, Quantity, or
None
Lower and upper limits of the desired wavelength range. If not a Quantity, assumed to be in Angstrom. If
None
, the full range is used.- force : bool
If a wavelength range is given, partial overlap raises an exception when this is
False
(default). Otherwise, it returns calculation for the overlapping region. Disjoint wavelength range raises an exception regardless.
Returns: - count_rate :
Quantity
Observation effective stimulus in count/s.
Raises: - synphot.exceptions.DisjointError
Wavelength range does not overlap with observation.
- synphot.exceptions.PartialOverlap
Wavelength range only partially overlaps with observation.
- synphot.exceptions.SynphotError
Calculation failed.
- area : float or
-
effective_wavelength
(binned=True, wavelengths=None, mode='efflerg')[source]¶ Calculate effective wavelength.
Parameters: - binned : bool
Sample data in native wavelengths if
False
. Else, sample binned data (default).- wavelengths : array-like,
Quantity
, orNone
Wavelength values for sampling. If not a Quantity, assumed to be in Angstrom. If
None
,self.waveset
orbinset
is used, depending onbinned
.- mode : {‘efflerg’, ‘efflphot’}
Flux is first converted to the unit below before calculation:
- ‘efflerg’ - FLAM
- ‘efflphot’ - PHOTLAM (deprecated)
Returns: - eff_lam :
Quantity
Observation effective wavelength.
Raises: - synphot.exceptions.SynphotError
Invalid mode.
-
effstim
(flux_unit=None, wavelengths=None, area=None, vegaspec=None)[source]¶ Calculate effective stimulus for given flux unit.
Parameters: - flux_unit : str or
Unit
orNone
The unit of effective stimulus. COUNT gives result in count/s (see
countrate()
for more options). If not given, internal unit is used.- wavelengths : array-like,
Quantity
, orNone
Wavelength values for sampling. This must be given if
self.waveset
is undefined for the underlying spectrum model(s). If not a Quantity, assumed to be in Angstrom. IfNone
,self.waveset
is used.- area, vegaspec
See
convert_flux()
.
Returns: - eff_stim :
Quantity
Observation effective stimulus based on given flux unit.
- flux_unit : str or
-
plot
(binned=True, wavelengths=None, flux_unit=None, area=None, vegaspec=None, **kwargs)[source]¶ Plot the observation.
Note
Uses
matplotlib
.Parameters: - binned : bool
Plot data in native wavelengths if
False
. Else, plot binned data (default).- wavelengths : array-like,
Quantity
, orNone
Wavelength values for sampling. If not a Quantity, assumed to be in Angstrom. If
None
,self.waveset
orbinset
is used, depending onbinned
.- flux_unit : str or
Unit
orNone
Flux is converted to this unit for plotting. If not given, internal unit is used.
- area, vegaspec
See
convert_flux()
.- kwargs : dict
Raises: - synphot.exceptions.SynphotError
Invalid inputs.
-
sample_binned
(wavelengths=None, flux_unit=None, **kwargs)[source]¶ Sample binned observation without interpolation.
To sample unbinned data, use
__call__
.Parameters: - wavelengths : array-like,
Quantity
, orNone
Wavelength values for sampling. If not a Quantity, assumed to be in Angstrom. If
None
,binset
is used.- flux_unit : str or
Unit
orNone
Flux is converted to this unit. If not given, internal unit is used.
- kwargs : dict
Keywords acceptable by
convert_flux()
.
Returns: - flux :
Quantity
Binned flux in given unit.
Raises: - synphot.exceptions.InterpolationNotAllowed
Interpolation of binned data is not allowed.
- wavelengths : array-like,
- spec :