Skip to content

Commit 510d2cf

Browse files
authored
v0.13.0 (#120)
1 parent 24e7cbf commit 510d2cf

File tree

104 files changed

+7421
-827
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+7421
-827
lines changed

.github/workflows/test.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,10 @@ jobs:
4949
- uses: actions/checkout@v4
5050
- name: Run Tests - Python 3.12
5151
run: make test-3.12 CI=true
52+
# Python 3.13 not supported yet, needs investigation!
53+
# test-python-3-13:
54+
# runs-on: ubuntu-22.04
55+
# steps:
56+
# - uses: actions/checkout@v4
57+
# - name: Run Tests - Python 3.13
58+
# run: make test-3.13 CI=true

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ hash_checks/results.html
2020
temp.py
2121
temp/
2222
raw/
23+
scripts/temp/
2324

2425
# Documentation Generated Files
2526
examples/*.png

Dockerfile

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,11 @@
1-
ARG PYTHON_VERSION=3.11.7
1+
ARG PYTHON_VERSION=3.11.11
22
FROM python:${PYTHON_VERSION}-bookworm AS base
33

44
WORKDIR /starplot
55

6+
# Install required system libraries (GEOS + GDAL)
67
RUN apt-get clean && apt-get update -y && apt-get install -y libgeos-dev libgdal-dev
78

8-
# Install fonts
9-
# not required, but make the maps look better (especially greek letters)
10-
RUN mkdir -p /usr/share/fonts/truetype
11-
RUN wget https://github.com/google/fonts/raw/main/ofl/gfsdidot/GFSDidot-Regular.ttf -P /tmp/fonts
12-
RUN install -m644 /tmp/fonts/*.ttf /usr/share/fonts/truetype/
13-
RUN fc-cache -f
14-
159
# ---------------------------------------------------------------------
1610
FROM base as dev
1711

Makefile

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ DOCKER_RUN_PYTHON_TEST=docker run --rm $(DR_ARGS) -v $(shell pwd):/starplot star
2222
export PYTHONPATH=./src/
2323

2424
# ------------------------------------------------------------------
25-
build: PYTHON_VERSION=3.11.7
25+
build: PYTHON_VERSION=3.11.11
2626
build: DOCKER_BUILD_ARGS=-t starplot-dev
2727
build:
2828
touch -a .env
@@ -82,26 +82,32 @@ version:
8282
# ------------------------------------------------------------------
8383
# Python version testing
8484
# ------------------------------------------------------------------
85-
test-3.9: PYTHON_VERSION=3.9.18
85+
test-3.9: PYTHON_VERSION=3.9.21
8686
test-3.9:
8787
$(DOCKER_BUILD_PYTHON)
8888
$(DOCKER_RUN_PYTHON_TEST)
8989

90-
test-3.10: PYTHON_VERSION=3.10.13
90+
test-3.10: PYTHON_VERSION=3.10.16
9191
test-3.10:
9292
$(DOCKER_BUILD_PYTHON)
9393
$(DOCKER_RUN_PYTHON_TEST)
9494

95-
test-3.11: PYTHON_VERSION=3.11.7
95+
test-3.11: PYTHON_VERSION=3.11.11
9696
test-3.11:
9797
$(DOCKER_BUILD_PYTHON)
9898
$(DOCKER_RUN_PYTHON_TEST)
9999

100-
test-3.12: PYTHON_VERSION=3.12.1
100+
test-3.12: PYTHON_VERSION=3.12.8
101101
test-3.12:
102102
$(DOCKER_BUILD_PYTHON)
103103
$(DOCKER_RUN_PYTHON_TEST)
104104

105+
# Python 3.13 not supported yet!
106+
test-3.13: PYTHON_VERSION=3.13.1
107+
test-3.13:
108+
$(DOCKER_BUILD_PYTHON)
109+
$(DOCKER_RUN_PYTHON_TEST)
110+
105111
# ------------------------------------------------------------------
106112
# Docs
107113
docs-serve: DR_ARGS=-it -p 8000:8000
@@ -134,6 +140,9 @@ hip8:
134140
scripts:
135141
$(DOCKER_RUN) "python ./scripts/$(SCRIPT).py"
136142

143+
allsky:
144+
$(DOCKER_RUN) "python ./scripts/temp/allsky.py"
145+
137146
clean:
138147
rm -rf __pycache__
139148
rm -rf venv

README.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
**Starplot** is a Python library for creating star charts and maps of the sky.
88

9-
-**Zenith Plots** - showing the stars from a specific time/location
9+
-**Zenith Plots** - showing the whole sky from a specific time/location
1010
- 🗺️ **Map Plots** - including many map projections
1111
- 🔭 **Optic Plots** - simulates what you'll see through an optic (e.g. binoculars, telescope) from a time/location
1212
- 🪐 **Planets and Deep Sky Objects (DSOs)**
@@ -21,7 +21,7 @@
2121
*Map around the constellation Orion:*
2222
![map-orion](https://starplot.dev/images/examples/map_orion.png)
2323

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

2727
## Basic Usage
@@ -42,9 +42,9 @@ p = sp.MapPlot(
4242
dt=datetime.now(tz).replace(hour=22),
4343
style=sp.styles.PlotStyle().extend(
4444
sp.styles.extensions.BLUE_MEDIUM,
45-
sp.styles.extensions.ZENITH,
4645
),
47-
resolution=2000,
46+
resolution=3200,
47+
autoscale=True,
4848
)
4949
p.constellations()
5050
p.stars(mag=4.6)
@@ -72,12 +72,11 @@ https://discord.gg/WewJJjshFu
7272
Contributing to Starplot is welcome and very much appreciated! Please see [here](CONTRIBUTING.md) for details.
7373

7474
## Coming Soon
75+
- 🌄 Horizon plots
7576
- 🌑 Planet moons
7677
- ✴️ Custom markers
77-
- 🚀 Plotting Optimizations
7878
- ☄️ Comet model
79-
- 🌄 Horizon plots
80-
- ⚖️ Better auto font-size adjustment
79+
- 💫 Better constellation label placement
8180
- 😄 🔭 Clear skies
8281

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

docs/about.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
![Starplot](images/favicon.svg){ align=right width="128" .off-glb }
22

3-
**Starplot** is a Python library for creating star charts and maps. It lets you create zenith plots that show the whole sky from a time/place, map plots that show more detail of an area, and optic plots that simulate the field of view from a particular optic (e.g. telescope, binoculars, or a camera).
3+
**Starplot** is a Python library for creating star charts and maps of the sky. It lets you create zenith plots that show the whole sky from a time/place, map plots that show more detail of an area, and optic plots that simulate the field of view from a particular optic (e.g. telescope, binoculars, or a camera).
4+
5+
👷 **Work In Progress** 🚧 Starplot is still very much a work in progress, and under active development. We try to follow [semantic versioning](https://semver.org/), which means that [_anything_ can change between versions before `1.0.0`](https://semver.org/#spec-item-4).
6+
7+
However, the Starplot API becomes more stable with each new version. We anticipate that version `1.0.0` is still at least a year away. The best way to help us get there faster is to [join as a contributor](https://github.com/steveberardi/starplot/blob/main/CONTRIBUTING.md) 😃 help is wanted and very much appreciated!
48

59
Join other starplotters on [Discord :fontawesome-brands-discord:{ .fg-primary }](https://discord.gg/WewJJjshFu)
610

docs/changelog.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
1+
## v0.13.x
2+
3+
- Adds a `scale` factor to control sizing of all objects/text
4+
- Adds an "auto" option for label offsets from markers
5+
- Adds constellation lines to label collision detection
6+
- Adds a `gid` to plotted objects to make exported SVGs easier to work with in external applications (e.g. Inkscape)
7+
- Adds Flamsteed numbers to stars
8+
- Adds all star names from IAU
9+
- Adds the standard symbol for planetary nebulae
10+
- Adds a border size/color property to label styles
11+
- Bundles fonts: Inter & GFS Didot
12+
113
## v0.12.x
14+
[Documentation](https://archives.starplot.dev/0.12.5/)
215

316
- Adds Shapely geometry to all sky object models, including support for `intersects` in `where` clauses
417
- Adds kwarg to map plots to allow custom clip paths

docs/coming-soon.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11

2+
- 🌄 Horizon plots
23
- 🌑 Planet moons
34
- ☄️ Comet model
4-
- 🌄 Horizon plots
55
- ✴️ Custom markers
6-
- 🚀 Plotting Optimizations
7-
- ⚖️ Better auto font-size adjustment
6+
- 💫 Better constellation label placement
87
- 😄 🔭 Clear skies
98

109
<br/>

docs/examples/map-canis-major.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ title: Map of Canis Major
77

88
![map-canis-major](/images/examples/map_canis_major.png)
99

10+
In this example, we set the plot's `clip_path` to the boundary of Canis Major, so only objects in that constellation are plotted:
11+
1012
```python
1113
--8<-- "examples/map_canis_major.py"
1214
```

docs/examples/map-orion.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ title: Map of Orion
77

88
![map-orion](/images/examples/map_orion.png)
99

10-
The following code will create a simple map plot that shows the area around the constellation Orion, including a legend and an ellipse around [Orion's Belt](https://en.wikipedia.org/wiki/Orion%27s_Belt):
10+
The following code will create a simple map plot that shows the area around the constellation [Orion](https://en.wikipedia.org/wiki/Orion_(constellation)):
1111

1212
```python
1313
--8<-- "examples/map_orion.py"

0 commit comments

Comments
 (0)