Skip to main content

A Python package to stack faint galaxy images and prepare them for SED analysis

Project description

Stacked SEDs

CI/CD Pipeline Documentation Status PyPI Python 3.8+ License: MIT

A Python package for stacking faint galaxy images from multiple broadband filters and preparing them for Spectral Energy Distribution (SED) analysis.

Key Features

  • Galaxy Image Stacking: Robust stacking of hundreds of faint galaxy cutouts using trimmed mean statistics
  • Error Propagation: Automatic calculation of uncertainty maps using Median Absolute Deviation (MAD)
  • Radial Photometry: Azimuthally averaged surface brightness profiles with background subtraction
  • Publication-Ready Plots: Automated generation of multi-filter comparison plots
  • Command-Line Tools: Simple sed-stack and sed-photom commands for easy workflow execution

Installation

PyPI (Recommended)

pip install stacked-seds

Development Installation

For contributors or to get the latest features:

git clone https://github.com/ryantrainor/stacked-seds.git
cd stacked-seds
pip install -e ".[dev]"

Verify Your Installation

# Test command-line tools
sed-stack --help
sed-photom --help

# Test Python imports
python -c "import stacked_seds; print(f'Successfully installed version {stacked_seds.__version__}')"

Requirements

  • Python ≥ 3.8
  • NumPy ≥ 1.20.0
  • SciPy ≥ 1.7.0
  • Astropy ≥ 5.0.0
  • Matplotlib ≥ 3.5.0
  • PhotoUtils ≥ 1.5.0

All dependencies are automatically installed with pip.

Quick Start

Basic Usage

# 1. Create configuration file
cp config/params.yml my_config.yml

# 2. Edit my_config.yml with your data paths

# 3. Run stacking workflow
sed-stack my_config.yml
sed-photom my_config.yml

Python API Example

from stacked_seds import stacking, photometry

# Load and stack galaxy images
pixel_coords = stacking.get_galaxy_pixel_coords("image.fits", "galaxies.reg")
stamps = stacking.create_stamps(image_data, wcs_obj, pixel_coords)
stacked_image, error_map = stacking.stack_images(stamps)

# Perform radial photometry
radii, profile, errors = photometry.get_radial_profile(stacked_image, center)

Documentation

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

git clone https://github.com/ryantrainor/stacked-seds.git
cd stacked-seds
pip install -e ".[dev]"
make test

Code Quality

This project uses modern Python development tools:

  • Black for code formatting
  • flake8 for linting
  • pytest for testing
  • GitHub Actions for CI/CD
# Run all quality checks
make check

# Format code
make format

# Run tests
make test

Citation

If you use this software in your research, please cite:

@software{stacked_seds,
  title={Stacked SEDs: Galaxy Image Stacking and Photometry},
  author={Abraham, O. and Chapman, C. and Garcia, E. and Trainor, R.},
  year={2025},
  url={https://github.com/ryantrainor/stacked-seds},
  doi={10.5281/zenodo.XXXXXX}
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Acknowledgments

This project was developed at Franklin & Marshall College. We thank the astronomy community for their valuable feedback and contributions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stacked_seds-1.0.1.tar.gz (16.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stacked_seds-1.0.1-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file stacked_seds-1.0.1.tar.gz.

File metadata

  • Download URL: stacked_seds-1.0.1.tar.gz
  • Upload date:
  • Size: 16.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for stacked_seds-1.0.1.tar.gz
Algorithm Hash digest
SHA256 787a50f10f4afa6f5d65d49819cd83722103f392e670f5bd2dbeaedfcfa280a8
MD5 24e0a55217da781868425eb69229d627
BLAKE2b-256 1a8b2b966ab7cfff8d73e605626d80d6dcbf29803f1fce86b8608145dd402015

See more details on using hashes here.

File details

Details for the file stacked_seds-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: stacked_seds-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for stacked_seds-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8143ede717e42b28550fadb2449da9882f803df5e541bcc1fa333aa28622cd56
MD5 d28bf1704ce00f2c7ac730eb6468b424
BLAKE2b-256 3cea601eb150db576384d55d8b80315f36275f76013c8eba542342f0b9e861ab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page