# Photometric Properties¶

In here, we describe bandpass and spectral photometric properties that can be calculated using pysynphot, along with their respective formulae. More information can also be found in Koornneef et al. (1986), Bandpass, and Observation.

The following table summarizes the available photometric properties, which are further elaborated in the sub-sections below:

Command

Description

bp.avgwave()

Bandpass Average Wavelength or reference wavelength

bp.rmswidth()

Bandpass RMS Band Width (Koornneef)

bp.photbw()

Bandpass RMS Band Width (SYNPHOT)

bp.rectwidth()

Bandpass Rectangular Width

bp.equivwidth()

Bandpass Equivalent Width

bp.efficiency()

Bandpass Dimensionless Efficiency

bp.unit_response()

Bandpass Unit Response

obs.effstim()

Effective Stimulus

obs.efflam()

Effective Wavelength

bp.pivot() obs.pivot()

Pivot Wavelength

These are not directly available but they are used to calculate other properties:

These are some common variables mentioned in the formulae in this section:

Variable

Description

$$F_{\lambda}$$

Source flux distribution

$$P_{\lambda}$$

Dimensionless bandpass throughput

area

Telescope collecting area

h

The Planck constant

c

The speed of light

## 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 STSDAS SYNPHOT bandpar results for avglam, avgmw, or refwave; The throughput at this wavelength is tlambda.

$\lambda_{0} = \frac{\int \; P_{\lambda} \; \lambda \; d\lambda }{\int \; P_{\lambda} \; d\lambda}$

Example:

>>> bp = S.ObsBandpass('acs,wfc1,f555w')
>>> bp.avgwave()
5373.2182275673349


## 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.

$\lambda_{rms} = \sqrt{\frac{\int \; P_{\lambda} \; (\lambda - \lambda_{0})^{2} \; d\lambda}{\int \; P_{\lambda} \: d\lambda}}$

Example:

>>> bp = S.ObsBandpass('acs,wfc1,f555w')
>>> bp.rmswidth()
361.9997795461671


## Bandpass RMS Band Width (SYNPHOT)¶

For a bandpass, photbw() implements the equivalent for bandw from IRAF STSDAS SYNPHOT bandpar task, where $$\bar{\lambda}$$ is Bandpass Mean Log Wavelength. This is not the same as Bandpass RMS Band Width (Koornneef).

$bandw = \bar{\lambda} \; \sqrt{\frac{\int \; (P_{\lambda} / \lambda) \; \ln(\lambda \; / \; \bar{\lambda})^{2} \; d\lambda}{\int \; (P_{\lambda} / \lambda) \; d\lambda}}$

Example:

>>> bp = S.ObsBandpass('acs,wfc1,f555w')
>>> bp.photbw()
360.11107577076439


## Bandpass Mean Log Wavelength¶

For a bandpass, this is 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}$$. This cannot be directly calculated by pysynphot, but is used for Bandpass RMS Band Width (SYNPHOT). It is equivalent to barlam in IRAF STSDAS SYNPHOT.

$\bar{\lambda} = \exp\Bigg[\frac{\int \; (P_{\lambda} / \lambda) \; \ln(\lambda) \; d\lambda}{\int (P_{\lambda} / \lambda) \; d\lambda}\Bigg]$

## Bandpass Rectangular Width¶

For a bandpass, rectwidth() implements the rectangular width, where equvw is Bandpass Equivalent Width. It is equivalent to IRAF STSDAS SYNPHOT bandpar result for rectw.

$rectw = \frac{equvw}{\mathrm{MAX}(P_{\lambda})}$

Example:

>>> bp = S.ObsBandpass('acs,wfc1,f555w')
>>> bp.rectwidth()
1124.6106504868569


## Bandpass Equivalent Width¶

For a bandpass, equivwidth() implements the equivalent width. It is equivalent to integrate() and IRAF STSDAS SYNPHOT bandpar result for equvw.

