Skip to content

steveberardi/starplot

Repository files navigation

Starplot

GitHub Workflow Status Python PyPI License

Starplot is a Python library for creating star charts and maps.

  • Zenith Plots - showing the stars from a specific time/location
  • 🗺️ Map Plots - including North/South polar and Mercator projections
  • 🔭 Optic Plots - simulates what you'll see through an optic (e.g. binoculars, telescope) from a time/location
  • 🪐 Planets and Deep Sky Objects (DSOs)
  • 🎨 Custom Styles - for all objects
  • 📥 Export - png, svg
  • 🧭 Label Collision Avoidance

Examples

Zenith plot of the stars from a specific time/location: starchart-blue

Map around the constellation Orion: map-orion

Optic plot of The Pleiades through a refractor as seen from a specific time/location: optic-pleiades

Basic Usage

To create a star chart for tonight's sky as seen from Palomar Mountain in California:

from datetime import datetime
from pytz import timezone
import starplot as sp

tz = timezone("America/Los_Angeles")

p = sp.MapPlot(
    projection=sp.Projection.ZENITH,
    lat=33.363484,
    lon=-116.836394,
    dt=datetime.now(tz).replace(hour=22),
    style=sp.styles.PlotStyle().extend(
        sp.styles.extensions.BLUE_MEDIUM,
        sp.styles.extensions.ZENITH,
    ),
    resolution=2000,
)
p.constellations()
p.stars(mag=4.6)
p.export("starchart.png")

Documentation

https://starplot.dev

Demo

For a demo of Starplot's zenith plots, check out:

Sky Atlas - Star Chart Creator

Discord

Chat with other starplotters on our Discord server:

https://discord.gg/bwazdyD7

Contributing

Contributing to Starplot is welcome and very much appreciated! Please see here for details.

Core Dependencies

  • matplotlib
  • pandas
  • numpy
  • geopandas
  • cartopy
  • skyfield
  • pydantic
  • adjustText

Coming Soon

  • 🌑 Planet moons
  • ✴️ Custom markers
  • 🚀 Plotting Optimizations
  • 📐 More Nebula outline levels
  • ⚖️ Better auto font-size adjustment

See more details on the Public Roadmap

License

MIT License