Bolometric correction grids

Bolometric correction is defined as the difference between the apparent bolometric magnitude of a star and its apparent magnitude in a particular bandpass:

$$BC_x = m_{bol} - m_x$$

The MIST project provide grids of bolometric corrections in many photometric systems as a function of stellar temperature, surface gravity, metallicity, and $A_V$ extinction. This allows for accurate conversion of bolometric magnitude of a star (available from the theoretical grids) to magnitude in any band, at any extinction (and distance), without the need for any "effective wavelength" approximation (used in isochrones prior to v2.0), which breaks down for broad bandpasses and large extinctions. These grids are downloaded, organized, stored, and interpolated in much the same manner as the model grids.


In [1]:
from isochrones.mist.bc import MISTBolometricCorrectionGrid

bc_grid = MISTBolometricCorrectionGrid(['J', 'H', 'K', 'G', 'BP', 'RP', 'g', 'r', 'i'])

In [2]:
bc_grid.df.head()


Out[2]:
g r i J H K G BP RP
Teff logg [Fe/H] Av
2500.0 -4.0 -4.0 0.00 -6.534742 -3.332877 -1.617626 1.845781 2.927064 3.436304 -2.181986 -4.652544 -0.881255
0.05 -6.590469 -3.375570 -1.650338 1.831466 2.917990 3.430463 -2.211637 -4.697700 -0.909057
0.10 -6.646182 -3.418258 -1.683043 1.817153 2.908916 3.424623 -2.241240 -4.742838 -0.936829
0.15 -6.701881 -3.460939 -1.715740 1.802841 2.899842 3.418782 -2.270797 -4.787959 -0.964571
0.20 -6.757566 -3.503615 -1.748429 1.788530 2.890769 3.412942 -2.300306 -4.833062 -0.992285

In [3]:
bc_grid.interp.index_names


Out[3]:
FrozenList(['Teff', 'logg', '[Fe/H]', 'Av'])

In [4]:
bc_grid.interp([5770, 4.44, 0.0, 0.], ['G', 'K'])


Out[4]:
array([0.0819599 , 1.45398088])

The bandpasses provided to initialize the grid object are parsed according to the .get_band method, which returns the photometric system and the name of the band in the system:


In [5]:
bc_grid.get_band('G'), bc_grid.get_band('g')


Out[5]:
(('UBVRIplus', 'Gaia_G_DR2Rev'), ('SDSSugriz', 'SDSS_g'))

Not all bands have cute nicknames to them, so you can also be explicit, e.g.:


In [6]:
bc_grid.get_band('DECam_g')


Out[6]:
('DECam', 'DECam_g')

See the implementation of .get_band for details.