Skip to main content

Seti Astro Suite Pro - Advanced astrophotography toolkit for image calibration, stacking, registration, photometry, and visualization

Project description

Seti Astro Suite Pro (SASpro)

Author: Franklin Marek

Website: www.setiastro.com

Other big contributors:


Overview

Seti Astro Suite Pro (SASpro) is an advanced astrophotography toolkit for image calibration, stacking, registration, photometry, and visualization. It targets both amateur and professional users by offering a graphical user interface, batch processing scripts, and extension points for automation.

Key goals:

  • Produce repeatable, high-quality astrophotography results
  • Expose advanced algorithms through an approachable GUI
  • Keep the codebase modular and extensible for community contributions

SASpro is distributed as donationware — free to use, with an optional suggested donation.


Features

  • Multi-format image support: FITS, XISF, TIFF, RAW, PNG, JPEG
  • Calibration pipelines (bias/dark/flat), registration and stacking
  • Star detection, aperture photometry, astrometry helpers
  • Color calibration, white balance, background neutralization
  • Blemish removal, aberration correction, and AI-based tools
  • Batch processing and scripting interfaces
  • Catalog support and CSV-based custom catalogs
  • Export and integration helpers (e.g., AstroBin)

Architecture and Project Layout

This project follows a modular layout. High-level modules and responsibilities:

  • pro/ - Primary application modules, UI, resources and business logic.
  • imageops/ - Image processing utilities and algorithms.
  • ops/ - Application-level operations, settings, and script runner.
  • scripts/ - Example scripts and small utilities that demonstrate automation.
  • data/ - Bundled data files and catalogs. (See data/catalogs/ for CSV files.)
  • logs/ - Runtime logs produced during development or packaged runs.
  • config/ - Packaging specs and configuration files.
  • build/ - Packaging and distribution scripts.

Files of note:

  • setiastrosuitepro.py - Application entrypoint used for development and direct runs.
  • setiastrosuitepro_mac.spec - PyInstaller spec for macOS packaging.
  • SASP_data.fits - Large dataset used by the app.
  • astrobin_filters.csv and other CSV catalogs are under data/catalogs/.

Example tree (abridged):

setiastrosuitepro/
├── pro/
├── imageops/
├── ops/
├── scripts/
├── data/
│   ├── SASP_data.fits
│   └── catalogs/
│       ├── astrobin_filters.csv
│       └── celestial_catalog.csv
├── logs/
├── config/
├── build/
├── requirements.txt
├── setiastrosuitepro.py
└── README.md

Quick Start — Development (Windows PowerShell example)

This section shows a minimal reproducible development setup using a Python virtual environment.

  1. Open PowerShell and navigate to the project root.

  2. Create and activate a virtual environment:

python -m venv .venv
.\.venv\Scripts\Activate.ps1
  1. Upgrade pip and install dependencies:
python -m pip install --upgrade pip
pip install -r requirements.txt
  1. Run the application (development mode):
python setiastrosuitepro.py

Notes:

  • Use Activate.bat on Windows CMD, or source .venv/bin/activate on macOS/Linux.
  • If you run into permission issues with Activate.ps1, you may need to change the execution policy temporarily:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

Dependency Management

This project uses Poetry for dependency management. The requirements.txt file is automatically generated from pyproject.toml to maintain backward compatibility with users who prefer pip.

For maintainers/contributors:

  • Dependencies are defined in pyproject.toml
  • After modifying dependencies, regenerate requirements.txt:
    poetry run python ops/export_requirements.py
    
  • Or manually: poetry export -f requirements.txt --without-hashes --without dev -o requirements.txt

For users:

  • Continue using pip install -r requirements.txt as usual
  • The requirements.txt file is kept up-to-date and ready to use

Running a Packaged App

  • Packagers like PyInstaller or similar are used to create distributables. See setiastrosuitepro_mac.spec and create_dmg.sh for packaging examples.
  • When packaged, resources such as SASP_data.fits and astrobin_filters.csv are expected under the internal resources path. The application code resolves their paths using the pro.resources helpers.

Data & Catalogs

  • All CSV catalogs and reference data are in data/catalogs/.
  • Large dataset files (e.g. SASP_data.fits) are in data/ and are added to .gitignore when appropriate to avoid committing large binaries.
  • If you add custom catalogs, follow the existing CSV schema and update pro/resources.py or use get_data_path() helper to resolve them.

Logging

  • During development the app writes saspro.log into the project logs/ directory (or into per-platform user log directories when running installed builds).
  • Log file location logic is implemented in setiastrosuitepro.py — keep logs/ writeable for easier debugging.

Testing

  • Unit and integration tests can be created under a tests/ directory and run with pytest.
  • Example:
pip install pytest
pytest -q

Packaging Notes

  • The repository contains a PyInstaller .spec file and helper scripts for macOS packaging.
  • Typical packaging flow (example with PyInstaller):
pip install pyinstaller
pyinstaller --clean -y config\setiastrosuitepro_mac.spec

Adjust spec paths to include data/ and data/catalogs/ as needed.


Contributing

  • Fork the repository and create a feature branch.
  • Keep changes atomic and include tests when possible.
  • Open a pull request describing the change and the reasoning.
  • See CONTRIBUTING.md for repository-specific guidelines.

Troubleshooting

  • If the app cannot find a CSV or FITS file, verify the data/ and data/catalogs/ directories are present in the project root or that packaged resources are included during build.
  • Common issues:
    • Missing dependencies: run pip install -r requirements.txt.
    • Permission errors when writing logs: ensure logs/ is writeable or run with elevated privileges during packaging.

If you hit a reproducible bug, open an issue and attach the saspro.log file.


License

  • SASpro is licensed under GNU GPLv3. See LICENSE for details.

Acknowledgments

Special thanks to the open-source projects and contributors used by SASpro.


Contact & Links


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

setiastrosuitepro-1.6.1.tar.gz (35.0 MB view details)

Uploaded Source

Built Distribution

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

setiastrosuitepro-1.6.1-py3-none-any.whl (35.2 MB view details)

Uploaded Python 3

File details

Details for the file setiastrosuitepro-1.6.1.tar.gz.

File metadata

  • Download URL: setiastrosuitepro-1.6.1.tar.gz
  • Upload date:
  • Size: 35.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.5 Windows/11

File hashes

Hashes for setiastrosuitepro-1.6.1.tar.gz
Algorithm Hash digest
SHA256 df64925e6fa4f0aea535ea7b60613235b36762cf03378331eaa56cd6a33faa33
MD5 57e896c22b784b383135541a2b798a65
BLAKE2b-256 fc3a7f937c1d48d39ff277fd197e069cddd56cdbc861a7c78793acb4d60a7cc1

See more details on using hashes here.

File details

Details for the file setiastrosuitepro-1.6.1-py3-none-any.whl.

File metadata

  • Download URL: setiastrosuitepro-1.6.1-py3-none-any.whl
  • Upload date:
  • Size: 35.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.5 Windows/11

File hashes

Hashes for setiastrosuitepro-1.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 76eae6d5fa36bb5d6d88d8e0855de164ee4bca2071cbba8c49bcc92955f04c86
MD5 c3ea1c072773e9f3b17dc6a539c082e2
BLAKE2b-256 7dc6a604bbc38229155e1c7b5b174fe0425cf6d421b598d3c25372f80a3db47a

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