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
- Complete code refactoring of
- 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. (Seedata/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.csvand other CSV catalogs are underdata/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.
-
Open PowerShell and navigate to the project root.
-
Create and activate a virtual environment:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
- Upgrade pip and install dependencies:
python -m pip install --upgrade pip
pip install -r requirements.txt
- Run the application (development mode):
python setiastrosuitepro.py
Notes:
- Use
Activate.baton Windows CMD, orsource .venv/bin/activateon 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.txtas usual - The
requirements.txtfile 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.specandcreate_dmg.shfor packaging examples. - When packaged, resources such as
SASP_data.fitsandastrobin_filters.csvare expected under the internal resources path. The application code resolves their paths using thepro.resourceshelpers.
Data & Catalogs
- All CSV catalogs and reference data are in
data/catalogs/. - Large dataset files (e.g.
SASP_data.fits) are indata/and are added to.gitignorewhen appropriate to avoid committing large binaries. - If you add custom catalogs, follow the existing CSV schema and update
pro/resources.pyor useget_data_path()helper to resolve them.
Logging
- During development the app writes
saspro.loginto the projectlogs/directory (or into per-platform user log directories when running installed builds). - Log file location logic is implemented in
setiastrosuitepro.py— keeplogs/writeable for easier debugging.
Testing
- Unit and integration tests can be created under a
tests/directory and run withpytest. - Example:
pip install pytest
pytest -q
Packaging Notes
- The repository contains a PyInstaller
.specfile 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.mdfor repository-specific guidelines.
Troubleshooting
- If the app cannot find a CSV or FITS file, verify the
data/anddata/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.
- Missing dependencies: run
If you hit a reproducible bug, open an issue and attach the saspro.log file.
License
- SASpro is licensed under GNU GPLv3. See
LICENSEfor details.
Acknowledgments
Special thanks to the open-source projects and contributors used by SASpro.
Contact & Links
- Website: https://www.setiastro.com
- Source: https://github.com/setiastro/setiastrosuitepro
- Issues: https://github.com/setiastro/setiastrosuitepro/issues
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 setiastrosuitepro-1.14.2.tar.gz.
File metadata
- Download URL: setiastrosuitepro-1.14.2.tar.gz
- Upload date:
- Size: 42.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.5 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aaa8df5d4ae53968fbdc48b1eb512981319ba8c0344939bec06e78aa4a802bd7
|
|
| MD5 |
80c044741724f0d5e8a5c4013ee0ed85
|
|
| BLAKE2b-256 |
ad0840951ef4cea385c6479aa6c9ab7cdf514f4aed1e7e4b7004b73f4bcce5f7
|
File details
Details for the file setiastrosuitepro-1.14.2-py3-none-any.whl.
File metadata
- Download URL: setiastrosuitepro-1.14.2-py3-none-any.whl
- Upload date:
- Size: 43.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.5 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4540d41d6b2fdcf5c9a23766f088bcd2a96dd6329492aa2a9e9055b969c4516a
|
|
| MD5 |
ef2b6885c6dfc9d3a2e36a6889fc8a20
|
|
| BLAKE2b-256 |
aaa27a79ebd10e67afff51f98d73730af74278435d159a3e44b6ae27feae8f43
|