A modular Python framework for reading and analyzing GALFORM HDF5 simulation outputs.
Project description
galform_analysis
A modular Python framework designed for the efficient reading and analysis of GALFORM HDF5 simulation outputs. This library provides standardized tools for processing large-scale galaxy formation data, from low-level HDF5 I/O to high-level astronomical probes.
Core Features
- Standardized I/O: Robust loaders for GALFORM
galaxies.hdf5files with support for different output versions. - Data Aggregation: Tools to scan simulation directories and aggregate data across subvolumes using high-performance
polarsdataframes. - Mass Functions: Computation of Stellar Mass Functions (SMF), Halo Mass Functions (HMF), and Halo Occupation Distribution (HOD).
- Correlation Functions: Estimators for 2-point, 3-point, and N-point correlation functions (2PCF/NPCF) including subvolume-weighted corrections for convergence analysis.
- Redshift-Space Distortions: Estimators for anisotropic clustering ($\xi(s, \mu)$) and multipoles ($\xi_0, \xi_2, \xi_4$).
- Simulation Management: Built-in configurations for major N-body simulations including L800, Millennium I/II, COLIBRE, and FLAMINGO.
Installation
Install the package in your Python environment:
uv pip install -e .
Dependencies
The library requires numpy, scipy, matplotlib, polars, h5py, seaborn, and Corrfunc. These are automatically managed during installation.
Quick Start
The following example demonstrates how to load a simulation configuration and read galaxy data:
from galform_analysis import SimulationConfig, config
from galform_analysis.readers.loaders import read_snapshot_data
# 1. Access simulation-specific constants (box size, cosmology, etc.)
sim = SimulationConfig('L800')
print(f"Simulation: {sim.name}, Box Size: {sim.box_size} Mpc/h")
# 2. Configure the data location
config.set_base_dir('/path/to/Galform_Out/L800/model_name')
# 3. Load snapshot data for a specific subvolume
data = read_snapshot_data('iz271', ivol=0)
mstar = data['mstar'] # Stellar masses in M_sun/h
Citation & Academic Credit
If you use galform_analysis in your research, please cite the software using the DOI provided above or the following BibTeX entry:
@software{galform_analysis,
author = {Hickman, Oscar},
title = {galform_analysis: A modular Python framework for analyzing GALFORM simulation outputs},
version = {0.1.3},
doi = {10.5281/zenodo.FIXME},
url = {https://github.com/OscarHickman/galform_analysis}
}
Simulation Metadata
Configurations for supported simulations are stored centrally in galform_analysis/sim_configs/. This allows for dynamic access to cosmological parameters and volume metadata:
from galform_analysis import SimulationConfig
flamingo = SimulationConfig('FLAMINGO')
omega_m = flamingo.omega_m
h0 = flamingo.h0
Documentation & Examples
Refer to the examples/ directory for interactive Jupyter notebooks:
examples/readers/load_snapshot.ipynb: Introduction to data loading.examples/analysis/mass_functions/smf_example.ipynb: Plotting Stellar Mass Functions.examples/analysis/correlation/correlation_example.ipynb: Computing clustering statistics.
Testing & Quality Standards
The project maintains high code quality through automated linting and comprehensive testing:
# Run the test suite
pytest tests
# Check code style
ruff check galform_analysis
Author
Oscar Hickman
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file galform_analysis-0.1.5.tar.gz.
File metadata
- Download URL: galform_analysis-0.1.5.tar.gz
- Upload date:
- Size: 61.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2aee3d52b4daa41dfbf17ee3a5510efa36ebff2bb114872ceff6530776abc609
|
|
| MD5 |
c4f045e39c61b62d3ce947f9b62127b5
|
|
| BLAKE2b-256 |
e080c207d024a9971e2985ab418476a219b61972a670c257dd3bda1764fdd2db
|
Provenance
The following attestation bundles were made for galform_analysis-0.1.5.tar.gz:
Publisher:
release.yml on OscarHickman/galform_analysis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
galform_analysis-0.1.5.tar.gz -
Subject digest:
2aee3d52b4daa41dfbf17ee3a5510efa36ebff2bb114872ceff6530776abc609 - Sigstore transparency entry: 1646255970
- Sigstore integration time:
-
Permalink:
OscarHickman/galform_analysis@a12d744ff91f087d3e742affdd49bb1e4c793987 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/OscarHickman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a12d744ff91f087d3e742affdd49bb1e4c793987 -
Trigger Event:
push
-
Statement type:
File details
Details for the file galform_analysis-0.1.5-py3-none-any.whl.
File metadata
- Download URL: galform_analysis-0.1.5-py3-none-any.whl
- Upload date:
- Size: 76.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0dd0c1589039665aa0df0ab699717b91b1e097ba030bd55f254de2276c499459
|
|
| MD5 |
c4bf53c05ecda8737fd7cbb665c60783
|
|
| BLAKE2b-256 |
601a82b817fc2a493a537e09c84fa3f18ab6197346e9f0452f60127aac23fa88
|
Provenance
The following attestation bundles were made for galform_analysis-0.1.5-py3-none-any.whl:
Publisher:
release.yml on OscarHickman/galform_analysis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
galform_analysis-0.1.5-py3-none-any.whl -
Subject digest:
0dd0c1589039665aa0df0ab699717b91b1e097ba030bd55f254de2276c499459 - Sigstore transparency entry: 1646256117
- Sigstore integration time:
-
Permalink:
OscarHickman/galform_analysis@a12d744ff91f087d3e742affdd49bb1e4c793987 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/OscarHickman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a12d744ff91f087d3e742affdd49bb1e4c793987 -
Trigger Event:
push
-
Statement type: