synthesizer.emission_models.transformers.igm

A module for computing Intergalactic Medium (IGM) absorption.

This module contains classes for computing IGM absorption from Inoue et al. (2014), Madau et al. (1996), and Asada et al. (2025) models.

These are used when observer frame fluxes are computed using Sed.get_fnu(…) and are not designed to be used directly by the user.

Functions

synthesizer.emission_models.transformers.igm.sigma_a(nu_rest)[source]

Lyα absorption cross section for the restframe frequency.

Based on Totani+06, eqn (1) for CGM damping wing calculation.

Parameters:

nu_rest (float) – Rest-frame frequency in Hz.

Returns:

Lyα absorption cross section at the restframe frequency [cm²].

Return type:

float

Classes

class synthesizer.emission_models.transformers.igm.Asada25(sigmoid_params=(3.5918, 1.8414, 18.001), scale_tau=1.0, add_cgm=True)[source]

IGM+CGM absorption from Asada et al. 2025.

If you use this model please cite the following paper: https://iopscience.iop.org/article/10.3847/2041-8213/adc388

The IGM model is from Inoue+ (2014), with additional Lya damping absorption at z>6 as described in Asada+25. This model includes both Intergalactic Medium (IGM) and Circumgalactic Medium (CGM) effects.

sigmoid_params

Parameters that control the redshift evolution of the CGM HI gas column density (A, a, c). Default values are from Asada et al. (2025): (3.5918, 1.8414, 18.001).

Type:

tuple

scale_tau

Scalar multiplied to tau_igm. I.e., \(f_{\\mathrm{igm}} = e^{-\\mathrm{scale_\\tau} \\tau}\).

Type:

float

add_cgm

Add the additional LyA damping absorption at z>6 as described in Asada+25. If False, the transmission will be identical to Inoue+2014.

Type:

bool

name

Name of the model.

Type:

str

lam

Wavelengths for the model.

Type:

array

alf1

Coefficients for the Lyman-alpha forest.

Type:

array

alf2

Coefficients for the Lyman-alpha forest.

Type:

array

alf3

Coefficients for the Lyman-alpha forest.

Type:

array

adla1

Coefficients for the Damped Lyman-alpha absorption.

Type:

array

adla2

Coefficients for the Damped Lyman-alpha absorption.

Type:

array

get_transmission(redshift, lam_obs)[source]

Compute the IGM+CGM transmission.

Parameters:
  • redshift (float) – Redshift to evaluate IGM absorption.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

IGM+CGM transmission.

Return type:

array

lgNHI_z(redshift)[source]

HI column density as a function of redshift.

Calibrated in Asada+ 2025. Only valid at z>=6.

Parameters:

redshift (float) – Redshift of the source.

Returns:

log10(HI column density [cm⁻²]).

Return type:

float

tau_cgm(N_HI, redshift, lam_obs)[source]

CGM optical depth given by Totani+06, eqn (1).

Parameters:
  • N_HI (float) – HI column density [cm⁻²].

  • redshift (float) – Redshift of the source.

  • lam_obs (array) – Observed-frame wavelength array [Å].

Returns:

tau_CGM values.

Return type:

array

tau_dla(redshift, lam_obs)[source]

Compute the Lyman series and Damped Lyman-alpha (DLA) optical depth.

Parameters:
  • redshift (float) – Source redshift.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

Optical depth due to DLA.

Return type:

array

tau_igm(redshift, lam_obs)[source]

Compute the total IGM optical depth.

Parameters:
  • redshift (float) – Redshift to evaluate IGM absorption.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

Total IGM absorption optical depth.

Return type:

array

tau_laf(redshift, lam_obs)[source]

Compute the Lyman series and Lyman-alpha forest optical depth.

Parameters:
  • redshift (float) – Source redshift.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

Optical depth due to the Lyman-alpha forest.

Return type:

array

tau_lc_dla(redshift, lam_obs)[source]

Compute the Lyman continuum optical depth for DLA.

Parameters:
  • redshift (float) – Source redshift.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

Optical depth due to Lyman continuum for DLA.

Return type:

array

