Skip to content

TNG300 X-ray Lightcone, LC-TNGX

LC-TNGX is made available here. Here, we give some key details and expand on the data structure of the public TNG300-based X-ray lightcone.

We use the IllustrisTNG cosmological hydrodynamical simulation with the box of side length \(302.6\) Mpc (TNG300) to construct a lightcone. The lightcone is described in detail in Shreeram et al. 2025a: Quantifying Observational Projection Effects with a Simulation-Based Hot CGM Model; particularly see Sec. 2.

Lightcone structure Figure 1 from Shreeram et al. 2025a, which is an illustration of the lightcone built using TNG300 in the x − y plane.

Lightcone Construction

LC-TNGX models the hot gas emission in X-rays in the redshift range \(0.03 \lesssim z \lesssim 0.3\), to mock observations in the local Universe. The code used to generate the lightcone is also publicly available: LightGen.

Projection illustration Figure 2 from Shreeram et al. 2025a, showing the projected rest-frame X-ray events from the TNG300 ligthcone in the 0.5−2.0 keV band.

We box remap all snapshots into a configuration where the most extended length of one of the sides is approximately four times the original length (Carlson & White 2010; see also this website). This technique ensures that the new elongated box has a one-to-one remapping, remains volume-preserving, and preserves local structures. For a box whose original dimensions are normalized to \((1,1,1)\), the unique solution for the transformed box sides is \((4.1231, 0.7276, 0.3333)\). The opening angles for the observer are (10.16, 4.64) degrees and the area subtended in the sky for the observer is 47.28 sq. degress. We remap the coordinates of the gas cells, dark matter particles, and the halo and subhalo catalogues.

Directory & File Descriptions

This public lightcone is constructed using 19 snapshots within the observationally motivated redshift range \(0.03 \leq z \leq 0.3\). Therefore, the data within the LC-TNGX directories is structured into snapshot directories. E.g., snapdir_XX, where XX goes from 78-96 (\(0.03 \leq z \leq 0.3\) ). Snapshot numbering matches the standard IllustrisTNG convention. Each of the lightcone_xray_SNXX.hdf5 file contains the following subdirectories ['Gas', 'XrayEvents', 'XrayPhotons'], which are containing the following information described below.

import h5py as h5

with h5.File(f"{filapath}/lightcone_xray_096.hdf5", "r") as f:
    print(list(f.keys()))
    print(list(f["Gas/data"].keys()))
    print(list(f["XrayEvents/data"].keys()))
    print(list(f["XrayPhotons/data"].keys()))

outputs the following:

['Gas', 'XrayEvents', 'XrayPhotons']
['Zmet', 'density', 'hsml', 'mass', 'pos', 'sfr', 'temperature', 'vel', 'x_H', 'x_e']
['density', 'eobs', 'event_positions', 'los', 'num_photons', 'redshift_ph', 'temperature', 'xsky', 'ysky']
['density', 'dx', 'energy', 'num_photons', 'temperature', 'vx', 'vy', 'vz', 'x', 'y', 'z']

We further describe the quantities in the directories Gas/, XrayEvents/, and XrayPhotons/ in the following subsections.

Gas/

This directory contains the properties of gas cells across the lightcone. The files within describe the thermodynamic and physical characteristics of the gas cells from TNG that contributes to the lightcone. There are 21 snapshot directories, each corresponding to the shells of the lightcone.

The files within each snapshot directory are named lightcone_xray_SNXX.hdf5/Gas. Here, `XX` goes from 78-96.

lightcone_xray_SNXX.hdf5/Gas/data/

Gas cell properties corresponding to the remapped IllustrisTNG snapshots used for construction of the lightcone. Units follow the original IllustrisTNG snapshot specification (PartType0). See: https://www.tng-project.org/data/docs/specifications/#parttype0

