Starplot is a Python library for creating star charts and maps of the sky.
- ⭐ Zenith Plots - shows the entire sky at a specific time and place
- 🗺️ Map Plots - including many map projections
- 🌃 Horizon Plots - shows the horizon at a specific time and place
- 🔭 Optic Plots - shows what you'll see through an optic (e.g. telescope) at a specific time and place
- 🪐 Planets and Deep Sky Objects (DSOs) - more than 14,000 objects built-in
- 🎨 Custom Styles - for all objects
- 📥 Export - png, svg, jpeg
- 🚀 Data Backend - powered by DuckDB + Ibis for fast object lookup
- 🧭 Label Collision Avoidance
Zenith plot of the stars from a specific time/location:
Map around the constellation Orion:
The Pleiades star cluster, as seen through a refractor telescope from a specific time and location:
To create a star chart for tonight's sky as seen from Palomar Mountain in California:
from datetime import datetime
from zoneinfo import ZoneInfo
from starplot import ZenithPlot, Observer, styles, _
tz = ZoneInfo("America/Los_Angeles")
dt = datetime.now(tz).replace(hour=22)
observer = Observer(
dt=dt,
lat=33.363484,
lon=-116.836394,
)
p = ZenithPlot(
observer=observer,
style=styles.PlotStyle().extend(
styles.extensions.BLUE_MEDIUM,
),
resolution=4096,
autoscale=True,
)
p.constellations()
p.stars(where=[_.magnitude < 4.6])
p.constellation_labels()
p.horizon()
p.export("starchart.png")
For a demo of Starplot's zenith plots, check out:
Sky Atlas - Star Chart Creator
Chat with other starplotters on our Discord server:
Contributing to Starplot is welcome and very much appreciated! Please see here for details.
- 🧮 Coordinate system helpers
- 🌑 Planet moons
- ✴️ Custom markers
- ☄️ Comet model
- 😄 🔭 Clear skies
See more details on the Public Roadmap