Metadata-Version: 2.4
Name: starplot
Version: 0.20.2
Summary: Star charts and maps of the sky
Keywords: astronomy,stars,charts,maps,constellations,sky,plotting
Author-email: Steve Berardi <hello@steveberardi.com>
Description-Content-Type: text/markdown
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Framework :: Matplotlib
License-File: LICENSE
Requires-Dist: matplotlib >= 3.8.0
Requires-Dist: numpy >= 1.26.2
Requires-Dist: pandas <= 2.2.3
Requires-Dist: pydantic >= 2.10.6
Requires-Dist: shapely >= 2.0.1
Requires-Dist: skyfield >= 1.41
Requires-Dist: cartopy >= 0.21.1
Requires-Dist: geopandas >= 1.0.1
Requires-Dist: pillow >= 10.0.0
Requires-Dist: PyYAML >= 6.0.1
Requires-Dist: pyarrow >= 14.0.2
Requires-Dist: pyogrio >= 0.10.0
Requires-Dist: rtree >= 1.2.0
Requires-Dist: requests >= 2.31.0
Requires-Dist: duckdb >= 1.4.4
Requires-Dist: sqlglot >= 28.9.0
Requires-Dist: ibis-framework[duckdb, geospatial] >= 11
Requires-Dist: astropy-healpix >= 1.1.2
Project-URL: Documentation, https://starplot.dev
Project-URL: Home, https://starplot.dev
Project-URL: Source, https://github.com/steveberardi/starplot

# <img src="https://raw.githubusercontent.com/steveberardi/starplot/main/docs/images/logo.svg" width="48" style="vertical-align:middle"> Starplot
![Python](https://img.shields.io/pypi/pyversions/starplot?style=for-the-badge&color=6388b0)
![PyPI](https://img.shields.io/pypi/v/starplot?style=for-the-badge&color=57a8a8)
![License](https://img.shields.io/github/license/steveberardi/starplot?style=for-the-badge&color=8b63b0)
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/steveberardi/starplot/test.yml?style=for-the-badge&color=88b063)

**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
- 🌌 **Galactic Charts** - shows a Mollweide projection in galactic coordinates
- 🪐 **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](https://starplot.dev/images/examples/star_chart_basic.png)

*Map around the constellation Orion:*
![map-orion](https://starplot.dev/images/examples/map_orion.png)

*The Pleiades star cluster, as seen through a refractor telescope from a specific time and location:*
![optic-pleiades](https://starplot.dev/images/examples/optic_m45.png)

## Basic Usage

To create a star chart for tonight's sky as seen from [Palomar Mountain](https://en.wikipedia.org/wiki/Palomar_Mountain) in California:

```python
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](https://starplot.dev)


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

[Sky Atlas - Star Chart Creator](https://skyatlas.app/star-charts/)

## Getting Help / Updates

- Chat with other starplotters on our [Discord server](https://discord.gg/WewJJjshFu)
- [Follow us on Bluesky](https://bsky.app/profile/starplot.dev)
- [Join our newsletter](https://buttondown.com/starplot)
- [See more examples at Starplotting.com](https://starplotting.com/)

## Contributing

Contributing to Starplot is welcome and very much appreciated! Please see [here](CONTRIBUTING.md) for details.

## Coming Soon
- 🧮 Coordinate system helpers
- 🌑 Planet moons
- ✴️ Custom markers
- 😄 🔭 Clear skies

See more details on the [Public Roadmap](https://trello.com/b/sUksygn4/starplot-roadmap)

## Related Repositories

- [starplot-bigsky](https://github.com/steveberardi/starplot-bigsky)
- [starplot-constellations](https://github.com/steveberardi/starplot-constellations)
- [starplot-ongc](https://github.com/steveberardi/starplot-ongc)
- [starplot-hyg](https://github.com/steveberardi/starplot-hyg)
- [starplot-gaia-dr3](https://github.com/steveberardi/starplot-gaia-dr3)
- [starplot-hyperleda](https://github.com/steveberardi/starplot-hyperleda)
- [starplot-milkyway](https://github.com/steveberardi/starplot-milkyway)

## License
[MIT License](https://github.com/steveberardi/starplot/blob/main/LICENSE)