Column Description
Zmet Gas metallicity. Defined as GFM_Metallicity / 0.0127 from the original TNG snapshot.
density Gas cell density (same definition as PartType0/Density in TNG).
hsml Gas cell smoothing length computed as hsml = 2.0 * (3 * vol / (4.0 * π))^(1/3), where vol is the Voronoi cell volume.
mass Gas cell mass (same definition as PartType0/Masses).
pos Three-dimensional comoving position of the gas cell (same definition as PartType0/Coordinates).
sfr Star formation rate of the gas cell (same definition as PartType0/StarFormationRate).
temperature Gas temperature derived from internal energy and electron abundance (same definition as PartType0/InternalEnergy-based temperature).
vel Three-dimensional peculiar velocity of the gas cell (same definition as PartType0/Velocities).
x_H Hydrogen mass fraction of the gas cell. When not available (e.g., for the mini-snaps), set to 0.76.
x_e Electron abundance of the gas cell (same definition as PartType0/ElectronAbundance).

XrayEvents/ and XrayPhotons/

Files corresponding to the X-ray emission from gas in LC-TNGX. The X-ray events are generated using pyXSIM in the 0.5 - 2 keV X-ray energy band, using the Asplund et al. 2009 abundance tables.

In the directory, there are 19 snapshot files, SNXX, where XX \( \in\)[78, 96]. This corresponds to the shells of the lightcone. The XrayPhotons/ directory is the merged outputs of the make_photons() function in pyXSIM. The XrayEvents/ directory is the merged data products of pyXSIM function project_photons(), representing the synthetic observations enabling comparison with real observed data (e.g., Shreeram et al. 2025b). Please refer to the pyXsim documentation for details on the file properties.

lightcone_xray_SNXX.hdf5/XrayEvents

X-ray photons and event file generated from pyXsim. Each row corresponds to a single detected event in the 0.5−2.0 keV band for a telescope with energy-independent collecting area 1000 cm sq. and exposure time of 1000 ks.

Column Units Description
xsky deg Right Ascension (J2000).
ysky deg Declination (J2000).
eobs keV Photon energy.
los pkpc Line-of-sight distance to the X-ray event.
redshift Redshift of the photon.
temperature K Temperature of the gas cell that is emitting the X-ray photon. Note: the same gas cell may emit multiple photons.
density g cm-3 Density of the gas cell that is emitting the X-ray photon.
event_positions ckpc (X, Y, Z) coordinates of the gas cells emitting the X-ray photon. Caution: do not use these for cross-matching with FoF halos. Use xsky, ysky, and los for cross-matching on the sky.
num_photons ckpc The number of photons. Here, the value is simply one. The number of photons per gas cell can be found in XrayPhotons/data/num_photons, which provides useful information about the number of X-ray photons emitted per gas cell.

Halo and subhalo catalogs

The below two files represent the halo (central galaxies) and subhalo (satellite galaxies) catalog. The quantities are all taken from the original TNG snapshots.

central_halo_properties_all_snaps.fits

Merged halo catalogue containing all central halos across lightcone snapshots.

Column Units Description
Halo_ID Halo ID (count starts from 0).
flag_mass Cases exist where SUBFIND does not define a mass for the halo; these cases are flagged with False.
RA deg Right Ascension (J2000).
DEC deg Declination (J2000).
M500c 1e10 M Total mass enclosed in a sphere whose mean density is 500× the critical density of the Universe.
M200c 1e10 M Total mass enclosed in a sphere whose mean density is 200× the critical density of the Universe.
M200m 1e10 M Total mass enclosed in a sphere whose mean density is 200× the mean matter density of the Universe.
R200c ckpc Comoving radius of a sphere centered at (X_halo, Y_halo, Z_halo) whose mean density is 200× the critical density.
R200m ckpc Comoving radius of a sphere centered at (X_halo, Y_halo, Z_halo) whose mean density is 200× the mean matter density.
R500c ckpc Comoving radius of a sphere centered at (X_halo, Y_halo, Z_halo) whose mean density is 500× the critical density.
R200c_deg deg Angular size corresponding to R200c, computed using astropy's arcsec_per_kpc_comoving(redshift).
D_c ckpc Comoving distance to the group.
redshift Redshift of the group within the framework of the lightcone.
subhalo_ids ID into the original TNG300-1 Subhalo catalog.
M_star_in_2xR_star 1e10 M Sum of masses of all particles/cells within twice the stellar half-mass radius.
X_halo ckpc Projected X-coordinate of the group. Warning: do not use for cross-matching with X-ray events. Use the RA, Dec., los for cross-matching on the sky.
Y_halo ckpc Projected Y-coordinate of the group. Warning: do not use for cross-matching with X-ray events. Use the RA, Dec., los for cross-matching on the sky.
Z_halo ckpc Projected Z-coordinate of the group. Warning: do not use for cross-matching with X-ray events. Use the RA, Dec., los for cross-matching on the sky.
N_gal Total number of groups in this halo catalog.
ARF cm2 Effective collecting area defined for generation of events with pyxsim.
sat_subhalo_properties_all_snaps.fits

Merged subhalo catalogue containing all satellite subhalos across lightcone snapshots. Definitions follow those of the central halo catalogue; here all entries correspond to satellites.

Column Units Description
Subhalo_ID Subhalo ID (count starts from 0).
flag_mass Cases where SUBFIND does not define a mass are flagged with False.
Parent_ID ID of the parent distinct halo (Halo_ID).
RA deg Right Ascension (J2000).
DEC deg Declination (J2000).
M_star_in_2xR_star 1e10 M Sum of masses of all particles/cells within twice the stellar half-mass radius.
Cen_M_star_in_2xR_star 1e10 M Stellar mass of the corresponding central halo, defined within twice the stellar half-mass radius.
subhalo_sfr M yr-1 Star formation rate of the subhalo.
stellar_metallicity Stellar metallicity of the subhalo.
subhalo_radius ckpc Comoving radius of the subhalo.
subhalo_radius_deg deg Angular size corresponding to subhalo_radius.
D_c ckpc Comoving distance to the subhalo.
redshift Redshift of the subhalo within the framework of the lightcone.
M500c 1e10 M Parent halo mass enclosed within 500× the critical density.
M200m 1e10 M Parent halo mass enclosed within 200× the mean matter density.
R200c ckpc Comoving radius of the parent halo defined at 200× the critical density.
R200m ckpc Comoving radius of the parent halo defined at 200× the mean matter density.
R500c ckpc Comoving radius of the parent halo defined at 500× the critical density.
R200c_deg deg Angular size corresponding to R200c.
X_subhalo ckpc Projected X-coordinate of the subhalo. Warning: do not use for cross-matching with X-ray events. Use the RA, Dec., los for cross-matching on the sky.
Y_subhalo ckpc Projected Y-coordinate of the subhalo. Warning: do not use for cross-matching with X-ray events. Use the RA, Dec., los for cross-matching on the sky.
Z_subhalo ckpc Projected Z-coordinate of the subhalo. Warning: do not use for cross-matching with X-ray events. Use the RA, Dec., los for cross-matching on the sky.
N_gal Total number of satellite subhalos in this catalogue.
ARF cm2 Effective collecting area defined for generation of events with pyxsim.

observer_locations.npy

Defines the possible observer locations for the generated lightcone. This lightcone and all the data products correspond to the base case observer located at (0, 0, 0). Nevertheless, 8 other possible observer positions are possible.

snapshot_info.csv

Provides metadata describing the structure of the lightcone. The file includes the following information:

snapshot_info.csv

Snapshot-level information defining the lightcone shell boundaries. Each row corresponds to one snapshot contributing to the lightcone.

Column Units Description
snapshot TNG snapshot number.
redshift Redshift of the snapshot in IllustrisTNG.
d_c Mpc Comoving distance corresponding to the snapshot redshift.
d_c_min Mpc Minimum comoving distance defining the inner boundary of the shell.
d_c_max Mpc Maximum comoving distance defining the outer boundary of the shell.
redshift_min Minimum redshift corresponding to d_c_min.
redshift_max Maximum redshift corresponding to d_c_max.
volMpc3 Mpc3 Comoving volume of the shell subtended by the lightcone.

⚠️ Recommended starting point: users are encouraged to inspect this file first to understand the overall layout and organization of the lightcone.

Xray_products_0.50-2.00_keV

This file combines the X-ray and gas property information for every halo in a given stellar mass or halo mass bin within the 0.50–2.00 keV X-ray energy band.

central_halo_profiles_logM200m_11.5-15.fits

The central halo profiles for halos in the lightcone with \( 11.5 \leq \log_{10}(M_{200m}) \leq 15 \). This file combines halo properties with X-ray emission and gas thermodynamic profiles computed in radial bins. The lightcone is constructed primarily for Milky Way and slightly higher mass halos, and is best suited for science cases studying that mass range.

Column Units Description
Halo_ID Halo ID (same definition as in central_halo_properties_all_snaps.fits).
snap_nr Snapshot number corresponding to the halo.
redshift Redshift of the halo within the lightcone.
M200m 1e10 M Halo mass enclosed within 200× the mean matter density.
M200c 1e10 M Halo mass enclosed within 200× the critical density.
M500c 1e10 M Halo mass enclosed within 500× the critical density.
R200m ckpc Comoving radius corresponding to M200m.
R200c ckpc Comoving radius corresponding to M200c.
R500c ckpc Comoving radius corresponding to M500c.
R200c_deg deg Angular size corresponding to R200c.
M_star_in_2xR_star 1e10 M Stellar mass within twice the stellar half-mass radius.
ra_halo deg Right Ascension (J2000) of the halo.
dec_halo deg Declination (J2000) of the halo.
dc_halo ckpc Comoving distance to the halo.
x_halo ckpc Projected X-coordinate of the halo.
y_halo ckpc Projected Y-coordinate of the halo.
z_halo ckpc Projected Z-coordinate of the halo.
all_profiles_2d erg s-1 cm-2 X-ray surface brightness profile for the halo. Zeros correspond to no events found for the used telescope specifications.
all_Lx_2d erg s-1 Sum of the X-ray events within R200m of the halo.
r_gas_mean ckpc Radial bins over which the gas property profiles are computed.
den_mw_prof M kpc-3 Density profile, mass-weighted.
den_vol_prof M kpc-3 Density profile, volume-weighted.
temp_mw_prof keV Temperature profile, mass-weighted.
temp_vol_prof keV Temperature profile, volume-weighted.
zmet_mw_prof Metallicity profile, mass-weighted.
zmet_vol_prof Metallicity profile, volume-weighted.
den_emv_prof M kpc-3 Density profile, emission-measure weighted.
temp_emv_prof keV Temperature profile, emission-measure weighted.
zmet_emv_prof Metallicity profile, emission-measure weighted.
mass_vol_prof M Volume-weighted mass profile.
ne_vol_prof cm-3 Electron number density profile (use with caution as it is not tested).
gas_mass500c M Sum of gas cell masses within R500c; use with caution as it is not volume-weighted.
gas_mass200m M Sum of gas cell masses within R200m; use with caution as it is not volume-weighted.

Note that there is also another file central_halo_profiles_logMstar_10.0-11.6.fits, with identical columns as central_halo_profiles_logM200m_11.5-15.fits. However, this file is a selection of central galaxies within LC-TNGX in a stellar mass range of \( 10.0 \leq \log_{10}(M_{\star}) \leq 11.6 \).

The radial bins over which the X-ray surface brightness profiles (all_profiles_2d) are computed are logarithmically spaced from 0.8 kpc up to 3000 kpc. You can copy the python code snippet below:

r_bins = 10**np.arange(0., 3.51, 0.05)

Note: to obtain the mean X-ray profile in the selected mass/redshift range, average over the halo axis.

mean_profile = np.mean(out["all_profiles_2d"], axis=0)