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 contributors:

  • Fabio Tempera 🥇
    • Complete code refactoring of setiastrosuitepro.py (20,000+ lines), and duplicated code removal across the entire project
    • Addition of AstroSpikes tool, Texture and Clarity, secret minigame, system resources monitor, app statistics, and 10+ language translations
    • Implementation of UI elements, startup optimizations, startup window, caching methods, lazy imports, utils functions, better memory management, and other important code optimizations across the entire project
  • Joaquin Rodriguez
    • Project migration to Poetry
  • Tim Dicke
    • Windows and MacOS installer development
    • MacOS Wiki instructions maintenance
    • App testing and small bugfixes
  • Michael Lev
    • Addition of hebrew language
  • Andrew Witwicki
    • Addition of ukrainian language

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.12.3.tar.gz (43.5 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.12.3-py3-none-any.whl (43.8 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: setiastrosuitepro-1.12.3.tar.gz
  • Upload date:
  • Size: 43.5 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.12.3.tar.gz
Algorithm Hash digest
SHA256 4019c511fca2bf29d2b79ba07b3213f4976143a39b168e355e0e18097df35859
MD5 7750a68cb354db91592de46a805a502b
BLAKE2b-256 aa4836a90b9c4c886ea47e3bb9cff42b79060a410e90c4ec96a3ee15d0a43f1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for setiastrosuitepro-1.12.3-py3-none-any.whl
Algorithm Hash digest
SHA256 23d899defd60797197e16fabb1b3e3505fd3c27d39df2fea8ddf60036aab5671
MD5 f2e6893e743c74f376bbb413db505416
BLAKE2b-256 76d999a6c3e3dca32e4ed8965efd7f9e3bf5039f2604e547091bc0311b7f97cf

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