Skip to main content

SPINO (Software for exoPlanet vIsibility and Nightly Observations): a Tkinter GUI for scheduling exoplanet transit / eclipse phase-coverage observations

Project description

SPINO logo

SPINO

Software for exoPlanet vIsibility and Nightly Observations

Source on GitHub License: GPL v3 Documentation Status PyPI version


Overview

SPINO is a self-contained Tkinter desktop application for planning exoplanet transit / secondary-eclipse phase-coverage observations. It wraps a scientific scheduling pipeline (catalog loading, desert filtering, per-planet visibility, TSM/ESM ranking, telluric-overlap plots) behind an editable graphical interface. Every parameter that used to live in a Python config file is now a form field.

The widget/panel/theming layer is reused from the GUIBRUSHR project; the scheduling pipeline is bundled in src/spino/pipeline/. The whole thing is standalone: all Python modules and data files it needs are vendored into the package, so it runs offline out of the box.


Table of Contents


Features

  • Every config parameter is editable in the GUI: catalog source, desert / extra filters, observatory (telescope + instrument + site), proposal window, observing & event-coverage constraints, hand-entered custom planets, the telluric-overlap plot grid, and all output / landscape settings.
  • One-click run of the pipeline in a background subprocess, with the live log streamed into the window and a Stop button.
  • Generated PDFs / CSVs listed in the app; double-click to open them in your system viewer.
  • Save / Load presets as JSON, and Reset to defaults.
  • Bundled NASA Exoplanet Archive catalog cache, desert-boundary / KDE aux files, and a sky-transmission FITS, so it runs offline out of the box.

Prerequisites

  • Python 3.10+

  • Tkinter ships with most Python builds (including the conda-forge Python). There is no tkinter package on PyPI, so pip install tkinter does not work; if import tkinter fails, install it with your package manager:

    conda install tk                 # conda
    sudo apt install python3-tk      # Debian / Ubuntu
    sudo dnf install python3-tkinter # Fedora
    

Installation

Option A: Install with conda (recommended)

The conda-forge Python 3.10 already bundles Tkinter, so nothing extra is needed:

conda create -n spino_env python=3.10
conda activate spino_env
pip install spino

Option B: Install from PyPI into an existing environment

pip install spino

Option C: Clone and install in editable mode (for development)

git clone https://github.com/francescoa97outlook/SPINO
cd SPINO
python -m venv .venv && source .venv/bin/activate   # or a conda env
pip install -e .

This installs the spino console entry point and all Python dependencies.


Usage

Launch the GUI

spino                # console entry point (after pip install)
# or, from a source checkout:
python -m spino

Headless run (quickest smoke test, no GUI)

python -m spino.runner path/to/settings.json

Documentation

Full documentation is hosted on Read the Docs: spino.readthedocs.io.

The sources live in docs/source/:

Doc Contents
installation.md Requirements, venv, python3-tk, editable install
usage.md Tab-by-tab walkthrough, running, presets, outputs
configuration.md Reference for every configuration parameter
architecture.md How the GUI, runner subprocess and pipeline fit together
credits.md GUIBRUSHR reuse and licensing

To build the documentation locally:

./build_docs.sh
# then open docs/build/html/index.html

Architecture (at a glance)

GUI (app.py + panels/)  --collect-->  settings.json
        |                                   |
        |  subprocess: python -m spino.runner settings.json
        v                                   v
   log pane  <--stdout--  runner.py  --overlay-->  pipeline/phase_config
                                |                          |
                                +---> pipeline/phase_scheduler.main()
                                              |
                                        OUTPUT_DIR/*.pdf, *.csv

Troubleshooting

ModuleNotFoundError: No module named 'tkinter'

  • Tkinter is not bundled on some Linux Python builds. Install it with sudo apt install python3-tk (Debian/Ubuntu) or the equivalent for your distribution.

Import errors after installation

pip install -e . --force-reinstall

The GUI opens but the catalog is empty

  • SPINO ships with a cached NASA Exoplanet Archive catalog. If you switched the catalog source, ensure network access or revert to the bundled cache.

Support

For questions, bug reports, or technical assistance, please open an issue on the GitHub repository or contact:

Francesco Amadori 📧 francesco.a97.ing@outlook.it


License & Attribution

SPINO is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License v3.0 or later (see LICENSE).

It reuses GUI widget code from GUIBRUSHR, which is GPLv3; as a derivative work SPINO is therefore also GPLv3. See docs/source/credits.md and the GUIBRUSHR project.


Citation

If you use SPINO in your research, please cite this repository: github.com/francescoa97outlook/SPINO.


Acknowledgments

SPINO relies on several open-source packages, including NumPy, SciPy, Matplotlib, pandas, Astropy, and astroquery, and reuses the GUI toolkit from GUIBRUSHR.

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

spino-0.1.0.tar.gz (6.7 MB view details)

Uploaded Source

Built Distribution

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

spino-0.1.0-py3-none-any.whl (6.8 MB view details)

Uploaded Python 3

File details

Details for the file spino-0.1.0.tar.gz.

File metadata

  • Download URL: spino-0.1.0.tar.gz
  • Upload date:
  • Size: 6.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spino-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cef3684519c36dc86b9e4bc63354caff768add4a26e3a199175e7a47efb60242
MD5 b079763994cff1231a0d23a49eeb4e7a
BLAKE2b-256 d1acb75906b4082e85f9163221fcab0057a053e10810395994947c873165349e

See more details on using hashes here.

Provenance

The following attestation bundles were made for spino-0.1.0.tar.gz:

Publisher: publish.yml on francescoa97outlook/SPINO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spino-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: spino-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spino-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a5d30907dfe06336db89d38a68decafdbbdf5f01b5996d056996f87661602cc0
MD5 6dfea0f36896858f6f08e16ed6971920
BLAKE2b-256 31a7d3944bc959f72bb933d0e62b285c0499cf93d8cd59ffa45f4c5866e6e520

See more details on using hashes here.

Provenance

The following attestation bundles were made for spino-0.1.0-py3-none-any.whl:

Publisher: publish.yml on francescoa97outlook/SPINO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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