Cosmological Source Catalog

SOXS provides the make_cosmological_sources_file() function to generate a set of photons from cosmological halos and store them in a SIMPUT catalog.

First, import our modules:

[1]:
import matplotlib

matplotlib.rc("font", size=18)
import soxs

Second, define our parameters, including the location within the catalog where we are pointed via the argument cat_center. To aid in picking a location, see the halo map.

[2]:
exp_time = (200.0, "ks")
fov = 20.0  # in arcmin
sky_center = [30.0, 45.0]  # in degrees
cat_center = [3.1, -1.9]

Now, use make_cosmological_sources_file() to create a SIMPUT catalog made up of photons from the halos. We’ll set a random seed using the prng parameter to make sure we get the same result every time. We will also write the halo properties to an ASCII table for later analysis, using the output_sources parameter:

[3]:
soxs.make_cosmological_sources_file(
    "my_cat.simput",
    "cosmo",
    exp_time,
    fov,
    sky_center,
    cat_center=cat_center,
    prng=33,
    overwrite=True,
)
soxs : [INFO     ] 2024-03-06 15:46:50,844 Creating photons from cosmological sources.
soxs : [INFO     ] 2024-03-06 15:46:50,844 Loading halo data from catalog: /Users/jzuhone/Source/soxs/soxs/files/halo_catalog.h5
soxs : [INFO     ] 2024-03-06 15:46:50,925 Coordinates of the FOV within the catalog are (3.1, -1.9) deg.
soxs : [INFO     ] 2024-03-06 15:46:50,925 Selecting halos in the FOV.
soxs : [INFO     ] 2024-03-06 15:46:50,928 Number of halos in the field of view: 384
soxs : [INFO     ] 2024-03-06 15:47:01,113 Created 5750617 photons from cosmological sources.
soxs : [INFO     ] 2024-03-06 15:47:01,337 Appending source 'cosmo' to my_cat.simput.
[3]:
<soxs.simput.SimputCatalog at 0x162d22480>

Next, use the instrument_simulator() to simulate the observation:

[4]:
soxs.instrument_simulator(
    "my_cat.simput",
    "cosmo_cat_evt.fits",
    exp_time,
    "lynx_hdxi",
    sky_center,
    overwrite=True,
)
soxs : [INFO     ] 2024-03-06 15:47:01,571 Making observation of source in cosmo_cat_evt.fits.
soxs : [INFO     ] 2024-03-06 15:47:01,791 Detecting events from source cosmo.
soxs : [INFO     ] 2024-03-06 15:47:01,792 Applying energy-dependent effective area from xrs_hdxi_3x10.arf.
soxs : [INFO     ] 2024-03-06 15:47:01,984 Pixeling events.
soxs : [INFO     ] 2024-03-06 15:47:02,311 Scattering events with a image-based PSF.
soxs : [INFO     ] 2024-03-06 15:47:02,672 2157834 events were detected from the source.
soxs : [INFO     ] 2024-03-06 15:47:02,885 Scattering energies with RMF xrs_hdxi.rmf.
soxs : [INFO     ] 2024-03-06 15:47:05,764 Adding background events.
soxs : [INFO     ] 2024-03-06 15:47:05,846 Adding in point-source background.
soxs : [INFO     ] 2024-03-06 15:47:14,930 Detecting events from source ptsrc_bkgnd.
soxs : [INFO     ] 2024-03-06 15:47:14,931 Applying energy-dependent effective area from xrs_hdxi_3x10.arf.
soxs : [INFO     ] 2024-03-06 15:47:16,103 Pixeling events.
soxs : [INFO     ] 2024-03-06 15:47:16,830 Scattering events with a image-based PSF.
soxs : [INFO     ] 2024-03-06 15:47:17,453 5499897 events were detected from the source.
soxs : [INFO     ] 2024-03-06 15:47:17,668 Scattering energies with RMF xrs_hdxi.rmf.
soxs : [INFO     ] 2024-03-06 15:47:23,667 Generated 5499897 photons from the point-source background.
soxs : [INFO     ] 2024-03-06 15:47:23,667 Adding in astrophysical foreground.
soxs : [INFO     ] 2024-03-06 15:47:34,901 Adding in instrumental background.
soxs : [INFO     ] 2024-03-06 15:47:36,643 Making 34150607 events from the galactic foreground.
soxs : [INFO     ] 2024-03-06 15:47:36,645 Making 407148 events from the instrumental background.
soxs : [INFO     ] 2024-03-06 15:47:42,422 Writing events to file cosmo_cat_evt.fits.
soxs : [INFO     ] 2024-03-06 15:48:03,436 Observation complete.

We can use the write_image() function in SOXS to bin the events into an image and write them to a file, restricting the energies between 0.7 and 7.0 keV:

[5]:
soxs.write_image(
    "cosmo_cat_evt.fits", "cosmo_img.fits", emin=0.7, emax=7.0, overwrite=True
)

We can now show the resulting image:

[6]:
fig, ax = soxs.plot_image(
    "cosmo_img.fits",
    stretch="sqrt",
    cmap="cubehelix",
    vmin=0.0,
    vmax=2.0,
    width=0.33333,
)
../_images/cookbook_Cosmo_Source_Catalog_13_0.png