$equvw = \int P_{\lambda} d\lambda$

Example:

>>> bp = S.ObsBandpass('acs,wfc1,f555w')
>>> bp.equivwidth()
412.91237693252498


## Bandpass Dimensionless Efficiency¶

For a bandpass, efficiency() implements the dimensionless efficiency. It is equivalent to IRAF STSDAS SYNPHOT bandpar result for qtlam.

$qtlam = \int \frac{P_{\lambda}}{\lambda} d\lambda$

Example:

>>> bp = S.ObsBandpass('acs,wfc1,f555w')
>>> bp.efficiency()
0.077196835355538812


## Bandpass Unit Response¶

For a bandpass, unit_response() implements the computation of the flux (in flam) of a star that produces a response of one count per second in that bandpass, where h and c are astronomical constants, and area is the telescope collecting area. It is equivalent to IRAF STSDAS SYNPHOT bandpar result for uresp.

$uresp = \frac{hc}{area} \int P_{\lambda}\; \lambda\; d\lambda$

Example:

>>> bp = S.ObsBandpass('acs,wfc1,f555w')
>>> bp.unit_response()
1.9791581474812573e-19


## Bandpass Equivalent Monochromatic Flux¶

For a bandpass, its equivalent monochromatic flux is as defined below, where $$\lambda_{0}$$ is Bandpass Average Wavelength. It is equivalent to IRAF STSDAS SYNPHOT bandpar result for emflx.

$emflx = \frac{uresp \times equvw}{P(\lambda_{0})}$

This can be calculated indirectly in pysynphot, as given in the example below:

>>> bp = S.ObsBandpass('acs,wfc1,f555w')
>>> bp.unit_response() * bp.equivwidth() / bp(bp.avgwave())
2.3693354953649259e-16


## 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 counts/s given a pre-defined telescope collecting area. It is equivalent to IRAF STSDAS SYNPHOT calcphot result for effstim.

$effstim = \frac{\int\; F_{\lambda}\; P_{\lambda}\; \lambda\; d\lambda}{\int\; P_{\lambda}\; \lambda\; d\lambda}$

Example:

>>> obs = S.Observation(S.BlackBody(5000), S.ObsBandpass('acs,wfc1,f555w'))
>>> obs.effstim()  # photlam
0.00053965665649945897
>>> obs.effstim('flam')
1.9951166916464645e-15
>>> obs.effstim('counts')
10080.63299128226
>>> obs.countrate()
10080.633086603204


## Effective Wavelength¶

For an observation, efflam() 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 STSDAS SYNPHOT calcphot result for efflerg.

$\lambda_{eff} = \frac{\int \; F_{\lambda} \; P_{\lambda} \; \lambda^2 \; d\lambda}{\int \; F_{\lambda} \; P_{\lambda} \; \lambda \; d\lambda}$

Example:

>>> obs = S.Observation(S.BlackBody(5000), S.ObsBandpass('acs,wfc1,f555w'))
>>> obs.efflam()
5406.9723492971125


## Pivot Wavelength¶

For an observation, pysynphot.observation.Observation.pivot() calculates the pivot wavelength. For a bandpass, it is pysynphot.spectrum.SpectralElement.pivot(). The formula below applies to an observation. For a bandpass, replace $$F_{\lambda}$$ with $$P_{\lambda}$$ in the formula. It is equivalent to IRAF STSDAS SYNPHOT result for pivwv and pivot.

$\lambda_{pivot} = \sqrt{\frac{\int \: F_{\lambda} \; \lambda \; d\lambda}{\int(F_{\lambda} \; / \; \lambda) \; d\lambda}}$

Example:

>>> bp = S.ObsBandpass('acs,wfc1,f555w')
>>> bp.pivot()
5361.007831073981
>>> obs = S.Observation(S.BlackBody(5000), bp)
>>> obs.pivot()
5394.930514954142