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-05-02 19:34:12,079 Creating photons from cosmological sources.
soxs : [INFO     ] 2024-05-02 19:34:12,079 Loading halo data from catalog: /Users/jzuhone/Source/soxs/soxs/files/halo_catalog.h5
soxs : [INFO     ] 2024-05-02 19:34:12,165 Coordinates of the FOV within the catalog are (3.1, -1.9) deg.
soxs : [INFO     ] 2024-05-02 19:34:12,165 Selecting halos in the FOV.
soxs : [INFO     ] 2024-05-02 19:34:12,169 Number of halos in the field of view: 384
soxs : [INFO     ] 2024-05-02 19:34:22,991 Created 5750617 photons from cosmological sources.
soxs : [INFO     ] 2024-05-02 19:34:23,199 Appending source 'cosmo' to my_cat.simput.
[3]:
<soxs.simput.SimputCatalog at 0x14e763e30>

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-05-02 19:34:23,430 Making observation of source in cosmo_cat_evt.fits.
soxs : [INFO     ] 2024-05-02 19:34:23,609 Detecting events from source cosmo.
soxs : [INFO     ] 2024-05-02 19:34:23,610 Applying energy-dependent effective area from xrs_hdxi_3x10.arf.
soxs : [INFO     ] 2024-05-02 19:34:23,811 Pixeling events.
soxs : [INFO     ] 2024-05-02 19:34:24,143 Scattering events with a image-based PSF.
soxs : [INFO     ] 2024-05-02 19:34:24,445 2158796 events were detected from the source.
soxs : [INFO     ] 2024-05-02 19:34:24,572 Scattering energies with RMF xrs_hdxi.rmf.
soxs : [INFO     ] 2024-05-02 19:34:27,335 Adding background events.
soxs : [INFO     ] 2024-05-02 19:34:27,406 Adding in point-source background.
soxs : [INFO     ] 2024-05-02 19:34:35,070 Detecting events from source ptsrc_bkgnd.
soxs : [INFO     ] 2024-05-02 19:34:35,071 Applying energy-dependent effective area from xrs_hdxi_3x10.arf.
soxs : [INFO     ] 2024-05-02 19:34:36,072 Pixeling events.
soxs : [INFO     ] 2024-05-02 19:34:36,751 Scattering events with a image-based PSF.
soxs : [INFO     ] 2024-05-02 19:34:37,468 4520391 events were detected from the source.
soxs : [INFO     ] 2024-05-02 19:34:37,732 Scattering energies with RMF xrs_hdxi.rmf.
soxs : [INFO     ] 2024-05-02 19:34:43,516 Generated 4520391 photons from the point-source background.
soxs : [INFO     ] 2024-05-02 19:34:43,517 Adding in astrophysical foreground.
soxs : [INFO     ] 2024-05-02 19:34:54,827 Adding in instrumental background.
soxs : [INFO     ] 2024-05-02 19:34:56,603 Making 34160147 events from the galactic foreground.
soxs : [INFO     ] 2024-05-02 19:34:56,606 Making 407867 events from the instrumental background.
soxs : [INFO     ] 2024-05-02 19:35:01,242 Writing events to file cosmo_cat_evt.fits.
soxs : [INFO     ] 2024-05-02 19:35:09,901 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