Simulated Mock Population of Lyman-Alpha Emitters Generator
A modular, end-to-end pipeline to generate simulated Lyman-α emitters from cosmological simulation outputs.
Note: This pipeline builds upon the methodology outlined in Weinberger et al. (2019), which models intrinsic and transmitted Lyman-α emission based on halo properties and radiative transfer approximations.
-
Clone the repo:
git clone https://github.com/yourorg/SiMPLE-Gen.git cd SiMPLE-Gen -
Install dependencies:
pip install -r requirements.txt
-
Prepare your raw data:
-
Ensure the necessary directories exist by running:
mkdir -p data/raw data/processed
-
Place simulation files (density, temperature, ionization, velocity, halo positions & masses) in
data/raw/. -
Edit
SiMPLE-Gen/config.py ▶︎ INPUT_DIRto point at that folder.
-
SiMPLE-Gen/ # root folder (repo name)
├── run.py # master pipeline script
├── requirements.txt # Python dependencies
├── README.md # this file
├── .gitignore
└── SiMPLE-Gen/ # Python package
├── config.py # all RAW & PATHS definitions
├── gen.py # Step 1: sightline generation
├── spec.py # Step 2: τ(z) calculation
├── abundance.py # Step 3: abundance matching
├── assign.py # Step 4: LLya & REW sampling
└── damping.py # Step 5: damping transmission
Simulation inputs live outside this repo under data/raw/, and outputs are written to data/processed/ by default.
Execute the master script:
python run.pyThis calls each step in sequence: gen.py, spec.py, abundance.py, assign.py, damping.py.
gen.py: Extracts 1D neutral-hydrogen, temperature, and velocity sightlines around halos.spec.py: Computes Lyman-α optical depth τ(z) along each sightline using your Voigt-profile routine.abundance.py: Builds a Sheth–Tormen halo mass function, Schechter UV LF, applies duty cycle, then matches halo masses ↔ UV magnitudes.assign.py: Defines probability distributions for rest-frame equivalent width (REW) and Lyman-α luminosity, and Monte Carlo-samples each halo’s values.damping.py: Convolves τ(v) with a halo-velocity Gaussian to compute the equivalent-width decrease ratio.
All file paths are centralized in config.py—no hidden hardcoded paths.