Photometric Properties¶
In here, we describe bandpass and spectral photometric properties that can be calculated using synphot, along with their respective formulae. More information can also be found in Koornneef et al. (1986), Bandpass, and Observation.
These are some common variables mentioned in the formulae in this section:
Variable |
Description |
---|---|
\(F_{\lambda}\) |
Source flux distribution |
\(P_{\lambda}\) |
Dimensionless bandpass throughput |
a |
Telescope collecting area |
h |
The Planck constant |
c |
The speed of light |
The examples in this section uses bandpass from ACS/HRC F555W (from package test data) with some given bins and observation from that bandpass convolved with a blackbody:
>>> import os
>>> from astropy.utils.data import get_pkg_data_filename
>>> from synphot import Observation, SourceSpectrum, SpectralElement, units
>>> from synphot.models import BlackBodyNorm1D
>>> area = 45238.93416 * units.AREA # HST
>>> sp = SourceSpectrum(BlackBodyNorm1D, temperature=5000)
>>> bp = SpectralElement.from_file(get_pkg_data_filename(
... os.path.join('data', 'hst_acs_hrc_f555w.fits'),
... package='synphot.tests'))
>>> binset = range(1000, 11001)
>>> obs = Observation(sp, bp, binset=binset)
Bandpass Average Wavelength¶
For a bandpass, avgwave()
implements
the equation for \(\lambda_{0}\) as defined in
Koornneef et al. 1986 (page 836). It is
equivalent to IRAF SYNPHOT bandpar
results for avglam
,
avgmw
, or refwave
; The throughput at this wavelength is
tlambda()
.
Example:
>>> bp.avgwave()
<Quantity 5367.903565874441 Angstrom>
>>> bp.tlambda()
<Quantity 0.22807748889452203>
Bandpass Peak Throughput¶
For a bandpass, tpeak()
implements the
bandpass peak throughput. It is equivalent to IRAF SYNPHOT bandpar
result
for tpeak
; The wavelength at this throughput is
wpeak()
(only first match is returned
if peak value is not unique).
Example:
>>> bp.tpeak()
<Quantity 0.24144500494003296>
>>> bp.wpeak()
<Quantity 5059.8212890625 Angstrom>
Bandpass Dimensionless Efficiency¶
For a bandpass, efficiency()
implements
the dimensionless efficiency. It is equivalent to IRAF SYNPHOT bandpar
result for qtlam
.
Example:
>>> bp.efficiency()
<Quantity 0.05090165033079963>
Bandpass Equivalent Width¶
For a bandpass, equivwidth()
implements
the equivalent width. It gives the same value as
integrate()
and is equivalent to
IRAF SYNPHOT bandpar
result for equvw
.
Example:
>>> bp.equivwidth()
<Quantity 272.0108162945954 Angstrom>
>>> bp.integrate()
<Quantity 272.0108162945954 Angstrom>
Bandpass Rectangular Width¶
For a bandpass, rectwidth()
implements
the rectangular width. It is equivalent to IRAF SYNPHOT bandpar
result for
rectw
. The equvw
in the formula below is Bandpass Equivalent Width.
Example:
>>> bp.rectwidth()
<Quantity 1126.5953352903448 Angstrom>
Bandpass RMS Band Width (Koornneef)¶
For a bandpass, rmswidth()
implements
the bandpass RMS width as defined in
Koornneef et al. 1986 (page 836), where
\(\lambda_{0}\) is the Bandpass Average Wavelength.
Example:
>>> bp.rmswidth()
<Quantity 359.56457676412236 Angstrom>
Bandpass RMS Band Width (IRAF)¶
For a bandpass, photbw()
implements the
equivalent for bandw
from IRAF SYNPHOT bandpar
task, where
\(\bar{\lambda}\) is Bandpass Mean Log Wavelength. This is not the same
as Bandpass RMS Band Width (Koornneef).
Example:
>>> bp.photbw()
<Quantity 357.17951791474843 Angstrom>
FWHM¶
For a bandpass, fwhm()
implements the
equivalent for fwhm
from IRAF SYNPHOT bandpar
task, where bandw
is Bandpass RMS Band Width (IRAF).
Example:
>>> bp.fwhm()
<Quantity 841.0934884601406 Angstrom>
Bandpass Mean Log Wavelength¶
For a bandpass, barlam()
implements the
mean wavelength as defined in
Schneider, Gunn, and Hoessel (1983).
This rather unusual definition is such that the corresponding mean frequency is
\(c / \bar{\lambda}\).
It is equivalent to IRAF SYNPHOT bandpar
results for barlam
.
Example:
>>> bp.barlam()
<Quantity 5331.8648495386 Angstrom>
Bandpass Unit Response¶
For a bandpass, unit_response()
implements the computation of the flux of a star that produces a response of
one count per second in that bandpass for a given telescope collecting area.
It is equivalent to IRAF SYNPHOT bandpar
result for uresp
.
Example:
>>> bp.unit_response(area)
<Quantity 3.007277127274156e-19 FLAM>
Bandpass Equivalent Monochromatic Flux¶
For a bandpass, emflx()
implements the
equivalent monochromatic flux for a given telescope collecting area.
It is equivalent to IRAF SYNPHOT bandpar
result for emflx
.
In the formula below, uresp
, equvw
, and \(\lambda_{0}\) are
Bandpass Unit Response, Bandpass Equivalent Width, and
Bandpass Average Wavelength, respectively.
Example:
>>> bp.emflx(area)
<Quantity 3.586552579909415e-16 FLAM>
Effective Stimulus¶
For an observation, effstim()
calculates
the predicted effective stimulus in given flux unit.
countrate()
is a special form of
effective stimulus in the unit of count/s given a telescope collecting area.
It is equivalent to IRAF SYNPHOT calcphot
result for effstim
.
The default binning behavior is to be consistent with ASTROLIB PYSYNPHOT.
Example:
>>> obs.effstim()
<Quantity 0.00053744 PHOTLAM>
>>> obs.effstim('flam')
<Quantity 1.99333435e-15 FLAM>
>>> obs.effstim('count', area=area) # Not binned
<Quantity 6628.36886854 ct / s>
>>> obs.countrate(area=area, binned=False)
<Quantity 6628.36886854 ct / s>
>>> obs.countrate(area=area) # Binned
<Quantity 6628.36888121 ct / s>
Effective Wavelength¶
For an observation,
effective_wavelength()
implements the effective wavelength, as defined in
Koornneef et al. 1986 (page 836), where flux
unit is converted to FLAM prior to calculations.
It is equivalent to IRAF SYNPHOT calcphot
result for efflerg
.
For backward compatibility, there is also an option (mode='efflphot'
) to
calculate this using flux in PHOTLAM, which is equivalent to IRAF SYNPHOT
calcphot
result for efflphot
.
The default binning behavior is to be consistent with ASTROLIB PYSYNPHOT.
Example:
>>> obs.effective_wavelength() # Binned
<Quantity 5401.26785017 Angstrom>
>>> obs.effective_wavelength(mode='efflphot') # Deprecated
WARNING: AstropyDeprecationWarning: Usage of EFFLPHOT is deprecated. [...]
<Quantity 5424.92986116 Angstrom>
Pivot Wavelength¶
For a bandpass or a source spectrum,
pivot()
calculates the pivot wavelength.
It is equivalent to IRAF SYNPHOT result for pivwv
and pivot
.
The formula shown applies to a bandpass. For a source, replace
\(P_{\lambda}\) with \(F_{\lambda}\) below.
Example:
>>> bp.pivot()
<Quantity 5355.863596422958 Angstrom>
>>> obs.pivot() # Not binned
<Quantity 5389.368734064575 Angstrom>