Skip to content

mranuraggarg/a2163-xray-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A2163 X-ray Analysis and Intracluster Medium Modeling

This repository contains the X-ray surface brightness analysis and physical modeling of the massive galaxy cluster Abell 2163, using Chandra ACIS-I observations.

The analysis includes:

  • Surface brightness fitting using single and double β-models.

  • Posterior sampling using MCMC (emcee) and uncertainty estimation.

  • Derivation of key physical parameters from the X-ray data:

    • Double-β core radii ( R_{01}, R_{02} )
    • Central electron density ( n_{e0} )
    • Gas mass profile
    • Electron pressure profile
    • Hydrostatic total mass profile
    • SZ projection and a literature-(y_0)-based Hubble constant estimate

    📁 Repository Structure

a2163-xray-analysis/
├── scripts/               # Python scripts for fitting and physical parameter extraction
│   ├── rprofile_fit.py
│   ├── rprofile_fit_sherpa.py
│   ├── extract_radial_profile.py
│   └── physical_parameters_calc.py
│
├── results/               # Fit result and computed physical parameters
│   ├── fit_result
│   ├── fit_params.json
│   └── physical_parameters.json
│
├── graphs/                # Final plots for publication/reporting
│   ├── surface_brightness.png
│   ├── electron_pressure_profile.png
│   └── hydrostatic_mass_profile.png
│
├── report/                # Optional LaTeX scientific report
│   └── a2163_report.tex
│
├── requirements.txt       # Python package dependencies (optional)
├── LICENSE                # License (e.g., MIT or Apache-2.0)
└── README.md              # You're here

🔬 Data & Restrictions

⚠️ Note: Due to copyright restrictions, this repository does not include any Chandra data files (e.g., .fits, .evt, .pi, .arf, .rmf). Only derived results and scripts are shared.

📊 Key Methods

  • Beta Model Fitting: Sherpa and SciPy used for parameter estimation.
  • Posterior Sampling: emcee for β-model uncertainty quantification.
  • Gas Mass & Electron Density: Derived from a double-β density model tied to the X-ray surface-brightness fit and XSPEC normalization.
  • Pressure & Hydrostatic Mass: Computed with physical assumptions and visualized with Seaborn.
  • SZ / Hubble Step: The current pipeline uses the double-β density model plus an isothermal temperature and a literature central Comptonization (y_0) to estimate (D_A) and (H_0).

📚 References


Feel free to use this for modeling other clusters by modifying the input radial profile and updating redshift & cosmology parameters accordingly.

▶️ How To Run

The current checked-in results can be reproduced from the existing fit products in this repository.

Reproduce the Physical / SZ / Hubble Results

Run these commands from the repository root inside the sz-env Python environment:

python scripts/physical_parameters_calc.py
python scripts/observed_yb_profile.py
python scripts/pressure_profile.py
python scripts/hubble_constant_from_literature_y0.py

These commands regenerate:

  • results/physical_parameters.json
  • results/fit_params.json
  • results/sz_planck_comparison.json
  • results/hubble_constant_from_literature_y0.json
  • graphs/electron_pressure_profile.png
  • graphs/hydrostatic_mass_profile.png

Reproduce the Surface-Brightness Fit

If you already have radial_profile.fits, run:

python scripts/rprofile_fit.py

This reproduces the Python double-β fit to the radial surface-brightness profile.

Re-extract the Radial Profile

If you are working inside a CIAO environment with the required event files available, run:

python scripts/extract_radial_profile.py

This creates radial_profile.fits, which is then used by the fitting scripts.

Notes

  • The current README summary corresponds to the checked-in pipeline state and the existing results/fit_result.
  • The current Hubble constant result in this repository is:
    • ( H_0 = 119.99^{+51.50}_{-25.80} ) km s(^{-1}) Mpc(^{-1})
  • The Planck catalog step only provides an integrated SZ observable (Y5R500), not observed radial SZ profile points.

📈 Summary of Results

