4. Modeling a Black Body

The blackbody_with_atm module provides functions for modeling the effects of PWV absorption on a black body. We suggest importing this module as bb_atm.

4.1. Generating an SED

For a given array of wavelengths in Angstroms, the sed function returns the corresponding spectral energy distribution of a black body as seen through the atmosphere.

pwv_kpno.blackbody_with_atm.sed(temp, wavelengths, pwv)[source]

Return the flux of a black body under the influence of pwv absorption

Flux is returned in units of ergs / (angstrom * cm2 * s)

Parameters:
  • temp (float) – The desired temperature of the black body
  • wavelengths (ndarray) – An array like object containing wavelengths
  • pwv (float) – The PWV concentration along line of sight in mm
Returns:

An array of flux values in units of ergs / (angstrom * cm2 * s * sr)

4.1.1. Example:

1
2
3
4
5
6
7
8
>>> import numpy as np
>>> from pwv_kpno import blackbody_with_atm as bb_atm
>>>
>>> bb_temp = 8000
>>> wavelengths = np.arange(7000, 10000, 100)
>>> pwv = 15
>>>
>>> sed = bb_atm.sed(bb_temp, wavelengths, pwv)

Note: If desired, the SED of a black body without atmospheric effects can be achieved by specifying a PWV level of zero.

4.2. Magnitude

The magnitude function returns the absolute magnitude of a black body in a given band as seen under the effects of PWV absorption.

pwv_kpno.blackbody_with_atm.magnitude(temp, band, pwv)[source]

Return the magnitude of a black body with and without pwv absorption

Magnitudes are calculated relative to a zero point of 3631 Jy

Parameters:
  • temp (float) – The temperature of the desired black body
  • band (tuple) – Tuple with the beginning and end wavelengths of the desired band in angstroms
  • pwv (float) – The PWV concentration along line of sight in mm
Returns:

The magnitude of the desired black body as effected by H2O absorption

4.2.1. Examples:

In the i band from 7,000 to 8,500 Angstroms, the magnitude of a black body is found by running

1
2
3
4
5
6
7
>>> from pwv_kpno import blackbody_with_atm as bb_atm
>>>
>>> bb_temp = 8000
>>> i_band = (7000, 8500)
>>> pwv = 15
>>>
>>> bb_mag = bb_atm.magnitude(bb_temp, i_band, pwv)

Note: If desired, the absolute magnitude of a black body without atmospheric effects can also be achieved by specifying a PWV level of zero.

4.3. Estimating Zero Point Error

Correcting photometric observations using tabulated values of a standard star introduces residual error in the magnitudes of other stars with different spectral types. The error in photometric zero point introduced by not considering absorption by precipitable water vapor can be found using the zp_bias function.

pwv_kpno.blackbody_with_atm.zp_bias(ref_temp, cal_temp, band, pwv)[source]

Calculate the residual error in the photometric zero point due to PWV

Using a black body approximation, calculate the residual error in the zero point of a photometric image cause by not considering the PWV transmission function. Returned values are in units of magnitude relative to a zero point of 3631 Jy.

Parameters:
  • ref_temp (float) – The temperature of a star used to calibrate the image
  • cal_temp (float) – The temperature of another star in the same image to calculate the error for
  • band (tuple) – Tuple specifying the beginning and end points of the desired band in angstroms
  • pwv (float) – The PWV concentration along line of sight
Returns:

The residual error in the photometric zero point for the given band

4.3.1. Examples:

1
2
3
4
5
>>> from pwv_kpno import blackbody_with_atm as bb_atm
>>>
>>> reference_star_temp = 4000
>>> other_star_temp = 10000
>>> bias = bb_atm.zp_bias(reference_star_temp, other_star_temp, i_band, pwv)