BaryonForge.utils.Xray module

class BaryonForge.utils.Xray.EmissivityTable(T, Z, a, emissivity, regular_grid=True, regular_grid_method='linear', pad_low_T=True)[source]

Bases: object

Interpolate emissivity in (T, Z, z), using log for T and emissivity.

Parameters:
  • T (array_like) – Full list of sample-point coordinates. These must always be passed as point lists of equal length, even when the samples lie on a regular Cartesian grid. We need temperature in physical keV, metallicity in Zsolar, and scale factor.

  • Z (array_like) – Full list of sample-point coordinates. These must always be passed as point lists of equal length, even when the samples lie on a regular Cartesian grid. We need temperature in physical keV, metallicity in Zsolar, and scale factor.

  • a (array_like) – Full list of sample-point coordinates. These must always be passed as point lists of equal length, even when the samples lie on a regular Cartesian grid. We need temperature in physical keV, metallicity in Zsolar, and scale factor.

  • emissivity (array_like) – Emissivity values at the supplied points. Must have the same shape as T, Z after flattening. Volumes in CCL/Baryonforge are always in comoving units, so pass in emissivity in cm^3 –> comoving cm^3

  • regular_grid (bool) – If True, interpret the input points as a full Cartesian product grid and use RegularGridInterpolator after validating this. If False, use NearestNDInterpolator on the scattered points.

  • regular_method (str, optional) – Interpolation method for RegularGridInterpolator. Default is “linear”.

  • pad_low_T (bool, optional) – Whether to pad the table so it can handle extremely low astrophysical temperature (T < 1e4 K) that are below the table limits. Setting this to True will return 0 emissivity for these regions, instead of returning out-of-bounds errors. These temperatures can occur in our models for low-mass or large-separation scenarios.

sentinel_value = 1e-100