Skip to main content

A command-line tool for astrophotographers to find optimal viewing times for deep sky objects

Project description

StarTeller-CLI

A comprehensive command-line tool for astrophotographers and telescope enthusiasts to find optimal viewing times for deep sky objects throughout the year.

Given your location, StarTeller scans about one year of local nights. For each object it picks the best night: the one with the longest stretch of time where the object is above your minimum altitude during astronomical darkness (Sun more than 18° below the horizon). If two nights tie on that duration, the night with the higher peak altitude within the visible segment wins. Coordinates are precessed from J2000 to an epoch near the middle of the night list before the scan.

Installation

Install from PyPI (Recommended)

pip install starteller-cli
starteller

That's it! The starteller command will be available in your terminal.

Install from Source (Development)

If you want to modify the code or install the latest development version:

git clone https://github.com/ConnRaus/StarTeller-CLI.git
cd StarTeller-CLI
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install .
starteller

Or run directly without installing:

git clone https://github.com/ConnRaus/StarTeller-CLI.git
cd StarTeller-CLI
pip install -r requirements.txt
python src/starteller_cli.py

How it works

  1. Enter your coordinates (or use a saved location)
  2. Set your output directory (or use a saved preference)
  3. Set minimum altitude
  4. Get a CSV with optimal viewing times for ~13,000 deep sky objects

The first run downloads the NGC catalog and addendum (~4MB). Night darkness times are computed each run from your location and a rolling ~365-day window from today’s date.

Output

Results go to ./starteller_output/ by default, or a custom directory you set on first run. CSV columns are written in this order:

Column Description
Object NGC/IC/Messier ID
Name Common name if available
Type Galaxy, Nebula, Cluster, etc.
Messier Messier number if applicable (e.g., M31)
Constellation IAU constellation (from catalog)
Right_Ascension Right ascension in degrees (J2000)
Declination Declination in degrees (J2000)
Major_Axis_arcmin Major axis angular size in arcminutes
Minor_Axis_arcmin Minor axis angular size in arcminutes
Position_Angle_deg Position angle of major axis (N through E)
V_Mag Visual magnitude (catalog)
SurfBr Surface brightness (catalog)
Best_Date Local calendar date of the best night (longest qualifying dark-time span, not “at midnight”)
Best_Time_Local Local time of the peak used for that night (within the visible segment, toward transit when possible)
Max_Altitude_deg Approximate altitude at that peak on the best night, or Never visible if no night qualifies
Azimuth_deg Azimuth at peak (0°=N, 90°=E, etc.)
Rise_Time_Local Local time the object crosses up through your minimum altitude on that best night’s segment (HH:MM)
Rise_Direction_deg Azimuth at rise
Set_Time_Local Local time it crosses down through minimum altitude on that segment (HH:MM)
Set_Direction_deg Azimuth at set
Observing_Duration_Hours Hours above your minimum altitude during astro dark on that best night only (not summed over the year)
Visible_Nights_Per_Year Count of nights in the scan with any time above min altitude during astro dark
Dark_Start_Local Start of astronomical darkness on the best night (HH:MM local)
Dark_End_Local End of astronomical darkness on the best night (HH:MM local)
Timezone IANA timezone name used for local times

Options

Filters and flags:

  • Minimum altitude (prompt, default 20°): the object must reach this altitude during astro dark for a night to count; the best night maximizes the length of that interval.
  • starteller --messier-only: only Messier catalog entries are processed (smaller CSV).

Included catalogs:

The output includes all ~13,000 objects from NGC, IC, Messier, Caldwell, and other catalogs from OpenNGC (subject to the Messier-only flag above). The full catalog can be found on my fork of OpenNGC here.

File locations

Data and settings are stored in platform-specific directories:

Windows: %LOCALAPPDATA%\StarTeller-CLI\
Linux: ~/.local/share/starteller-cli/
macOS: ~/Library/Application Support/StarTeller-CLI/

This includes the NGC catalog, your saved location, and output directory preference. Output CSVs go to your configured output directory (default: ./starteller_output/).

Requirements

  • Python 3.10+
  • Internet connection (first run only, to download catalog)

Dependencies: pandas, numpy, tzdata (IANA DB for zoneinfo), timezonefinder, tqdm

Data source

Catalog data comes from OpenNGC by Mattia Verga, licensed under CC-BY-SA-4.0.

License

AGPL-3.0-or-later (GNU Affero General Public License v3). See LICENSE.

The NGC catalog data is CC-BY-SA-4.0.

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

starteller_cli-2.0.1.tar.gz (40.6 kB view details)

Uploaded Source

Built Distribution

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

starteller_cli-2.0.1-py3-none-any.whl (35.2 kB view details)

Uploaded Python 3

File details

Details for the file starteller_cli-2.0.1.tar.gz.

File metadata

  • Download URL: starteller_cli-2.0.1.tar.gz
  • Upload date:
  • Size: 40.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for starteller_cli-2.0.1.tar.gz
Algorithm Hash digest
SHA256 7e5dc4c75149479f6fa6ac0ddc25eafcf349e020ff6640e0a236031c814dbcc1
MD5 bdf55a87d70556ef1ec5bb22bb656cc2
BLAKE2b-256 2a3336157da0cc27fb4b983e4f14ae9ea4363990035f116a8b675328501106b2

See more details on using hashes here.

File details

Details for the file starteller_cli-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: starteller_cli-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 35.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for starteller_cli-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9890eb5d924eaf803a89dfcc3d3d3109bb86c26a5486d2db7cdd56964ff3055d
MD5 e651b37b867a8ddc2f5e2fe1a9f5cb6c
BLAKE2b-256 43e46fa9932b1502d16f4bc517a22c2a3374f48dcf178cda013e6c1618818567

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