Parameter Value Uncertainty
Core radius ( R_{01} ) 296.97 kpc ± 72.42 kpc
Core radius ( R_{02} ) 705.12 kpc ± 608.20 kpc
Central electron density ( n_{e0} ) 7.34 × 10⁻³ cm⁻³ ± 1.23 × 10⁻² cm⁻³
Temperature ( kT ) 12.47 keV ± 1.97 keV
Abundance 0.356 ± 0.126
Spectral Norm 1.72 × 10⁻³ ± 5.88 × 10⁻⁵
Gas Mass (r < 1 Mpc) 1.67 × 10¹⁴ ( M_\odot ) from Monte Carlo sampling
Angular diameter distance ( D_A ) 401.71 Mpc +110.04 / -120.65 Mpc
Hubble constant ( H_0 ) 119.99 km s⁻¹ Mpc⁻¹ +51.50 / -25.80

🔭 Current SZ / Hubble Status

The current Hubble constant estimate is obtained from:

  1. the double-β X-ray density model,
  2. an isothermal temperature from the core spectral fit,
  3. the literature central SZ Comptonization (y_0 = 3.73^{+0.48}_{-0.61} \times 10^{-4}),
  4. inversion of the angular-diameter distance relation at (z = 0.203).

Using the current scripts:

  • ( D_A = 401.71^{+110.04}_{-120.65} ) Mpc
  • ( H_0 = 119.99^{+51.50}_{-25.80} ) km s(^{-1}) Mpc(^{-1})

This value should be treated as a working pipeline result, not a final cosmological measurement.

⚠️ Sources of Error

  • The XSPEC spectral normalization used here comes from a core extraction region of radius 50 pixels, while the double-β surface-brightness model is being used as a broader cluster gas model.
  • The current temperature is a core temperature, not a global temperature profile.
  • The Hubble constant uncertainty currently propagates only the literature (y_0) error. Full propagation of X-ray uncertainties is not yet implemented in the (H_0) step.
  • The double-β density reconstruction assumes the two X-ray surface-brightness components can be mapped into two density components through the projected emissivity ratio.
  • The Planck catalogue entry provides an integrated SZ observable ((Y5R500)), not observed radial SZ points.
  • The current X-ray-predicted integrated SZ signal overestimates the Planck catalogue value:
    • model (Y5R500 = 65.36 \times 10^{-3}) arcmin(^2)
    • Planck (Y5R500 = 23.53 \pm 1.63 \times 10^{-3}) arcmin(^2)

🛠️ Future Direction

  • Re-run the X-ray spectral fit using a region that is geometrically consistent with the double-β surface-brightness model, not only the 50-pixel core.
  • Replace the single isothermal temperature assumption with either a global temperature measurement or a radial temperature model.
  • Propagate the uncertainties in (n_{e01}), (n_{e02}), (r_{01}), (r_{02}), (\beta_1), (\beta_2), and (kT) through the SZ and (H_0) calculations.
  • Compare the X-ray-predicted integrated SZ signal to Planck as a consistency check before treating the (H_0) estimate as final.
  • If available later, incorporate a properly matched SZ radial dataset instead of relying only on literature (y_0) and catalogue (Y5R500).

🖼️ Key Result Plots

Surface Brightness Fit

Surface Brightness

Electron Pressure Profile

Electron Pressure

Hydrostatic Mass Profile

Hydrostatic Mass

🔐 License Information

This repository is licensed under the GNU General Public License v3.0 (GPL-3.0) to comply with the licensing terms of key scientific packages it depends on.

Project License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
See the LICENSE file for details.

  • The core analysis is built around Sherpa, which is licensed under GPL-3.0.
  • As a result, this repository and all associated scripts are distributed under the same license.

📘 Citation

If you use this repository, please cite it via:

DOI

Anurag Garg. (2025). mranuraggarg/a2163-xray-analysis: Initial Scientific Release: A2163 X-ray Surface Brightness & Mass Analysis (v1.0.0). Zenodo. https://doi.org/10.5281/zenodo.15097986

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages