Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

steveberardi/starplot

Repository files navigation

Starplot

Python PyPI License GitHub Workflow Status

Starplot is a Python library for creating star charts and maps of the sky

  • 🗺️ Maps - including 10+ customizable projections
  • Zenith Charts - shows the entire sky at a specific time and place
  • 🌃 Horizon Charts - shows the horizon at a specific time and place
  • 🔭 Optic Simulations - shows what you'll see through an optic (e.g. telescope) at a specific time and place
  • 🪐 Planets and Deep Sky Objects (DSOs) - with support for plotting their true extent
  • ☄️ Comets and Satellites - easy trajectory plotting
  • 🎨 Custom Styles - for all objects and with 8+ built-in themes
  • 📥 Export - png, svg, jpeg
  • 🚀 Data Backend - powered by DuckDB + Ibis for fast object lookup
  • 📓 Custom Data Catalogs - with helpers for building and optimizing
  • 🧭 Label Collision Avoidance - ensuring all labels are readable
  • 🌐 Localization - label translations for Chinese, French, Lithuanian, Persian, and Spanish

Examples

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

Map around the constellation Orion: map-orion

The Pleiades star cluster, as seen through a refractor telescope from a specific time and 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 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")

Documentation

https://starplot.dev

Demo

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

Sky Atlas - Star Chart Creator

Getting Help / Updates

Contributing

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

Coming Soon

  • 🧮 Coordinate system helpers
  • 🌑 Planet moons
  • ✴️ Custom markers
  • 😄 🔭 Clear skies

See more details on the Public Roadmap

Related Repositories

License

MIT License

About

✨ Star charts and maps in Python

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

Languages

AltStyle によって変換されたページ (->オリジナル) /