tau_lc_laf(redshift, lam_obs)[source]

Compute the Lyman continuum optical depth for LAF.

Parameters:
  • redshift (float) – Source redshift.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

Optical depth due to Lyman continuum for LAF.

Return type:

array

class synthesizer.emission_models.transformers.igm.IGMBase(name)[source]

Base class for IGM absorption models.

name

Name of the model.

Type:

str

get_transmission(redshift, lam_obs)[source]

Compute the IGM transmission.

Parameters:
  • redshift (float) – Redshift to evaluate IGM absorption.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

IGM transmission.

Return type:

array

plot_transmission(redshift, lam_obs, show=False, fig=None, ax=None, figsize=(8, 6))[source]

Plot the IGM transmission.

Parameters:
  • redshift (float) – Redshift to evaluate IGM absorption.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

  • show (bool) – Whether to show the plot.

  • fig (matplotlib.figure.Figure) – Figure to plot on.

  • ax (matplotlib.axes.Axes) – Axes to plot on.

  • figsize (tuple) – Figure size.

Returns:

Figure and Axes objects.

Return type:

tuple

Examples using synthesizer.emission_models.transformers.igm.IGMBase

IGM transmission example

IGM transmission example

Photometry example

Photometry example

Generate parametric observed SED

Generate parametric observed SED
class synthesizer.emission_models.transformers.igm.Inoue14(scale_tau=1.0)[source]

IGM absorption from Inoue et al. (2014).

Adapted from py-eazy.

scale_tau

Parameter multiplied to the IGM \(\tau\) values (exponential in the linear absorption fraction). I.e., \(f_{\\mathrm{igm}} = e^{-\\mathrm{scale_\tau} \tau}\).

Type:

float

name

Name of the model.

Type:

str

lam

Wavelengths for the model.

Type:

array

alf1

Coefficients for the Lyman-alpha forest.

Type:

array

alf2

Coefficients for the Lyman-alpha forest.

Type:

array

alf3

Coefficients for the Lyman-alpha forest.

Type:

array

adla1

Coefficients for the Damped Lyman-alpha absorption.

Type:

array

adla2

Coefficients for the Damped Lyman-alpha absorption.

Type:

array

get_transmission(redshift, lam_obs)[source]

Compute the IGM transmission.

Parameters:
  • redshift (float) – Redshift to evaluate IGM absorption.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

IGM transmission.

Return type:

array

tau(redshift, lam_obs)[source]

Compute the total IGM optical depth.

Parameters:
  • redshift (float) – Redshift to evaluate IGM absorption.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

Total IGM absorption optical depth.

Return type:

array

tau_dla(redshift, lam_obs)[source]

Compute the Lyman series and Damped Lyman-alpha (DLA) optical depth.

Parameters:
  • redshift (float) – Source redshift.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

Optical depth due to DLA.

Return type:

array

tau_laf(redshift, lam_obs)[source]

Compute the Lyman series and Lyman-alpha forest optical depth.

Parameters:
  • redshift (float) – Source redshift.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

Optical depth due to the Lyman-alpha forest.

Return type:

array

tau_lc_dla(redshift, lam_obs)[source]

Compute the Lyman continuum optical depth for DLA.

Parameters:
  • redshift (float) – Source redshift.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

Optical depth due to Lyman continuum for DLA.

Return type:

array

tau_lc_laf(redshift, lam_obs)[source]

Compute the Lyman continuum optical depth for LAF.

Parameters:
  • redshift (float) – Source redshift.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

Optical depth due to Lyman continuum for LAF.

Return type:

array

class synthesizer.emission_models.transformers.igm.Madau96[source]

IGM absorption from Madau et al. (1996).

lams

List of wavelengths for the model.

Type:

list

coefficients

List of coefficients for the model.

Type:

list

name

Name of the model.

Type:

str

get_transmission(redshift, lam_obs)[source]

Compute the IGM transmission.

Parameters:
  • redshift (float) – Redshift to evaluate IGM absorption.

  • lam_obs (array) – Observed-frame wavelengths in Angstroms.

Returns:

IGM transmission.

Return type:

array