From 510d2cf2bbc2863961c9d85e1f876c41c0ec8ab8 Mon Sep 17 00:00:00 2001 From: Steve Berardi <6608085+steveberardi@users.noreply.github.com> Date: Sat, 14 Dec 2024 06:09:59 -0800 Subject: [PATCH] v0.13.0 (#120) --- .github/workflows/test.yml | 7 + .gitignore | 1 + Dockerfile | 10 +- Makefile | 19 +- README.md | 13 +- docs/about.md | 6 +- docs/changelog.md | 13 + docs/coming-soon.md | 5 +- docs/examples/map-canis-major.md | 2 + docs/examples/map-orion.md | 2 +- docs/index.md | 3 +- docs/installation.md | 13 + docs/reference-styling.md | 8 +- docs/tutorial.md | 2 +- docs/tutorial/02.md | 3 +- docs/tutorial/05.md | 4 +- docs/tutorial/06.md | 2 +- docs/tutorial/08.md | 2 +- examples/examples.py | 24 +- examples/map_big.py | 41 +- examples/map_big_dipper.py | 9 +- examples/map_canis_major.py | 20 +- examples/map_comet_neowise.py | 10 +- examples/map_milky_way_stars.py | 2 +- examples/map_orion.py | 41 +- examples/map_orthographic.py | 13 +- examples/map_sagittarius.py | 35 +- examples/optic_m45.py | 3 +- examples/optic_moon_saturn.py | 5 +- examples/optic_orion_nebula.py | 3 +- examples/star_chart_basic.py | 5 +- examples/star_chart_detail.py | 5 +- hash_checks/hashlock.yml | 106 +- hash_checks/map_checks.py | 30 +- hash_checks/optic_checks.py | 28 +- hash_checks/zenith_checks.py | 5 +- requirements.txt | 6 +- scripts/geopack.py | 5 +- scripts/starnames.py | 52 + scripts/voronoi.py | 163 + src/starplot/__init__.py | 2 +- src/starplot/base.py | 425 ++- src/starplot/callables.py | 68 +- src/starplot/data/bayer.py | 1535 +++++++++- src/starplot/data/flamsteed.py | 2682 +++++++++++++++++ .../library/constellation_borders_inv.gpkg | Bin 147456 -> 147456 bytes .../library/constellation_lines_hips.json | 4 +- src/starplot/data/stars.py | 495 ++- src/starplot/horizon.py | 398 +++ src/starplot/map.py | 163 +- src/starplot/optic.py | 40 +- src/starplot/plotters/dsos.py | 6 +- src/starplot/plotters/stars.py | 127 +- src/starplot/styles/base.py | 419 ++- src/starplot/styles/ext/antique.yml | 84 +- src/starplot/styles/ext/blue_dark.yml | 68 +- src/starplot/styles/ext/blue_light.yml | 68 +- src/starplot/styles/ext/blue_medium.yml | 92 +- src/starplot/styles/ext/cb_wong.yml | 7 + src/starplot/styles/ext/grayscale.yml | 20 +- src/starplot/styles/ext/grayscale_dark.yml | 16 +- src/starplot/styles/ext/map.yml | 8 +- src/starplot/styles/ext/nord.yml | 64 +- src/starplot/styles/ext/optic.yml | 12 +- .../gfs-didot/DESCRIPTION.en_us.html | 9 + .../gfs-didot/GFSDidot-Regular.ttf | Bin 0 -> 191168 bytes .../fonts-library/gfs-didot/METADATA.pb | 16 + .../styles/fonts-library/gfs-didot/OFL.txt | 94 + .../fonts-library/hind/DESCRIPTION.en_us.html | 28 + .../styles/fonts-library/hind/Hind-Bold.ttf | Bin 0 -> 286604 bytes .../styles/fonts-library/hind/Hind-Light.ttf | Bin 0 -> 287484 bytes .../styles/fonts-library/hind/Hind-Medium.ttf | Bin 0 -> 277300 bytes .../fonts-library/hind/Hind-Regular.ttf | Bin 0 -> 299532 bytes .../fonts-library/hind/Hind-SemiBold.ttf | Bin 0 -> 281940 bytes .../styles/fonts-library/hind/METADATA.pb | 58 + .../styles/fonts-library/hind/OFL.txt | 93 + .../fonts-library/inter/Inter-Black.ttf | Bin 0 -> 414140 bytes .../fonts-library/inter/Inter-BlackItalic.ttf | Bin 0 -> 422324 bytes .../styles/fonts-library/inter/Inter-Bold.ttf | Bin 0 -> 415072 bytes .../fonts-library/inter/Inter-BoldItalic.ttf | Bin 0 -> 420068 bytes .../fonts-library/inter/Inter-ExtraBold.ttf | Bin 0 -> 416228 bytes .../inter/Inter-ExtraBoldItalic.ttf | Bin 0 -> 422904 bytes .../fonts-library/inter/Inter-ExtraLight.ttf | Bin 0 -> 409996 bytes .../inter/Inter-ExtraLightItalic.ttf | Bin 0 -> 415636 bytes .../fonts-library/inter/Inter-Italic.ttf | Bin 0 -> 412848 bytes .../fonts-library/inter/Inter-Light.ttf | Bin 0 -> 408364 bytes .../fonts-library/inter/Inter-LightItalic.ttf | Bin 0 -> 415024 bytes .../fonts-library/inter/Inter-Medium.ttf | Bin 0 -> 411500 bytes .../inter/Inter-MediumItalic.ttf | Bin 0 -> 417780 bytes .../fonts-library/inter/Inter-Regular.ttf | Bin 0 -> 407056 bytes .../fonts-library/inter/Inter-SemiBold.ttf | Bin 0 -> 413976 bytes .../inter/Inter-SemiBoldItalic.ttf | Bin 0 -> 418520 bytes .../styles/fonts-library/inter/Inter-Thin.ttf | Bin 0 -> 403404 bytes .../fonts-library/inter/Inter-ThinItalic.ttf | Bin 0 -> 410232 bytes .../styles/fonts-library/inter/LICENSE.txt | 92 + src/starplot/styles/fonts.py | 15 + src/starplot/styles/markers.py | 213 +- tutorial/tutorial_02.py | 3 +- tutorial/tutorial_03.py | 14 +- tutorial/tutorial_04.py | 18 +- tutorial/tutorial_05.py | 4 +- tutorial/tutorial_06.py | 51 +- tutorial/tutorial_07.py | 10 +- tutorial/tutorial_08.py | 1 + 104 files changed, 7421 insertions(+), 827 deletions(-) create mode 100644 scripts/starnames.py create mode 100644 scripts/voronoi.py create mode 100644 src/starplot/data/flamsteed.py create mode 100644 src/starplot/horizon.py create mode 100644 src/starplot/styles/fonts-library/gfs-didot/DESCRIPTION.en_us.html create mode 100644 src/starplot/styles/fonts-library/gfs-didot/GFSDidot-Regular.ttf create mode 100644 src/starplot/styles/fonts-library/gfs-didot/METADATA.pb create mode 100644 src/starplot/styles/fonts-library/gfs-didot/OFL.txt create mode 100644 src/starplot/styles/fonts-library/hind/DESCRIPTION.en_us.html create mode 100644 src/starplot/styles/fonts-library/hind/Hind-Bold.ttf create mode 100644 src/starplot/styles/fonts-library/hind/Hind-Light.ttf create mode 100644 src/starplot/styles/fonts-library/hind/Hind-Medium.ttf create mode 100644 src/starplot/styles/fonts-library/hind/Hind-Regular.ttf create mode 100644 src/starplot/styles/fonts-library/hind/Hind-SemiBold.ttf create mode 100644 src/starplot/styles/fonts-library/hind/METADATA.pb create mode 100644 src/starplot/styles/fonts-library/hind/OFL.txt create mode 100644 src/starplot/styles/fonts-library/inter/Inter-Black.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-BlackItalic.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-Bold.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-BoldItalic.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-ExtraBold.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-ExtraBoldItalic.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-ExtraLight.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-ExtraLightItalic.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-Italic.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-Light.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-LightItalic.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-Medium.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-MediumItalic.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-Regular.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-SemiBold.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-SemiBoldItalic.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-Thin.ttf create mode 100644 src/starplot/styles/fonts-library/inter/Inter-ThinItalic.ttf create mode 100644 src/starplot/styles/fonts-library/inter/LICENSE.txt create mode 100644 src/starplot/styles/fonts.py diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d269a511..356bd629 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,3 +49,10 @@ jobs: - uses: actions/checkout@v4 - name: Run Tests - Python 3.12 run: make test-3.12 CI=true + # Python 3.13 not supported yet, needs investigation! + # test-python-3-13: + # runs-on: ubuntu-22.04 + # steps: + # - uses: actions/checkout@v4 + # - name: Run Tests - Python 3.13 + # run: make test-3.13 CI=true diff --git a/.gitignore b/.gitignore index 8598ffed..c1741887 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ hash_checks/results.html temp.py temp/ raw/ +scripts/temp/ # Documentation Generated Files examples/*.png diff --git a/Dockerfile b/Dockerfile index 8975a05f..44a8a10a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,11 @@ -ARG PYTHON_VERSION=3.11.7 +ARG PYTHON_VERSION=3.11.11 FROM python:${PYTHON_VERSION}-bookworm AS base WORKDIR /starplot +# Install required system libraries (GEOS + GDAL) RUN apt-get clean && apt-get update -y && apt-get install -y libgeos-dev libgdal-dev -# Install fonts -# not required, but make the maps look better (especially greek letters) -RUN mkdir -p /usr/share/fonts/truetype -RUN wget https://github.com/google/fonts/raw/main/ofl/gfsdidot/GFSDidot-Regular.ttf -P /tmp/fonts -RUN install -m644 /tmp/fonts/*.ttf /usr/share/fonts/truetype/ -RUN fc-cache -f - # --------------------------------------------------------------------- FROM base as dev diff --git a/Makefile b/Makefile index 44916a54..37cfb055 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ DOCKER_RUN_PYTHON_TEST=docker run --rm $(DR_ARGS) -v $(shell pwd):/starplot star export PYTHONPATH=./src/ # ------------------------------------------------------------------ -build: PYTHON_VERSION=3.11.7 +build: PYTHON_VERSION=3.11.11 build: DOCKER_BUILD_ARGS=-t starplot-dev build: touch -a .env @@ -82,26 +82,32 @@ version: # ------------------------------------------------------------------ # Python version testing # ------------------------------------------------------------------ -test-3.9: PYTHON_VERSION=3.9.18 +test-3.9: PYTHON_VERSION=3.9.21 test-3.9: $(DOCKER_BUILD_PYTHON) $(DOCKER_RUN_PYTHON_TEST) -test-3.10: PYTHON_VERSION=3.10.13 +test-3.10: PYTHON_VERSION=3.10.16 test-3.10: $(DOCKER_BUILD_PYTHON) $(DOCKER_RUN_PYTHON_TEST) -test-3.11: PYTHON_VERSION=3.11.7 +test-3.11: PYTHON_VERSION=3.11.11 test-3.11: $(DOCKER_BUILD_PYTHON) $(DOCKER_RUN_PYTHON_TEST) -test-3.12: PYTHON_VERSION=3.12.1 +test-3.12: PYTHON_VERSION=3.12.8 test-3.12: $(DOCKER_BUILD_PYTHON) $(DOCKER_RUN_PYTHON_TEST) +# Python 3.13 not supported yet! +test-3.13: PYTHON_VERSION=3.13.1 +test-3.13: + $(DOCKER_BUILD_PYTHON) + $(DOCKER_RUN_PYTHON_TEST) + # ------------------------------------------------------------------ # Docs docs-serve: DR_ARGS=-it -p 8000:8000 @@ -134,6 +140,9 @@ hip8: scripts: $(DOCKER_RUN) "python ./scripts/$(SCRIPT).py" +allsky: + $(DOCKER_RUN) "python ./scripts/temp/allsky.py" + clean: rm -rf __pycache__ rm -rf venv diff --git a/README.md b/README.md index 0ebaf1f5..9545486f 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ **Starplot** is a Python library for creating star charts and maps of the sky. -- ⭐ **Zenith Plots** - showing the stars from a specific time/location +- ⭐ **Zenith Plots** - showing the whole sky from a specific time/location - πŸ—ΊοΈ **Map Plots** - including many map 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)** @@ -21,7 +21,7 @@ *Map around the constellation Orion:* ![map-orion](https://starplot.dev/images/examples/map_orion.png) -*Optic plot of The Pleiades through a refractor as seen from a specific time/location:* +*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 @@ -42,9 +42,9 @@ p = sp.MapPlot( dt=datetime.now(tz).replace(hour=22), style=sp.styles.PlotStyle().extend( sp.styles.extensions.BLUE_MEDIUM, - sp.styles.extensions.ZENITH, ), - resolution=2000, + resolution=3200, + autoscale=True, ) p.constellations() p.stars(mag=4.6) @@ -72,12 +72,11 @@ https://discord.gg/WewJJjshFu Contributing to Starplot is welcome and very much appreciated! Please see [here](CONTRIBUTING.md) for details. ## Coming Soon +- πŸŒ„ Horizon plots - πŸŒ‘ Planet moons - ✴️ Custom markers -- πŸš€ Plotting Optimizations - β˜„οΈ Comet model -- πŸŒ„ Horizon plots -- βš–οΈ Better auto font-size adjustment +- πŸ’« Better constellation label placement - πŸ˜„ πŸ”­ Clear skies See more details on the [Public Roadmap](https://trello.com/b/sUksygn4/starplot-roadmap) diff --git a/docs/about.md b/docs/about.md index 6af5b379..95b0bfa7 100644 --- a/docs/about.md +++ b/docs/about.md @@ -1,6 +1,10 @@ ![Starplot](images/favicon.svg){ align=right width="128" .off-glb } -**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). +**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). + +πŸ‘· **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). + +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! Join other starplotters on [Discord :fontawesome-brands-discord:{ .fg-primary }](https://discord.gg/WewJJjshFu) diff --git a/docs/changelog.md b/docs/changelog.md index f4e8bbd7..dcfa373b 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,4 +1,17 @@ +## v0.13.x + +- Adds a `scale` factor to control sizing of all objects/text +- Adds an "auto" option for label offsets from markers +- Adds constellation lines to label collision detection +- Adds a `gid` to plotted objects to make exported SVGs easier to work with in external applications (e.g. Inkscape) +- Adds Flamsteed numbers to stars +- Adds all star names from IAU +- Adds the standard symbol for planetary nebulae +- Adds a border size/color property to label styles +- Bundles fonts: Inter & GFS Didot + ## v0.12.x +[Documentation](https://archives.starplot.dev/0.12.5/) - Adds Shapely geometry to all sky object models, including support for `intersects` in `where` clauses - Adds kwarg to map plots to allow custom clip paths diff --git a/docs/coming-soon.md b/docs/coming-soon.md index 93a77a27..c33c6d0c 100644 --- a/docs/coming-soon.md +++ b/docs/coming-soon.md @@ -1,10 +1,9 @@ +- πŸŒ„ Horizon plots - πŸŒ‘ Planet moons - β˜„οΈ Comet model -- πŸŒ„ Horizon plots - ✴️ Custom markers -- πŸš€ Plotting Optimizations -- βš–οΈ Better auto font-size adjustment +- πŸ’« Better constellation label placement - πŸ˜„ πŸ”­ Clear skies
diff --git a/docs/examples/map-canis-major.md b/docs/examples/map-canis-major.md index 71b08d79..1ad83050 100644 --- a/docs/examples/map-canis-major.md +++ b/docs/examples/map-canis-major.md @@ -7,6 +7,8 @@ title: Map of Canis Major ![map-canis-major](/images/examples/map_canis_major.png) +In this example, we set the plot's `clip_path` to the boundary of Canis Major, so only objects in that constellation are plotted: + ```python --8<-- "examples/map_canis_major.py" ``` diff --git a/docs/examples/map-orion.md b/docs/examples/map-orion.md index 2612fe42..136e347a 100644 --- a/docs/examples/map-orion.md +++ b/docs/examples/map-orion.md @@ -7,7 +7,7 @@ title: Map of Orion ![map-orion](/images/examples/map_orion.png) -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): +The following code will create a simple map plot that shows the area around the constellation [Orion](https://en.wikipedia.org/wiki/Orion_(constellation)): ```python --8<-- "examples/map_orion.py" diff --git a/docs/index.md b/docs/index.md index e301fddc..4e40d6aa 100644 --- a/docs/index.md +++ b/docs/index.md @@ -28,6 +28,7 @@ Starplot is a Python library for creating star charts and maps of the sky. Join other starplotters on [Discord :fontawesome-brands-discord:{ .fg-primary }](https://discord.gg/WewJJjshFu) + *Example charts and maps created with Starplot:* @@ -38,7 +39,7 @@ Join other starplotters on [Discord :fontawesome-brands-discord:{ .fg-primary }]
-
Map around the constellation Orion, with an ellipse around Orion's Belt (source code)
+
Map around the constellation Orion (source code)
diff --git a/docs/installation.md b/docs/installation.md index 852e3261..57ab2fed 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -28,6 +28,19 @@ apt-get install libgeos-dev libgdal-dev pip install starplot ``` +## Docker + +Here's a basic Docker container definition that'll get you up and running: + +```docker +FROM python:3.11.11-bookworm + +# Install required system libraries (GEOS + GDAL) +RUN apt-get clean && apt-get update -y && apt-get install -y libgeos-dev libgdal-dev + +RUN pip install starplot +``` + !!! star "What about Windows?" I haven't tried installing Starplot on Windows, but if you have and would like to share instructions, please feel free to [open a pull request on GitHub](https://github.com/steveberardi/starplot) with an update to this file (`docs/installation.md`). Thanks! :) diff --git a/docs/reference-styling.md b/docs/reference-styling.md index a4e9e836..f6afe29b 100644 --- a/docs/reference-styling.md +++ b/docs/reference-styling.md @@ -83,7 +83,7 @@ from starplot import PlotStyle style = PlotStyle().extend( { "bayer_labels": { - "font_name": "GFS Didot", + "font_name": "Literata", "font_size": 10 } } @@ -92,7 +92,7 @@ style = PlotStyle().extend( Alternatively, you can do this: ```python style = PlotStyle() -style.bayer_labels.font_name = "GFS Didot" +style.bayer_labels.font_name = "Literata" style.bayer_labels.font_size = 10 ``` @@ -152,8 +152,8 @@ Starplot has a bunch of built-in style extensions (all imported from `starplot.s - `GRAYSCALE` - Optimized for printing in grayscale ([details](#extensions-grayscale)) - `GRAYSCALE_DARK` - Like `GRAYSCALE`, but inverted (white stars, black background) ([details](#extensions-grayscale-dark)) - `BLUE_LIGHT` - Light and bright colors ([details](#extensions-blue-light)) - - `BLUE_MEDIUM` - Medium brightness bluish gray colors ([details](#extensions-blue-medium)) - - `BLUE_DARK` - Dark "Starplot blue" colors ([details](#extensions-blue-dark)) + - `BLUE_MEDIUM` - Medium brightness blue colors ([details](#extensions-blue-medium)) + - `BLUE_DARK` - Dark blue and contrasting colors ([details](#extensions-blue-dark)) - `ANTIQUE` - Antique map inspired colors ([details](#extensions-antique)) - `NORD` - Nord-inspired colors ([details](#extensions-nord)) - **Plot types** diff --git a/docs/tutorial.md b/docs/tutorial.md index e20e5494..0e290a88 100644 --- a/docs/tutorial.md +++ b/docs/tutorial.md @@ -15,7 +15,7 @@ Here's an overview of what the tutorial covers: 8. [Using callables](tutorial/08.md) 9. [Where to go from here](tutorial/09.md) -Estimated time to complete: 1 hour +Estimated time to complete: 30 minutes
diff --git a/docs/tutorial/02.md b/docs/tutorial/02.md index be7aa722..93028be8 100644 --- a/docs/tutorial/02.md +++ b/docs/tutorial/02.md @@ -37,8 +37,9 @@ On line 8, we create a [`MapPlot`][starplot.MapPlot] instance that specifies a f - `lat`/`lon`: Observing location - `dt`: Observing date/time - `resolution`: Resolution (in pixels) of the widest dimension of the plot +- `scale`: This controls the sizing of all text and markers. At scale `1.0` everything is optimized for a basic map of 1-3 constellations, so if you're plotting a larger area (or just want everything smaller), then it's a good idea to decrease the scale so the plot isn't too crowded. -When you create a plot instance, initially it'll be empty (i.e. it won't have any stars). In Starplot, you have to explicitly plot all objects. So, on line 15 we plot the constellations, which includes lines and labels. Then, we plot stars with a limiting magnitude of 4.6. +When you create a plot instance, initially it'll be empty (i.e. it won't have any stars). In Starplot, you have to explicitly plot all objects. So, on line 16 we plot the constellations, which includes lines and labels. Then, we plot stars with a limiting magnitude of 4.6. Finally, we export the plot to a PNG file. diff --git a/docs/tutorial/05.md b/docs/tutorial/05.md index 6ddc684b..82f7cad4 100644 --- a/docs/tutorial/05.md +++ b/docs/tutorial/05.md @@ -22,7 +22,7 @@ For example, here's how you'd create an optic plot of the Beehive Star Cluster ( The first 13 lines should look familiar from the other plots we've created in this tutorial. -Line 15 is where we create the instance of an `OpticPlot`. Most of the kwargs are the same as the map plot's kwargs, except for the following: +Line 14 is where we create the instance of an `OpticPlot`. Most of the kwargs are the same as the map plot's kwargs, except for the following: - `ra`: Right ascension of the target - `dec`: Declination of the target @@ -30,7 +30,7 @@ Line 15 is where we create the instance of an `OpticPlot`. Most of the kwargs ar The `ra`/`dec` you specify for the target will be the center of the plot. -On line 31, we plot stars down to magnitude 14, but we also specify the [star catalog](/reference-data/#starplot.data.stars.StarCatalog) to use. By default, Starplot uses the Hipparcos catalog, but it also has the [Big Sky Catalog](https://github.com/steveberardi/bigsky) built-in which has many more stars. +On line 31, we plot stars down to magnitude 12, but we also specify the [star catalog](/reference-data/#starplot.data.stars.StarCatalog) to use. By default, Starplot uses the Hipparcos catalog, but it also has the [Big Sky Catalog](https://github.com/steveberardi/bigsky) built-in which has many more stars. *In the [next section](06.md), we'll learn how to be more selective of objects to plot...* diff --git a/docs/tutorial/06.md b/docs/tutorial/06.md index 48f2cc7d..a49ca919 100644 --- a/docs/tutorial/06.md +++ b/docs/tutorial/06.md @@ -20,7 +20,7 @@ p.stars( ], ) ``` -When passing the `where` kwarg, the `mag` kwarg will be ignored, and only the stars/DSOs that satisfy ALL the `where` conditions will be plotted. You can reference any field on the model in expressions, and there are also a few functions available for determining if a field is null or is in a list of values. For complete details about selecting objects, see the [reference page](/reference-selecting-objects/). +When passing the `where` kwarg, the `mag` kwarg will be ignored, and only the stars/DSOs that satisfy ALL the `where` conditions will be plotted. You can reference any field on the [model](/reference-models/) in expressions, and there are also a few functions available for determining if a field is null or is in a list of values. For complete details about selecting objects, see the [reference page](/reference-selecting-objects/). Here's some code that uses the `where` kwarg extensively to produce the image above:
diff --git a/docs/tutorial/08.md b/docs/tutorial/08.md index 4f110d90..4202a84e 100644 --- a/docs/tutorial/08.md +++ b/docs/tutorial/08.md @@ -11,7 +11,7 @@ title: 8 - Using Callables [Callables](/reference-callables/) allow you to define your own functions for calculating a few of the style properties for stars: size, alpha (opacity), color, and their labels. DSOs support callables for alpha and labels only. Starplot has a few basic callables built-in, but you can also create your own. -Here's an example that uses the built-in callable `color_by_bv` to create an optic plot of [Antares](https://en.wikipedia.org/wiki/Antares) that colorizes the stars based on their B-V index (Antares B-V is 1.83 so it appears red/orange in the sky): +Here's an example that uses the built-in callable `color_by_bv` to create an optic plot of [Antares](https://en.wikipedia.org/wiki/Antares) that colorizes the stars based on their B-V index (Antares' B-V is 1.83 so it appears red/orange in the sky):
```python linenums="1" --8<-- "tutorial/tutorial_08.py" diff --git a/examples/examples.py b/examples/examples.py index 2901dd2a..4ca9b2e2 100755 --- a/examples/examples.py +++ b/examples/examples.py @@ -5,10 +5,15 @@ import time from PIL import Image -from multiprocessing import Pool, Process +from multiprocessing import Pool start = time.time() +skip = [ + # "map_milky_way_stars.py", + # "stuff.py", +] + def thumbnail(filename, max_dimension=900): print(filename) @@ -23,16 +28,17 @@ def get_example_names(): for filename in glob.iglob("*.py"): if filename.endswith("examples.py"): continue + + if filename in skip: + continue + filenames.append(filename) return filenames def run_example(filename): - import subprocess - print(f"Running {filename}") - subprocess.call(["python", filename]) @@ -42,16 +48,6 @@ def run_example(filename): with Pool(5) as pool: pool.map(run_example, example_files) -# Run all examples -# for filename in glob.iglob("*.py"): -# if filename.endswith("examples.py"): -# continue - -# # if filename != "map_lyra.py": -# # continue -# print(f"Running {filename}") -# subprocess.call(f"python {filename}", shell=True) - # Create thumbnail images for the examples list page image_files = glob.glob("*.png") pool = Pool(5) diff --git a/examples/map_big.py b/examples/map_big.py index 4060362e..dc74e471 100644 --- a/examples/map_big.py +++ b/examples/map_big.py @@ -1,5 +1,4 @@ -from starplot import MapPlot, Projection -from starplot.models import DSO +from starplot import MapPlot, Projection, DSO, Star from starplot.styles import PlotStyle, extensions @@ -8,10 +7,6 @@ extensions.MAP, ) -style.star.label.font_size = 4 -style.constellation.label.font_size = 6 -style.constellation.line.width = 2 - p = MapPlot( projection=Projection.MILLER, ra_min=0, @@ -20,18 +15,42 @@ dec_max=80, style=style, resolution=6000, + # since this map has a very large extent, let's scale everything down + scale=0.8, +) +p.gridlines() +p.constellations( + style__label__font_size=28, ) -p.stars(mag=8) -p.dsos( +p.stars(mag=6, where_labels=[Star.magnitude < 2.1]) +p.open_clusters( labels=None, where=[ DSO.magnitude <= 8, - DSO.size > 0.05, ], + true_size=False, ) -p.gridlines() +p.globular_clusters( + labels=None, + where=[ + DSO.magnitude <= 9, + ], + true_size=False, +) +p.galaxies( + labels=None, + where=[ + DSO.magnitude <= 10, + ], + true_size=False, +) +p.nebula( + labels=None, + where=[(DSO.magnitude <= 10) | (DSO.magnitude.is_null()), DSO.size > 0.05], +) + p.milky_way() -p.ecliptic(style={"line": {"style": "dashed"}}) +p.ecliptic() p.celestial_equator() p.export("map_big.png", padding=0.5) diff --git a/examples/map_big_dipper.py b/examples/map_big_dipper.py index 04f8a4bb..6e775f81 100644 --- a/examples/map_big_dipper.py +++ b/examples/map_big_dipper.py @@ -21,16 +21,9 @@ Star.dec > 45, Star.dec < 64, ], - # By default, star sizes are calculated based on their magnitude first, - # but then that result will be multiplied by the star's marker size in the PlotStyle - # so, adjusting the star marker size is a way to make all stars bigger or smaller - style__marker__size=96, style__marker__symbol="star", style__marker__color="#ffff73", - style__label__font_size=13, + style__label__font_size=20, style__label__font_weight="normal", - style__label__anchor_point="bottom right", - style__label__offset_x=16, - style__label__offset_y=-52, ) p.export("map_big_dipper.png", transparent=True) diff --git a/examples/map_canis_major.py b/examples/map_canis_major.py index 343e7146..a9cc5ed0 100644 --- a/examples/map_canis_major.py +++ b/examples/map_canis_major.py @@ -2,17 +2,8 @@ from starplot.styles import PlotStyle, extensions style = PlotStyle().extend( - extensions.CB_WONG, + extensions.BLUE_LIGHT, extensions.MAP, - { - "star": {"marker": {"size": 40}, "label": {"font_size": 13}}, - "bayer_labels": { - "font_name": "GFS Didot", # use a better font for Greek letters - "font_size": 10, - "font_alpha": 0.9, - }, - "dso_open_cluster": {"marker": {"size": 20}, "label": {"font_size": 10}}, - }, ) canis_major = Constellation.get(name="Canis Major") p = MapPlot( @@ -22,16 +13,15 @@ dec_min=-35, dec_max=-9, style=style, - resolution=2000, + resolution=3600, clip_path=canis_major.boundary, + scale=1.3, ) -p.open_clusters(mag=8, true_size=False, label_fn=lambda d: f"{d.ngc}") -p.stars(mag=9, bayer_labels=True, catalog="big-sky-mag11") p.constellations( where=[Constellation.iau_id == "cma"], - style__line__width=7, - style__label__font_size=18, ) p.constellation_borders() +p.open_clusters(mag=8, true_size=False, label_fn=lambda d: f"{d.ngc}") +p.stars(mag=9, bayer_labels=True, catalog="big-sky-mag11") p.ax.set_axis_off() p.export("map_canis_major.png", padding=0, transparent=True) diff --git a/examples/map_comet_neowise.py b/examples/map_comet_neowise.py index 0d026774..1fd16c47 100644 --- a/examples/map_comet_neowise.py +++ b/examples/map_comet_neowise.py @@ -2,7 +2,7 @@ from skyfield.data import mpc from skyfield.constants import GM_SUN_Pitjeva_2005_km3_s2 as GM_SUN -from starplot import MapPlot, Projection +from starplot import MapPlot, Projection, Star from starplot.styles import PlotStyle, extensions # First, we use Skyfield to get comet data @@ -41,7 +41,6 @@ { "star": { "label": { - "font_size": 9, "font_weight": "normal", } }, @@ -60,6 +59,7 @@ dec_max=80, style=style, resolution=2800, + autoscale=True, ) # Plot the comet markers first, to ensure their labels are plotted @@ -70,7 +70,7 @@ dec=dec, style={ "marker": { - "size": 16, + "size": 40, "symbol": "circle", "fill": "full", "color": "hsl(358, 78%, 58%)", @@ -79,7 +79,7 @@ "zorder": 4096, }, "label": { - "font_size": 17, + "font_size": 46, "font_weight": "bold", "font_color": "hsl(60, 70%, 72%)", "zorder": 4096, @@ -90,9 +90,9 @@ ) p.gridlines(labels=False) -p.stars(mag=6) p.constellations() p.constellation_borders() +p.stars(mag=6, where_labels=[Star.magnitude < 2]) p.milky_way() p.legend() diff --git a/examples/map_milky_way_stars.py b/examples/map_milky_way_stars.py index 2be89ab3..b9941051 100644 --- a/examples/map_milky_way_stars.py +++ b/examples/map_milky_way_stars.py @@ -20,7 +20,7 @@ def alpha(s): p = MapPlot( projection=Projection.MOLLWEIDE, style=style, - resolution=4000, + resolution=4800, ) p.stars( diff --git a/examples/map_orion.py b/examples/map_orion.py index 41ff9930..a906f674 100755 --- a/examples/map_orion.py +++ b/examples/map_orion.py @@ -1,15 +1,10 @@ -from starplot import MapPlot, Projection -from starplot.styles import PlotStyle, PolygonStyle, extensions +from starplot import MapPlot, Projection, Star, DSO +from starplot.styles import PlotStyle, extensions style = PlotStyle().extend( extensions.BLUE_LIGHT, extensions.MAP, { - "bayer_labels": { - "font_name": "GFS Didot", # use a better font for Greek letters - "font_size": 7, - "font_alpha": 0.9, - }, "legend": { "location": "lower right", # show legend inside map "num_columns": 1, @@ -26,28 +21,30 @@ dec_max=25, style=style, resolution=3600, + autoscale=True, ) p.gridlines() -p.stars(mag=9, bayer_labels=True) -p.open_clusters(mag=9, labels=None) -p.nebula(mag=9, labels=None) p.constellations() p.constellation_borders() -p.milky_way() -p.ecliptic() -p.ellipse( - (5.6, -1.2), - height_degrees=3, - width_degrees=5, - style=PolygonStyle( - fill_color="#ed7eed", - edge_color="#000", - alpha=0.2, - ), - angle=-22, +p.stars(mag=8, bayer_labels=True, where_labels=[Star.magnitude < 5]) + +p.open_clusters( + where=[DSO.size < 1, DSO.magnitude < 9], + labels=None, + label_fn=lambda d: d.ngc, + true_size=False, ) +p.open_clusters( + # plot larger clusters as their true apparent size + where=[DSO.size > 1, (DSO.magnitude < 9) | (DSO.magnitude.is_null())], + labels=None, +) + +p.nebula(mag=9, labels=None, label_fn=lambda d: d.ngc) +p.milky_way() +p.ecliptic() p.legend() p.export("map_orion.png", padding=0.3, transparent=True) diff --git a/examples/map_orthographic.py b/examples/map_orthographic.py index 789b3c77..a3b9c0b0 100644 --- a/examples/map_orthographic.py +++ b/examples/map_orthographic.py @@ -2,7 +2,6 @@ from pytz import timezone from starplot import MapPlot, Projection, Star, DSO -from starplot.data import constellations from starplot.styles import PlotStyle, extensions @@ -24,19 +23,19 @@ dec_min=-90, dec_max=90, style=style, - resolution=3200, + scale=0.9, # lower the scale since it shows a large area ) p.gridlines(labels=False) -p.stars(mag=7.86, where_labels=[Star.magnitude < 6]) +p.constellations( + style={"label": {"font_alpha": 0.4}}, +) +p.constellation_borders() +p.stars(mag=7.86, where_labels=[Star.magnitude < 6]) p.open_clusters(where=[DSO.magnitude < 12], true_size=False, labels=None) p.galaxies(where=[DSO.magnitude < 12], true_size=False, labels=None) p.nebula(where=[DSO.magnitude < 12], true_size=False, labels=None) -p.constellations( - style={"label": {"font_size": 9, "font_alpha": 0.8}}, -) -p.constellation_borders() p.ecliptic() p.celestial_equator() p.milky_way() diff --git a/examples/map_sagittarius.py b/examples/map_sagittarius.py index 05fc68e0..de1ad6a3 100644 --- a/examples/map_sagittarius.py +++ b/examples/map_sagittarius.py @@ -1,37 +1,31 @@ -from starplot import MapPlot, Projection, DSO, Star +from starplot import MapPlot, Projection, DSO, Star, callables from starplot.styles import PlotStyle, extensions style = PlotStyle().extend( extensions.ANTIQUE, extensions.MAP, - { - "bayer_labels": { - "font_name": "GFS Didot", - "font_size": 7, - }, - "dso_open_cluster": { - "marker": { - "size": 17, - }, - }, - }, ) p = MapPlot( projection=Projection.MILLER, ra_min=15.6, ra_max=19.8, - dec_min=-51.6, + dec_min=-45.2, dec_max=-3, style=style, - resolution=3000, + resolution=4000, + autoscale=True, ) p.constellations() +p.constellation_borders() p.stars( where=[Star.magnitude <= 3], - style__marker__size=72, + size_fn=lambda d: callables.size_by_magnitude(d) * 2, # make them 2x bigger style__marker__symbol="star_8", - style__marker__zorder=200, + style__label__offset_x=8, + style__label__offset_y=-8, + style__label__border_width=2, + style__label__border_color="#fefaed", ) p.stars( where=[ @@ -39,6 +33,7 @@ Star.magnitude < 9, ], bayer_labels=True, + flamsteed_labels=True, catalog="big-sky-mag11", ) @@ -56,7 +51,13 @@ true_size=False, label_fn=lambda d: d.ngc, ) -p.constellation_borders() +p.globular_clusters( + where=[ + DSO.magnitude.is_null() | (DSO.magnitude < 12), + ], + true_size=False, + label_fn=lambda d: d.ngc, +) p.ecliptic() p.celestial_equator() p.milky_way() diff --git a/examples/optic_m45.py b/examples/optic_m45.py index 929b5bf0..c1413122 100644 --- a/examples/optic_m45.py +++ b/examples/optic_m45.py @@ -26,7 +26,8 @@ ), dt=dt, style=style, - resolution=1600, + resolution=2048, + autoscale=True, ) p.stars( mag=12, diff --git a/examples/optic_moon_saturn.py b/examples/optic_moon_saturn.py index bb0e8b78..8b27843c 100644 --- a/examples/optic_moon_saturn.py +++ b/examples/optic_moon_saturn.py @@ -19,6 +19,7 @@ optic=optics.Binoculars(magnification=15, fov=65), style=PlotStyle().extend(extensions.GRAYSCALE_DARK, extensions.OPTIC), resolution=2000, + autoscale=True, ) op.moon( true_size=True, @@ -27,8 +28,8 @@ op.planets( true_size=True, style__marker__color="#ffe785", - style__label__offset_x=14, - style__label__offset_y=-14, + style__label__offset_x=6, + style__label__offset_y=-6, ) op.stars(mag=12) diff --git a/examples/optic_orion_nebula.py b/examples/optic_orion_nebula.py index e999b413..ecd3d3b4 100644 --- a/examples/optic_orion_nebula.py +++ b/examples/optic_orion_nebula.py @@ -26,7 +26,8 @@ ), dt=dt, style=style, - resolution=1800, + resolution=2048, + autoscale=True, ) p.stars(mag=15, color_fn=color_by_bv, bayer_labels=True) p.dsos(mag=4.1, labels=None) diff --git a/examples/star_chart_basic.py b/examples/star_chart_basic.py index 56b6b7d3..403dfb83 100755 --- a/examples/star_chart_basic.py +++ b/examples/star_chart_basic.py @@ -1,6 +1,6 @@ from datetime import datetime from pytz import timezone -from starplot import MapPlot, Projection +from starplot import MapPlot, Projection, Star from starplot.styles import PlotStyle, extensions tz = timezone("America/Los_Angeles") @@ -15,9 +15,10 @@ extensions.BLUE_MEDIUM, ), resolution=3600, + autoscale=True, ) p.constellations() -p.stars(mag=4.4) +p.stars(mag=4.4, where_labels=[Star.magnitude < 2.4]) p.horizon() p.export("star_chart_basic.png", transparent=True, padding=0.1) diff --git a/examples/star_chart_detail.py b/examples/star_chart_detail.py index 13f77988..26cb9086 100644 --- a/examples/star_chart_detail.py +++ b/examples/star_chart_detail.py @@ -15,6 +15,7 @@ extensions.NORD, ), resolution=3600, + autoscale=True, ) p.constellations() p.stars(mag=4.6, where_labels=[Star.magnitude < 2.1]) @@ -32,7 +33,7 @@ dec=25.85, style={ "marker": { - "size": 28, + "size": 60, "symbol": "circle", "fill": "full", "color": "#ed7eed", @@ -42,7 +43,7 @@ }, "label": { "zorder": 200, - "font_size": 12, + "font_size": 30, "font_weight": "bold", "font_color": "ed7eed", "font_alpha": 0.8, diff --git a/hash_checks/hashlock.yml b/hash_checks/hashlock.yml index fcb2f33a..d9f096ca 100644 --- a/hash_checks/hashlock.yml +++ b/hash_checks/hashlock.yml @@ -1,116 +1,116 @@ map_coma_berenices_dso_size: - dhash: c2809292c88084a080829292c8828280868a92928a828282 + dhash: 82848cece098c0c28a848cece098c482a28a92e2ec92c282 filename: /starplot/hash_checks/data/map-coma-berenices-dso-size.png - phash: c16916963e696d96 + phash: 969669694f9212cf map_custom_stars: - dhash: 5cb129ceae2e84285cb129ceae2e84285cb129ceae2e8428 + dhash: 5c21a9ceac2c84485c21a9ceac2c84485c21a9ceac2c8448 filename: /starplot/hash_checks/data/map-custom-stars.png - phash: a4cbd93487a53cc6 + phash: e65a5bb405a535d8 map_gridlines: - dhash: 34318517b2c0902034318517b2c0902034318517b2c09020 + dhash: 0c219595224949210c219595224949210c21959522494921 filename: /starplot/hash_checks/data/map-gridlines.png - phash: f82acf9c3c616392 + phash: d2b45b172d3262ad map_label_callables: - dhash: 80988c0c9c8c88a080988c0c9c8c88a0809a9d1d0d9d9aa0 + dhash: 80908c8c9c8c889080988c0c9c8c98a0809a9d0d8d9e98a0 filename: /starplot/hash_checks/data/map-m45-label-callables.png - phash: b238cdc92ce63699 + phash: b330cdcd3ce6268c map_milky_way_multi_polygon: - dhash: 351b89e4243a2604711b88e434322604751b88e424362624 + dhash: 711f0b0c80761c2d711f0b0c80761c2d71530b0c80669c0d filename: /starplot/hash_checks/data/map-milky-way-multi-polygon.png - phash: bc8bf89e90ce5a44 + phash: be89be8856524e69 map_mollweide: - dhash: 0b2933632b3317070b2933632b3317070f295b6323130707 + dhash: 0b0929733b31170f0b0929733b31170f0b0d29732b311707 filename: /starplot/hash_checks/data/map-mollweide.png - phash: fa9af698c0259566 + phash: facbe09885599563 map_moon_phase_waxing_crescent: - dhash: 8884484d4d4884888884484d4d4884888884484d4d488488 + dhash: 0804084d4d4804080804084d4d4804080804084d4d480408 filename: /starplot/hash_checks/data/map-moon-phase-waxing-crescent.png phash: b3cccc3333cccc31 map_orion_base: - dhash: 1c3b3b6e6e2f64681c3b3b4e6e2f64681c3b1bce6e2f646c + dhash: 1c39393e2e2f64681c39396e2e2f64685c3939a62e4f2468 filename: /starplot/hash_checks/data/map-orion-base.png - phash: be79d9260785709c + phash: be785b2435a4b598 map_orion_extra: - dhash: 1c1b3a6d2f656c171d1b1b6b2f646c871c1b1b6b2d646c07 + dhash: 1c19393e2f656c4f1c39392e2f6568471c1b2b2e2f256c47 filename: /starplot/hash_checks/data/map-orion-extra.png - phash: be71d11ee01fa4d0 + phash: be71c11ee117a4d1 map_plot_custom_clip_path_virgo: - dhash: 020103130f0c04040327252d0d0c08040327250f0d0c0804 + dhash: 060529331d1c04040625252f0d1c0404060525270d1e0404 filename: /starplot/hash_checks/data/map-custom-clip-path-virgo.png - phash: e66cc983b3919336 + phash: e66e8d91b1191bd2 map_plot_limit_by_geometry: - dhash: 22a886960c061204028a86960c0a1244122886864c0e0a04 + dhash: 12a8809644041202122a82964404120232a880d645041242 filename: /starplot/hash_checks/data/map-limit-by-geometry.png - phash: e54d9b926c6d1692 + phash: a4899b366679669a map_scope_bino_fov: - dhash: 0bc0808c8c8080802bc6b22d4da9928c2bc6b22d4da9928c + dhash: 068080848cc088200686334d4d21924c0686334d4d21924c filename: /starplot/hash_checks/data/map-scope-bino-fov.png - phash: e46b296e6e293964 + phash: e6659931666c9939 map_stereo_base: - dhash: 627666f07c3c3436627666f0382c3436727666f2ecc89416 + dhash: 777264f234381416777264f0303cd416777664f2b498d456 filename: /starplot/hash_checks/data/map-stereo-north-base.png - phash: 9dce7973429062ba + phash: 9dce69624a9176b2 map_with_planets: - dhash: 62930d63899b32b362930563899b32b362930563899b32b3 + dhash: 629304668ddb3233629304668ddb3233629305668ddb3233 filename: /starplot/hash_checks/data/map-mercator-planets.png - phash: e9c69d89861f5392 + phash: eac29d81a65f5332 map_wrapping: - dhash: 16391d2d7747211516391d2d7747211516391d2d77472115 + dhash: 2f134c2d45cf23152f134c2d45cf23152f134c2d45cf2315 filename: /starplot/hash_checks/data/map-wrapping.png - phash: ee30f1ed3464213d + phash: ba32c9c5968cb713 optic_camera_rotated: - dhash: 25468b33269d9a6525468b33269d9a6525468b33269d9a65 + dhash: 25468b13261c1a6525468b13261c1a6525468b13261c1a65 filename: /starplot/hash_checks/data/optic-camera-rotated-m45.png - phash: ac6cc6941edb7285 + phash: bc6cc6941ed97285 optic_clipping: - dhash: 30c898f06ee4fc5d71c898f0eae4fc7931d898f0eae4f879 + dhash: 70d898f066e4fc5d70d898f0eae4f85971f098eaf6f4fc71 filename: /starplot/hash_checks/data/optic-clipping.png phash: 95696a872f9a7870 optic_m45_binoculars: - dhash: 8e172b5133338e4d8e172b5133338e4d8e172b5133338e4d + dhash: 8e173b7133330e4d8e173b7133330e4d8e173b7133330e4d filename: /starplot/hash_checks/data/optic-m45-binoculars.png - phash: aa7b84f182d18ed6 + phash: aa7b84f586d18ac6 optic_m45_camera: - dhash: 4d717151716159754d717151716159754d71715171615975 + dhash: 4d715151716559754d715151716559754d71515171655975 filename: /starplot/hash_checks/data/optic-m45-camera.png - phash: fe7b846e843b8494 + phash: ba7b846e847b84d1 optic_m45_reflector: - dhash: 8e1f3b7123338e4d8e1f3b7123338e4d8e1f3b7123338e4d + dhash: 8e1f2b7123330e4d8e1f2b7123330e4d8e1f2b7123330e4d filename: /starplot/hash_checks/data/optic-m45-reflector.png - phash: ab7b80e4c6939b92 + phash: ba7b80e4c6b19b92 optic_m45_scope: - dhash: 8e173b5123238e4d8e173b5123238e4d8e173b5123238e4d + dhash: 8e173b5133230e4d8e173b5133230e4d8e173b5133230e4d filename: /starplot/hash_checks/data/optic-m45-scope.png - phash: ae7b81e48693ce92 + phash: ba7b84e486b18e93 optic_moon_phase_full: dhash: 0e2b553333552b0e0e2b553333552b0e0e2b553333552b0e filename: /starplot/hash_checks/data/optic-moon-phase-full.png - phash: fb2ba07395708725 + phash: fb6ba06295718725 optic_moon_phase_new: - dhash: 17498e96968e491717498e96968e491717498e96968e4917 + dhash: 13498e96968e491313498e96968e491313498e96968e4913 filename: /starplot/hash_checks/data/optic-moon-phase-new.png - phash: e1619e9369596636 + phash: e1649e9669496766 optic_moon_phase_waxing_crescent: dhash: 0e33454d59712b0e0e33454d59712b0e0e33454d59712b0e filename: /starplot/hash_checks/data/optic-moon-phase-waxing-crescent.png phash: bb26e4999166c699 optic_orion_nebula_refractor: - dhash: 8e1f2d7163238e4d8e1f2d7163238e4d8e1f2d7163238e4d + dhash: 8e1f2d7163230e4d8e1f2d7163230e4d8e1f2d7163230e4d filename: /starplot/hash_checks/data/optic-orion-nebula-refractor.png - phash: ae3a9165c7919e92 + phash: ae3ab165c3919e92 optic_polaris_binoculars: - dhash: 8e172b512b338e4d8e172b512b338e4d8e172b512b338e4d + dhash: 8e172b5533338e4d8e172b5533338e4d8e172b5533338e4d filename: /starplot/hash_checks/data/optic-binoculars-polaris.png - phash: aa7b84f186d38e92 + phash: aa7b84f182d18ed3 optic_solar_eclipse_binoculars: - dhash: 0779e49a9ae469071779e09a9ae469170359c09e9ec06923 + dhash: 1779609a9a64610f0759e09a9ae469070359c09c9cc06903 filename: /starplot/hash_checks/data/optic-binoculars-eclipse.png - phash: b1cece3131cecc31 + phash: b1ccce3131cece31 optic_wrapping: - dhash: 71f0a4d0d2da652a71f0b4ecacc4792a71e0b4acacc47932 + dhash: 71f0ac92d2d8650a71e0d4aca4c4782a71e8d4acacc4713a filename: /starplot/hash_checks/data/optic-wrapping.png - phash: d0c46f1b3d2ee078 + phash: d1846e1b792ef138 zenith_base: - dhash: 1779c4aedc5d338e1779c4acd65d338e1779c48cde5d330e + dhash: 1771c49e9e7d338e1779c49c9e5d338e1779c49c9e7d370e filename: /starplot/hash_checks/data/zenith-base.png - phash: be49aa3be12c8764 + phash: bb41aa3be13c8764 diff --git a/hash_checks/map_checks.py b/hash_checks/map_checks.py index cb1fc7f0..eb8862d2 100644 --- a/hash_checks/map_checks.py +++ b/hash_checks/map_checks.py @@ -31,6 +31,7 @@ def _mercator(): dec_max=23.6, style=STYLE, resolution=RESOLUTION, + autoscale=True, ) p.stars(mag=7.6, bayer_labels=True) p.dsos( @@ -63,6 +64,7 @@ def _stereo_north(): dec_max=55, style=STYLE, resolution=RESOLUTION, + autoscale=True, ) p.stars(mag=9, bayer_labels=True) p.dsos( @@ -132,6 +134,7 @@ def check_map_coma_berenices_dso_size(): styles.extensions.MAP, ), resolution=RESOLUTION, + scale=1.5, ) p.stars(mag=8, bayer_labels=True) p.open_clusters(mag=8, true_size=True) @@ -165,6 +168,7 @@ def check_map_with_planets(): hide_colliding_labels=False, style=STYLE, resolution=RESOLUTION, + autoscale=True, ) p.stars(mag=3, labels=None) p.planets() @@ -192,8 +196,9 @@ def check_map_scope_bino_fov(): dec_max=28, dt=dt, style=style, - resolution=1000, + resolution=2000, star_catalog="big-sky-mag11", + scale=1, ) p.stars(mag=12) p.scope_fov( @@ -227,6 +232,7 @@ def check_map_custom_stars(): dec_max=24, style=style, resolution=RESOLUTION, + autoscale=True, ) p.stars(mag=6) p.text( @@ -255,6 +261,7 @@ def check_map_wrapping(): dec_max=64, style=style, resolution=RESOLUTION, + autoscale=True, ) p.stars(mag=9, style={"marker": {"size": 40}}) p.dsos( @@ -284,6 +291,7 @@ def check_map_mollweide(): projection=Projection.MOLLWEIDE, style=style, resolution=RESOLUTION, + autoscale=True, ) p.stars(mag=4.2, mag_labels=1.8, style__marker__color="blue") p.constellations() @@ -318,6 +326,7 @@ def check_map_gridlines(): dec_max=67, style=style, resolution=RESOLUTION, + autoscale=True, ) p.stars(mag=6, style__marker__size=45) @@ -346,6 +355,7 @@ def check_map_moon_phase_waxing_crescent(): **POWAY, dt=dt_dec_16, style=STYLE, + autoscale=True, ) p.moon( true_size=True, @@ -380,6 +390,7 @@ def check_map_plot_limit_by_geometry(): } ), resolution=RESOLUTION, + autoscale=True, ) lyra = Constellation.get(iau_id="lyr") @@ -417,6 +428,7 @@ def check_map_plot_custom_clip_path_virgo(): } ), resolution=RESOLUTION, + autoscale=True, clip_path=virgo.boundary, ) @@ -454,10 +466,10 @@ def check_map_label_callables(): { "dso_open_cluster": { "label": { - "font_size": 28, + # "font_size": 28, "font_weight": "bold", - "offset_x": 310, - "offset_y": 240, + # "offset_x": 310, + # "offset_y": 240, } }, } @@ -470,6 +482,7 @@ def check_map_label_callables(): dec_max=26, style=style, resolution=2000, + autoscale=True, ) m45 = DSO.get(m="45") @@ -477,8 +490,8 @@ def check_map_label_callables(): geometry=m45.geometry, style__color=None, style__fill_color=style.dso_open_cluster.marker.color, - style__edge_color="#000", - style__edge_width=4, + style__edge_color="red", + style__edge_width=6, style__line_style=(0, (1.2, 8)), ) @@ -499,10 +512,11 @@ def check_map_milky_way_multi_polygon(): projection=Projection.MILLER, ra_min=17.5, ra_max=19.5, - dec_min=-40, + dec_min=-30, dec_max=0, style=STYLE, - resolution=2000, + resolution=3000, + autoscale=True, ) p.stars(mag=6, bayer_labels=True) p.constellations() diff --git a/hash_checks/optic_checks.py b/hash_checks/optic_checks.py index 9cf68307..7732d8db 100644 --- a/hash_checks/optic_checks.py +++ b/hash_checks/optic_checks.py @@ -26,6 +26,11 @@ POWAY = {"lat": 32.97, "lon": -117.038611} +plot_kwargs = dict( + resolution=2048, + autoscale=True, +) + def check_optic_polaris_binoculars(): optic_plot = OpticPlot( @@ -41,7 +46,7 @@ def check_optic_polaris_binoculars(): ), dt=dt_dec_16, style=style_dark, - resolution=1600, + **plot_kwargs, ) optic_plot.stars(mag=14) optic_plot.info() @@ -65,7 +70,7 @@ def check_optic_orion_nebula_refractor(): ), dt=dt_dec_16, style=style_dark, - resolution=1600, + **plot_kwargs, ) optic_plot.stars(mag=12) optic_plot.nebula() @@ -88,7 +93,7 @@ def check_optic_wrapping(): ), dt=dt_dec_16, style=style_blue, - resolution=2000, + **plot_kwargs, ) optic_plot.stars( where=[Star.magnitude < 8], @@ -122,7 +127,7 @@ def check_optic_clipping(): ), dt=dt_dec_16, style=style_blue, - resolution=1800, + **plot_kwargs, ) optic_plot.stars(mag=12) optic_plot.dsos(mag=8.1, labels=None) @@ -147,7 +152,7 @@ def check_optic_m45_binoculars(): ), dt=dt_dec_16, style=style_dark, - resolution=1600, + **plot_kwargs, ) optic_plot.stars(mag=12) optic_plot.info() @@ -170,7 +175,7 @@ def check_optic_m45_scope(): ), dt=dt_dec_16, style=style_dark, - resolution=1600, + **plot_kwargs, ) optic_plot.stars( mag=12, @@ -197,7 +202,7 @@ def check_optic_m45_reflector(): ), dt=dt_dec_16, style=style_dark, - resolution=1600, + **plot_kwargs, ) optic_plot.stars(mag=12) optic_plot.info() @@ -221,7 +226,7 @@ def check_optic_m45_camera(): ), dt=dt_dec_16, style=style_dark, - resolution=1600, + **plot_kwargs, ) optic_plot.stars(mag=12, style__marker__symbol=styles.MarkerSymbolEnum.STAR) optic_plot.info() @@ -247,7 +252,7 @@ def check_optic_camera_rotated(): ), dt=dt_dec_16, style=style_dark, - resolution=1600, + **plot_kwargs, ) optic_plot.stars(mag=12) optic_plot.info() @@ -268,7 +273,7 @@ def check_optic_solar_eclipse_binoculars(): style=styles.PlotStyle().extend( styles.extensions.BLUE_MEDIUM, ), - resolution=2000, + **plot_kwargs, ) optic_plot.stars(mag=14) optic_plot.moon(true_size=True, show_phase=True) @@ -290,6 +295,7 @@ def check_optic_moon_phase_waxing_crescent(): dt=dt_dec_16, style=style_dark, raise_on_below_horizon=False, + **plot_kwargs, ) optic_plot.moon( true_size=True, @@ -313,6 +319,7 @@ def check_optic_moon_phase_new(): dt=dt_april_8, style=style_light, raise_on_below_horizon=False, + **plot_kwargs, ) optic_plot.moon( true_size=True, @@ -337,6 +344,7 @@ def check_optic_moon_phase_full(): dt=dt_full_moon, style=style_dark, raise_on_below_horizon=False, + **plot_kwargs, ) optic_plot.moon( true_size=True, diff --git a/hash_checks/zenith_checks.py b/hash_checks/zenith_checks.py index fc0f6a95..e3a83c89 100644 --- a/hash_checks/zenith_checks.py +++ b/hash_checks/zenith_checks.py @@ -3,7 +3,7 @@ from pytz import timezone -from starplot import styles +from starplot import styles, Star from starplot.map import MapPlot, Projection HERE = Path(__file__).resolve().parent @@ -26,8 +26,9 @@ def _zenith(): dt=JUNE_2023, style=STYLE, resolution=RESOLUTION, + autoscale=True, ) - p.stars(mag=4.6, style__marker__size=25) + p.stars(mag=4.6, where_labels=[Star.magnitude < 3]) p.constellations() p.ecliptic(style__line__width=8) p.celestial_equator(style__line__width=8) diff --git a/requirements.txt b/requirements.txt index 114cdf96..6132d548 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,10 @@ -matplotlib==3.8.4 +matplotlib==3.9.2 numpy==1.26.2 pandas==2.0.3 pydantic==2.0.3 shapely==2.0.1 skyfield==1.48 -adjustText==1.0 +adjustText==1.2.0 cartopy==0.22.0 geopandas==0.14.4 pillow==10.0.0 @@ -12,5 +12,5 @@ PyYAML==6.0.1 pyarrow==17.0.0 fastparquet==2023.10.1 pyogrio==0.9.0 -rtree==1.2.0 +rtree==1.3.0 requests==2.31.0 diff --git a/scripts/geopack.py b/scripts/geopack.py index b37ded78..5ff886f4 100644 --- a/scripts/geopack.py +++ b/scripts/geopack.py @@ -9,7 +9,10 @@ # constellation_borders = gpd.read_file(DataFiles.CONSTELLATION_BORDERS.value) constellation_borders = gpd.read_file("raw/i.constellations.borders.json") -constellation_borders.to_file("build/constellation_borders.gpkg", driver="GPKG") +# constellation_borders.to_file("build/constellation_borders.gpkg", driver="GPKG") +constellation_borders.to_file( + "src/starplot/data/library/constellation_borders_inv.gpkg", driver="GPKG" +) # constellation_lines = gpd.read_file(DataFiles.CONSTELLATION_LINES.value) # print(constellation_lines.has_sindex) diff --git a/scripts/starnames.py b/scripts/starnames.py new file mode 100644 index 00000000..005276fe --- /dev/null +++ b/scripts/starnames.py @@ -0,0 +1,52 @@ +import csv +from pathlib import Path +from pprint import pprint + +from starplot.data.stars import STAR_NAMES + +HERE = Path(__file__).resolve().parent +DATA_PATH = HERE.parent / "raw" + +iau_names = {} + +with open(DATA_PATH / "star-names-iau-2024.csv") as namefile: + reader = csv.reader(namefile) + next(reader) + + for row in reader: + hip = row[2] + name = row[0] + + if hip and hip != "0": + hip = int(hip) + else: + continue + + iau_names[hip] = name + +not_in_iau = [] + +for hip, name in STAR_NAMES.items(): + if hip in iau_names.keys() and name != iau_names[hip]: + print(f"{name} -> {iau_names[hip]}") + + if hip not in iau_names.keys(): + not_in_iau.append(name) + +print("Not in IAU :") +pprint(not_in_iau) + +ctr = 0 +for hip, name in iau_names.items(): + if hip not in STAR_NAMES.keys(): + ctr += 1 + +print(ctr) + + +print(f"Count current = {len(STAR_NAMES)}") +print(f"Count IAU = {len(iau_names)}") +# print(iau_names) + + +pprint(iau_names) diff --git a/scripts/voronoi.py b/scripts/voronoi.py new file mode 100644 index 00000000..0ece1a73 --- /dev/null +++ b/scripts/voronoi.py @@ -0,0 +1,163 @@ +import time +from datetime import datetime + +from shapely import ( + voronoi_polygons, + GeometryCollection, + MultiPoint, + intersection, + normalize, + delaunay_triangles, + distance, +) +from pytz import timezone +from matplotlib import patches +from starplot import Star, DSO, Constellation +from starplot.styles import PlotStyle, extensions, PolygonStyle +from starplot.map import Projection + +import starplot as sp + +start_time = time.time() + +p = sp.MapPlot( + projection=Projection.MILLER, + # projection=Projection.STEREO_NORTH, + ra_min=1, + ra_max=18, + dec_min=-40, + dec_max=60, + style=PlotStyle().extend( + extensions.GRAYSCALE, + # extensions.GRAYSCALE_DARK, + # extensions.BLUE_LIGHT, + # extensions.BLUE_MEDIUM, + # extensions.BLUE_DARK, + extensions.MAP, + { + "constellation": { + "label": { + "font_size": 5, + } + } + }, + ), + resolution=4000, +) + +p.stars(where=[Star.magnitude < 6], labels=None) # , size_fn=lambda s: 20) +p.constellations() +p.constellation_borders() + +print(len(p.objects.stars)) + +p.export("temp/voronoi.png") +exit() +for constellation in p.objects.constellations: + # con = "gem" + # constellation = Constellation.get(iau_id=con) + print(constellation.name) + constellation_stars = [ + s for s in p.objects.stars if s.constellation_id == constellation.iau_id + ] + print(len(constellation_stars)) + + points = MultiPoint([(s.ra, s.dec) for s in constellation_stars]) + + v = voronoi_polygons( + geometry=points, + # extend_to=orion.boundary.buffer(0.2), + tolerance=2, + ) + triangles = delaunay_triangles( + geometry=points, + # tolerance=2, + ) + + # for polygon in polygons.geoms: + # # if not orion.boundary.contains(polygon.reverse()): continue + # inter = intersection(polygon, constellation.boundary) + # if inter.geom_type == "Polygon": + # p.polygon( + # geometry=inter, + # style__edge_color="red", + # ) + + polygons = [] + for t in triangles.geoms: + # if not orion.boundary.contains(polygon.reverse()): continue + try: + inter = intersection(t, constellation.boundary) + except: + continue + if ( + inter.geom_type == "Polygon" + and len(list(zip(*inter.exterior.coords.xy))) > 2 + ): + # continue + # p.polygon( + # geometry=inter, + # style__edge_color="blue", + # style__alpha=0.13, + # ) + polygons.append(inter) + + p_by_area = {pg.area: pg for pg in polygons} + polygons_sorted = [p_by_area[k] for k in sorted(p_by_area.keys(), reverse=True)] + + """ + TODO: Turn this into a function on map plot class + """ + + constellation_centroid = constellation.boundary.centroid + + def sorter(g): + d = distance(g.centroid, points.centroid) + # d = distance(g.centroid, constellation.boundary.centroid) + extent = abs(g.bounds[2] - g.bounds[0]) + area = g.area / constellation.boundary.area + return (extent**2 + area) - (d**2) + + # sort by combination of horizontal extent and area + polygons_sorted = sorted(polygons_sorted, key=sorter, reverse=True) + + # p_sort_distance_to_center = sorted(polygons_sorted, key=lambda pg: distance(pg.centroid, points.centroid)) + + i = 0 + + p.polygon( + geometry=polygons_sorted[i], + style__fill_color="green", + style__alpha=0.23, + ) + p.marker( + polygons_sorted[i].centroid.x, + polygons_sorted[i].centroid.y, + label=None, + style__marker__symbol="circle_cross", + style__marker__size=9, + style__marker__color="red", + style__marker__edge_color="red", + style__marker__edge_width=6, + ) + + # for big_p in polygons_sorted[:1]: + # # continue + # # if big_p.area < constellation.boundary.area/2: + # p.polygon( + # geometry=big_p, + # style__fill_color="green", + # style__alpha=0.23, + # ) + + +p.export("temp/voronoi.png") + +# print(Star.get(name="Sirius").hip) +# print(DSO.all(2)) + +# print(Star.all(1)) +# d = DSO.get(type="Open Cluster") +# print(d) + +print(time.time() - start_time) diff --git a/src/starplot/__init__.py b/src/starplot/__init__.py index e7094584..76a5c8e7 100644 --- a/src/starplot/__init__.py +++ b/src/starplot/__init__.py @@ -1,6 +1,6 @@ """Star charts and maps of the sky""" -__version__ = "0.12.5" +__version__ = "0.13.0" from .base import BasePlot # noqa: F401 from .map import MapPlot, Projection # noqa: F401 diff --git a/src/starplot/base.py b/src/starplot/base.py index 49b0828a..5fa76b81 100644 --- a/src/starplot/base.py +++ b/src/starplot/base.py @@ -2,6 +2,7 @@ from datetime import datetime from typing import Dict, Union, Optional import logging +import warnings import numpy as np import rtree @@ -17,6 +18,7 @@ from starplot.models.planet import PlanetName, PLANET_LABELS_DEFAULT from starplot.models.moon import MoonPhase from starplot.styles import ( + AnchorPointEnum, PlotStyle, MarkerStyle, ObjectStyle, @@ -27,9 +29,16 @@ MarkerSymbolEnum, PathStyle, PolygonStyle, + fonts, ) from starplot.styles.helpers import use_style +# ignore noisy matplotlib warnings +warnings.filterwarnings( + "ignore", + message="Setting the 'color' property will override the edgecolor or facecolor properties", +) + LOGGER = logging.getLogger("starplot") LOG_HANDLER = logging.StreamHandler() LOG_FORMATTER = logging.Formatter( @@ -46,6 +55,10 @@ DEFAULT_STYLE = PlotStyle() +DEFAULT_RESOLUTION = 4096 + +DPI = 100 + class BasePlot(ABC): _background_clip_path = None @@ -55,26 +68,38 @@ def __init__( dt: datetime = None, ephemeris: str = "de421_2001.bsp", style: PlotStyle = DEFAULT_STYLE, - resolution: int = 2048, + resolution: int = 4096, hide_colliding_labels: bool = True, + scale: float = 1.0, + autoscale: bool = False, *args, **kwargs, ): - px = 1 / plt.rcParams["figure.dpi"] # pixel in inches + px = 1 / DPI # plt.rcParams["figure.dpi"] # pixel in inches - self.pixels_per_point = plt.rcParams["figure.dpi"] / 72 + self.pixels_per_point = DPI / 72 self.style = style self.figure_size = resolution * px self.resolution = resolution self.hide_colliding_labels = hide_colliding_labels + self.scale = scale + self.autoscale = autoscale + if self.autoscale: + self.scale = self.resolution / DEFAULT_RESOLUTION + self.dt = dt or timezone("UTC").localize(datetime.now()) self._ephemeris_name = ephemeris self.ephemeris = load(ephemeris) self.labels = [] self._labels_rtree = rtree.index.Index() + + # self.labels = [] + self._constellations_rtree = rtree.index.Index() + self._stars_rtree = rtree.index.Index() + self._background_clip_path = None self._legend = None @@ -85,13 +110,14 @@ def __init__( self.logger.setLevel(self.log_level) self.text_border = patheffects.withStroke( - linewidth=self.style.text_border_width, + linewidth=self.style.text_border_width * self.scale, foreground=self.style.text_border_color.as_hex(), ) - self._size_multiplier = self.resolution / 3000 self.timescale = load.timescale().from_datetime(self.dt) self._objects = models.ObjectList() + self._labeled_stars = [] + fonts.load() def _plot_kwargs(self) -> dict: return {} @@ -107,36 +133,62 @@ def _is_label_collision(self, extent) -> bool: ) return len(ix) > 0 + def _is_object_collision(self, extent) -> bool: + ix = list( + self._constellations_rtree.intersection( + (extent.x0, extent.y0, extent.x1, extent.y1) + ) + ) + return len(ix) > 0 + + def _is_star_collision(self, extent) -> bool: + ix = list( + self._stars_rtree.intersection((extent.x0, extent.y0, extent.x1, extent.y1)) + ) + return len(ix) > 0 + def _is_clipped(self, extent) -> bool: return self._background_clip_path is not None and not all( self._background_clip_path.contains_points(extent.get_points()) ) - def _maybe_remove_label(self, label) -> None: + def _add_label_to_rtree(self, label, extent=None): + extent = extent or label.get_window_extent( + renderer=self.fig.canvas.get_renderer() + ) + self.labels.append(label) + self._labels_rtree.insert( + 0, np.array((extent.x0, extent.y0, extent.x1, extent.y1)) + ) + + def _maybe_remove_label( + self, label, remove_on_collision=True, remove_on_clipped=True + ) -> bool: + """Returns true if the label is removed, else false""" extent = label.get_window_extent(renderer=self.fig.canvas.get_renderer()) if any([np.isnan(c) for c in (extent.x0, extent.y0, extent.x1, extent.y1)]): label.remove() - return + return True - if any( - [ - self._is_clipped(extent), - self.hide_colliding_labels and self._is_label_collision(extent), - ] + if remove_on_clipped and self._is_clipped(extent): + label.remove() + return True + + if remove_on_collision and ( + self._is_label_collision(extent) + or self._is_object_collision(extent) + # or self._is_star_collision(extent) ): label.remove() - return + return True - self.labels.append(label) - self._labels_rtree.insert( - 0, np.array((extent.x0, extent.y0, extent.x1, extent.y1)) - ) + return False def _add_legend_handle_marker(self, label: str, style: MarkerStyle): if label is not None and label not in self._legend_handles: s = style.matplot_kwargs() - s["markersize"] = self.style.legend.symbol_size * self._size_multiplier + s["markersize"] = self.style.legend.symbol_size * self.scale self._legend_handles[label] = Line2D( [], [], @@ -146,12 +198,176 @@ def _add_legend_handle_marker(self, label: str, style: MarkerStyle): label=label, ) + def _collision_score(self, label) -> int: + config = { + "labels": 1.0, # always fail + "stars": 0.5, + "constellations": 0.8, + "anchors": [ + ("bottom right", 0), + ("top right", 0.2), + ("top left", 0.5), + ], + "on_fail": "plot", + } + extent = label.get_window_extent(renderer=self.fig.canvas.get_renderer()) + + if any( + [np.isnan(c) for c in (extent.x0, extent.y0, extent.x1, extent.y1)] + ) or self._is_clipped(extent): + return 1 + + x_labels = ( + len( + list( + self._labels_rtree.intersection( + (extent.x0, extent.y0, extent.x1, extent.y1) + ) + ) + ) + * config["labels"] + ) + + if x_labels >= 1: + return 1 + + x_constellations = ( + len( + list( + self._constellations_rtree.intersection( + (extent.x0, extent.y0, extent.x1, extent.y1) + ) + ) + ) + * config["constellations"] + ) + + if x_constellations >= 1: + return 1 + + x_stars = ( + len( + list( + self._stars_rtree.intersection( + (extent.x0, extent.y0, extent.x1, extent.y1) + ) + ) + ) + * config["stars"] + ) + if x_stars >= 1: + return 1 + + return sum([x_labels, x_constellations, x_stars]) / 3 + + def _text_experimental( + self, + ra: float, + dec: float, + text: str, + hide_on_collision: bool = True, + auto_anchor: bool = True, + *args, + **kwargs, + ) -> None: + if not text: + return + + x, y = self._prepare_coords(ra, dec) + kwargs["path_effects"] = kwargs.get("path_effects", [self.text_border]) + clip_on = kwargs.get("clip_on") or True + + def plot_text(**kwargs): + label = self.ax.annotate( + text, + (x, y), + *args, + **kwargs, + **self._plot_kwargs(), + ) + if clip_on: + label.set_clip_on(True) + label.set_clip_path(self._background_clip_path) + return label + + def add_label(label): + extent = label.get_window_extent(renderer=self.fig.canvas.get_renderer()) + self.labels.append(label) + self._labels_rtree.insert( + 0, np.array((extent.x0, extent.y0, extent.x1, extent.y1)) + ) + + label = plot_text(**kwargs) + + if not clip_on: + add_label(label) + return + + if not hide_on_collision and not auto_anchor: + add_label(label) + return + + # removed = self._maybe_remove_label(label) + collision = self._collision_score(label) + + if collision == 0: + add_label(label) + return + + label.remove() + + collision_scores = [] + original_va = kwargs.pop("va", None) + original_ha = kwargs.pop("ha", None) + original_offset_x, original_offset_y = kwargs.pop("xytext", (0, 0)) + anchor_fallbacks = self.style.text_anchor_fallbacks + for i, a in enumerate(anchor_fallbacks): + d = AnchorPointEnum.from_str(a).as_matplot() + va, ha = d["va"], d["ha"] + offset_x, offset_y = original_offset_x, original_offset_y + if original_ha != ha: + offset_x *= -1 + + if original_va != va: + offset_y *= -1 + + if ha == "center": + offset_x = 0 + offset_y = 0 + + pt_kwargs = dict(**kwargs, va=va, ha=ha, xytext=(offset_x, offset_y)) + label = plot_text(**pt_kwargs) + + # if not hide_on_collision and i == len(anchor_fallbacks) - 1: + # break + + collision = self._collision_score(label) + if collision == 0: + add_label(label) + return + + if collision < 1: + collision_scores.append((collision, pt_kwargs)) + + label.remove() + # removed = self._maybe_remove_label(label) + # if not removed: + # break + if len(collision_scores) > 0: + best = sorted(collision_scores, key=lambda c: c[0])[0] + # return + if best[0] < 1: + label = plot_text(**best[1]) + add_label(label) + def _text( self, ra: float, dec: float, text: str, hide_on_collision: bool = True, + force: bool = False, + clip_on: bool = True, *args, **kwargs, ) -> None: @@ -160,21 +376,59 @@ def _text( x, y = self._prepare_coords(ra, dec) kwargs["path_effects"] = kwargs.get("path_effects", [self.text_border]) - label = self.ax.annotate( - text, - (x, y), - *args, - **kwargs, - **self._plot_kwargs(), + + def plot_text(**kwargs): + label = self.ax.annotate( + text, + (x, y), + *args, + **kwargs, + **self._plot_kwargs(), + ) + if clip_on: + label.set_clip_on(True) + label.set_clip_path(self._background_clip_path) + return label + + label = plot_text(**kwargs) + + if force: + return + + removed = self._maybe_remove_label( + label, remove_on_collision=hide_on_collision, remove_on_clipped=clip_on ) - if kwargs.get("clip_on") is False: + + if not removed: + self._add_label_to_rtree(label) return - label.set_clip_on(True) - label.set_clip_path(self._background_clip_path) + original_va = kwargs.pop("va", None) + original_ha = kwargs.pop("ha", None) + original_offset_x, original_offset_y = kwargs.pop("xytext", (0, 0)) + anchor_fallbacks = self.style.text_anchor_fallbacks + for i, a in enumerate(anchor_fallbacks): + d = AnchorPointEnum.from_str(a).as_matplot() + va, ha = d["va"], d["ha"] + offset_x, offset_y = original_offset_x, original_offset_y + if original_ha != ha: + offset_x *= -1 + + if original_va != va: + offset_y *= -1 + + if ha == "center": + offset_x = 0 + offset_y = 0 + + label = plot_text(**kwargs, va=va, ha=ha, xytext=(offset_x, offset_y)) + removed = self._maybe_remove_label( + label, remove_on_collision=hide_on_collision, remove_on_clipped=clip_on + ) - if hide_on_collision: - self._maybe_remove_label(label) + if not removed: + self._add_label_to_rtree(label) + break @use_style(LabelStyle) def text( @@ -184,6 +438,8 @@ def text( dec: float, style: LabelStyle = None, hide_on_collision: bool = True, + *args, + **kwargs, ): """ Plots text @@ -195,15 +451,27 @@ def text( style: Styling of the text hide_on_collision: If True, then the text will not be plotted if it collides with another label """ + if not self.in_bounds(ra, dec): + return + style = style or LabelStyle() + + if style.offset_x == "auto": + style.offset_x = 0 + + if style.offset_y == "auto": + style.offset_y = 0 + self._text( ra, dec, text, - **style.matplot_kwargs(self._size_multiplier), + **style.matplot_kwargs(self.scale), hide_on_collision=hide_on_collision, - xytext=(style.offset_x, style.offset_y), - textcoords="offset pixels", + xycoords="data", + xytext=(style.offset_x * self.scale, style.offset_y * self.scale), + textcoords="offset points", + **kwargs, ) @property @@ -222,7 +490,7 @@ def title(self, text: str, style: LabelStyle = None): text: Title text to plot style: Styling of the title. If None, then the plot's style (specified when creating the plot) will be used """ - style_kwargs = style.matplot_kwargs(self._size_multiplier) + style_kwargs = style.matplot_kwargs(self.scale) style_kwargs.pop("linespacing", None) style_kwargs["pad"] = style.line_spacing self.ax.set_title(text, **style_kwargs) @@ -265,7 +533,7 @@ def legend(self, style: LegendStyle = None): self._legend = self.ax.legend( handles=self._legend_handles.values(), - **style.matplot_kwargs(size_multiplier=self._size_multiplier), + **style.matplot_kwargs(self.scale), **bbox_kwargs, ).set_zorder( # zorder is not a valid kwarg to legend(), so we have to set it afterwards @@ -317,6 +585,7 @@ def marker( label: Optional[str] = None, legend_label: str = None, skip_bounds_check: bool = False, + **kwargs, ) -> None: """Plots a marker @@ -335,18 +604,36 @@ def marker( x, y = self._prepare_coords(ra, dec) - self.ax.plot( + self.ax.scatter( x, y, - **style.marker.matplot_kwargs(size_multiplier=self._size_multiplier), + **style.marker.matplot_scatter_kwargs(self.scale), **self._plot_kwargs(), - linestyle="None", clip_on=True, clip_path=self._background_clip_path, + gid=kwargs.get("gid_marker") or "marker", ) if label: - self.text(label, ra, dec, style.label) + label_style = style.label + if label_style.offset_x == "auto" or label_style.offset_y == "auto": + marker_size = ((style.marker.size / self.scale) ** 2) * ( + self.scale**2 + ) + + label_style = label_style.offset_from_marker( + marker_symbol=style.marker.symbol, + marker_size=marker_size, + scale=self.scale, + ) + self.text( + label, + ra, + dec, + label_style, + hide_on_collision=self.hide_colliding_labels, + gid=kwargs.get("gid_label") or "marker-label", + ) if legend_label is not None: self._add_legend_handle_marker(legend_label, style.marker) @@ -386,11 +673,14 @@ def planets( (p.ra, p.dec), p.apparent_size, polygon_style, + gid="planet-marker", ) self._add_legend_handle_marker(legend_label, style.marker) if label: - self.text(label.upper(), p.ra, p.dec, style.label) + self.text( + label.upper(), p.ra, p.dec, style.label, gid="planet-label" + ) else: self.marker( ra=p.ra, @@ -398,6 +688,8 @@ def planets( style=style, label=label.upper() if label else None, legend_label=legend_label, + gid_marker="planet-marker", + gid_label="planet-label", ) @use_style(ObjectStyle, "sun") @@ -438,13 +730,14 @@ def sun( (s.ra, s.dec), s.apparent_size, style=polygon_style, + gid="sun-marker", ) style.marker.symbol = MarkerSymbolEnum.CIRCLE self._add_legend_handle_marker(legend_label, style.marker) if label: - self.text(label, s.ra, s.dec, style.label) + self.text(label, s.ra, s.dec, style.label, gid="sun-label") else: self.marker( @@ -453,6 +746,8 @@ def sun( style=style, label=label, legend_label=legend_label, + gid_marker="sun-marker", + gid_label="sun-label", ) @abstractmethod @@ -491,7 +786,7 @@ def _polygon(self, points: list, style: PolygonStyle, **kwargs): patch = patches.Polygon( points, # closed=False, # needs to be false for circles at poles? - **style.matplot_kwargs(size_multiplier=self._size_multiplier), + **style.matplot_kwargs(self.scale), **kwargs, clip_on=True, clip_path=self._background_clip_path, @@ -504,6 +799,7 @@ def polygon( style: PolygonStyle, points: list = None, geometry: Polygon = None, + **kwargs, ): """ Plots a polygon. @@ -522,7 +818,7 @@ def polygon( points = list(zip(*geometry.exterior.coords.xy)) _points = [(ra * 15, dec) for ra, dec in points] - self._polygon(_points, style) + self._polygon(_points, style, gid=kwargs.get("gid") or "polygon") @use_style(PolygonStyle) def rectangle( @@ -532,7 +828,6 @@ def rectangle( width_degrees: float, style: PolygonStyle, angle: float = 0, - *args, **kwargs, ): """Plots a rectangle @@ -550,7 +845,7 @@ def rectangle( width_degrees, angle, ) - self._polygon(points, style) + self._polygon(points, style, gid=kwargs.get("gid") or "polygon") @use_style(PolygonStyle) def ellipse( @@ -563,6 +858,7 @@ def ellipse( num_pts: int = 100, start_angle: int = 0, end_angle: int = 360, + **kwargs, ): """Plots an ellipse @@ -584,7 +880,7 @@ def ellipse( start_angle, end_angle, ) - self._polygon(points, style) + self._polygon(points, style, gid=kwargs.get("gid") or "polygon") @use_style(PolygonStyle) def circle( @@ -593,6 +889,7 @@ def circle( radius_degrees: float, style: PolygonStyle, num_pts: int = 100, + **kwargs, ): """Plots a circle @@ -609,10 +906,11 @@ def circle( style=style, angle=0, num_pts=num_pts, + gid=kwargs.get("gid") or "polygon", ) @use_style(LineStyle) - def line(self, coordinates: list[tuple[float, float]], style: LineStyle): + def line(self, coordinates: list[tuple[float, float]], style: LineStyle, **kwargs): """Plots a line Args: @@ -626,7 +924,8 @@ def line(self, coordinates: list[tuple[float, float]], style: LineStyle): y, clip_on=True, clip_path=self._background_clip_path, - **style.matplot_kwargs(self._size_multiplier), + gid=kwargs.get("gid") or "line", + **style.matplot_kwargs(self.scale), **self._plot_kwargs(), ) @@ -680,13 +979,14 @@ def moon( (m.ra, m.dec), m.apparent_size, style=polygon_style, + gid="moon-marker", ) style.marker.symbol = MarkerSymbolEnum.CIRCLE self._add_legend_handle_marker(legend_label, style.marker) if label: - self.text(label, m.ra, m.dec, style.label) + self.text(label, m.ra, m.dec, style.label, gid="moon-label") else: self.marker( @@ -695,6 +995,8 @@ def moon( style=style, label=label, legend_label=legend_label, + gid_marker="moon-marker", + gid_label="moon-label", ) def _moon_with_phase( @@ -761,6 +1063,7 @@ def _moon_with_phase( num_pts=num_pts, angle=0, end_angle=180, # plot as a semicircle + gid="moon-marker", ) # Plot right side self.ellipse( @@ -771,6 +1074,7 @@ def _moon_with_phase( num_pts=num_pts, angle=180, end_angle=180, # plot as a semicircle + gid="moon-marker", ) # Plot middle self.ellipse( @@ -778,6 +1082,7 @@ def _moon_with_phase( radius_degrees * 2, radius_degrees, style=middle, + gid="moon-marker", ) def _fov_circle( @@ -860,17 +1165,16 @@ def ecliptic(self, style: PathStyle = None, label: str = "ECLIPTIC"): y, dash_capstyle=style.line.dash_capstyle, clip_path=self._background_clip_path, - **style.line.matplot_kwargs(self._size_multiplier), + gid="ecliptic-line", + **style.line.matplot_kwargs(self.scale), **self._plot_kwargs(), ) - if label: - if len(inbounds) > 4: - label_spacing = int(len(inbounds) / 3) or 1 + if label and len(inbounds) > 4: + label_spacing = int(len(inbounds) / 4) - for i in range(0, len(inbounds), label_spacing): - ra, dec = inbounds[i] - self.text(label, ra, dec, style.label) + for ra, dec in [inbounds[label_spacing], inbounds[label_spacing * 2]]: + self.text(label, ra, dec, style.label, gid="ecliptic-label") @use_style(PathStyle, "celestial_equator") def celestial_equator( @@ -897,11 +1201,18 @@ def celestial_equator( x, y, clip_path=self._background_clip_path, - **style.line.matplot_kwargs(self._size_multiplier), + gid="celestial-equator-line", + **style.line.matplot_kwargs(self.scale), **self._plot_kwargs(), ) if label: label_spacing = (self.ra_max - self.ra_min) / 3 for ra in np.arange(self.ra_min, self.ra_max, label_spacing): - self.text(label, ra, 0.25, style.label) + self.text( + label, + ra, + 0.25, + style.label, + gid="celestial-equator-label", + ) diff --git a/src/starplot/callables.py b/src/starplot/callables.py index bce37dfc..41395f4d 100644 --- a/src/starplot/callables.py +++ b/src/starplot/callables.py @@ -12,7 +12,7 @@ def size_by_magnitude_factory( base: float = 20, ) -> Callable[[Star], float]: """ - Creates a new version of `size_by_magnitude` with a custom threshold and base multiplier: + Creates a new version of `size_by_magnitude_log` with a custom threshold and base multiplier: ```python if magnitude >= threshold: @@ -38,7 +38,7 @@ def size_fn(star: Star) -> float: else: size = base ** math.log(threshold - m) - return size + return size * 9 return size_fn @@ -46,7 +46,7 @@ def size_fn(star: Star) -> float: _size_by_magnitude_default = size_by_magnitude_factory(7.6, 4) -def size_by_magnitude(star: Star) -> float: +def size_by_magnitude_log(star: Star) -> float: """ Calculates size by logarithmic scale of magnitude: @@ -60,6 +60,60 @@ def size_by_magnitude(star: Star) -> float: return _size_by_magnitude_default(star) +def size_by_magnitude(star: Star) -> float: + """ + Simple sizing by magnitude, using a step size of 1. + + ```python + if mag <= 0: + size = 3800 + elif mag <= 1: # 0..1 + size = 2400 + elif mag <= 2: # 1..2 + size = 1600 + elif mag <= 3: # 2..3 + size = 1000 + elif mag <= 4: # 3..4 + size = 600 + elif mag <= 5: # 4..5 + size = 300 + elif mag <= 6: # 5..6 + size = 120 + elif mag <= 7: # 6..7 + size = 60 + elif mag <= 8: # 7..8 + size = 40 + else: # > 8 + size = 20 + + ``` + """ + mag = star.magnitude + size = 0 + if mag <= 0: + size = 3800 + elif mag <= 1: # 0..1 + size = 2400 + elif mag <= 2: # 1..2 + size = 1600 + elif mag <= 3: # 2..3 + size = 1000 + elif mag <= 4: # 3..4 + size = 600 + elif mag <= 5: # 4..5 + size = 300 + elif mag <= 6: # 5..6 + size = 120 + elif mag <= 7: # 6..7 + size = 60 + elif mag <= 8: # 7..8 + size = 40 + else: # > 8 + size = 20 + + return size + + def size_by_magnitude_simple(star: Star) -> float: """Very simple sizer by magnitude for map plots""" m = star.magnitude @@ -78,13 +132,13 @@ def size_by_magnitude_for_optic(star: Star) -> float: m = star.magnitude if m < 4.6: - return (9 - m) ** 3.76 + return (9 - m) ** 3.72 * 9 elif m < 5.85: - return (9 - m) ** 3.72 + return (9 - m) ** 3.72 * 9 elif m < 9: - return (13 - m) ** 1.91 + return (13 - m) ** 1.91 * 9 - return 4.93 + return 4.93 * 9 def alpha_by_magnitude(star: Star) -> float: diff --git a/src/starplot/data/bayer.py b/src/starplot/data/bayer.py index 651e4476..da97943f 100644 --- a/src/starplot/data/bayer.py +++ b/src/starplot/data/bayer.py @@ -1,4 +1,4 @@ -hip = { +hip_old = { 88: "Ο„", 122: "ΞΈ", 183: "ΞΆ", @@ -904,7 +904,7 @@ 54879: "ΞΈ", 55016: "n", 55084: "Ο†", - 55203: "ΞΎ", + 55203: "ΞΎ", # missing? 55219: "Ξ½", 55282: "Ξ΄", 55425: "Ο€", @@ -1912,7 +1912,7 @@ 26412: "Ξ½1", 27369: "Ξ»", 28957: "Ο€1", - 30422: "Ξ΅", + # 30422: "Ξ΅", # Monoceros binary B 33133: "ψ8", 40007: "ψ1", 41319: "d2", @@ -1968,3 +1968,1532 @@ 116737: "ΞΈ", 116904: "A2", } + +# 1527 +hip = { + 8833: "ΞΎ", + 7007: "ΞΌ", + 7884: "Ξ½", + 9487: "Ξ±", + 12387: "Ξ΄", + 12706: "Ξ³", + 12093: "Ξ½", + 14135: "Ξ±", + 15457: "ΞΊ", + 18907: "Ξ½", + 23123: "π⁢", + 22797: "π⁡", + 22549: "π⁴", + 22449: "π³", + 24331: "ρ", + 25473: "ψ", + 26594: "Ο‰", + 30419: "Ξ΅", + 36265: "Ξ·", + 38373: "ΞΆ", + 36812: "δ³", + 36641: "δ¹", + 36723: "δ²", + 42799: "Ξ·", + 42402: "Οƒ", + 42313: "Ξ΄", + 43109: "Ξ΅", + 43234: "ρ", + 43813: "ΞΆ", + 45336: "ΞΈ", + 44659: "Ο‰", + 55945: "Ο„", + 54182: "Ο‡", + 55434: "Οƒ", + 57757: "Ξ²", + 57380: "Ξ½", + 58590: "Ο€", + 63090: "Ξ΄", + 64852: "Οƒ", + 68520: "Ο„", + 77052: "ψ", + 77578: "Ο‰", + 77622: "Ξ΅", + 77070: "Ξ±", + 77257: "Ξ»", + 80179: "Οƒ", + 80883: "Ξ»", + 85355: "Οƒ", + 87108: "Ξ³", + 86742: "Ξ²", + 92946: "ΞΈΒΉ", + 92951: "ΞΈΒ²", + 95585: "Ξ½", + 95501: "Ξ΄", + 97804: "Ξ·", + 96665: "Οƒ", + 96229: "ΞΌ", + 98036: "Ξ²", + 98823: "Ο„", + 103569: "Ξ΅", + 104987: "Ξ±", + 103813: "Ξ»", + 105570: "Ξ²", + 110672: "Ο€", + 109068: "Ξ½", + 109427: "ΞΈ", + 115738: "ΞΊ", + 113889: "Ξ²", + 114971: "Ξ³", + 115830: "ΞΈ", + 116928: "Ξ»", + 116771: "ΞΉ", + 118268: "Ο‰", + 3786: "Ξ΄", + 4906: "Ξ΅", + 5743: "ΞΆ", + 5737: "ΞΆ", + 8198: "ΞΏ", + 7535: "Ο€", + 10324: "ΞΎΒΉ", + 11484: "ΞΎΒ²", + 11249: "ΞΎ", + 13954: "Ξ»", + 12828: "ΞΌ", + 16083: "ΞΎ", + 15900: "ΞΏ", + 18724: "Ξ»", + 19860: "ΞΌ", + 20732: "Ο€", + 21273: "ρ", + 22509: "π²", + 22845: "π¹", + 22667: "ΞΏΒΉ", + 22957: "ΞΏΒ²", + 26366: "φ²", + 26207: "Ξ»", + 26176: "φ¹", + 28614: "ΞΌ", + 29038: "Ξ½", + 29426: "ΞΎ", + 32362: "ΞΎ", + 36041: "Ξ΅", + 36284: "Ξ³", + 36188: "Ξ²", + 40526: "Ξ²", + 44066: "Ξ±", + 44798: "ΞΊ", + 46454: "Ο‰", + 47508: "ΞΏ", + 46771: "ΞΎ", + 45410: "Ο€", + 49029: "Ο€", + 48883: "Ξ½", + 47723: "ψ", + 51624: "ρ", + 56779: "Ο‰", + 55642: "ΞΉ", + 57328: "ΞΎ", + 58948: "ΞΏ", + 61960: "ρ", + 63608: "Ξ΅", + 71795: "ΞΆ", + 76276: "Ξ΄", + 76866: "Ο‡", + 77336: "Ο…", + 78132: "Ο†", + 80463: "Ο‰", + 83000: "ΞΊ", + 82673: "ΞΉ", + 84345: "Ξ±ΒΉ", + 94834: "ω¹", + 95002: "ω²", + 93747: "ΞΆ", + 97229: "Ο…", + 97938: "ΞΎ", + 97278: "Ξ³", + 97675: "ΞΏ", + 96957: "Ο‡", + 97473: "Ο€", + 97139: "ψ", + 98103: "Ο†", + 101916: "ΞΊ", + 101483: "Ξ·", + 101800: "ΞΉ", + 101421: "Ξ΅", + 101589: "ΞΆ", + 101769: "Ξ²", + 101882: "ΞΈ", + 104521: "Ξ³", + 104858: "Ξ΄", + 107315: "Ξ΅", + 112935: "Οƒ", + 113186: "ρ", + 112447: "ΞΎ", + 112029: "ΞΆ", + 1067: "Ξ³", + 1168: "Ο‡", + 7097: "Ξ·", + 5454: "ψ³", + 6706: "ρ", + 5131: "ψ¹", + 5132: "ψ¹", + 5571: "Ο‡", + 5310: "ψ²", + 8832: "Ξ³ΒΉ", + 9110: "ΞΉ", + 8903: "Ξ²", + 10732: "ΞΈ", + 10306: "Ξ·", + 12332: "Ξ½", + 12803: "ΞΏ", + 13165: "Ο€", + 13327: "Οƒ", + 13579: "ρ¹", + 13702: "ρ", + 14838: "Ξ΄", + 12640: "ΞΌ", + 13914: "Ξ΅", + 15110: "ΞΆ", + 15627: "Ο„", + 20205: "Ξ³", + 20885: "ΞΈΒΉ", + 20894: "ΞΈΒ²", + 21683: "σ²", + 21673: "σ¹", + 20455: "Ξ΄", + 19990: "Ο‰", + 20889: "Ξ΅", + 20635: "ΞΊ", + 23497: "ΞΉ", + 26451: "ΞΆ", + 27913: "χ¹", + 28716: "χ²", + 30883: "Ξ½", + 35350: "Ξ»", + 34088: "ΞΆ", + 35550: "Ξ΄", + 40167: "ΞΆΒΉ", + 41822: "ΞΈ", + 39780: "ΞΌ", + 44001: "ΞΏΒ²", + 43970: "ΞΏΒΉ", + 42556: "Ξ΅", + 42911: "Ξ΄", + 41909: "Ξ·", + 42806: "Ξ³", + 44946: "ΞΎ", + 49583: "Ξ·", + 54879: "ΞΈ", + 54872: "Ξ΄", + 64241: "Ξ±", + 67275: "Ο„", + 67459: "Ο…", + 67927: "Ξ·", + 72125: "ΞΏ", + 71762: "π¹", + 72659: "ΞΎ", + 75530: "τ¹", + 76423: "τ⁴", + 76424: "τ⁡", + 76069: "τ²", + 77111: "τ⁸", + 76810: "τ⁢", + 77233: "Ξ²", + 78072: "Ξ³", + 76337: "τ³", + 76852: "ΞΉ", + 76878: "τ⁷", + 77450: "ΞΊ", + 77661: "ρ", + 79045: "ΞΊ", + 79043: "ΞΊ", + 80170: "Ξ³", + 80816: "Ξ²", + 93244: "Ξ΅", + 96516: "Ξ΅", + 96757: "Ξ±", + 96837: "Ξ²", + 99742: "ρ", + 97365: "Ξ΄", + 97496: "ΞΆ", + 98337: "Ξ³", + 98920: "Ξ·", + 99352: "ΞΈ", + 101958: "Ξ±", + 102281: "Ξ΄", + 102532: "Ξ³Β²", + 102531: "Ξ³ΒΉ", + 113963: "Ξ±", + 117718: "Ο†", + 3693: "ΞΆ", + 4463: "Ξ·", + 3031: "Ξ΅", + 5742: "Ο†", + 6193: "Ο…", + 9153: "Ξ»", + 9884: "Ξ±", + 9836: "ΞΊ", + 9383: "Ο‡", + 8796: "Ξ±", + 17702: "Ξ·", + 20711: "Ο…", + 20430: "Ο‡", + 20250: "Ο†", + 19205: "ψ", + 21881: "Ο„", + 29655: "Ξ·", + 30343: "ΞΌ", + 29696: "ΞΊ", + 33927: "Ο‰", + 32246: "Ξ΅", + 37740: "ΞΊ", + 36046: "ΞΉ", + 36962: "Ο…", + 37629: "Οƒ", + 40881: "Ξ»", + 39191: "Ο‰", + 40007: "ψ¹", + 40023: "ψ", + 38538: "Ο†", + 39424: "Ο‡", + 40843: "Ο‡", + 41940: "Ο…Β²", + 41816: "Ο…ΒΉ", + 41404: "φ²", + 41377: "φ¹", + 43100: "ΞΉ", + 43103: "ΞΉ", + 43587: "ρ¹", + 43834: "ρ²", + 44405: "Ξ½", + 46146: "ΞΊ", + 44818: "Ο„", + 46750: "Ξ»", + 47908: "Ξ΅", + 48455: "ΞΌ", + 50335: "ΞΆ", + 60742: "Ξ³", + 64394: "Ξ²", + 72105: "Ξ΅", + 73568: "Ο‰", + 71284: "Οƒ", + 73745: "ψ", + 74596: "Ο‡", + 75049: "ΞΏ", + 75695: "Ξ²", + 78554: "Ο€", + 76952: "Ξ³", + 78159: "Ξ΅", + 77512: "Ξ΄", + 78493: "ΞΉ", + 79757: "Ο…", + 84379: "Ξ΄", + 85693: "Ξ»", + 86974: "ΞΌ", + 87933: "ΞΎ", + 88794: "ΞΏ", + 95771: "Ξ±", + 95951: "Ξ²Β²", + 95947: "Ξ²ΒΉ", + 107354: "ΞΊ", + 107310: "ΞΌΒΉ", + 109176: "ΞΉ", + 112440: "Ξ»", + 112748: "ΞΌ", + 112051: "ΞΏ", + 115250: "Ο„", + 115623: "Ο…", + 113881: "Ξ²", + 118131: "ψ", + 1473: "Οƒ", + 3092: "Ξ΄", + 4889: "Οƒ", + 5586: "Ο„", + 2912: "Ο€", + 5447: "Ξ²", + 9570: "Ξ΅", + 10064: "Ξ²", + 10644: "Ξ΄", + 10670: "Ξ³", + 17448: "ΞΏ", + 18246: "ΞΆ", + 18614: "ΞΎ", + 23015: "ΞΉ", + 25984: "Ο‡", + 25541: "Ο†", + 25292: "Οƒ", + 27639: "Ο…", + 28380: "ΞΈ", + 34693: "Ο„", + 33018: "ΞΈ", + 36366: "ρ", + 38016: "Ο€", + 37265: "ΞΏ", + 43584: "σ¹", + 44154: "σ³", + 43932: "σ²", + 45860: "Ξ±", + 51233: "Ξ²", + 55219: "Ξ½", + 71053: "ρ", + 75312: "Ξ·", + 76127: "ΞΈ", + 74666: "Ξ΄", + 75415: "ΞΌΒ²", + 75411: "ΞΌΒΉ", + 77048: "Ο€", + 78459: "ρ", + 76669: "ΞΆΒ²", + 77655: "ΞΊ", + 79119: "Ο„", + 80181: "ΞΎ", + 81693: "ΞΆ", + 79607: "Οƒ", + 80197: "Ξ½ΒΉ", + 80214: "Ξ½Β²", + 83207: "Ξ΅", + 84380: "Ο€", + 85112: "ρ", + 87998: "Ξ½", + 87808: "ΞΈ", + 89826: "ΞΊ", + 92420: "Ξ²", + 92398: "Ξ½ΒΉ", + 92405: "Ξ½", + 93194: "Ξ³", + 93279: "Ξ»", + 92728: "δ¹", + 92791: "δ²", + 93903: "ΞΉ", + 96683: "Ο†", + 97629: "Ο‡", + 98110: "Ξ·", + 102488: "Ξ΅", + 102589: "Ξ»", + 104732: "ΞΆ", + 105138: "Ο…", + 109410: "Ο€", + 109352: "π¹", + 112158: "Ξ·", + 1366: "ΞΈ", + 1686: "ρ", + 4436: "ΞΌ", + 3881: "Ξ½", + 7818: "Ο„", + 7513: "Ο…", + 7719: "Ο‡", + 9640: "Ξ³ΒΉ", + 14354: "ρ", + 13879: "Ο€", + 14817: "Ο‰", + 14668: "ΞΊ", + 18532: "Ξ΅", + 17529: "Ξ½", + 24340: "ΞΌ", + 23453: "ΞΆ", + 23767: "Ξ·", + 24813: "Ξ»", + 23416: "Ξ΅", + 27483: "Ο„", + 27673: "Ξ½", + 25048: "ρ", + 31789: "ψ³", + 31832: "ψ²", + 33133: "ψ⁸", + 32844: "ψ⁷", + 32173: "ψ⁴", + 32480: "ψ⁡", + 50801: "ΞΌ", + 50372: "Ξ»", + 53295: "Ο‰", + 54539: "ψ", + 61317: "Ξ²", + 63125: "Ξ±Β²", + 71075: "Ξ³", + 73555: "Ξ²", + 76307: "ΞΌ", + 78012: "Ξ»", + 76041: "Ξ½Β²", + 75973: "Ξ½ΒΉ", + 76534: "Ο†", + 77760: "Ο‡", + 81126: "Οƒ", + 79101: "Ο†", + 81833: "Ξ·", + 90191: "ΞΌ", + 91971: "ΞΆΒΉ", + 91973: "ΞΆΒ²", + 94481: "Ξ·", + 94713: "ΞΈ", + 91919: "Ρ¹", + 91926: "Ρ²", + 100453: "Ξ³", + 104887: "Ο„", + 103413: "Ξ½", + 105102: "Οƒ", + 104060: "ΞΎ", + 113726: "ΞΏ", + 116631: "ΞΉ", + 116805: "ΞΊ", + 3414: "Ο€", + 3504: "ΞΏ", + 3300: "ΞΎ", + 6411: "ΞΎ", + 6813: "Ο‰", + 5434: "Ο†", + 3801: "Ξ½", + 8068: "Ο†", + 12777: "ΞΈ", + 16335: "Οƒ", + 16826: "ψ", + 17358: "Ξ΄", + 14632: "ΞΉ", + 19812: "ΞΌ", + 19167: "Ξ»", + 28404: "Ο€", + 27196: "ΞΏ", + 30520: "ψ¹", + 33377: "ψ⁹", + 32562: "ψ⁢", + 44127: "ΞΉ", + 44471: "ΞΊ", + 46853: "ΞΈ", + 57399: "Ο‡", + 69483: "ΞΊΒ²", + 69732: "Ξ»", + 70497: "ΞΈ", + 69713: "ΞΉ", + 78592: "Ο…", + 79992: "Ο„", + 86414: "ΞΉ", + 85670: "Ξ²", + 87833: "Ξ³", + 95853: "ΞΉ", + 97165: "Ξ΄", + 99675: "ΞΏΒΉ", + 96441: "ΞΈ", + 98055: "ψ", + 99848: "ΞΏΒ²", + 101243: "ω²", + 101138: "ω¹", + 106481: "ρ", + 107136: "π¹", + 107533: "π²", + 110538: "Ξ²", + 111169: "Ξ±", + 116584: "Ξ»", + 117221: "ψ", + 2920: "ΞΆ", + 2505: "Ξ»", + 3179: "Ξ±", + 3821: "Ξ·", + 746: "Ξ²", + 5542: "ΞΈ", + 5336: "ΞΌ", + 4422: "Ο…Β²", + 4292: "Ο…ΒΉ", + 6242: "Ο†", + 7294: "Ο‡", + 10729: "Ο‡", + 14328: "Ξ³", + 13531: "Ο„", + 13268: "Ξ·", + 28358: "Ξ΄", + 27949: "ΞΎ", + 48402: "Ο†", + 48319: "Ο…", + 58001: "Ξ³", + 59774: "Ξ΄", + 75458: "ΞΉ", + 78527: "ΞΈ", + 83608: "ΞΌ", + 85819: "Ξ½ΒΉ", + 85829: "Ξ½Β²", + 87585: "ΞΎ", + 94779: "ΞΊ", + 92512: "ΞΏ", + 102431: "Ο…ΒΉ", + 107259: "ΞΌ", + 109556: "Ξ»", + 109492: "ΞΆ", + 109857: "Ξ΅", + 110991: "Ξ΄", + 110988: "Ξ΄", + 118243: "Οƒ", + 117863: "ρ", + 117301: "Ο„", + 2599: "ΞΊ", + 6686: "Ξ΄", + 8886: "Ξ΅", + 11569: "ΞΉ", + 23522: "Ξ²", + 22783: "Ξ±", + 41704: "ΞΏ", + 42527: "π²", + 42438: "π¹", + 44857: "σ¹", + 45075: "Ο„", + 45038: "σ²", + 68756: "Ξ±", + 80331: "Ξ·", + 83895: "ΞΆ", + 95081: "Ο€", + 101093: "ΞΈ", + 102422: "Ξ·", + 105199: "Ξ±", + 107418: "Ξ½", + 108917: "ΞΎ", + 112724: "ΞΉ", + 6692: "ψ", + 9009: "Ο‰", + 17959: "Ξ³", + 44390: "ρ", + 56211: "Ξ»", + 61281: "ΞΊ", + 75097: "Ξ³", + 72607: "Ξ²", + 86201: "Ο‰", + 86620: "ψ", + 86614: "ψ", + 89937: "Ο‡", + 89908: "Ο†", + 92782: "Ο…", + 94376: "Ξ΄", + 98702: "ρ", + 96100: "Οƒ", + 97433: "Ξ΅", + 94648: "Ο„", + 106032: "Ξ²", + 115088: "ΞΏ", + 4843: "Ο…", + 76008: "ΞΈ", + 76695: "π²", + 77055: "ΞΆ", + 75829: "π¹", + 75809: "π¹", + 79822: "Ξ·", + 82080: "Ξ΅", + 99255: "ΞΊ", + 114222: "Ο€", + 116727: "Ξ³", + 111056: "ρ", + 11767: "Ξ±", + 85822: "Ξ΄", + 84535: "Ξ»", + 10826: "ΞΏ", + 20507: "ΞΎ", + 19587: "ΞΏΒΉ", + 21444: "Ξ½", + 22109: "ΞΌ", + 22701: "Ο‰", + 25281: "Ξ·", + 23875: "Ξ²", + 23364: "ψ", + 24674: "Ο„", + 26549: "Οƒ", + 26224: "ΞΈΒΉ", + 26221: "ΞΈΒΉ", + 26235: "ΞΈΒ²", + 26220: "ΞΈΒΉ", + 26241: "ΞΉ", + 25923: "Ο…", + 29651: "Ξ³", + 30867: "Ξ²", + 34769: "Ξ΄", + 39863: "ΞΆ", + 46509: "τ¹", + 46776: "τ²", + 47431: "ΞΉ", + 49641: "Ξ±", + 51362: "Ξ΄", + 51437: "Ξ²", + 55084: "Ο†", + 56647: "Ο…", + 60129: "Ξ·", + 61941: "Ξ³", + 64238: "ΞΈ", + 66249: "ΞΆ", + 70012: "Ο…", + 70755: "Ο†", + 69701: "ΞΉ", + 71957: "ΞΌ", + 77516: "ΞΌ", + 79593: "Ξ΄", + 79882: "Ξ΅", + 88175: "ΞΆ", + 89962: "Ξ·", + 92175: "Ξ²", + 93026: "Ξ·", + 93805: "Ξ»", + 96468: "ΞΉ", + 96483: "ΞΊ", + 99473: "ΞΈ", + 106278: "Ξ²", + 109074: "Ξ±", + 108874: "ΞΏ", + 110960: "ΞΆΒΉ", + 110395: "Ξ³", + 111497: "Ξ·", + 111710: "ΞΊ", + 114724: "Ο†", + 1562: "ΞΉ", + 3455: "φ¹", + 3909: "φ²", + 4371: "φ³", + 4587: "φ⁴", + 5364: "Ξ·", + 6537: "ΞΈ", + 8645: "ΞΆ", + 8497: "Ο‡", + 11345: "ρ", + 14060: "ρ¹", + 14168: "ρ²", + 13701: "Ξ·", + 12390: "Ξ΅", + 12770: "Ο€", + 14293: "ρ³", + 15197: "ΞΆ", + 16537: "Ξ΅", + 17378: "Ξ΄", + 17593: "Ο€", + 18543: "Ξ³", + 19849: "ΞΏΒ²", + 23972: "Ξ»", + 24244: "ΞΉ", + 24327: "ΞΊ", + 24873: "Ξ½", + 24845: "Ξ»", + 27288: "ΞΆ", + 28103: "Ξ·", + 28910: "ΞΈ", + 33160: "ΞΈ", + 33345: "ΞΌ", + 37447: "Ξ±", + 46390: "Ξ±", + 47452: "ΞΊ", + 48437: "Ξ³", + 49402: "Ο…Β²", + 49841: "Ξ»", + 48356: "Ο…ΒΉ", + 50414: "Ξ΅", + 56633: "ΞΈ", + 55874: "ΞΊ", + 55687: "Ξ΅", + 55282: "Ξ΄", + 56802: "ΞΉ", + 61740: "Ο‡", + 62985: "ψ", + 69427: "ΞΊ", + 69974: "Ξ»", + 73473: "Ξ΄", + 74785: "Ξ²", + 72934: "ΞΎΒΉ", + 73133: "ΞΎΒ²", + 72489: "ΞΌ", + 75379: "Ξ΅", + 76333: "Ξ³", + 79375: "ψ", + 79540: "Ο‡", + 80628: "Ο…", + 81377: "ΞΆ", + 84880: "Ξ½", + 86284: "ΞΌ", + 86565: "ΞΏ", + 88404: "Ο„", + 88048: "Ξ½", + 90135: "ΞΆ", + 91117: "Ξ±", + 91845: "Ξ΅", + 91726: "Ξ΄", + 90595: "Ξ³", + 99529: "ΞΎΒΉ", + 100027: "Ξ±ΒΉ", + 99572: "ΞΎ", + 100064: "Ξ±Β²", + 100310: "Ξ½", + 100345: "Ξ²", + 100325: "Ξ²Β²", + 103045: "ΞΌ", + 102618: "Ξ΅", + 101923: "Ο„", + 104459: "Ξ½", + 106786: "ΞΎ", + 107517: "Ξ»", + 108036: "ΞΌ", + 110003: "ΞΈ", + 110273: "ρ", + 109139: "ΞΉ", + 112961: "Ξ»", + 111123: "Οƒ", + 112542: "τ¹", + 112716: "τ²", + 114939: "Ο‡", + 114855: "ψ¹", + 115033: "ψ²", + 115115: "ψ³", + 116758: "ω¹", + 116971: "ω²", + 3419: "Ξ²", + 8102: "Ο„", + 9347: "Ο…", + 11783: "Οƒ", + 12843: "τ¹", + 13288: "τ²", + 15474: "τ⁴", + 16611: "τ⁡", + 24305: "ΞΌ", + 23685: "Ξ΅", + 25985: "Ξ±", + 25606: "Ξ²", + 27654: "Ξ΄", + 27072: "Ξ³", + 31564: "Ξ½ΒΉ", + 31700: "Ξ½Β³", + 31592: "Ξ½Β²", + 33302: "Ο€", + 34045: "Ξ³", + 33347: "ΞΉ", + 51069: "ΞΌ", + 51905: "φ²", + 51614: "φ¹", + 52085: "Ο†", + 52943: "Ξ½", + 53740: "Ξ±", + 54742: "ψ", + 55705: "Ξ³", + 55598: "Ξ»", + 58188: "Ξ·", + 57283: "ΞΆ", + 59803: "Ξ³", + 61174: "Ξ·", + 60965: "Ξ΄", + 60189: "ΞΆ", + 72603: "Ξ±ΒΉ", + 72622: "Ξ±Β²", + 73945: "Ξ½", + 75118: "ΞΏ", + 74392: "ΞΉ", + 76126: "ΞΆ", + 77060: "Ξ·", + 77853: "ΞΈ", + 76880: "ΞΊ", + 77811: "Ξ»", + 80894: "Ο†", + 80569: "Ο‡", + 78821: "Ξ²Β²", + 78820: "Ξ²ΒΉ", + 79374: "Ξ½", + 80343: "ψ", + 78933: "ω¹", + 78990: "ω²", + 80975: "Ο‰", + 84012: "Ξ·", + 84893: "ΞΎ", + 86263: "ΞΎ", + 89341: "ΞΌ", + 93057: "ΞΎΒΉ", + 93085: "ΞΎΒ²", + 94141: "Ο€", + 93683: "ΞΏ", + 95176: "Ο…", + 95188: "ρ²", + 95168: "ρ¹", + 101751: "τ¹", + 101027: "ρ", + 100881: "Ο€", + 101123: "ΞΏ", + 101120: "ΞΏ", + 101984: "Ο…", + 100195: "Οƒ", + 104139: "ΞΈ", + 104019: "Ξ·", + 104365: "Ο‡", + 104963: "Ο†", + 105515: "ΞΉ", + 106985: "Ξ³", + 107556: "Ξ΄", + 107188: "ΞΊ", + 106723: "Ξ΅", + 105881: "ΞΆ", + 113136: "Ξ΄", + 111449: "Ο…", + 761: "ΞΊΒΉ", + 183: "ΞΆ", + 930: "ΞΊΒ²", + 1708: "ΞΉ", + 4577: "Ξ±", + 7463: "Ο„", + 8209: "Ξ΅", + 9677: "Ξ½", + 11072: "ΞΊ", + 11918: "Ο‰", + 13197: "Ξ³ΒΉ", + 14146: "τ³", + 13942: "ΞΆ", + 13202: "Ξ³Β²", + 14086: "Ξ΅", + 14879: "Ξ±", + 17651: "τ⁢", + 17717: "τ⁷", + 18216: "τ⁸", + 17007: "Ο„", + 17618: "Οƒ", + 18673: "τ⁹", + 21248: "Ο…ΒΉ", + 26412: "Ξ½ΒΉ", + 26460: "Ξ½Β²", + 31125: "ΞΎΒΉ", + 31416: "ΞΎΒ²", + 33152: "ΞΏΒΉ", + 33977: "ΞΏΒ²", + 33856: "Οƒ", + 34444: "Ξ΄", + 35037: "Ο‰", + 35415: "Ο„", + 38070: "ΞΏ", + 37229: "ΞΊΒΉ", + 39757: "ρ", + 38170: "ΞΎ", + 42334: "Ξ·", + 43825: "Ξ΄", + 43409: "Ξ³", + 42483: "ΞΆ", + 44824: "ΞΊ", + 45902: "ΞΈ", + 46026: "Ξ»", + 47758: "ΞΈ", + 54255: "χ²", + 54204: "χ¹", + 54682: "Ξ²", + 59316: "Ξ΅", + 59199: "Ξ±", + 61359: "Ξ²", + 64166: "ψ", + 64962: "Ξ³", + 68895: "Ο€", + 73714: "Οƒ", + 76470: "Ο…", + 78401: "Ξ΄", + 78265: "Ο€", + 76600: "Ο„", + 78104: "ρ", + 80473: "ρ", + 80079: "ΞΏ", + 80112: "Οƒ", + 81266: "Ο„", + 84626: "ΞΏ", + 84625: "ΞΏ", + 84970: "ΞΈ", + 89931: "Ξ΄", + 92845: "Ξ½Β²", + 92761: "Ξ½ΒΉ", + 90496: "Ξ»", + 92041: "Ο†", + 95503: "χ³", + 94643: "ψ", + 95486: "χ²", + 95477: "χ¹", + 93864: "Ο„", + 93506: "ΞΆ", + 98066: "Ο‰", + 102485: "ψ", + 102978: "Ο‰", + 108661: "Ξ·", + 109789: "Ξ»", + 111138: "ΞΆ", + 111954: "Ξ΅", + 117452: "Ξ΄", + 2210: "Ξ·", + 950: "ΞΈ", + 4852: "Οƒ", + 7955: "Ο€", + 9440: "Ο€", + 10320: "ΞΌ", + 12122: "ΞΉΒΉ", + 12288: "ΞΉΒ²", + 13147: "Ξ²", + 11867: "λ¹", + 11477: "Ο†", + 12186: "λ²", + 13040: "Ξ·ΒΉ", + 13265: "Ξ·Β³", + 13225: "Ξ·Β²", + 16112: "χ²", + 16156: "χ³", + 15987: "χ¹", + 17738: "ρ", + 17304: "Ξ΄", + 21393: "Ο…Β²", + 22280: "ΞΆ", + 20042: "υ⁴", + 21861: "Ξ²", + 24659: "ΞΏ", + 23595: "Ξ³", + 23596: "Ξ³", + 28098: "Οƒ", + 27204: "ΞΌ", + 25859: "Ξ΅", + 26634: "Ξ±", + 27810: "Ξ»", + 28199: "Ξ³", + 27628: "Ξ²", + 28010: "ΞΎ", + 30122: "ΞΆ", + 30277: "Ξ΄", + 30788: "Ξ»", + 29807: "ΞΊ", + 29034: "ΞΈ", + 32759: "ΞΊ", + 35264: "Ο€", + 38901: "Ο‡", + 42828: "Ξ±", + 42515: "Ξ²", + 45001: "Ξ΅", + 46734: "ΞΆΒ²", + 46657: "ΞΆΒΉ", + 46515: "Ξ΅", + 48926: "Ξ·", + 51376: "Ξ΄", + 51172: "Ξ±", + 53502: "ΞΉ", + 56343: "ΞΎ", + 56922: "ΞΏ", + 57936: "Ξ²", + 65109: "ΞΉ", + 68933: "ΞΈ", + 75177: "φ¹", + 75304: "φ²", + 77634: "Ο‡", + 76705: "ψ¹", + 76945: "ψ²", + 78106: "ΞΎΒ²", + 78105: "ΞΎΒΉ", + 78918: "ΞΈ", + 82396: "Ξ΅", + 85696: "Ο…", + 88635: "Ξ³", + 89642: "Ξ·", + 93174: "Ξ΅", + 93825: "Ξ³", + 98421: "ΞΈΒ²", + 98412: "ΞΈΒΉ", + 102989: "Ξ²", + 102831: "Ξ±", + 104148: "Ξ΄", + 103738: "Ξ³", + 105140: "Ξ΅", + 107608: "ΞΈ", + 107380: "ΞΉ", + 109422: "Ο„", + 109285: "ΞΌ", + 109289: "Ο…", + 108085: "Ξ³", + 111188: "Ξ²", + 113246: "Ξ΄", + 112948: "Ξ³", + 113860: "Ο€", + 115102: "Ξ³", + 116820: "ΞΌ", + 2081: "Ξ±", + 2072: "ΞΊ", + 3456: "λ²", + 3356: "λ¹", + 4770: "ΞΎ", + 5300: "Ο…", + 8882: "Ο†", + 6867: "Ξ³", + 9459: "Ο‡", + 12486: "ΞΉ", + 13473: "ψ", + 13847: "ΞΈΒΉ", + 19515: "Ξ΄", + 19747: "Ξ±", + 21060: "Ξ΄", + 21998: "Ξ»", + 22488: "Ξ½", + 21770: "Ξ±", + 28328: "Ξ·", + 29064: "π²", + 28957: "π¹", + 31685: "Ξ½", + 36377: "Οƒ", + 44816: "Ξ»", + 46651: "ψ", + 67472: "ΞΌ", + 67464: "Ξ½", + 68245: "Ο†", + 68282: "Ο…ΒΉ", + 70090: "ψ", + 68862: "Ο‡", + 73334: "ΞΊ", + 73273: "Ξ²", + 72683: "ΞΏ", + 75439: "Ο…", + 75141: "Ξ΄", + 76297: "Ξ³", + 76552: "Ο‰", + 75264: "Ξ΅", + 78384: "Ξ·", + 79963: "Ξ»", + 81122: "ΞΌ", + 82545: "ΞΌΒ²", + 82514: "ΞΌΒΉ", + 82671: "ΞΆΒΉ", + 82729: "ΞΆΒ²", + 84143: "Ξ·", + 87073: "ΞΉΒΉ", + 87294: "ΞΉΒ²", + 90968: "ΞΊΒ²", + 90969: "ΞΊΒΉ", + 90982: "ΞΈ", + 91875: "Ξ»", + 94114: "Ξ±", + 94160: "Ξ²", + 92226: "ΞΌ", + 94005: "Ξ΄", + 93542: "ΞΆ", + 92308: "Ξ·ΒΉ", + 92382: "Ξ·Β²", + 95347: "Ξ±", + 98032: "ΞΉ", + 95241: "Ξ²ΒΉ", + 95294: "Ξ²Β²", + 100469: "ΞΊΒΉ", + 100591: "ΞΊΒ²", + 101477: "Ξ½", + 103882: "ΞΆ", + 104177: "Ξ·", + 102693: "ΞΉ", + 105696: "ΞΈΒ²", + 105382: "ΞΈΒΉ", + 106327: "ΞΎ", + 109111: "Ξ»", + 110936: "Ξ½", + 109908: "ΞΌΒΉ", + 109973: "ΞΌΒ²", + 111594: "σ¹", + 111643: "σ²", + 110997: "δ¹", + 111043: "δ²", + 114132: "Ο…", + 112203: "ρ", + 115054: "Ο†", + 114131: "ΞΈ", + 116231: "Ξ²", + 116389: "ΞΉ", + 765: "Ξ΅", + 3245: "ΞΌ", + 88: "Ο„", + 2802: "λ²", + 2472: "λ¹", + 5165: "Ξ²", + 5862: "Ξ½", + 3949: "ρ", + 8837: "ψ", + 7083: "Ξ΄", + 9007: "Ο‡", + 11407: "ΞΊ", + 10602: "Ο†", + 12653: "ΞΉ", + 19893: "Ξ³", + 23649: "Ξ·Β²", + 23482: "Ξ·ΒΉ", + 21914: "Ξ»", + 24829: "ΞΆ", + 25303: "ΞΈ", + 27321: "Ξ²", + 32768: "Ο„", + 52727: "ΞΌ", + 61622: "Ο„", + 60823: "Οƒ", + 61932: "Ξ³", + 59196: "Ξ΄", + 59449: "ρ", + 63724: "ΞΎΒΉ", + 64004: "ΞΎΒ²", + 68523: "Ο…Β²", + 69996: "ΞΉ", + 70574: "τ¹", + 70576: "τ²", + 71121: "Οƒ", + 71536: "ρ", + 74117: "Ξ»", + 73807: "Ο€", + 75206: "Ξ½ΒΉ", + 75181: "Ξ½Β²", + 74911: "ΞΌ", + 74376: "ΞΊΒΉ", + 74380: "ΞΊΒ²", + 74395: "ΞΆ", + 78914: "Ξ΄", + 79653: "ΞΈ", + 80582: "Ξ΅", + 78639: "Ξ·", + 79790: "Ξ³ΒΉ", + 80000: "Ξ³Β²", + 86092: "Οƒ", + 85079: "ΞΉ", + 85792: "Ξ±", + 86486: "Ξ»", + 85312: "ΞΊ", + 86796: "ΞΌ", + 89112: "Ξ΅", + 90853: "δ²", + 90830: "δ¹", + 90422: "Ξ±", + 88714: "ΞΈ", + 90568: "ΞΆ", + 92646: "ΞΊ", + 93815: "ρ", + 96341: "ΞΉ", + 102790: "ΞΆ", + 101772: "Ξ±", + 102333: "Ξ·", + 102950: "ΞΉ", + 110478: "π¹", + 110506: "π²", + 112122: "Ξ²", + 114421: "ΞΉ", + 113307: "τ³", + 113044: "τ¹", + 113190: "τ²", + 113191: "τ²", + 112623: "Ξ΅", + 116737: "ΞΈ", + 117315: "Οƒ", + 3277: "ΞΎ", + 3405: "Ξ·", + 4829: "Ο‰", + 5348: "ΞΆ", + 12225: "Ξ·", + 12484: "ΞΆ", + 14240: "ΞΌ", + 19921: "Ξ΅", + 22534: "ΞΉ", + 22531: "ΞΉ", + 21281: "Ξ±", + 23693: "ΞΆ", + 22040: "ΞΊ", + 25098: "ΞΊ", + 27530: "Ξ³", + 29276: "Ξ΄", + 25429: "Ξ»", + 30342: "Ξ½", + 31137: "ΞΌ", + 38827: "Ο‡", + 42536: "ΞΏ", + 45556: "ΞΉ", + 48774: "Ο†", + 55425: "Ο€", + 56243: "ΞΏΒΉ", + 56250: "ΞΏΒ²", + 59747: "Ξ΄", + 63005: "ΞΌΒ²", + 63003: "ΞΌΒΉ", + 63007: "Ξ»", + 74824: "Ξ²", + 75323: "Ξ³", + 79497: "ΞΆ", + 79509: "ΞΊ", + 79153: "ΞΉΒ²", + 78662: "ΞΉΒΉ", + 82363: "Ξ·", + 83153: "Ρ¹", + 83431: "Ρ²", + 83081: "ΞΆ", + 85258: "Ξ²", + 86305: "Ο€", + 85267: "Ξ³", + 87379: "Ο…Β²", + 87314: "Ο…ΒΉ", + 93148: "Ξ»", + 95932: "ΞΌ", + 95261: "Ξ·", + 99120: "ΞΎ", + 97421: "Ξ½", + 105319: "ΞΈ", + 104085: "ΞΌ", + 103227: "Ξ²", + 105841: "Ξ³", + 108431: "Ξ΄", + 108281: "Ο€", + 108870: "Ξ΅", + 108478: "ΞΊ", + 109081: "ΞΊ", + 112374: "Ξ·", + 113957: "ΞΊ", + 113638: "ΞΆ", + 115713: "ΞΏ", + 118234: "Ο€", + 114996: "Ξ³", + 5268: "ΞΉ", + 1599: "ΞΆ", + 2484: "Ξ²ΒΉ", + 2487: "Ξ²Β²", + 2578: "Ξ²Β³", + 3330: "ρ", + 9236: "Ξ±", + 11258: "Ξ»", + 13141: "Ξ½", + 12871: "Ξ³", + 13884: "Ξ²", + 15330: "ΞΆΒΉ", + 15371: "ΞΆΒ²", + 18597: "Ξ΄", + 18744: "Ξ³", + 18772: "ΞΉ", + 19780: "Ξ±", + 16245: "ΞΊ", + 17440: "Ξ²", + 20020: "ΞΈ", + 20384: "Ξ·", + 26069: "Ξ²", + 24372: "ΞΈ", + 32607: "Ξ±", + 29353: "Ξ·Β²", + 27100: "Ξ΄", + 27534: "Ξ΅", + 28909: "Ξ·ΒΉ", + 41312: "Ξ²", + 44382: "Ξ±", + 48002: "Ο…", + 52419: "ΞΈ", + 60260: "Ξ΅", + 56561: "Ξ»", + 58867: "ΞΈΒ²", + 58758: "ΞΈΒΉ", + 59072: "Ξ·", + 60009: "ΞΆ", + 57363: "Ξ»", + 57581: "ΞΌ", + 62268: "ΞΉ", + 62931: "ΞΊ", + 64094: "ΞΈ", + 71908: "Ξ±", + 74778: "Ξ΄", + 73129: "ΞΈ", + 74837: "Ξ΅", + 77952: "Ξ²", + 73776: "Ξ·", + 72965: "ΞΆ", + 76440: "Ξ΅", + 79664: "Ξ΄", + 80645: "ΞΉ", + 81252: "ΞΈ", + 85727: "Ξ΄", + 89042: "ΞΉ", + 88866: "Ο€", + 86929: "Ξ·", + 90098: "ΞΎ", + 93163: "Ο‰", + 90797: "Ξ½", + 92609: "Ξ»", + 92294: "ΞΈ", + 93015: "ΞΊ", + 98624: "ΞΌΒ²", + 98478: "ΞΌΒΉ", + 99240: "Ξ΄", + 101983: "φ²", + 101773: "ρ", + 101612: "φ¹", + 105858: "Ξ³", + 102157: "Ο…", + 102395: "Ξ²", + 110130: "Ξ±", + 111310: "Ξ½", + 110838: "Ξ΄", + 118121: "Ξ·", + 118322: "Ξ΅", + 1647: "Ο€", + 4084: "λ¹", + 4293: "λ²", + 5896: "ΞΊ", + 2629: "ΞΈ", + 3781: "Ξ»", + 8928: "Ξ·Β²", + 8751: "Ξ·ΒΉ", + 10513: "π²", + 10418: "π¹", + 12394: "Ξ΅", + 11001: "Ξ΄", + 12876: "ΞΆ", + 14131: "ΞΈ", + 11095: "ΞΊ", + 21949: "ΞΌ", + 17678: "Ξ³", + 29134: "Ξ½", + 30321: "π¹", + 23467: "Ξ²", + 27369: "Ξ»", + 22871: "Ξ·", + 29271: "Ξ±", + 35228: "Ξ΄", + 30565: "π²", + 34473: "Ξ³ΒΉ", + 34481: "Ξ³Β²", + 32912: "ΞΉ", + 37504: "ΞΆ", + 39794: "Ξ΅", + 42425: "ΞΈ", + 40834: "ΞΊΒ²", + 40817: "ΞΊΒΉ", + 41003: "Ξ·", + 50099: "Ο‰", + 60320: "ΞΆΒ²", + 60329: "ΞΆΒΉ", + 59929: "Ξ΅", + 62322: "Ξ²", + 61585: "Ξ±", + 61199: "Ξ³", + 64661: "Ξ·", + 63613: "Ξ΄", + 65628: "ΞΉΒ²", + 65468: "ΞΉΒΉ", + 74946: "Ξ³", + 77982: "ΞΊ", + 76013: "ΞΊΒΉ", + 76750: "ΞΊΒ²", + 81710: "Ξ·ΒΉ", + 82273: "Ξ±", + 84969: "ΞΆ", + 80686: "ΞΆ", + 84979: "ΞΉ", + 91792: "ΞΆ", + 94724: "Ο„", + 98495: "Ξ΅", + 102773: "Οƒ", + 104755: "ΞΏ", + 107835: "ΞΏ", + 113137: "ρ", + 110618: "Ξ½", + 122: "ΞΈ", + 2021: "Ξ²", + 8991: "Οƒ", + 8366: "τ²", + 7879: "τ¹", + 11757: "ΞΌ", + 814: "Ξ³Β³", + 13244: "Ξ½", + 15201: "ΞΉ", + 20049: "Ξ΄", + 20297: "Ξ½", + 23148: "ΞΎ", + 25918: "Ξ³", + 26264: "ΞΉ", + 27566: "ΞΊ", + 26394: "Ο€", + 33384: "ΞΈ", + 36039: "Ξ΅", + 31897: "ΞΆ", + 47956: "Ξ½", + 40702: "Ξ±", + 40888: "ΞΈ", + 51839: "Ξ³", + 42637: "Ξ·", + 46107: "ΞΉ", + 46928: "ΞΆ", + 49326: "ΞΌΒ²", + 49065: "ΞΌ", + 56675: "Ο€", + 58905: "ΞΊ", + 58484: "Ξ΅", + 52595: "δ¹", + 52633: "δ²", + 60000: "Ξ²", + 68815: "ΞΈ", + 70248: "Ξ΅", + 72370: "Ξ±", + 69896: "Ξ·", + 90133: "Ο†", + 80057: "δ²", + 80047: "δ¹", + 81852: "Ξ²", + 81065: "Ξ³", + 102125: "ΞΌΒ²", + 102162: "ΞΌΒΉ", + 104043: "Ξ±", + 107089: "Ξ½", + 110078: "ψ", + 110256: "Ξ΅", + 112781: "ΞΎ", + 112405: "Ξ²", + 118114: "Ξ³Β²", + 117689: "Ξ³ΒΉ", + 73540: "π¹", + 73771: "π²", + 70638: "Ξ΄", + 43908: "ΞΆ", + 53702: "Ξ·", + 66753: "ΞΊ", + 63031: "ΞΉ", + 76996: "ρ", + 74296: "Ο‰", + 107843: "Ξ»", + 111196: "Ο…", + 92824: "Ο‡", + 115836: "Ο„", + 104382: "Οƒ", + 25336: "Ξ³", + 27989: "Ξ±", + 37279: "Ξ±", + 49669: "Ξ±", + 57632: "Ξ²", + 86032: "Ξ±", + 97649: "Ξ±", + 21421: "Ξ±", + 31681: "Ξ³", + 50583: "Ξ³ΒΉ", + 69673: "Ξ±", + 677: "Ξ±", + 25428: "Ξ²", + 37826: "Ξ²", + 76267: "Ξ±", + 36850: "Ξ±", + 14576: "Ξ²", + 28360: "Ξ²", + 63121: "Ξ±ΒΉ", + 91262: "Ξ±", + 15863: "Ξ±", + 24608: "Ξ±", + 67301: "Ξ·", + 69481: "ΞΊΒΉ", + 102098: "Ξ±", + 53910: "Ξ²", + 62956: "Ξ΅", + 65378: "ΞΆ", + 4427: "Ξ³", + 54061: "Ξ±", + 25930: "Ξ΄", + 26311: "Ξ΅", + 26727: "ΞΆ", + 24436: "Ξ²", + 27366: "ΞΊ", + 65474: "Ξ±", + 30324: "Ξ²", + 32349: "Ξ±", + 33579: "Ξ΅", + 35904: "Ξ·", + 80763: "Ξ±", + 92855: "Οƒ", + 113368: "Ξ±", + 85927: "Ξ»", + 90185: "Ξ΅", + 39429: "ΞΆ", + 71352: "Ξ·", + 86670: "ΞΊ", + 86228: "ΞΈ", + 39953: "Ξ³Β²", + 68002: "ΞΆ", + 71860: "Ξ±", + 109268: "Ξ±", + 7588: "Ξ±", + 30438: "Ξ±", + 42913: "Ξ΄", + 41037: "Ξ΅", + 45941: "ΞΊ", + 61084: "Ξ³", + 62434: "Ξ²", + 66657: "Ξ΅", + 100751: "Ξ±", + 60718: "Ξ±ΒΉ", + 68702: "Ξ²", + 71681: "Ξ±", + 71683: "Ξ±", + 45238: "Ξ²", +} diff --git a/src/starplot/data/flamsteed.py b/src/starplot/data/flamsteed.py new file mode 100644 index 00000000..bc78e84e --- /dev/null +++ b/src/starplot/data/flamsteed.py @@ -0,0 +1,2682 @@ +hip = { + 2006: 44, + 2548: 51, + 3697: 60, + 3760: 62, + 5315: 29, + 4979: 26, + 5510: 33, + 5646: 35, + 5141: 77, + 5144: 77, + 6061: 89, + 5074: 73, + 5346: 80, + 5824: 88, + 6815: 95, + 8833: 111, + 7007: 98, + 7884: 106, + 9589: 60, + 11021: 69, + 9353: 112, + 9487: 113, + 12387: 82, + 12706: 86, + 12093: 78, + 14143: 93, + 14135: 92, + 15457: 96, + 15619: 97, + 16852: 10, + 17103: 12, + 17563: 29, + 18089: 31, + 20884: 44, + 18957: 40, + 18907: 38, + 19554: 45, + 21515: 49, + 23123: 10, + 22730: 5, + 22797: 8, + 22549: 3, + 22449: 1, + 25302: 25, + 24331: 17, + 24817: 21, + 25145: 23, + 25142: 23, + 25473: 30, + 26885: 51, + 27750: 56, + 28271: 59, + 28296: 60, + 25861: 33, + 26126: 38, + 26594: 47, + 25813: 32, + 27386: 52, + 30717: 77, + 28812: 63, + 28814: 66, + 30419: 8, + 32578: 18, + 31159: 12, + 31216: 13, + 36265: 5, + 38373: 13, + 36812: 9, + 36641: 7, + 36723: 8, + 38962: 14, + 42799: 7, + 42402: 5, + 42313: 4, + 42931: 10, + 43109: 11, + 43234: 13, + 43813: 16, + 45336: 22, + 44659: 18, + 48414: 7, + 47310: 2, + 48552: 9, + 48273: 4, + 48990: 12, + 47205: 10, + 50684: 23, + 49329: 13, + 50027: 19, + 49530: 14, + 50851: 43, + 51451: 31, + 52584: 36, + 53423: 55, + 52452: 35, + 52401: 34, + 51775: 48, + 52660: 37, + 53449: 56, + 54336: 65, + 55137: 75, + 55249: 76, + 55650: 79, + 53807: 58, + 55791: 80, + 55846: 83, + 55945: 84, + 53824: 59, + 54182: 63, + 55434: 77, + 57757: 5, + 56445: 89, + 58510: 7, + 57380: 3, + 59285: 10, + 60172: 16, + 58590: 8, + 59309: 11, + 60353: 17, + 62443: 35, + 63090: 43, + 62757: 37, + 61968: 31, + 64852: 60, + 65241: 64, + 68092: 92, + 66200: 78, + 66936: 84, + 68520: 93, + 72220: 109, + 72154: 108, + 74975: 5, + 75119: 6, + 74689: 4, + 75761: 10, + 73620: 110, + 74649: 3, + 77052: 23, + 77578: 34, + 77622: 37, + 77070: 24, + 77257: 27, + 80179: 50, + 78685: 43, + 79488: 9, + 80351: 21, + 81734: 14, + 82480: 21, + 82037: 16, + 80883: 10, + 82162: 19, + 81007: 28, + 81641: 37, + 81634: 36, + 82216: 45, + 81991: 41, + 82402: 47, + 84500: 38, + 85355: 49, + 86831: 61, + 87108: 62, + 86742: 60, + 88290: 68, + 90441: 59, + 88192: 67, + 88601: 70, + 89918: 74, + 88149: 66, + 88964: 73, + 91975: 4, + 93051: 64, + 92946: 63, + 92951: 63, + 92872: 62, + 94913: 24, + 94885: 23, + 95585: 32, + 94477: 21, + 95501: 30, + 95793: 35, + 94727: 22, + 94068: 19, + 97804: 55, + 97980: 58, + 96665: 44, + 96229: 38, + 98036: 60, + 98823: 63, + 101936: 1, + 103569: 1, + 102633: 13, + 104031: 3, + 104987: 8, + 104101: 4, + 103813: 2, + 105413: 9, + 105570: 10, + 107144: 26, + 106944: 25, + 107575: 11, + 106783: 3, + 106856: 4, + 107151: 7, + 108691: 28, + 110672: 52, + 111062: 37, + 110785: 34, + 110882: 35, + 108612: 18, + 109068: 22, + 109427: 26, + 110298: 30, + 113167: 1, + 113521: 2, + 114273: 5, + 113610: 3, + 115768: 9, + 115738: 8, + 113889: 4, + 114971: 6, + 115830: 10, + 115227: 7, + 116422: 15, + 116495: 16, + 117491: 21, + 116928: 18, + 117774: 25, + 117245: 19, + 117683: 22, + 116771: 17, + 117927: 26, + 118268: 28, + 194: 32, + 186: 31, + 1196: 35, + 1319: 36, + 1392: 38, + 1645: 41, + 2025: 45, + 813: 34, + 476: 86, + 1772: 42, + 3786: 63, + 3675: 58, + 4906: 71, + 5743: 86, + 5737: 86, + 5081: 72, + 5204: 75, + 8198: 110, + 7535: 102, + 8588: 54, + 7436: 101, + 7710: 104, + 7364: 100, + 10212: 64, + 10324: 65, + 11484: 73, + 11249: 24, + 11427: 25, + 13954: 91, + 12153: 31, + 12647: 85, + 12832: 38, + 12828: 87, + 16083: 2, + 16511: 6, + 15900: 1, + 16322: 4, + 16369: 5, + 17771: 30, + 18724: 35, + 19719: 46, + 19860: 49, + 19740: 47, + 20522: 66, + 21402: 88, + 20901: 79, + 20219: 57, + 20732: 73, + 20400: 60, + 21273: 86, + 20873: 76, + 21036: 83, + 22509: 2, + 22845: 7, + 21589: 90, + 21735: 93, + 22833: 6, + 22667: 4, + 22957: 9, + 23879: 14, + 26366: 40, + 23983: 16, + 23852: 13, + 26207: 39, + 26176: 37, + 24555: 18, + 26093: 35, + 28614: 61, + 27511: 134, + 27316: 131, + 27581: 135, + 27364: 133, + 27743: 137, + 29038: 67, + 31385: 14, + 29850: 75, + 29736: 73, + 29800: 74, + 29426: 70, + 32463: 16, + 32533: 17, + 31978: 15, + 32404: 32, + 32362: 31, + 32249: 30, + 32814: 35, + 33202: 38, + 36041: 2, + 36284: 4, + 36188: 3, + 36425: 6, + 35987: 1, + 37921: 11, + 39567: 8, + 39874: 12, + 40526: 17, + 41163: 21, + 41904: 34, + 42353: 37, + 42265: 36, + 41400: 27, + 41578: 29, + 43121: 50, + 42917: 49, + 43851: 60, + 44066: 65, + 44798: 76, + 42795: 45, + 44838: 74, + 46454: 2, + 46457: 3, + 47508: 14, + 46774: 6, + 46771: 5, + 45170: 81, + 45410: 82, + 47266: 11, + 47096: 7, + 49029: 29, + 49637: 31, + 47959: 18, + 48029: 19, + 48883: 27, + 48324: 23, + 47723: 16, + 49929: 34, + 51213: 45, + 51624: 47, + 51008: 44, + 51802: 49, + 50333: 37, + 50755: 42, + 51585: 46, + 52911: 53, + 52689: 52, + 56779: 1, + 55642: 78, + 55016: 73, + 56242: 88, + 57328: 2, + 57562: 4, + 58110: 6, + 58948: 9, + 59608: 12, + 62267: 32, + 61246: 20, + 61937: 27, + 61960: 30, + 59819: 6, + 62325: 33, + 62933: 41, + 62394: 34, + 63608: 47, + 62541: 29, + 62478: 28, + 64792: 59, + 65790: 71, + 65721: 70, + 69612: 15, + 69536: 14, + 71832: 31, + 71837: 32, + 69989: 18, + 71795: 30, + 76276: 13, + 76425: 16, + 75230: 7, + 76866: 20, + 77336: 31, + 77910: 40, + 79072: 47, + 79047: 46, + 79007: 45, + 79634: 13, + 77801: 39, + 79492: 49, + 82073: 43, + 81008: 29, + 80463: 24, + 83000: 27, + 82673: 25, + 84177: 37, + 83613: 60, + 82526: 49, + 83430: 32, + 84345: 64, + 85998: 53, + 88765: 71, + 88771: 72, + 93867: 18, + 94834: 25, + 95002: 29, + 94982: 28, + 93179: 10, + 93203: 11, + 93747: 17, + 97229: 49, + 97938: 59, + 97278: 50, + 97675: 54, + 95447: 31, + 96931: 46, + 96957: 47, + 97473: 52, + 97139: 48, + 98103: 61, + 102819: 14, + 101160: 1, + 101916: 7, + 101483: 3, + 101800: 5, + 101421: 2, + 103298: 16, + 102805: 15, + 101589: 4, + 101769: 6, + 101882: 8, + 102080: 10, + 103294: 17, + 103527: 18, + 104521: 5, + 104538: 6, + 104858: 7, + 107315: 8, + 108339: 17, + 108699: 19, + 108875: 21, + 108693: 20, + 110386: 31, + 110986: 36, + 112935: 49, + 113186: 50, + 112447: 46, + 112029: 42, + 114144: 55, + 114389: 58, + 114520: 59, + 114347: 57, + 113503: 52, + 115444: 66, + 115919: 70, + 117628: 80, + 117020: 77, + 117730: 82, + 1595: 40, + 1067: 88, + 2224: 48, + 729: 87, + 2213: 46, + 2219: 47, + 1168: 89, + 2903: 53, + 3810: 64, + 3632: 57, + 3685: 59, + 4267: 66, + 3138: 55, + 2568: 52, + 3093: 54, + 3730: 61, + 5778: 87, + 7097: 99, + 5454: 81, + 6732: 94, + 6706: 93, + 6981: 97, + 5131: 74, + 5132: 74, + 5571: 84, + 5310: 79, + 7740: 105, + 8271: 3, + 8387: 4, + 8832: 5, + 9110: 8, + 8159: 109, + 7981: 107, + 8544: 1, + 8903: 6, + 10328: 19, + 11843: 29, + 10732: 22, + 10155: 15, + 11678: 26, + 11698: 27, + 10306: 17, + 12332: 32, + 12803: 37, + 13165: 42, + 13327: 43, + 13108: 40, + 12784: 36, + 13579: 44, + 13654: 45, + 13702: 46, + 14586: 54, + 14514: 53, + 14838: 57, + 12640: 34, + 13914: 48, + 13834: 47, + 17408: 14, + 17309: 13, + 15110: 58, + 15870: 65, + 15627: 61, + 15737: 63, + 19877: 48, + 19388: 43, + 18471: 32, + 19038: 37, + 19076: 39, + 20215: 55, + 20484: 63, + 20205: 54, + 20261: 58, + 20877: 75, + 20885: 77, + 20661: 70, + 20894: 78, + 21137: 85, + 21039: 81, + 20995: 80, + 20713: 71, + 21082: 84, + 21588: 89, + 21683: 92, + 21673: 91, + 20455: 61, + 20542: 64, + 20648: 68, + 19990: 50, + 20889: 74, + 20186: 56, + 20087: 51, + 20171: 53, + 20635: 65, + 20641: 67, + 22441: 96, + 23214: 101, + 24010: 15, + 23607: 11, + 23835: 104, + 22565: 97, + 23871: 106, + 23497: 102, + 23883: 105, + 24512: 108, + 24822: 109, + 25216: 110, + 25410: 113, + 25555: 116, + 26777: 126, + 27265: 129, + 25499: 115, + 25278: 111, + 25945: 119, + 26064: 120, + 25583: 117, + 26382: 122, + 27338: 130, + 25539: 114, + 26451: 123, + 29704: 72, + 29434: 69, + 27965: 57, + 27913: 54, + 28716: 62, + 28691: 64, + 29433: 68, + 29650: 71, + 28561: 141, + 31105: 19, + 31525: 23, + 32753: 33, + 31158: 20, + 32104: 26, + 30769: 16, + 30883: 18, + 30757: 15, + 30756: 15, + 32921: 36, + 33715: 41, + 34440: 45, + 35350: 54, + 34909: 51, + 34088: 43, + 36156: 61, + 35699: 56, + 35550: 55, + 36238: 63, + 36760: 68, + 38848: 1, + 37300: 74, + 37908: 81, + 37811: 79, + 38722: 85, + 39236: 5, + 39177: 3, + 40167: 16, + 41117: 20, + 41319: 25, + 41822: 31, + 39780: 10, + 43454: 54, + 43463: 52, + 44001: 63, + 43970: 62, + 42523: 40, + 42133: 35, + 42485: 38, + 42578: 42, + 42556: 41, + 42911: 47, + 42516: 39, + 41909: 33, + 42806: 43, + 45153: 80, + 45699: 83, + 45033: 79, + 44946: 77, + 47189: 8, + 49583: 30, + 48218: 20, + 50564: 40, + 52686: 51, + 53954: 60, + 55533: 71, + 55765: 81, + 54879: 70, + 56146: 86, + 56473: 90, + 56080: 85, + 54872: 68, + 56975: 92, + 58159: 95, + 59352: 3, + 57565: 93, + 58661: 1, + 58858: 2, + 59501: 5, + 60202: 11, + 61415: 24, + 61418: 24, + 61571: 25, + 62356: 27, + 60957: 20, + 61724: 26, + 62807: 32, + 63533: 38, + 63355: 36, + 64241: 42, + 62886: 35, + 63948: 39, + 67275: 4, + 67459: 5, + 66727: 1, + 66763: 2, + 67480: 6, + 70027: 20, + 69829: 101, + 67787: 7, + 67927: 8, + 68276: 10, + 72125: 35, + 71762: 29, + 70602: 22, + 72659: 37, + 71115: 26, + 75530: 9, + 76423: 17, + 76424: 18, + 76069: 12, + 77111: 26, + 76810: 19, + 77233: 28, + 78072: 41, + 76337: 15, + 76852: 21, + 76878: 22, + 77450: 35, + 77661: 38, + 78481: 5, + 79102: 8, + 79045: 7, + 79043: 7, + 79666: 16, + 80170: 20, + 80816: 27, + 82802: 54, + 88128: 93, + 88657: 98, + 88267: 95, + 88331: 96, + 88899: 101, + 88886: 102, + 89861: 106, + 90139: 109, + 93244: 13, + 92161: 111, + 92043: 110, + 92614: 112, + 96516: 4, + 95435: 3, + 95398: 2, + 96757: 5, + 96837: 6, + 95560: 5, + 95498: 4, + 95818: 7, + 96275: 9, + 94703: 1, + 94620: 1, + 98085: 10, + 98234: 11, + 98754: 14, + 99742: 67, + 97365: 7, + 97796: 9, + 98819: 15, + 98438: 13, + 97496: 8, + 98337: 12, + 98920: 16, + 99352: 17, + 101958: 9, + 102281: 11, + 102532: 12, + 102531: 12, + 99913: 18, + 101867: 29, + 103511: 33, + 107348: 9, + 107788: 13, + 105502: 1, + 106787: 5, + 109240: 25, + 109458: 28, + 110548: 33, + 111884: 41, + 111278: 39, + 111810: 40, + 112358: 45, + 113963: 54, + 113357: 51, + 115407: 65, + 116592: 74, + 116972: 76, + 116611: 75, + 117718: 81, + 116264: 71, + 171: 85, + 2355: 28, + 3693: 34, + 4288: 36, + 4463: 38, + 4366: 67, + 3031: 30, + 3885: 65, + 4510: 68, + 5742: 85, + 6193: 90, + 6315: 91, + 9153: 9, + 8993: 7, + 9884: 13, + 9836: 12, + 10053: 14, + 10203: 16, + 9621: 10, + 9859: 11, + 8796: 2, + 10540: 20, + 10535: 21, + 12184: 30, + 12189: 30, + 12719: 35, + 12489: 33, + 10793: 10, + 11486: 12, + 11548: 13, + 14376: 52, + 15557: 60, + 13209: 41, + 14150: 51, + 14109: 49, + 14893: 56, + 15514: 59, + 13061: 39, + 14677: 55, + 16181: 66, + 16859: 9, + 17573: 20, + 17489: 16, + 17499: 17, + 17851: 28, + 17702: 25, + 17847: 27, + 17608: 23, + 17832: 26, + 15861: 64, + 16664: 7, + 17181: 11, + 17527: 18, + 17579: 21, + 17531: 19, + 17588: 22, + 15696: 62, + 18485: 33, + 19009: 36, + 20533: 62, + 20789: 72, + 20711: 69, + 20430: 59, + 19171: 41, + 19513: 44, + 20250: 52, + 19205: 42, + 21961: 95, + 21881: 94, + 23068: 99, + 23088: 98, + 23900: 103, + 25695: 118, + 25192: 22, + 26248: 121, + 28969: 2, + 28734: 1, + 26640: 125, + 27468: 132, + 28237: 139, + 27830: 136, + 29288: 4, + 29655: 7, + 29789: 8, + 29225: 3, + 29450: 6, + 30046: 11, + 30049: 12, + 30343: 13, + 29840: 9, + 30003: 10, + 29379: 5, + 31434: 49, + 29696: 44, + 31737: 53, + 31852: 54, + 32019: 25, + 34182: 44, + 33927: 42, + 34819: 48, + 32246: 27, + 33277: 37, + 33650: 40, + 33595: 39, + 34861: 49, + 35025: 52, + 34722: 47, + 32311: 28, + 35842: 58, + 38106: 82, + 35846: 57, + 37704: 76, + 37740: 77, + 35152: 53, + 36393: 64, + 36429: 65, + 36046: 60, + 35941: 59, + 36962: 69, + 37629: 75, + 39659: 9, + 40881: 19, + 39263: 4, + 39191: 2, + 40007: 13, + 40023: 14, + 38538: 83, + 40843: 18, + 40240: 15, + 41389: 24, + 41940: 32, + 41574: 28, + 41816: 30, + 41404: 23, + 41377: 22, + 43100: 48, + 43103: 48, + 43587: 55, + 43575: 53, + 43834: 58, + 44405: 69, + 44892: 75, + 46146: 1, + 44342: 67, + 44512: 70, + 44818: 72, + 47247: 9, + 46750: 4, + 47908: 17, + 48390: 22, + 47550: 13, + 48455: 24, + 47701: 15, + 50319: 35, + 50335: 36, + 50384: 39, + 50316: 24, + 50303: 23, + 52457: 41, + 53355: 48, + 53492: 50, + 54347: 52, + 54196: 51, + 54388: 64, + 53417: 54, + 54487: 67, + 52882: 43, + 52959: 44, + 52422: 40, + 54951: 72, + 59468: 4, + 59847: 7, + 60514: 13, + 60904: 17, + 60891: 17, + 60351: 12, + 61071: 21, + 60941: 18, + 60087: 8, + 61295: 22, + 61394: 23, + 60123: 10, + 60742: 15, + 60098: 9, + 60697: 14, + 60746: 16, + 62576: 30, + 63950: 40, + 62763: 31, + 64394: 43, + 64022: 41, + 67239: 3, + 68103: 9, + 68478: 11, + 69226: 12, + 72105: 36, + 71995: 34, + 73568: 41, + 71284: 28, + 73996: 45, + 73745: 43, + 74087: 46, + 74596: 48, + 75049: 1, + 75695: 3, + 78554: 44, + 76952: 8, + 78159: 13, + 77512: 10, + 78493: 14, + 79349: 10, + 79889: 19, + 81729: 39, + 79757: 18, + 84054: 63, + 82504: 51, + 82987: 57, + 82780: 56, + 84379: 65, + 82324: 48, + 82422: 50, + 85157: 73, + 86254: 79, + 86731: 84, + 84887: 70, + 85693: 76, + 86667: 83, + 87194: 87, + 86974: 86, + 85790: 78, + 88346: 97, + 87747: 89, + 88818: 100, + 88817: 100, + 89773: 105, + 87933: 92, + 88794: 103, + 89925: 108, + 89935: 107, + 92818: 113, + 94827: 2, + 95785: 8, + 95771: 6, + 95260: 3, + 95951: 6, + 95947: 6, + 95372: 2, + 97886: 13, + 97679: 12, + 98375: 14, + 97077: 10, + 98636: 16, + 98543: 15, + 96302: 9, + 99080: 17, + 99853: 22, + 101868: 28, + 99951: 24, + 100435: 25, + 101641: 26, + 99404: 18, + 99518: 19, + 99531: 20, + 99874: 23, + 101716: 27, + 99738: 21, + 102388: 30, + 103200: 32, + 103004: 31, + 105411: 34, + 106140: 2, + 107354: 10, + 105966: 35, + 107310: 78, + 107472: 12, + 108022: 16, + 109176: 24, + 107975: 15, + 109056: 23, + 112440: 47, + 112748: 48, + 110371: 32, + 112051: 43, + 115250: 62, + 115623: 68, + 114155: 56, + 113881: 53, + 114526: 60, + 114844: 61, + 115806: 69, + 118131: 84, + 117073: 78, + 117500: 79, + 1473: 25, + 3092: 31, + 4889: 69, + 5544: 82, + 5586: 83, + 2912: 29, + 5175: 76, + 5319: 78, + 5447: 43, + 10220: 5, + 10280: 6, + 9570: 3, + 10559: 7, + 10064: 4, + 10644: 8, + 10670: 9, + 9021: 56, + 11432: 11, + 13775: 21, + 12086: 15, + 13905: 24, + 13328: 17, + 11784: 14, + 17448: 38, + 17886: 42, + 18246: 44, + 17313: 40, + 18614: 46, + 20252: 54, + 20579: 55, + 20591: 56, + 23015: 3, + 24727: 16, + 24504: 14, + 24832: 18, + 24740: 17, + 24879: 19, + 22678: 2, + 22453: 1, + 26536: 26, + 25984: 25, + 25541: 24, + 25292: 21, + 27639: 31, + 28380: 37, + 30827: 48, + 34693: 46, + 33018: 34, + 36366: 62, + 38016: 80, + 37204: 70, + 37265: 71, + 35710: 65, + 42954: 46, + 43584: 51, + 44154: 64, + 43721: 57, + 44031: 61, + 43932: 59, + 41975: 32, + 42090: 33, + 44307: 66, + 45860: 40, + 46652: 7, + 45688: 38, + 46904: 9, + 46952: 10, + 47080: 11, + 46735: 8, + 48742: 18, + 49081: 20, + 47631: 13, + 49593: 21, + 50218: 22, + 51556: 33, + 52098: 37, + 52638: 42, + 50860: 27, + 50935: 28, + 51056: 30, + 51685: 34, + 52032: 36, + 51233: 31, + 51047: 29, + 51914: 35, + 53426: 46, + 55219: 54, + 53229: 46, + 53377: 47, + 57029: 62, + 56997: 61, + 63462: 37, + 63901: 14, + 66458: 25, + 71053: 25, + 75312: 2, + 76127: 4, + 74666: 49, + 75178: 50, + 75415: 51, + 75411: 51, + 77048: 9, + 78459: 15, + 76669: 7, + 77655: 11, + 79119: 16, + 80247: 23, + 80181: 19, + 81066: 32, + 81693: 40, + 79607: 17, + 80197: 20, + 80214: 21, + 80927: 31, + 80460: 25, + 82587: 53, + 83207: 58, + 83313: 59, + 84862: 72, + 84573: 68, + 83462: 61, + 84380: 67, + 84606: 69, + 85112: 75, + 87998: 94, + 87808: 91, + 88745: 99, + 89172: 104, + 89826: 1, + 94311: 19, + 92420: 10, + 92398: 8, + 92405: 9, + 93194: 14, + 93279: 15, + 93917: 17, + 92728: 11, + 92791: 12, + 93903: 18, + 96683: 12, + 97295: 17, + 96052: 8, + 95556: 4, + 96387: 11, + 97118: 15, + 100587: 39, + 98110: 21, + 100122: 35, + 98425: 25, + 99303: 28, + 99770: 29, + 99031: 27, + 100108: 36, + 101076: 41, + 101765: 48, + 102453: 52, + 102066: 49, + 101474: 47, + 102488: 53, + 101214: 44, + 101067: 42, + 102589: 54, + 104732: 64, + 105138: 66, + 105811: 69, + 105942: 70, + 107763: 14, + 109410: 29, + 109352: 27, + 112158: 44, + 111068: 38, + 115355: 64, + 115271: 63, + 116310: 72, + 115591: 67, + 116355: 73, + 1366: 24, + 1686: 27, + 1086: 23, + 1501: 26, + 4436: 37, + 5550: 45, + 3881: 35, + 3231: 32, + 4903: 39, + 5493: 44, + 5317: 41, + 6514: 47, + 7818: 53, + 8814: 55, + 7513: 50, + 7719: 52, + 9977: 58, + 10180: 59, + 10176: 59, + 9640: 57, + 10340: 60, + 13490: 20, + 13254: 16, + 14354: 25, + 12623: 12, + 13879: 22, + 14817: 28, + 12768: 14, + 14668: 27, + 15338: 30, + 18532: 45, + 17529: 41, + 15648: 32, + 19302: 49, + 19335: 50, + 19811: 52, + 21476: 58, + 21242: 57, + 23179: 4, + 24340: 11, + 23261: 5, + 23268: 6, + 23453: 8, + 23767: 10, + 24813: 15, + 21928: 59, + 23416: 7, + 27483: 29, + 27673: 32, + 25048: 20, + 28946: 40, + 31771: 51, + 31789: 52, + 28823: 39, + 28677: 38, + 31832: 50, + 33133: 61, + 33041: 59, + 33064: 60, + 33614: 62, + 34752: 63, + 35341: 64, + 32844: 58, + 32173: 55, + 32480: 56, + 35907: 66, + 39722: 28, + 41075: 31, + 44248: 10, + 43531: 35, + 45290: 36, + 47570: 43, + 48256: 16, + 47300: 42, + 48833: 19, + 51420: 32, + 52139: 38, + 50801: 34, + 50372: 33, + 53721: 47, + 53838: 49, + 54136: 51, + 55266: 55, + 53295: 45, + 54539: 52, + 56034: 57, + 56148: 58, + 56770: 59, + 55560: 56, + 59831: 2, + 61692: 9, + 60646: 6, + 58684: 67, + 60467: 4, + 61317: 8, + 62207: 10, + 63125: 12, + 64692: 19, + 64844: 20, + 64217: 15, + 64246: 17, + 65072: 23, + 71075: 27, + 71618: 33, + 73369: 40, + 73555: 42, + 76307: 6, + 78012: 12, + 76041: 53, + 75973: 52, + 76534: 54, + 77760: 1, + 77907: 2, + 77986: 4, + 81126: 35, + 80704: 30, + 79248: 14, + 79101: 11, + 81833: 44, + 87563: 90, + 90191: 2, + 91971: 6, + 91973: 7, + 94481: 20, + 94713: 21, + 91919: 4, + 91926: 5, + 92862: 13, + 97630: 19, + 98068: 22, + 96693: 14, + 100044: 34, + 100907: 40, + 100453: 37, + 104217: 61, + 104214: 61, + 104887: 65, + 103413: 58, + 105102: 67, + 102843: 56, + 103089: 57, + 104060: 62, + 105186: 68, + 106551: 72, + 107253: 79, + 106711: 74, + 107097: 76, + 107162: 77, + 106999: 75, + 109937: 1, + 111841: 10, + 111546: 8, + 111544: 8, + 111104: 6, + 112031: 12, + 112242: 13, + 112778: 14, + 113281: 16, + 113788: 2, + 113726: 1, + 115191: 10, + 115065: 9, + 111944: 11, + 112917: 15, + 114430: 6, + 115280: 12, + 116076: 14, + 116354: 15, + 115755: 13, + 116631: 17, + 116805: 19, + 841: 22, + 3478: 68, + 3414: 20, + 3504: 22, + 3300: 19, + 6411: 46, + 6813: 48, + 5434: 42, + 3801: 25, + 7607: 51, + 6999: 49, + 9222: 3, + 8714: 2, + 10366: 6, + 10819: 62, + 10944: 63, + 11313: 65, + 11220: 64, + 11465: 66, + 12777: 13, + 16499: 36, + 16335: 35, + 16826: 37, + 17358: 39, + 15404: 29, + 15444: 31, + 16244: 34, + 20354: 53, + 19812: 51, + 19343: 48, + 19167: 47, + 18453: 43, + 23783: 9, + 28404: 35, + 27196: 27, + 29949: 43, + 29884: 42, + 30972: 47, + 28499: 36, + 29388: 41, + 30520: 46, + 28765: 35, + 33485: 16, + 32562: 57, + 35726: 20, + 36439: 22, + 36145: 21, + 38623: 25, + 38639: 26, + 39847: 27, + 42604: 34, + 44127: 9, + 44471: 12, + 46471: 41, + 44901: 15, + 45836: 37, + 47006: 26, + 46853: 25, + 47973: 14, + 48113: 15, + 48682: 31, + 58117: 65, + 56789: 60, + 57399: 63, + 58112: 65, + 60122: 3, + 60485: 5, + 60988: 7, + 62516: 11, + 64906: 21, + 66234: 24, + 69068: 13, + 69483: 17, + 69732: 19, + 72487: 38, + 70791: 24, + 72524: 39, + 70497: 23, + 69713: 21, + 73841: 47, + 73695: 44, + 78592: 6, + 79992: 22, + 82321: 52, + 80809: 34, + 81497: 42, + 84835: 74, + 86414: 85, + 86182: 82, + 85379: 77, + 87280: 88, + 85670: 23, + 87833: 33, + 87212: 30, + 93408: 16, + 92204: 205, + 95656: 7, + 95853: 10, + 97165: 18, + 99639: 30, + 99675: 31, + 96441: 13, + 96895: 16, + 96901: 16, + 98571: 26, + 98055: 24, + 102724: 55, + 99848: 32, + 103632: 59, + 100859: 43, + 101243: 46, + 101138: 45, + 102177: 51, + 103732: 60, + 106093: 71, + 106481: 73, + 104194: 63, + 107136: 80, + 110351: 2, + 111022: 5, + 107533: 81, + 110609: 4, + 110538: 3, + 114200: 4, + 111169: 7, + 114210: 5, + 113919: 3, + 114570: 7, + 111674: 9, + 116584: 16, + 117221: 20, + 115152: 11, + 115022: 8, + 116709: 18, + 2920: 17, + 2505: 14, + 3179: 18, + 3821: 24, + 746: 11, + 5542: 33, + 5336: 30, + 4422: 28, + 4292: 26, + 6242: 34, + 7294: 39, + 8704: 1, + 9505: 4, + 11060: 9, + 10227: 5, + 11279: 10, + 10729: 7, + 10718: 8, + 14328: 23, + 13531: 18, + 13268: 15, + 12692: 11, + 21148: 1, + 21727: 3, + 21730: 2, + 23040: 7, + 23216: 8, + 22854: 5, + 22287: 4, + 24836: 15, + 23743: 12, + 23734: 11, + 28358: 33, + 27249: 26, + 27949: 30, + 25197: 16, + 25973: 18, + 26587: 22, + 26942: 24, + 27283: 28, + 27592: 29, + 27971: 31, + 27731: 30, + 29246: 37, + 30247: 45, + 31359: 7, + 31665: 11, + 32489: 13, + 30272: 4, + 30060: 2, + 29730: 40, + 30679: 5, + 31039: 6, + 33048: 14, + 32438: 12, + 33449: 15, + 35783: 19, + 35785: 19, + 37406: 23, + 35146: 18, + 35735: 47, + 37609: 24, + 39348: 54, + 40646: 29, + 40875: 30, + 45493: 18, + 45455: 17, + 47965: 44, + 48402: 30, + 51814: 37, + 51459: 36, + 48319: 29, + 53261: 44, + 53043: 43, + 52650: 40, + 52685: 41, + 52478: 39, + 53064: 42, + 58001: 64, + 59708: 1, + 58181: 66, + 60712: 72, + 59458: 68, + 59774: 69, + 60584: 71, + 60212: 70, + 60795: 73, + 63503: 78, + 60992: 75, + 60978: 74, + 65477: 80, + 66634: 82, + 66738: 83, + 67231: 84, + 67848: 86, + 66198: 81, + 75458: 12, + 81292: 17, + 81290: 16, + 78527: 13, + 83608: 21, + 85819: 24, + 85829: 25, + 87585: 32, + 90905: 45, + 90156: 39, + 93713: 51, + 94779: 1, + 91755: 46, + 93340: 49, + 92997: 48, + 94302: 53, + 94490: 54, + 92512: 47, + 97635: 20, + 97870: 23, + 99655: 33, + 108165: 13, + 108772: 14, + 108925: 15, + 109556: 22, + 109492: 21, + 109857: 23, + 110991: 27, + 110988: 27, + 114104: 1, + 118243: 8, + 117863: 7, + 114365: 2, + 117301: 5, + 1960: 12, + 330: 9, + 2599: 15, + 531: 10, + 2474: 13, + 2707: 16, + 6686: 37, + 8046: 44, + 8886: 45, + 6312: 35, + 5589: 32, + 9564: 52, + 9573: 53, + 10438: 55, + 23522: 10, + 24348: 14, + 25769: 17, + 26408: 19, + 22783: 9, + 27046: 23, + 30278: 3, + 29919: 1, + 31676: 8, + 29490: 36, + 34572: 17, + 37934: 49, + 37949: 51, + 40474: 56, + 39261: 53, + 41704: 1, + 43644: 5, + 40772: 57, + 42527: 4, + 43903: 6, + 42080: 2, + 42438: 3, + 44857: 11, + 45333: 16, + 45075: 14, + 47911: 28, + 46733: 23, + 45038: 13, + 51401: 35, + 50448: 32, + 52353: 38, + 57111: 3, + 61936: 76, + 62423: 7, + 63076: 8, + 63432: 9, + 67627: 10, + 68756: 11, + 80331: 14, + 81660: 18, + 82898: 20, + 82860: 19, + 86036: 26, + 89348: 36, + 83895: 22, + 90344: 42, + 94140: 55, + 95081: 58, + 99500: 68, + 98962: 66, + 101093: 2, + 100221: 71, + 98658: 65, + 98583: 64, + 102422: 3, + 105199: 5, + 106801: 9, + 105268: 6, + 102253: 4, + 105972: 7, + 107418: 10, + 107586: 12, + 108924: 18, + 109005: 20, + 109017: 19, + 110103: 25, + 111797: 30, + 108917: 17, + 110817: 26, + 112724: 32, + 115590: 4, + 117447: 6, + 5518: 31, + 6692: 36, + 7078: 38, + 3721: 23, + 3572: 21, + 9009: 46, + 7965: 43, + 8016: 42, + 9480: 48, + 7650: 40, + 10031: 54, + 9598: 50, + 33104: 43, + 32864: 42, + 40215: 55, + 44390: 8, + 46977: 24, + 47013: 22, + 47654: 27, + 56583: 2, + 56211: 1, + 61281: 5, + 60998: 4, + 61384: 6, + 68956: 3, + 73440: 9, + 75097: 13, + 74793: 11, + 72607: 7, + 73136: 8, + 75152: 14, + 80650: 15, + 85805: 27, + 85852: 29, + 86201: 28, + 89594: 38, + 89448: 37, + 86620: 31, + 86614: 31, + 87728: 34, + 89937: 44, + 89908: 43, + 92782: 52, + 94376: 57, + 98702: 67, + 96100: 61, + 97433: 63, + 94648: 60, + 101260: 73, + 106032: 8, + 107230: 78, # maybe wrong? + 107119: 11, + 109400: 24, + 108535: 16, + 115088: 34, + 111532: 31, + 9763: 49, + 9727: 47, + 70692: 5, + 76008: 15, + 69112: 4, + 77055: 16, + 78661: 18, + 79280: 19, + 79420: 20, + 79822: 21, + 87234: 35, + 88136: 41, + 88127: 40, + 82080: 22, + 94083: 59, + 92112: 50, + 98401: 69, + 99255: 1, + 104105: 77, + 100965: 75, + 101082: 74, + 114222: 33, + 116727: 35, + 110787: 28, + 111056: 29, + 5372: 2, + 11767: 1, + 102208: 76, + 85699: 24, + 85822: 23, + 664: 5, + 2100: 10, + 635: 4, + 145: 29, + 443: 33, + 154: 30, + 2994: 15, + 2787: 14, + 4147: 20, + 2353: 12, + 2762: 13, + 5833: 38, + 5594: 34, + 5951: 39, + 6429: 43, + 6226: 42, + 5985: 40, + 4914: 25, + 9155: 58, + 9165: 58, + 9631: 61, + 10234: 63, + 10305: 66, + 11046: 70, + 10826: 68, + 11261: 71, + 10642: 67, + 11791: 75, + 12530: 84, + 13951: 5, + 12247: 81, + 12048: 79, + 15383: 95, + 14954: 94, + 14040: 7, + 17506: 25, + 17457: 24, + 18255: 32, + 16341: 17, + 17027: 21, + 17167: 22, + 18141: 30, + 18788: 35, + 20507: 42, + 19587: 38, + 19483: 37, + 21139: 45, + 21444: 48, + 21547: 51, + 22109: 57, + 22958: 62, + 22701: 61, + 21278: 46, + 25044: 22, + 25282: 27, + 25737: 31, + 25281: 28, + 23794: 66, + 23941: 68, + 23875: 67, + 23364: 65, + 24674: 20, + 26549: 48, + 26237: 42, + 26268: 45, + 26224: 41, + 26221: 41, + 26235: 43, + 26220: 41, + 26241: 44, + 25923: 36, + 26563: 49, + 30720: 78, + 30700: 9, + 30772: 10, + 29651: 5, + 30867: 11, + 34724: 21, + 34769: 22, + 35080: 24, + 33971: 19, + 34622: 20, + 39079: 27, + 37088: 25, + 39211: 28, + 39863: 29, + 41211: 1, + 41375: 2, + 43305: 14, + 43496: 15, + 46509: 31, + 46221: 28, + 45184: 21, + 45527: 23, + 46776: 32, + 47431: 35, + 48341: 6, + 46982: 33, + 49641: 15, + 51117: 26, + 51135: 27, + 51362: 29, + 50885: 25, + 50100: 20, + 51437: 30, + 52316: 33, + 52913: 40, + 54049: 62, + 53907: 61, + 54849: 69, + 55084: 74, + 56647: 91, + 56127: 87, + 60129: 15, + 60030: 13, + 61941: 29, + 62875: 38, + 63414: 44, + 61558: 25, + 63494: 46, + 63750: 48, + 65323: 65, + 64238: 51, + 65420: 66, + 66249: 79, + 67929: 90, + 66320: 80, + 66006: 74, + 65892: 72, + 70012: 102, + 70755: 105, + 69701: 99, + 70680: 104, + 70794: 106, + 73193: 1, + 72631: 11, + 73165: 16, + 71957: 107, + 73536: 2, + 75342: 8, + 76427: 14, + 76133: 11, + 77227: 25, + 77660: 36, + 77516: 32, + 77464: 30, + 79593: 1, + 79882: 2, + 81300: 12, + 82730: 23, + 84514: 41, + 83262: 30, + 85365: 47, + 88175: 57, + 89962: 58, + 90642: 60, + 90844: 61, + 92117: 5, + 92524: 8, + 95073: 27, + 93526: 14, + 93717: 15, + 93805: 16, + 95066: 26, + 93429: 12, + 96468: 41, + 96807: 45, + 95937: 36, + 96556: 42, + 96483: 39, + 98844: 62, + 99171: 64, + 99473: 65, + 99631: 66, + 101101: 69, + 100977: 68, + 101847: 71, + 101692: 70, + 102624: 3, + 103005: 5, + 102945: 4, + 105729: 20, + 105767: 21, + 103682: 11, + 105164: 15, + 105412: 16, + 103981: 12, + 106942: 24, + 106278: 22, + 109074: 34, + 108991: 32, + 108874: 31, + 110960: 55, + 110395: 48, + 110578: 51, + 108868: 30, + 110023: 44, + 111394: 60, + 111497: 62, + 111710: 63, + 112179: 67, + 113127: 78, + 113781: 82, + 113674: 81, + 115142: 96, + 114724: 90, + 116146: 13, + 116323: 14, + 117375: 20, + 117761: 24, + 118209: 27, + 1562: 8, + 355: 3, + 1803: 9, + 3455: 17, + 4257: 21, + 3909: 19, + 3559: 18, + 4371: 22, + 4587: 23, + 5121: 27, + 5799: 37, + 5485: 32, + 5296: 30, + 5164: 28, + 5364: 31, + 6539: 44, + 6537: 45, + 6748: 47, + 6670: 46, + 8645: 55, + 8497: 53, + 11345: 72, + 12107: 80, + 12002: 77, + 14060: 8, + 14168: 9, + 13701: 3, + 12390: 83, + 12770: 89, + 14293: 10, + 15244: 14, + 15197: 13, + 16537: 18, + 17378: 23, + 17593: 26, + 18543: 34, + 19849: 40, + 21296: 47, + 19777: 39, + 22024: 56, + 21986: 55, + 23221: 63, + 21594: 53, + 23231: 64, + 23972: 69, + 25247: 29, + 24244: 3, + 24327: 4, + 24873: 7, + 24845: 6, + 25202: 8, + 27658: 55, + 28321: 1, + 28325: 2, + 28574: 3, + 27288: 14, + 28103: 16, + 28910: 18, + 30073: 7, + 29885: 6, + 33160: 14, + 32492: 11, + 33345: 18, + 37447: 26, + 38048: 5, + 38372: 8, + 37891: 4, + 37842: 2, + 37843: 2, + 38427: 10, + 38382: 9, + 42146: 3, + 40084: 19, + 41067: 22, + 42509: 6, + 40035: 18, + 43822: 17, + 44883: 19, + 44961: 20, + 43067: 12, + 45526: 24, + 46390: 30, + 46365: 29, + 45811: 27, + 47249: 34, + 47427: 37, + 45588: 25, + 45751: 26, + 47452: 38, + 48437: 8, + 49812: 17, + 49865: 18, + 49402: 40, + 49841: 41, + 48356: 39, + 50140: 21, + 50414: 22, + 52980: 41, + 56633: 21, + 55874: 16, + 55687: 14, + 55282: 12, + 56802: 24, + 61318: 21, + 61969: 28, + 61740: 26, + 62985: 40, + 64625: 56, + 64224: 50, + 64078: 49, + 66131: 77, + 66803: 82, + 65074: 62, + 66098: 76, + 67172: 86, + 65581: 68, + 68888: 94, + 68940: 95, + 69127: 96, + 69427: 98, + 70336: 2, + 69974: 100, + 73473: 19, + 73310: 18, + 73249: 17, + 74785: 27, + 72934: 13, + 73133: 15, + 72489: 7, + 75379: 31, + 76219: 37, + 76333: 38, + 78436: 50, + 79387: 16, + 79672: 18, + 79375: 15, + 79005: 11, + 79540: 17, + 78207: 48, + 80628: 3, + 81377: 13, + 82369: 20, + 84880: 53, + 86284: 57, + 86565: 56, + 88404: 69, + 88048: 64, + 94385: 20, + 97928: 56, + 97966: 57, + 97967: 57, + 96327: 37, + 97650: 51, + 98953: 65, + 99529: 1, + 99918: 3, + 100027: 5, + 99572: 2, + 100064: 6, + 100310: 8, + 98633: 63, + 100345: 9, + 103045: 6, + 102618: 2, + 101923: 14, + 105574: 17, + 103401: 7, + 105761: 19, + 104459: 13, + 105668: 18, + 106786: 23, + 107382: 46, + 107487: 47, + 107517: 48, + 107095: 42, + 107232: 44, + 107302: 45, + 108036: 51, + 110003: 43, + 110273: 46, + 109460: 37, + 109472: 38, + 109139: 33, + 109624: 39, + 110000: 42, + 110602: 50, + 110179: 45, + 112961: 73, + 111123: 57, + 111200: 58, + 112615: 70, + 113031: 74, + 111086: 56, + 112542: 69, + 112716: 71, + 113996: 83, + 114939: 92, + 114855: 91, + 115033: 93, + 115115: 95, + 115126: 94, + 116758: 102, + 116971: 105, + 301: 2, + 910: 6, + 1170: 7, + 3419: 16, + 7345: 49, + 7450: 50, + 6960: 48, + 8102: 52, + 9326: 57, + 9347: 59, + 11783: 76, + 12843: 1, + 13288: 2, + 16803: 20, + 15474: 16, + 16611: 19, + 22263: 58, + 21763: 54, + 22479: 60, + 22325: 59, + 24305: 5, + 23685: 2, + 25985: 11, + 25606: 9, + 25853: 10, + 26865: 12, + 27654: 15, + 27072: 13, + 28816: 17, + 29048: 19, + 31564: 6, + 31700: 8, + 31592: 7, + 33302: 19, + 33092: 15, + 33248: 17, + 32504: 12, + 34045: 23, + 33347: 20, + 37379: 140, + 38211: 6, + 40259: 20, + 40604: 21, + 39524: 14, + 39906: 16, + 42662: 9, + 51069: 42, + 53740: 7, + 55705: 15, + 55598: 13, + 58188: 30, + 57283: 27, + 58587: 31, + 59803: 4, + 61174: 8, + 60965: 7, + 60189: 5, + 64407: 53, + 64520: 54, + 64725: 57, + 64577: 55, + 64924: 61, + 65639: 69, + 66091: 75, + 67139: 85, + 67057: 83, + 65301: 63, + 66015: 73, + 67288: 87, + 67494: 89, + 72194: 5, + 72603: 8, + 72622: 9, + 73945: 21, + 73953: 22, + 75294: 30, + 75118: 29, + 74600: 26, + 75110: 28, + 74493: 25, + 74392: 24, + 75730: 32, + 75944: 34, + 76126: 35, + 77060: 44, + 77853: 46, + 75848: 33, + 76880: 43, + 76628: 41, + 77939: 47, + 77811: 45, + 78400: 49, + 80894: 8, + 80569: 7, + 78821: 8, + 78820: 8, + 79374: 14, + 80343: 4, + 78933: 9, + 78990: 10, + 81724: 24, + 83331: 29, + 80975: 9, + 84012: 35, + 84893: 40, + 86060: 52, + 86263: 55, + 88258: 6, + 86736: 58, + 89440: 16, + 89567: 17, + 90289: 21, + 89439: 15, + 89341: 13, + 89369: 14, + 92390: 29, + 92111: 28, + 92480: 30, + 92747: 33, + 93057: 36, + 93085: 37, + 94141: 41, + 93683: 39, + 95176: 46, + 96950: 55, + 96808: 54, + 95188: 45, + 95168: 44, + 94820: 43, + 95564: 50, + 98258: 61, + 97290: 56, + 97783: 57, + 101751: 13, + 101027: 11, + 100881: 10, + 101123: 12, + 101120: 12, + 101984: 15, + 100195: 7, + 100062: 4, + 102487: 17, + 104974: 29, + 103226: 19, + 104139: 23, + 105168: 31, + 105143: 30, + 103616: 20, + 104019: 22, + 104452: 27, + 104365: 25, + 104963: 28, + 105515: 32, + 106985: 40, + 107556: 49, + 106559: 37, + 107188: 43, + 106723: 39, + 105665: 33, + 105928: 35, + 105881: 34, + 106039: 36, + 108797: 29, + 109332: 35, + 109786: 41, + 110391: 47, + 110778: 53, + 113136: 76, + 113148: 77, + 112211: 66, + 112529: 68, + 111449: 59, + 115404: 97, + 114341: 88, + 114375: 89, + 115438: 98, + 115669: 99, + 118178: 1, + 116904: 104, + 116901: 104, + 116889: 103, + 117089: 106, + 117218: 107, + 117629: 108, + 116247: 101, + 116118: 100, + 9061: 56, + 13835: 6, + 13782: 4, + 14146: 11, + 15382: 15, + 17651: 27, + 17717: 28, + 18216: 33, + 18673: 36, + 21248: 50, + 23474: 1, + 31125: 4, + 31416: 5, + 33152: 16, + 33977: 24, + 34798: 26, + 33856: 22, + 34981: 27, + 34444: 25, + 35037: 28, + 35210: 145, + 35412: 29, + 35415: 30, + 37648: 1, + 37677: 3, + 38835: 11, + 39023: 12, + 39757: 15, + 38170: 7, + 38146: 188, + 51718: 44, + 54682: 11, + 56280: 17, + 59316: 2, + 59394: 3, + 59199: 1, + 61359: 9, + 60425: 6, + 64166: 45, + 64962: 46, + 68269: 47, + 68390: 48, + 69415: 50, + 68895: 49, + 70306: 51, + 70753: 52, + 71974: 4, + 72197: 54, + 72323: 55, + 72357: 56, + 72929: 12, + 73714: 20, + 72378: 57, + 72571: 58, + 73284: 59, + 73566: 60, + 74500: 23, + 76259: 36, + 76470: 39, + 76742: 42, + 78401: 7, + 77840: 2, + 77635: 1, + 77909: 3, + 78265: 6, + 77984: 4, + 76600: 40, + 78104: 5, + 80473: 5, + 80079: 19, + 80112: 20, + 80815: 22, + 79404: 13, + 79399: 12, + 81266: 23, + 82925: 24, + 84626: 39, + 84625: 39, + 82140: 25, + 83196: 26, + 84405: 36, + 85340: 44, + 85755: 51, + 84970: 42, + 87072: 3, + 85084: 43, + 85423: 45, + 88116: 4, + 88469: 9, + 88380: 7, + 89153: 11, + 87706: 63, + 89931: 19, + 91004: 24, + 91066: 25, + 91689: 26, + 92845: 35, + 92761: 32, + 90496: 22, + 92041: 27, + 95503: 49, + 94643: 42, + 95486: 48, + 95477: 47, + 93864: 40, + 93506: 38, + 96729: 53, + 96406: 51, + 96465: 52, + 98353: 60, + 98066: 58, + 98162: 59, + 98688: 62, + 102485: 16, + 104234: 24, + 102978: 18, + 107128: 41, + 106654: 8, + 104750: 3, + 108952: 13, + 108661: 12, + 109789: 16, + 110529: 49, + 111954: 18, + 112862: 21, + 112102: 19, + 114119: 86, + 21393: 52, + 20042: 41, + 20535: 43, + 30122: 1, + 28756: 72, + 32292: 10, + 32759: 13, + 37853: 171, + 38423: 212, + 67153: 1, + 67786: 4, + 67669: 3, + 67457: 2, + 68933: 5, + 74857: 2, + 74604: 1, + 77634: 5, + 76705: 3, + 76945: 4, + 82960: 27, + 82396: 26, + 85696: 34, + 88635: 10, + 90260: 18, + 106067: 5, + 104174: 2, + 106340: 6, + 107608: 10, + 107380: 9, + 106703: 7, + 109422: 15, + 109285: 14, + 111188: 17, + 113246: 23, + 112948: 22, + 15510: 82, + 58799: 89, + 8240: 120, + 33779: 23, + 40282: 16, + 30932: 61, + 61136: 35, + 61966: 39, + 79490: 39, + 26001: 28, + 27890: 36, + 42794: 9, + 25776: 31, + 25336: 24, + 27989: 58, + # 30422: 8, # Monoceros binary B + 37279: 10, + 49669: 32, + 57632: 94, + 86032: 55, + 97649: 53, + 21421: 87, + 31681: 24, + 50583: 41, + 69673: 16, + 677: 21, + 25428: 112, + 37826: 78, + 76267: 5, + 36850: 66, + 14576: 26, + 28360: 34, + 63121: 12, + 91262: 3, + 15863: 33, + 24608: 13, + 67301: 85, + 69481: 17, + 102098: 50, + 53910: 48, + 62956: 77, + 65378: 79, + 4427: 27, + 54061: 50, + 25930: 34, + 26311: 46, + 26727: 50, + 24436: 19, + 27366: 53, + 65474: 67, + 30324: 2, + 32349: 9, + 33579: 21, + 35904: 31, + 80763: 21, + 92855: 34, + 113368: 24, + 85927: 35, + 90185: 20, +} diff --git a/src/starplot/data/library/constellation_borders_inv.gpkg b/src/starplot/data/library/constellation_borders_inv.gpkg index f6fa98af6807377bf8a9dbf615b2b020ca7e77a9..989bf709709f43cb6f3a257f7d3e19ea5b3fbb7d 100644 GIT binary patch delta 1412 zcmah|TTC2P7(VCB?9OE`r<)YEaamw#xs-G%v)AcTIv`k0V{03sq=~q!WZN_XU0@-x zDS@G&F+6N=V#Wtki7{<_X-cON8`IDxR#P8LYpkY?X=wUnj19&YS+w!Y8F$$T#+irz z%>U2#{oj8%Q&Ym!lyD`F?NtB(?76zlzKxv&c+T)ttJpOP9g1IZwIYtZ8qAlAr-#N* zrc>Fmk+gPfwcM8^-=XGEBq&M2=6IJBOEgOfDby4W$F-mL`q?J{KQTND4=`K7D1yo0 zA_$S>f_Uqgi^f&}UNJn)KVVxWWE7ej6Ci~D54{8M9Rgj(Y!q^ec5m`I)>NteGU;O< z0sM%>zQ?uztCUea9uhm1J~Q}V#0-gFU0~Z74>+uGD+k5tE)VDH4)QaScKLCwG5=Qs zG(LIU>kc{mz>P9M_>Ldv8g1XQ(@Y)8;LGl7?lIRF&Oe>)j>WzW4*&{P&(Vkk}MGG+IRy%o?fP3fF6QbH##d-Vtq56t;Z!KW_+UPpXY<#+Y9bSWEueKPfNw)N? z3i3zgB)}ix1MUIWL+9tt9>;C*8&MXPgj!zXRIb|oy6r<-3;U3jnID-E%Mo-8we`4g7Na-S)m4J#D?uI`Y5X=vuly0S|}R z9KboU3A30#1MNy#a5zwCxPE0B9yjcnudzL3BN4hKrcN`k{j<9e_IVv=0S_(#;Xd!M zf6RWsG$IHtxi8MEIdQtDj`O{x@H0>!me4+H_x_owzAT~VsYiz))L@;?DX2pq2%$uo zxu*5ITdH3;(m7pM%lY~h{(Mv)l+jL_{y_)@EXbma_E1-C7)31Ci7+}uT}NWb?=l(Q z+{O9QL`Ule!_zRT`4>Y=1Vt@ZCW0m@!_x?A5@)!b6#n+u2K=SyCiwf&5_psTM-=rG zR2-v+3o$e-oUE~=gg3Yn@l9Os#F1i2@$ExF{Xzs;6lO(wpNv@H#Q^1*Ezy*dH}U)= zm+<5YDl+2vnrhn9*&vm%ac52sjiyJk#rYSzJD(_Y_jUq}7m3InWcDno4GfueePPyL Y9@t{mJM=~cHCi=E;gW$*I7(*yH{zmvH#45cxyoNp+_Vf1vxvy*7CR~tL>Ai1!QeQfA;AI*YPV%pF z9{3~0Gh29R4t-zH-iP8yy9fI_Lqg6=vrj9FH}5IZCgB#4Kp41tan4@H|IKBQ0&at_ z+v8g0{L@)49&t>FUfqSDAE4EiW1p%*?Z8k^@BXx5#5{$$^~JyD+67*^44&q-$3$zW zz`m|7sHqlMC^wX8gET-e|=EbTd*`MiH$1)Z6Hjefll zmNo{kFO?Fs?aL@{VAPP57MqG4iDC|gP0QrHm zO8ec@u3ubz&OgLyvBNRphzqB29!Km4ZRc#;`TzJ1ZkGEPJw!Rg!Bg-JFbOhwt#N$M zAl&7`k{0Aau8Lhh3Y(ytJvj=C<5!Nsx8;?U5(c1MEejp0HWFfE*Wicz6d+Ujx=j!+ zY*X3fEm&^czxvZ8gdeSTrGW$X0q0q9wXhdUwg7hnoritWm4cSiN7uFi`wywYXg@1N zP_wCtqv%bRilRF9MHC(L*4DRFz4cD}$SXD2->s8DcDEU=W3r5@SWf~quoE(hv8yuL z#_q;Zz-_Qy>#={gD&%S`wmXKZEp{x16!uRH4YL6Sg~ZX!Iukt6X@S2gOJGIZ0>j@n zqcFRsqIyGp2XnTdj5zY%T1($=mbuLNem1zTXDBV37R-Ousi>8GqM|RC|1}z`HtUY> zw%Tn$RGUN>!%e<7FmnEm8l$Pt%8oR(kA8>fZB7bi}M7TA~vBy1Sva zb$P4knfY4!`+O6XN-=$vP-j7V7wNgzF6BPf`aF00W "HorizonPlot": + super().__init__( + dt, + ephemeris, + style, + resolution, + hide_colliding_labels, + scale=scale, + autoscale=autoscale, + *args, + **kwargs, + ) + self.logger.debug("Creating HorizonPlot...") + self.alt = altitude + self.az = azimuth + self.center_az = sum(azimuth) / 2 + self.lat = lat + self.lon = lon + + self._crs = ccrs.CRS( + proj4_params=[ + ("proj", "latlong"), + ("a", "6378137"), + ], + globe=ccrs.Globe(ellipse="sphere", flattening=0), + ) + + self._calc_position() + self._init_plot() + self._adjust_radec_minmax() + + def _prepare_coords(self, ra, dec) -> (float, float): + """Converts RA/DEC to AZ/ALT""" + point = SkyfieldStar(ra_hours=ra, dec_degrees=dec) + position = self.observe(point) + pos_apparent = position.apparent() + pos_alt, pos_az, _ = pos_apparent.altaz() + return pos_az.degrees, pos_alt.degrees + + def _plot_kwargs(self) -> dict: + return dict(transform=self._crs) + + def in_bounds(self, ra, dec) -> bool: + """Determine if a coordinate is within the bounds of the plot. + + Args: + ra: Right ascension, in hours (0...24) + dec: Declination, in degrees (-90...90) + + Returns: + True if the coordinate is in bounds, otherwise False + """ + az, alt = self._prepare_coords(ra, dec) + return ( + az < self.az[1] + and az > self.az[0] + and alt < self.alt[1] + and alt > self.alt[0] + ) + + def in_bounds_altaz(self, alt, az, scale: float = 1) -> bool: + """Determine if a coordinate is within the bounds of the plot. + + Args: + alt: Altitude angle in degrees (0...90) + az: Azimuth angle in degrees (0...360) + + Returns: + True if the coordinate is in bounds, otherwise False + """ + # x, y = self._proj.transform_point(az, alt, self._crs) + return ( + az < self.az[1] + and az > self.az[0] + and alt < self.alt[1] + and alt > self.alt[0] + ) + + def _polygon(self, points, style, **kwargs): + super()._polygon(points, style, transform=self._crs, **kwargs) + + def _calc_position(self): + earth = self.ephemeris["earth"] + + self.location = earth + wgs84.latlon(self.lat, self.lon) + self.observe = self.location.at(self.timescale).observe + + # get radec at center horizon + center = self.location.at(self.timescale).from_altaz( + alt_degrees=0, az_degrees=self.center_az + ) + print(self.center_az) + print(center.radec()) + locations = [ + self.location.at(self.timescale).from_altaz( + alt_degrees=self.alt[0], az_degrees=self.az[0] + ), # lower left + self.location.at(self.timescale).from_altaz( + alt_degrees=self.alt[0], az_degrees=self.az[1] + ), # lower right + self.location.at(self.timescale).from_altaz( + alt_degrees=self.alt[1], az_degrees=self.center_az + ), # top center + # self.location.at(self.timescale).from_altaz(alt_degrees=self.alt[1], az_degrees=self.az[0]), # upper left + # self.location.at(self.timescale).from_altaz(alt_degrees=self.alt[1], az_degrees=self.az[1]), # upper right + ] + + self.ra_min = None + self.ra_max = None + self.dec_max = None + self.dec_min = None + + for location in locations: + ra, dec, _ = location.radec() + ra = ra.hours + dec = dec.degrees + if self.ra_min is None or ra < self.ra_min: + self.ra_min = ra + + if self.ra_max is None or ra > self.ra_max: + self.ra_max = ra + + if self.dec_min is None or dec < self.dec_min: + self.dec_min = dec + + if self.dec_max is None or dec > self.dec_max: + self.dec_max = dec + + # self.star = SkyfieldStar(ra_hours=self.ra, dec_degrees=self.dec) + # self.position = self.observe(self.star) + # self.pos_apparent = self.position.apparent() + # self.pos_alt, self.pos_az, _ = self.pos_apparent.altaz() + + # if self.pos_alt.degrees < 0 and self.raise_on_below_horizon: + # raise ValueError("Target is below horizon at specified time/location.") + + def _adjust_radec_minmax(self): + # self.ra_min = self.ra - self.optic.true_fov / 15 * 1.08 + # self.ra_max = self.ra + self.optic.true_fov / 15 * 1.08 + # self.dec_max = self.dec + self.optic.true_fov / 2 * 1.03 + # self.dec_min = self.dec - self.optic.true_fov / 2 * 1.03 + + if self.dec_max > 70 or self.dec_min < -70: + # naive method of getting all the stars near the poles + self.ra_min = 0 + self.ra_max = 24 + + # TODO : below are in ra/dec - need to convert to alt/az + # adjust declination to match extent + extent = self.ax.get_extent(crs=ccrs.PlateCarree()) + self.dec_min = extent[2] + self.dec_max = extent[3] + + # adjust right ascension to match extent + if self.ra_max < 24: + ra_min = (-1 * extent[1]) / 15 + ra_max = (-1 * extent[0]) / 15 + + if ra_min < 0 or ra_max < 0: + ra_min += 24 + ra_max += 24 + + self.ra_min = ra_min + self.ra_max = ra_max + + self.logger.debug( + f"Extent = RA ({self.ra_min:.2f}, {self.ra_max:.2f}) DEC ({self.dec_min:.2f}, {self.dec_max:.2f})" + ) + + def _in_bounds_xy(self, x: float, y: float) -> bool: + return self.in_bounds_altaz(y, x) # alt = y, az = x + + def _prepare_star_coords(self, df): + stars_apparent = self.observe(SkyfieldStar.from_dataframe(df)).apparent() + nearby_stars_alt, nearby_stars_az, _ = stars_apparent.altaz() + df["x"], df["y"] = ( + nearby_stars_az.degrees, + nearby_stars_alt.degrees, + ) + return df + + def _scatter_stars(self, ras, decs, sizes, alphas, colors, style=None, **kwargs): + plotted = super()._scatter_stars( + ras, decs, sizes, alphas, colors, style, **kwargs + ) + + if type(self._background_clip_path) == patches.Rectangle: + # convert to generic path to handle possible rotation angle: + clip_path = path.Path(self._background_clip_path.get_corners()) + plotted.set_clip_path(clip_path, transform=self.ax.transData) + else: + plotted.set_clip_path(self._background_clip_path) + + @use_style(ObjectStyle, "star") + def stars( + self, + mag: float = 6.0, + catalog: StarCatalog = StarCatalog.HIPPARCOS, + style: ObjectStyle = None, + rasterize: bool = False, + size_fn: Callable[[Star], float] = callables.size_by_magnitude, + alpha_fn: Callable[[Star], float] = callables.alpha_by_magnitude, + color_fn: Callable[[Star], str] = None, + where: list = None, + where_labels: list = None, + labels: Mapping[int, str] = STAR_NAMES, + legend_label: str = "Star", + bayer_labels: bool = False, + *args, + **kwargs, + ): + """ + Plots stars + + Args: + mag: Limiting magnitude of stars to plot + catalog: The catalog of stars to use + style: If `None`, then the plot's style for stars will be used + rasterize: If True, then the stars will be rasterized when plotted, which can speed up exporting to SVG and reduce the file size but with a loss of image quality + size_fn: Callable for calculating the marker size of each star. If `None`, then the marker style's size will be used. + alpha_fn: Callable for calculating the alpha value (aka "opacity") of each star. If `None`, then the marker style's alpha will be used. + color_fn: Callable for calculating the color of each star. If `None`, then the marker style's color will be used. + where: A list of expressions that determine which stars to plot. See [Selecting Objects](/reference-selecting-objects/) for details. + where_labels: A list of expressions that determine which stars are labeled on the plot. See [Selecting Objects](/reference-selecting-objects/) for details. + labels: A dictionary that maps a star's HIP id to the label that'll be plotted for that star. If you want to hide name labels, then set this arg to `None`. + legend_label: Label for stars in the legend. If `None`, then they will not be in the legend. + bayer_labels: If True, then Bayer labels for stars will be plotted. Set this to False if you want to hide Bayer labels. + """ + # optic_star_multiplier = 0.57 * (self.FIELD_OF_VIEW_MAX / self.optic.true_fov) + + # def size_fn_mx(st: Star) -> float: + # return size_fn(st) * optic_star_multiplier + + super().stars( + mag=mag, + catalog=catalog, + style=style, + rasterize=rasterize, + size_fn=size_fn, + alpha_fn=alpha_fn, + color_fn=color_fn, + where=where, + where_labels=where_labels, + labels=labels, + legend_label=legend_label, + bayer_labels=bayer_labels, + *args, + **kwargs, + ) + + def _plot_border(self): + # since we're using AzimuthalEquidistant projection, the center will always be (0, 0) + x = 0 + y = 0 + + # Background of Viewable Area + self._background_clip_path = self.optic.patch( + x, + y, + facecolor=self.style.background_color.as_hex(), + linewidth=0, + fill=True, + zorder=ZOrderEnum.LAYER_1, + ) + self.ax.add_patch(self._background_clip_path) + + # Inner Border + inner_border = self.optic.patch( + x, + y, + linewidth=2 * self.scale, + edgecolor=self.style.border_line_color.as_hex(), + fill=False, + zorder=ZOrderEnum.LAYER_5 + 100, + ) + self.ax.add_patch(inner_border) + + # Outer border + outer_border = self.optic.patch( + x, + y, + padding=0.05, + linewidth=20 * self.scale, + edgecolor=self.style.border_bg_color.as_hex(), + fill=False, + zorder=ZOrderEnum.LAYER_5, + ) + self.ax.add_patch(outer_border) + + def _fit_to_ax(self) -> None: + bbox = self.ax.get_window_extent().transformed( + self.fig.dpi_scale_trans.inverted() + ) + width, height = bbox.width, bbox.height + self.fig.set_size_inches(width, height) + + def _init_plot(self): + self._proj = ccrs.LambertAzimuthalEqualArea( + central_longitude=sum(self.az) / 2, + central_latitude=0, + ) + self._proj.threshold = 100 + self.fig = plt.figure( + figsize=(self.figure_size, self.figure_size), + facecolor=self.style.figure_background_color.as_hex(), + layout="constrained", + dpi=DPI, + ) + self.ax = plt.axes(projection=self._proj) + self.ax.xaxis.set_visible(False) + self.ax.yaxis.set_visible(False) + self.ax.axis("off") + + bounds = [ + self.az[0], + self.az[1] * 1.2, + self.alt[0], + self.alt[1], + ] + print(bounds) + + self.ax.set_extent(bounds, crs=ccrs.PlateCarree()) + self.ax.gridlines() + + # self._plot_border() + self._fit_to_ax() + + # self.ax.set_xlim(-1.06 * self.optic.xlim, 1.06 * self.optic.xlim) + # self.ax.set_ylim(-1.06 * self.optic.ylim, 1.06 * self.optic.ylim) + # self.optic.transform(self.ax) diff --git a/src/starplot/map.py b/src/starplot/map.py index 63cab3f3..87da5104 100644 --- a/src/starplot/map.py +++ b/src/starplot/map.py @@ -14,7 +14,7 @@ import numpy as np from starplot import geod -from starplot.base import BasePlot +from starplot.base import BasePlot, DPI from starplot.data import DataFiles, constellations as condata, stars from starplot.data.constellations import CONSTELLATIONS_FULL_NAMES from starplot.mixins import ExtentMaskMixin @@ -28,7 +28,6 @@ PlotStyle, PolygonStyle, PathStyle, - extensions, ) from starplot.styles.helpers import use_style from starplot.utils import lon_to_ra, ra_to_lon @@ -37,7 +36,25 @@ warnings.filterwarnings("ignore", module="cartopy") warnings.filterwarnings("ignore", module="shapely") -DEFAULT_MAP_STYLE = PlotStyle().extend(extensions.MAP) +DEFAULT_MAP_STYLE = PlotStyle() # .extend(extensions.MAP) + + +def points(start, end, num_points=100): + """Generates points along a line segment. + + Args: + start (tuple): (x, y) coordinates of the starting point. + end (tuple): (x, y) coordinates of the ending point. + num_points (int): Number of points to generate. + + Returns: + list: List of (x, y) coordinates of the generated points. + """ + + x_coords = np.linspace(start[0], end[0], num_points) + y_coords = np.linspace(start[1], end[1], num_points) + + return list(zip(x_coords, y_coords)) class MapPlot(BasePlot, ExtentMaskMixin, StarPlotterMixin, DsoPlotterMixin): @@ -60,6 +77,8 @@ class MapPlot(BasePlot, ExtentMaskMixin, StarPlotterMixin, DsoPlotterMixin): resolution: Size (in pixels) of largest dimension of the map hide_colliding_labels: If True, then labels will not be plotted if they collide with another existing label clip_path: An optional Shapely Polygon that specifies the clip path of the plot -- only objects inside the polygon will be plotted. If `None` (the default), then the clip path will be the extent of the map you specified with the RA/DEC parameters. + scale: Scaling factor that will be applied to all sizes in styles (e.g. font size, marker size, line widths, etc). For example, if you want to make everything 2x bigger, then set the scale to 2. At `scale=1` and `resolution=4096` (the default), all sizes are optimized visually for a map that covers 1-3 constellations. So, if you're creating a plot of a _larger_ extent, then it'd probably be good to decrease the scale (i.e. make everything smaller) -- and _increase_ the scale if you're plotting a very small area. + autoscale: If True, then the scale will be set automatically based on resolution. Returns: MapPlot: A new instance of a MapPlot @@ -78,9 +97,11 @@ def __init__( dt: datetime = None, ephemeris: str = "de421_2001.bsp", style: PlotStyle = DEFAULT_MAP_STYLE, - resolution: int = 2048, + resolution: int = 4096, hide_colliding_labels: bool = True, clip_path: Polygon = None, + scale: float = 1.0, + autoscale: bool = False, *args, **kwargs, ) -> "MapPlot": @@ -90,6 +111,8 @@ def __init__( style, resolution, hide_colliding_labels, + scale=scale, + autoscale=autoscale, *args, **kwargs, ) @@ -249,7 +272,7 @@ def constellation_borders(self, style: LineStyle = None): if constellation_borders.empty: return - style_kwargs = style.matplot_kwargs(self._size_multiplier) + style_kwargs = style.matplot_kwargs(self.scale) geometries = [] @@ -265,6 +288,7 @@ def constellation_borders(self, style: LineStyle = None): transform=self._plate_carree, clip_on=True, clip_path=self._background_clip_path, + gid="constellations-border", **style_kwargs, ) @@ -325,9 +349,7 @@ def _plot_constellation_borders(self): mls = MultiLineString(geometries) geometries = unary_union(mls) - style_kwargs = self.style.constellation_borders.matplot_kwargs( - size_multiplier=self._size_multiplier - ) + style_kwargs = self.style.constellation_borders.matplot_kwargs(self.scale) for ls in list(geometries.geoms): # print(ls) @@ -350,7 +372,9 @@ def constellations( labels: dict[str, str] = CONSTELLATIONS_FULL_NAMES, where: list = None, ): - """Plots the constellation lines and/or labels + """Plots the constellation lines and/or labels. + + **Important:** If you're plotting the constellation lines, then it's good to plot them _first_, because Starplot will use the constellation lines to determine where to place labels that are plotted afterwards (labels will look better if they're not crossing a constellation line). Args: style: Styling of the constellations. If None, then the plot's style (specified when creating the plot) will be used @@ -379,7 +403,7 @@ def constellations( transform = self._geodetic conline_hips = condata.lines() - style_kwargs = style.line.matplot_kwargs(size_multiplier=self._size_multiplier) + style_kwargs = style.line.matplot_kwargs(self.scale) for c in constellations_gdf.itertuples(): obj = constellation_from_tuple(c) @@ -416,19 +440,45 @@ def constellations( # s1_ra, s1_dec = self._proj.transform_point(s1_ra, s1.dec_degrees, self._geodetic) # s2_ra, s2_dec = self._proj.transform_point(s2_ra, s2.dec_degrees, self._geodetic) - self.ax.plot( + constellation_line = self.ax.plot( [s1_ra, s2_ra], [s1_dec, s2_dec], transform=transform, **style_kwargs, clip_on=True, clip_path=self._background_clip_path, + gid="constellations-line", + )[0] + + extent = constellation_line.get_window_extent( + renderer=self.fig.canvas.get_renderer() ) + if extent.xmin < 0: + continue + + start = self._proj.transform_point(s1_ra, s1_dec, self._geodetic) + end = self._proj.transform_point(s2_ra, s2_dec, self._geodetic) + radius = style_kwargs.get("linewidth") or 1 + + if any([np.isnan(n) for n in start + end]): + continue + + for x, y in points(start, end, 25): + x0, y0 = self.ax.transData.transform((x, y)) + if x0 < 0 or y0 < 0: + continue + self._constellations_rtree.insert( + 0, + np.array((x0 - radius, y0 - radius, x0 + radius, y0 + radius)), + obj=obj.name, + ) + if inbounds: self._objects.constellations.append(obj) self._plot_constellation_labels(style.label, labels) + # self._plot_constellation_labels_experimental(style.label, labels) def _plot_constellation_labels( self, @@ -440,6 +490,75 @@ def _plot_constellation_labels( for con in condata.iterator(): _, ra, dec = condata.get(con) text = labels.get(con.lower()) + self.text( + text, + ra, + dec, + style, + hide_on_collision=False, + gid="constellations-label-name", + ) + + def _plot_constellation_labels_experimental( + self, + style: PathStyle = None, + labels: dict[str, str] = CONSTELLATIONS_FULL_NAMES, + ): + from shapely import ( + MultiPoint, + intersection, + delaunay_triangles, + distance, + ) + + def sorter(g): + d = distance(g.centroid, points.centroid) + # d = distance(g.centroid, constellation.boundary.centroid) + extent = abs(g.bounds[2] - g.bounds[0]) + area = g.area / constellation.boundary.area + return (extent**2 + area) - (d**2) + + for constellation in self.objects.constellations: + constellation_stars = [ + s + for s in self.objects.stars + if s.constellation_id == constellation.iau_id + ] + points = MultiPoint([(s.ra, s.dec) for s in constellation_stars]) + + triangles = delaunay_triangles( + geometry=points, + # tolerance=2, + ) + + polygons = [] + for t in triangles.geoms: + try: + inter = intersection(t, constellation.boundary) + except Exception: + continue + if ( + inter.geom_type == "Polygon" + and len(list(zip(*inter.exterior.coords.xy))) > 2 + ): + polygons.append(inter) + + p_by_area = {pg.area: pg for pg in polygons} + polygons_sorted = [ + p_by_area[k] for k in sorted(p_by_area.keys(), reverse=True) + ] + + # sort by combination of horizontal extent and area + polygons_sorted = sorted(polygons_sorted, key=sorter, reverse=True) + + if len(polygons_sorted) > 0: + i = 0 + ra, dec = polygons_sorted[i].centroid.x, polygons_sorted[i].centroid.y + else: + ra, dec = constellation.ra, constellation.dec + + text = labels.get(constellation.iau_id) + style = style or self.style.constellation.label self.text(text, ra, dec, style) @use_style(PolygonStyle, "milky_way") @@ -554,7 +673,7 @@ def horizon( TODO : investigate why line is extra thick on bottom when plotting line """ - style_kwargs = style.line.matplot_kwargs(self._size_multiplier) + style_kwargs = style.line.matplot_kwargs(self.scale) style_kwargs["clip_on"] = False style_kwargs["edgecolor"] = style_kwargs.pop("color") @@ -574,7 +693,7 @@ def horizon( x, y, dash_capstyle=style.line.dash_capstyle, - **style.line.matplot_kwargs(self._size_multiplier), + **style.line.matplot_kwargs(self.scale), **style_kwargs, **self._plot_kwargs(), ) @@ -597,10 +716,13 @@ def horizon( cardinal_directions = [north, east, south, west] text_kwargs = dict( - **style.label.matplot_kwargs(self._size_multiplier), + **style.label.matplot_kwargs(self.scale), hide_on_collision=False, - xytext=(style.label.offset_x, style.label.offset_y), - textcoords="offset pixels", + xytext=( + style.label.offset_x * self.scale, + style.label.offset_y * self.scale, + ), + textcoords="offset points", path_effects=[], ) @@ -609,7 +731,7 @@ def horizon( for i, position in enumerate(cardinal_directions): ra, dec, _ = position.radec() - self._text(ra.hours, dec.degrees, labels[i], **text_kwargs) + self._text(ra.hours, dec.degrees, labels[i], force=True, **text_kwargs) @use_style(PathStyle, "gridlines") def gridlines( @@ -664,6 +786,7 @@ def dec_formatter(x, pos) -> str: ypadding=12, clip_on=True, clip_path=self._background_clip_path, + gid="gridlines", **line_style_kwargs, ) @@ -681,6 +804,7 @@ def dec_formatter(x, pos) -> str: self.ax.plot( (ra * 15, ra * 15), (-90, 90), + gid="gridlines", **line_style_kwargs, **self._plot_kwargs(), ) @@ -732,6 +856,7 @@ def _init_plot(self): figsize=(self.figure_size, self.figure_size), facecolor=self.style.figure_background_color.as_hex(), layout="constrained", + dpi=DPI, ) bounds = self._latlon_bounds() center_lat = (bounds[2] + bounds[3]) / 2 @@ -800,7 +925,7 @@ def info(self, style: LabelStyle = None): 0.05, info, transform=self.ax.transAxes, - **style.matplot_kwargs(self._size_multiplier * 1.36), + **style.matplot_kwargs(self.scale), ) def _plot_background_clip_path(self): @@ -830,7 +955,7 @@ def to_axes(points): fill=True, facecolor=self.style.background_color.as_hex(), # edgecolor=self.style.border_line_color.as_hex(), - linewidth=0, # 4 * self._size_multiplier, + linewidth=0, zorder=-2_000, transform=self.ax.transAxes, ) diff --git a/src/starplot/optic.py b/src/starplot/optic.py index 7d1627eb..181b3272 100644 --- a/src/starplot/optic.py +++ b/src/starplot/optic.py @@ -8,7 +8,7 @@ from skyfield.api import wgs84, Star as SkyfieldStar from starplot import callables -from starplot.base import BasePlot +from starplot.base import BasePlot, DPI from starplot.data.stars import StarCatalog, STAR_NAMES from starplot.mixins import ExtentMaskMixin from starplot.models import Star @@ -44,6 +44,8 @@ class OpticPlot(BasePlot, ExtentMaskMixin, StarPlotterMixin, DsoPlotterMixin): resolution: Size (in pixels) of largest dimension of the map hide_colliding_labels: If True, then labels will not be plotted if they collide with another existing label raise_on_below_horizon: If True, then a ValueError will be raised if the target is below the horizon at the observing time/location + scale: Scaling factor that will be applied to all sizes in styles (e.g. font size, marker size, line widths, etc). For example, if you want to make everything 2x bigger, then set the scale to 2. At `scale=1` and `resolution=4096` (the default), all sizes are optimized visually for a map that covers 1-3 constellations. So, if you're creating a plot of a _larger_ extent, then it'd probably be good to decrease the scale (i.e. make everything smaller) -- and _increase_ the scale if you're plotting a very small area. + autoscale: If True, then the scale will be set automatically based on resolution. Returns: OpticPlot: A new instance of an OpticPlot @@ -62,9 +64,11 @@ def __init__( dt: datetime = None, ephemeris: str = "de421_2001.bsp", style: PlotStyle = DEFAULT_OPTIC_STYLE, - resolution: int = 2048, + resolution: int = 4096, hide_colliding_labels: bool = True, raise_on_below_horizon: bool = True, + scale: float = 1.0, + autoscale: bool = False, *args, **kwargs, ) -> "OpticPlot": @@ -74,6 +78,8 @@ def __init__( style, resolution, hide_colliding_labels, + scale=scale, + autoscale=autoscale, *args, **kwargs, ) @@ -193,6 +199,7 @@ def _scatter_stars(self, ras, decs, sizes, alphas, colors, style=None, **kwargs) else: plotted.set_clip_path(self._background_clip_path) + @use_style(ObjectStyle, "star") def stars( self, mag: float = 6.0, @@ -207,6 +214,7 @@ def stars( labels: Mapping[int, str] = STAR_NAMES, legend_label: str = "Star", bayer_labels: bool = False, + flamsteed_labels: bool = False, *args, **kwargs, ): @@ -225,12 +233,16 @@ def stars( where_labels: A list of expressions that determine which stars are labeled on the plot. See [Selecting Objects](/reference-selecting-objects/) for details. labels: A dictionary that maps a star's HIP id to the label that'll be plotted for that star. If you want to hide name labels, then set this arg to `None`. legend_label: Label for stars in the legend. If `None`, then they will not be in the legend. - bayer_labels: If True, then Bayer labels for stars will be plotted. Set this to False if you want to hide Bayer labels. + bayer_labels: If True, then Bayer labels for stars will be plotted. + flamsteed_labels: If True, then Flamsteed number labels for stars will be plotted. """ - optic_star_multiplier = 0.4 * (self.FIELD_OF_VIEW_MAX / self.optic.true_fov) + optic_star_multiplier = self.FIELD_OF_VIEW_MAX / self.optic.true_fov + size_fn_mx = None - def size_fn_mx(st: Star) -> float: - return size_fn(st) * optic_star_multiplier + if size_fn is not None: + + def size_fn_mx(s): + return size_fn(s) * optic_star_multiplier super().stars( mag=mag, @@ -245,6 +257,7 @@ def size_fn_mx(st: Star) -> float: labels=labels, legend_label=legend_label, bayer_labels=bayer_labels, + flamsteed_labels=flamsteed_labels, *args, **kwargs, ) @@ -268,7 +281,7 @@ def info(self, style: LabelStyle = None): ) # apply transform again because new xy limits will undo the transform dt_str = self.dt.strftime("%m/%d/%Y @ %H:%M:%S") + " " + self.dt.tzname() - font_size = style.font_size * self._size_multiplier * 2 + font_size = style.font_size * self.scale column_labels = [ "Target (Alt/Az)", @@ -296,19 +309,17 @@ def info(self, style: LabelStyle = None): edges="vertical", ) table.auto_set_font_size(False) - table.set_fontsize(font_size) + table.set_fontsize(style.font_size) table.scale(1, 3.1) # Apply style to all cells for row in [0, 1]: for col in range(len(values)): - table[row, col].set_text_props( - **style.matplot_kwargs(self._size_multiplier) - ) + table[row, col].set_text_props(**style.matplot_kwargs(self.scale)) # Apply some styles only to the header row for col in range(len(values)): - table[0, col].set_text_props(fontweight="heavy", fontsize=font_size * 1.15) + table[0, col].set_text_props(fontweight="heavy", fontsize=font_size * 1.2) def _plot_border(self): # since we're using AzimuthalEquidistant projection, the center will always be (0, 0) @@ -330,7 +341,7 @@ def _plot_border(self): inner_border = self.optic.patch( x, y, - linewidth=2 * self._size_multiplier, + linewidth=2 * self.scale, edgecolor=self.style.border_line_color.as_hex(), fill=False, zorder=ZOrderEnum.LAYER_5 + 100, @@ -342,7 +353,7 @@ def _plot_border(self): x, y, padding=0.05, - linewidth=20 * self._size_multiplier, + linewidth=20 * self.scale, edgecolor=self.style.border_bg_color.as_hex(), fill=False, zorder=ZOrderEnum.LAYER_5, @@ -366,6 +377,7 @@ def _init_plot(self): figsize=(self.figure_size, self.figure_size), facecolor=self.style.figure_background_color.as_hex(), layout="constrained", + dpi=DPI, ) self.ax = plt.axes(projection=self._proj) self.ax.xaxis.set_visible(False) diff --git a/src/starplot/plotters/dsos.py b/src/starplot/plotters/dsos.py index a991520f..d2b5309c 100644 --- a/src/starplot/plotters/dsos.py +++ b/src/starplot/plotters/dsos.py @@ -222,7 +222,9 @@ def dsos( ) if label: - self.text(label, ra / 15, dec, style.label) + self.text( + label, ra / 15, dec, style.label, gid=f"dso-{d.type}-label" + ) else: # if no major axis, then just plot as a marker @@ -232,6 +234,8 @@ def dsos( style=style, label=label, skip_bounds_check=True, + gid_marker=f"dso-{d.type}-marker", + gid_label=f"dso-{d.type}-label", ) self._objects.dsos.append(_dso) diff --git a/src/starplot/plotters/stars.py b/src/starplot/plotters/stars.py index f5012873..d3cca6ac 100644 --- a/src/starplot/plotters/stars.py +++ b/src/starplot/plotters/stars.py @@ -3,11 +3,13 @@ from skyfield.api import Star as SkyfieldStar +# import numpy as np + from starplot import callables -from starplot.data import bayer, stars +from starplot.data import bayer, stars, flamsteed from starplot.data.stars import StarCatalog, STAR_NAMES from starplot.models.star import Star, from_tuple -from starplot.styles import ObjectStyle, LabelStyle, use_style +from starplot.styles import ObjectStyle, use_style class StarPlotterMixin: @@ -64,6 +66,7 @@ def _scatter_stars(self, ras, decs, sizes, alphas, colors, style=None, **kwargs) zorder=kwargs.pop("zorder", None) or style.marker.zorder, edgecolors=edge_colors, alpha=alphas, + gid="stars", **self._plot_kwargs(), **kwargs, ) @@ -77,24 +80,90 @@ def _scatter_stars(self, ras, decs, sizes, alphas, colors, style=None, **kwargs) def _star_labels( self, star_objects: list[Star], + star_sizes: list[float], where_labels: list, - style: LabelStyle, + style: ObjectStyle, labels: Mapping[str, str], bayer_labels: bool, + flamsteed_labels: bool, label_fn: Callable[[Star], str], ): - for s in star_objects: + _bayer = [] + _flamsteed = [] + + # Plot all star common names first + for i, s in enumerate(star_objects): if where_labels and not all([e.evaluate(s) for e in where_labels]): continue + if ( + s.hip + and s.hip in self._labeled_stars + or s.tyc + and s.tyc in self._labeled_stars + ): + continue + elif s.hip: + self._labeled_stars.append(s.hip) + elif s.tyc: + self._labeled_stars.append(s.tyc) + label = labels.get(s.hip) if label_fn is None else label_fn(s) bayer_desig = bayer.hip.get(s.hip) + flamsteed_num = flamsteed.hip.get(s.hip) if label: - self.text(label, s.ra, s.dec, style) + self.text( + label, + s.ra, + s.dec, + # style, + # _offset(style, star_sizes[i]), + style=style.label.offset_from_marker( + marker_symbol=style.marker.symbol, + marker_size=star_sizes[i], + scale=self.scale, + ), + hide_on_collision=self.hide_colliding_labels, + gid="stars-label-name", + ) if bayer_labels and bayer_desig: - self.text(bayer_desig, s.ra, s.dec, self.style.bayer_labels) + _bayer.append((bayer_desig, s.ra, s.dec, star_sizes[i], s.hip)) + + if flamsteed_labels and flamsteed_num: + _flamsteed.append((flamsteed_num, s.ra, s.dec, star_sizes[i], s.hip)) + + # Plot bayer/flamsteed + for bayer_desig, ra, dec, star_size, _ in _bayer: + self.text( + bayer_desig, + ra, + dec, + style=self.style.bayer_labels.offset_from_marker( + marker_symbol=style.marker.symbol, + marker_size=star_size, + scale=self.scale, + ), + hide_on_collision=self.hide_colliding_labels, + gid="stars-label-bayer", + ) + + for flamsteed_num, ra, dec, star_size, hip in _flamsteed: + if hip in bayer.hip: + continue + self.text( + flamsteed_num, + ra, + dec, + style=self.style.flamsteed_labels.offset_from_marker( + marker_symbol=style.marker.symbol, + marker_size=star_size, + scale=self.scale, + ), + hide_on_collision=self.hide_colliding_labels, + gid="stars-label-flamsteed", + ) def _prepare_star_coords(self, df): df["x"], df["y"] = ( @@ -119,6 +188,7 @@ def stars( labels: Mapping[int, str] = STAR_NAMES, legend_label: str = "Star", bayer_labels: bool = False, + flamsteed_labels: bool = False, *args, **kwargs, ): @@ -138,7 +208,8 @@ def stars( where_labels: A list of expressions that determine which stars are labeled on the plot. See [Selecting Objects](/reference-selecting-objects/) for details. labels: A dictionary that maps a star's HIP id to the label that'll be plotted for that star. If you want to hide name labels, then set this arg to `None`. legend_label: Label for stars in the legend. If `None`, then they will not be in the legend. - bayer_labels: If True, then Bayer labels for stars will be plotted. Set this to False if you want to hide Bayer labels. + bayer_labels: If True, then Bayer labels for stars will be plotted. + flamsteed_labels: If True, then Flamsteed number labels for stars will be plotted. """ self.logger.debug("Plotting stars...") @@ -160,8 +231,6 @@ def stars( else: labels = {**STAR_NAMES, **labels} - star_size_multiplier = self._size_multiplier * style.marker.size / 5 - nearby_stars_df = self._load_stars(catalog, mag) nearby_stars = SkyfieldStar.from_dataframe(nearby_stars_df) astrometric = self.ephemeris["earth"].at(self.timescale).observe(nearby_stars) @@ -180,12 +249,36 @@ def stars( if not all([e.evaluate(obj) for e in where]): continue - size = size_fn(obj) * star_size_multiplier + size = size_fn(obj) * self.scale**2 alpha = alpha_fn(obj) color = color_fn(obj) or style.marker.color.as_hex() starz.append((star.x, star.y, size, alpha, color, obj)) + # Experimental code for keeping spatial index of plotted stars (for better label placement) + # if getattr(self, "_geodetic", None): + # # TODO : clean up! + # x, y = self._proj.transform_point( + # star.ra * -1, star.dec, self._geodetic + # ) + # x0, y0 = self.ax.transData.transform((x, y)) + + # if ( + # x0 < 0 + # or y0 < 0 + # or obj.magnitude > 5 + # or np.isnan(x0) + # or np.isnan(y0) + # ): + # continue + # radius = 1 + (5 - obj.magnitude) + # # radius = max(((size**0.5 / 2) / self.scale)/1.44 - 6, 0) #size / self.scale**2 / 200 + # self._stars_rtree.insert( + # 0, + # np.array((x0 - radius, y0 - radius, x0 + radius, y0 + radius)), + # obj=star.x, + # ) + starz.sort(key=lambda s: s[2], reverse=True) # sort by descending size if not starz: @@ -215,6 +308,14 @@ def stars( self._add_legend_handle_marker(legend_label, style.marker) - self._star_labels( - star_objects, where_labels, style.label, labels, bayer_labels, label_fn - ) + if labels: + self._star_labels( + star_objects, + sizes, + where_labels, + style, + labels, + bayer_labels, + flamsteed_labels, + label_fn, + ) diff --git a/src/starplot/styles/base.py b/src/starplot/styles/base.py index 82f97bc6..94e6525c 100644 --- a/src/starplot/styles/base.py +++ b/src/starplot/styles/base.py @@ -1,8 +1,8 @@ import json + from enum import Enum from pathlib import Path -from typing import Optional, Union -from functools import cache +from typing import Optional, Union, List import yaml @@ -14,7 +14,14 @@ from starplot.data.dsos import DsoType from starplot.styles.helpers import merge_dict -from starplot.styles.markers import ellipse, circle_cross, circle_line +from starplot.styles.markers import ( + ellipse, + circle_cross, + circle_crosshair, + circle_line, + circle_dot, + circle_dotted_rings, +) ColorStr = Annotated[ @@ -26,10 +33,11 @@ ] -FONT_SCALE = 2 - HERE = Path(__file__).resolve().parent +PI = 3.141592653589793 +SQR_2 = 1.41421356237 + class BaseStyle(BaseModel): __hash__ = object.__hash__ @@ -97,9 +105,6 @@ class MarkerSymbolEnum(str, Enum): SQUARE_STRIPES_DIAGONAL = "square_stripes_diagonal" """\u25A8""" - # SQUARE_CROSSHAIR = "square_crosshair" - # """\u2BD0""" - STAR = "star" """\u2605""" @@ -118,9 +123,17 @@ class MarkerSymbolEnum(str, Enum): CIRCLE_CROSS = "circle_cross" """\u1AA0""" + CIRCLE_CROSSHAIR = "circle_crosshair" + """No preview available, but this is the standard symbol for planetary nebulae""" + + CIRCLE_DOT = "circle_dot" + """\u29BF""" + CIRCLE_DOTTED_EDGE = "circle_dotted_edge" """\u25CC""" + CIRCLE_DOTTED_RINGS = "circle_dotted_rings" + CIRCLE_LINE = "circle_line" """\u29B5""" @@ -150,7 +163,10 @@ def as_matplot(self) -> str: MarkerSymbolEnum.TRIANGLE: "^", MarkerSymbolEnum.CIRCLE_PLUS: "$\u2295$", MarkerSymbolEnum.CIRCLE_CROSS: circle_cross(), + MarkerSymbolEnum.CIRCLE_CROSSHAIR: circle_crosshair(), + MarkerSymbolEnum.CIRCLE_DOT: circle_dot(), MarkerSymbolEnum.CIRCLE_DOTTED_EDGE: "$\u25CC$", + MarkerSymbolEnum.CIRCLE_DOTTED_RINGS: circle_dotted_rings(), MarkerSymbolEnum.CIRCLE_LINE: circle_line(), MarkerSymbolEnum.COMET: "$\u2604$", MarkerSymbolEnum.STAR_8: "$\u2734$", @@ -222,6 +238,11 @@ def as_matplot(self) -> dict: return style + @staticmethod + def from_str(value: str) -> "AnchorPointEnum": + options = {ap.value: ap for ap in AnchorPointEnum} + return options.get(value) + class ZOrderEnum(int, Enum): """ @@ -245,19 +266,6 @@ class ZOrderEnum(int, Enum): class MarkerStyle(BaseStyle): """ Styling properties for markers. - - ???- tip "Example Usage" - Creates a style for a red triangle marker: - ```python - m = MarkerStyle( - color="#b13737", - symbol="triangle", - size=8, - fill="full", - alpha=1.0, - zorder=100, - ) - ``` """ color: Optional[ColorStr] = ColorStr("#000") @@ -266,14 +274,20 @@ class MarkerStyle(BaseStyle): edge_color: Optional[ColorStr] = ColorStr("#000") """Edge color of marker. Can be a hex, rgb, hsl, or word string.""" - edge_width: int = 1 - """Edge width of marker. Not available for all marker symbols.""" + edge_width: float = 1 + """Edge width of marker, in points. Not available for all marker symbols.""" + + line_style: Union[LineStyleEnum, tuple] = LineStyleEnum.SOLID + """Edge line style. Can be a predefined value in `LineStyleEnum` or a [Matplotlib linestyle tuple](https://matplotlib.org/stable/gallery/lines_bars_and_markers/linestyles.html).""" + + dash_capstyle: DashCapStyleEnum = DashCapStyleEnum.PROJECTING + """Style of dash endpoints""" symbol: MarkerSymbolEnum = MarkerSymbolEnum.POINT """Symbol for marker""" - size: int = 4 - """Relative size of marker""" + size: float = 22 + """Size of marker in points""" fill: FillStyleEnum = FillStyleEnum.NONE """Fill style of marker""" @@ -281,53 +295,59 @@ class MarkerStyle(BaseStyle): alpha: float = 1.0 """Alpha value (controls transparency)""" - zorder: int = -1 + zorder: int = ZOrderEnum.LAYER_2 """Zorder of marker""" @property def symbol_matplot(self) -> str: return MarkerSymbolEnum(self.symbol).as_matplot() - @cache - def matplot_kwargs(self, size_multiplier: float = 1.0) -> dict: + def matplot_kwargs(self, scale: float = 1.0) -> dict: return dict( color=self.color.as_hex() if self.color else "none", markeredgecolor=self.edge_color.as_hex() if self.edge_color else "none", marker=MarkerSymbolEnum(self.symbol).as_matplot(), - markersize=self.size * size_multiplier * FONT_SCALE, + markersize=self.size * scale, fillstyle=self.fill, alpha=self.alpha, zorder=self.zorder, ) + def matplot_scatter_kwargs(self, scale: float = 1.0) -> dict: + plot_kwargs = self.matplot_kwargs(scale) + plot_kwargs["edgecolors"] = plot_kwargs.pop("markeredgecolor") + + # matplotlib's plot() function takes the marker size in points diameter + # and the scatter() function takes it in points squared + plot_kwargs["s"] = ((plot_kwargs.pop("markersize") / scale) ** 2) * (scale**2) + + plot_kwargs["c"] = plot_kwargs.pop("color") + plot_kwargs["linewidths"] = self.edge_width * scale + plot_kwargs["linestyle"] = self.line_style + plot_kwargs["capstyle"] = self.dash_capstyle + + plot_kwargs.pop("fillstyle") + + return plot_kwargs + def to_polygon_style(self): return PolygonStyle( fill_color=self.color.as_hex() if self.color else None, edge_color=self.edge_color.as_hex() if self.edge_color else None, + edge_width=self.edge_width, alpha=self.alpha, zorder=self.zorder, + line_style=self.line_style, ) class LineStyle(BaseStyle): """ Styling properties for lines. - - ???- tip "Example Usage" - Creates a style for a dashed green line: - ```python - ls = LineStyle( - width=2, - color="#6ba832", - style="dashed", - alpha=0.2, - zorder=-10, - ) - ``` """ - width: float = 2 - """Width of line""" + width: float = 4 + """Width of line in points""" color: ColorStr = ColorStr("#000") """Color of the line. Can be a hex, rgb, hsl, or word string.""" @@ -341,17 +361,17 @@ class LineStyle(BaseStyle): alpha: float = 1.0 """Alpha value (controls transparency)""" - zorder: int = -1 + zorder: int = ZOrderEnum.LAYER_2 """Zorder of the line""" edge_width: int = 0 - """Width of the line's edge. _If the width or color is falsey then the line will NOT be drawn with an edge._""" + """Width of the line's edge in points. _If the width or color is falsey then the line will NOT be drawn with an edge._""" edge_color: Optional[ColorStr] = None """Edge color of the line. _If the width or color is falsey then the line will NOT be drawn with an edge._""" - def matplot_kwargs(self, size_multiplier: float = 1.0) -> dict: - line_width = self.width * size_multiplier + def matplot_kwargs(self, scale: float = 1.0) -> dict: + line_width = self.width * scale result = dict( color=self.color.as_hex(), @@ -365,7 +385,7 @@ def matplot_kwargs(self, size_multiplier: float = 1.0) -> dict: if self.edge_width and self.edge_color: result["path_effects"] = [ patheffects.withStroke( - linewidth=line_width + 2 * self.edge_width * size_multiplier, + linewidth=line_width + 2 * self.edge_width * scale, foreground=self.edge_color.as_hex(), ) ] @@ -376,21 +396,10 @@ def matplot_kwargs(self, size_multiplier: float = 1.0) -> dict: class PolygonStyle(BaseStyle): """ Styling properties for polygons. - - ???- tip "Example Usage" - Creates a style for a partially transparent blue polygon: - ```python - ps = PolygonStyle( - color="#d9d9d9", - alpha=0.36, - edge_width=0, - zorder=-10000, - ) - ``` """ - edge_width: int = 1 - """Width of the polygon's edge""" + edge_width: float = 1 + """Width of the polygon's edge in points""" color: Optional[ColorStr] = None """If specified, this will be the fill color AND edge color of the polygon""" @@ -410,12 +419,12 @@ class PolygonStyle(BaseStyle): zorder: int = -1 """Zorder of the polygon""" - def matplot_kwargs(self, size_multiplier: float = 1.0) -> dict: + def matplot_kwargs(self, scale: float = 1.0) -> dict: styles = dict( edgecolor=self.edge_color.as_hex() if self.edge_color else "none", facecolor=self.fill_color.as_hex() if self.fill_color else "none", fill=True if self.fill_color else False, - linewidth=self.edge_width * size_multiplier, + linewidth=self.edge_width * scale, linestyle=self.line_style, alpha=self.alpha, zorder=self.zorder, @@ -430,23 +439,10 @@ def matplot_kwargs(self, size_multiplier: float = 1.0) -> dict: class LabelStyle(BaseStyle): """ Styling properties for a label. - - ???- tip "Example Usage" - Creates a style for a bold blue label: - ```python - ls = LabelStyle( - font_color="blue", - font_weight="bold", - zorder=1, - ) - ``` """ - anchor_point: AnchorPointEnum = AnchorPointEnum.BOTTOM_RIGHT - """Anchor point of label""" - - font_size: int = 8 - """Relative font size of the label""" + font_size: float = 15 + """Font size of the label, in points""" font_weight: FontWeightEnum = FontWeightEnum.NORMAL """Font weight (e.g. normal, bold, ultra bold, etc)""" @@ -460,28 +456,50 @@ class LabelStyle(BaseStyle): font_style: FontStyleEnum = FontStyleEnum.NORMAL """Style of the label (e.g. normal, italic, etc)""" - font_name: Optional[str] = None + font_name: Optional[str] = "Inter" """Name of the font to use""" font_family: Optional[str] = None """Font family (e.g. 'monospace', 'sans-serif', 'serif', etc)""" - line_spacing: Optional[int] = None + line_spacing: Optional[float] = None """Spacing between lines of text""" - offset_x: int = 0 - """Horizontal offset of the label, in pixels. Negative values supported.""" + anchor_point: AnchorPointEnum = AnchorPointEnum.BOTTOM_RIGHT + """Anchor point of label""" - offset_y: int = 0 - """Vertical offset of the label, in pixels. Negative values supported.""" + border_width: float = 0 + """Width of border (also known as 'halos') around the text, in points""" + + border_color: Optional[ColorStr] = None + """Color of border (also known as 'halos') around the text""" + + offset_x: Union[float, int, str] = 0 + """ + Horizontal offset of the label, in points. Negative values supported. + + + **Auto Mode** (_experimental_): If the label is plotted as part of a marker (e.g. stars, via `marker()`, etc), then you can also + specify the offset as `"auto"` which will calculate the offset automatically based on the marker's size and place + the label just outside the marker (avoiding overlapping). To enable "auto" mode you have to specify BOTH offsets (x and y) as "auto." + """ - zorder: int = 101 + offset_y: Union[float, int, str] = 0 + """ + Vertical offset of the label, in points. Negative values supported. + + **Auto Mode** (_experimental_): If the label is plotted as part of a marker (e.g. stars, via `marker()`, etc), then you can also + specify the offset as `"auto"` which will calculate the offset automatically based on the marker's size and place + the label just outside the marker (avoiding overlapping). To enable "auto" mode you have to specify BOTH offsets (x and y) as "auto." + """ + + zorder: int = ZOrderEnum.LAYER_4 """Zorder of the label""" - def matplot_kwargs(self, size_multiplier: float = 1.0) -> dict: + def matplot_kwargs(self, scale: float = 1.0) -> dict: style = dict( color=self.font_color.as_hex(), - fontsize=self.font_size * size_multiplier * FONT_SCALE, + fontsize=self.font_size * scale, fontstyle=self.font_style, fontname=self.font_name, weight=self.font_weight, @@ -494,10 +512,45 @@ def matplot_kwargs(self, size_multiplier: float = 1.0) -> dict: if self.line_spacing: style["linespacing"] = self.line_spacing + if self.border_width != 0 and self.border_color is not None: + style["path_effects"] = [ + patheffects.withStroke( + linewidth=self.border_width * scale, + foreground=self.border_color.as_hex(), + ) + ] + style.update(AnchorPointEnum(self.anchor_point).as_matplot()) return style + def offset_from_marker(self, marker_symbol, marker_size, scale: float = 1.0): + if self.offset_x != "auto" or self.offset_y != "auto": + return self + + new_style = self.model_copy() + + x_direction = -1 if new_style.anchor_point.endswith("left") else 1 + y_direction = -1 if new_style.anchor_point.startswith("bottom") else 1 + + offset = (marker_size**0.5 / 2) / scale + + # matplotlib seems to use marker size differently depending on symbol (for scatter) + # it is NOT strictly the area of the bounding box of the marker + if marker_symbol in [MarkerSymbolEnum.POINT]: + offset /= PI + + elif marker_symbol != MarkerSymbolEnum.SQUARE: + offset /= SQR_2 + offset *= scale + + offset += 1.1 + + new_style.offset_x = offset * float(x_direction) + new_style.offset_y = offset * float(y_direction) + + return new_style + class ObjectStyle(BaseStyle): """Defines the style for a sky object (e.g. star, DSO)""" @@ -540,8 +593,8 @@ class LegendStyle(BaseStyle): label_padding: float = 1.6 """Padding between legend labels""" - symbol_size: int = 16 - """Relative size of symbols in the legend""" + symbol_size: int = 34 + """Size of symbols in the legend, in points""" symbol_padding: float = 0.2 """Padding between each symbol and its label""" @@ -549,8 +602,8 @@ class LegendStyle(BaseStyle): border_padding: float = 1.28 """Padding around legend border""" - font_size: int = 9 - """Relative font size of the legend labels""" + font_size: int = 23 + """Font size of the legend labels, in points""" font_color: ColorStr = ColorStr("#000") """Font color for legend labels""" @@ -558,12 +611,12 @@ class LegendStyle(BaseStyle): zorder: int = ZOrderEnum.LAYER_5 """Zorder of the legend""" - def matplot_kwargs(self, size_multiplier: float = 1.0) -> dict: + def matplot_kwargs(self, scale: float = 1.0) -> dict: return dict( loc=self.location, ncols=self.num_columns, framealpha=self.background_alpha, - fontsize=self.font_size * size_multiplier * FONT_SCALE, + fontsize=self.font_size * scale, labelcolor=self.font_color.as_hex(), borderpad=self.border_padding, labelspacing=self.label_padding, @@ -578,16 +631,25 @@ class PlotStyle(BaseStyle): Defines the styling for a plot """ - # Base background_color: ColorStr = ColorStr("#fff") """Background color of the map region""" figure_background_color: ColorStr = ColorStr("#fff") - text_border_width: int = 3 + text_border_width: int = 2 + """Text border (aka halos) width. This will apply to _all_ text labels on the plot. If you'd like to control these borders by object type, then set this global width to `0` and refer to the label style's `border_width` and `border_color` properties.""" + text_border_color: ColorStr = ColorStr("#fff") - text_offset_x: float = 0.005 - text_offset_y: float = 0.005 + + text_anchor_fallbacks: List[AnchorPointEnum] = [ + AnchorPointEnum.BOTTOM_RIGHT, + AnchorPointEnum.TOP_LEFT, + AnchorPointEnum.TOP_RIGHT, + AnchorPointEnum.BOTTOM_LEFT, + AnchorPointEnum.BOTTOM_CENTER, + AnchorPointEnum.TOP_CENTER, + ] + """If a label's preferred anchor point results in a collision, then these fallbacks will be tried in sequence until a collision-free position is found.""" # Borders border_font_size: int = 18 @@ -608,10 +670,10 @@ class PlotStyle(BaseStyle): # Info text info_text: LabelStyle = LabelStyle( - font_size=10, + font_size=30, zorder=ZOrderEnum.LAYER_5, - font_family="monospace", - line_spacing=2, + font_family="Inter", + line_spacing=1.2, anchor_point=AnchorPointEnum.BOTTOM_CENTER, ) """Styling for info text (only applies to zenith and optic plots)""" @@ -619,31 +681,53 @@ class PlotStyle(BaseStyle): # Stars star: ObjectStyle = ObjectStyle( marker=MarkerStyle( - fill=FillStyleEnum.FULL, zorder=ZOrderEnum.LAYER_3, size=36, edge_color=None + fill=FillStyleEnum.FULL, + zorder=ZOrderEnum.LAYER_3 + 1, + size=40, + edge_color=None, ), label=LabelStyle( - font_size=9, font_weight=FontWeightEnum.BOLD, zorder=ZOrderEnum.LAYER_4 + font_size=24, + font_weight=FontWeightEnum.BOLD, + zorder=ZOrderEnum.LAYER_3 + 2, + offset_x="auto", + offset_y="auto", ), ) """Styling for stars *(see [`ObjectStyle`][starplot.styles.ObjectStyle])*""" bayer_labels: LabelStyle = LabelStyle( - font_size=7, + font_size=21, font_weight=FontWeightEnum.LIGHT, + font_name="GFS Didot", zorder=ZOrderEnum.LAYER_4, anchor_point=AnchorPointEnum.TOP_LEFT, + offset_x="auto", + offset_y="auto", ) """Styling for Bayer labels of stars""" + flamsteed_labels: LabelStyle = LabelStyle( + font_size=13, + font_weight=FontWeightEnum.NORMAL, + zorder=ZOrderEnum.LAYER_4, + anchor_point=AnchorPointEnum.BOTTOM_LEFT, + offset_x="auto", + offset_y="auto", + ) + """Styling for Flamsteed number labels of stars""" + planets: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.CIRCLE, - size=4, + size=50, fill=FillStyleEnum.LEFT, ), label=LabelStyle( - font_size=8, + font_size=28, font_weight=FontWeightEnum.BOLD, + offset_x="auto", + offset_y="auto", ), ) """Styling for planets""" @@ -651,15 +735,17 @@ class PlotStyle(BaseStyle): moon: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.CIRCLE, - size=14, + size=50, fill=FillStyleEnum.FULL, color="#c8c8c8", alpha=1, zorder=ZOrderEnum.LAYER_4, ), label=LabelStyle( - font_size=8, + font_size=28, font_weight=FontWeightEnum.BOLD, + offset_x="auto", + offset_y="auto", ), ) """Styling for the moon""" @@ -667,13 +753,13 @@ class PlotStyle(BaseStyle): sun: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.SUN, - size=14, + size=80, fill=FillStyleEnum.FULL, color="#000", zorder=ZOrderEnum.LAYER_4 - 100, ), label=LabelStyle( - font_size=8, + font_size=28, font_weight=FontWeightEnum.BOLD, ), ) @@ -683,14 +769,17 @@ class PlotStyle(BaseStyle): dso_open_cluster: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.CIRCLE, - size=7, fill=FillStyleEnum.FULL, + line_style=(0, (1, 2)), + edge_width=1.3, + zorder=ZOrderEnum.LAYER_3 - 1, ), label=LabelStyle( - font_size=7, - font_weight=FontWeightEnum.LIGHT, - offset_x=10, - offset_y=-10, + # font_weight=FontWeightEnum.LIGHT, + # offset_x=7, + # offset_y=-6, + offset_x="auto", + offset_y="auto", ), ) """Styling for open star clusters""" @@ -698,14 +787,15 @@ class PlotStyle(BaseStyle): dso_association_stars: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.CIRCLE, - size=7, fill=FillStyleEnum.FULL, + line_style=(0, (1, 2)), + edge_width=1.3, + zorder=ZOrderEnum.LAYER_3 - 1, ), label=LabelStyle( - font_size=7, font_weight=FontWeightEnum.LIGHT, - offset_x=10, - offset_y=-10, + offset_x=7, + offset_y=-6, ), ) """Styling for associations of stars""" @@ -713,113 +803,132 @@ class PlotStyle(BaseStyle): dso_globular_cluster: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.CIRCLE_CROSS, - size=7, fill=FillStyleEnum.FULL, color="#555", alpha=0.8, + edge_width=1.2, + zorder=ZOrderEnum.LAYER_3 - 1, ), - label=LabelStyle(font_size=7, offset_x=10, offset_y=-10), + label=LabelStyle(offset_x=7, offset_y=-6), ) """Styling for globular star clusters""" dso_galaxy: ObjectStyle = ObjectStyle( marker=MarkerStyle( - symbol=MarkerSymbolEnum.ELLIPSE, size=7, fill=FillStyleEnum.FULL + symbol=MarkerSymbolEnum.ELLIPSE, + fill=FillStyleEnum.FULL, + zorder=ZOrderEnum.LAYER_3 - 1, ), - label=LabelStyle(font_size=7, offset_x=10, offset_y=-10), + label=LabelStyle(offset_x=1, offset_y=-1), ) """Styling for galaxies""" dso_nebula: ObjectStyle = ObjectStyle( marker=MarkerStyle( - symbol=MarkerSymbolEnum.SQUARE, size=7, fill=FillStyleEnum.FULL + symbol=MarkerSymbolEnum.SQUARE, + fill=FillStyleEnum.FULL, + zorder=ZOrderEnum.LAYER_3 - 1, ), - label=LabelStyle(font_size=7, offset_x=10, offset_y=-10), + label=LabelStyle(offset_x=1, offset_y=-1), ) """Styling for nebulas""" + dso_planetary_nebula: ObjectStyle = ObjectStyle( + marker=MarkerStyle( + symbol=MarkerSymbolEnum.CIRCLE_CROSSHAIR, + fill=FillStyleEnum.FULL, + edge_width=1.6, + size=26, + zorder=ZOrderEnum.LAYER_3 - 1, + ), + label=LabelStyle(offset_x=1, offset_y=-1), + ) + """Styling for planetary nebulas""" + dso_double_star: ObjectStyle = ObjectStyle( marker=MarkerStyle( - symbol=MarkerSymbolEnum.CIRCLE, size=7, fill=FillStyleEnum.TOP + symbol=MarkerSymbolEnum.CIRCLE_LINE, + fill=FillStyleEnum.TOP, + zorder=ZOrderEnum.LAYER_3 - 1, ), - label=LabelStyle(font_size=7), + label=LabelStyle(offset_x=1, offset_y=-1), ) """Styling for double stars""" dso_dark_nebula: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.SQUARE, - size=7, fill=FillStyleEnum.TOP, color="#000", + zorder=ZOrderEnum.LAYER_3 - 1, ), - label=LabelStyle(font_size=7), + label=LabelStyle(), ) """Styling for dark nebulas""" dso_hii_ionized_region: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.SQUARE, - size=7, fill=FillStyleEnum.TOP, color="#000", + zorder=ZOrderEnum.LAYER_3 - 1, ), - label=LabelStyle(font_size=7), + label=LabelStyle(), ) """Styling for HII Ionized regions""" dso_supernova_remnant: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.SQUARE, - size=7, fill=FillStyleEnum.TOP, color="#000", + zorder=ZOrderEnum.LAYER_3 - 1, ), - label=LabelStyle(font_size=7), + label=LabelStyle(), ) """Styling for supernova remnants""" dso_nova_star: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.SQUARE, - size=7, fill=FillStyleEnum.TOP, color="#000", + zorder=ZOrderEnum.LAYER_3 - 1, ), - label=LabelStyle(font_size=7), + label=LabelStyle(), ) """Styling for nova stars""" dso_nonexistant: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.SQUARE, - size=7, fill=FillStyleEnum.TOP, color="#000", + zorder=ZOrderEnum.LAYER_3 - 1, ), - label=LabelStyle(font_size=7), + label=LabelStyle(), ) """Styling for 'nonexistent' (as designated by OpenNGC) deep sky objects""" dso_unknown: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.SQUARE, - size=7, fill=FillStyleEnum.TOP, color="#000", + zorder=ZOrderEnum.LAYER_3 - 1, ), - label=LabelStyle(font_size=7), + label=LabelStyle(), ) """Styling for 'unknown' (as designated by OpenNGC) types of deep sky objects""" dso_duplicate: ObjectStyle = ObjectStyle( marker=MarkerStyle( symbol=MarkerSymbolEnum.SQUARE, - size=7, fill=FillStyleEnum.TOP, color="#000", + zorder=ZOrderEnum.LAYER_3 - 1, ), - label=LabelStyle(font_size=7), + label=LabelStyle(), ) """Styling for 'duplicate record' (as designated by OpenNGC) types of deep sky objects""" @@ -827,8 +936,8 @@ class PlotStyle(BaseStyle): constellation: PathStyle = PathStyle( line=LineStyle(color="#c8c8c8"), label=LabelStyle( - font_size=7, - font_weight=FontWeightEnum.LIGHT, + font_size=21, + font_weight=FontWeightEnum.NORMAL, zorder=ZOrderEnum.LAYER_3, anchor_point=AnchorPointEnum.TOP_RIGHT, ), @@ -837,9 +946,9 @@ class PlotStyle(BaseStyle): constellation_borders: LineStyle = LineStyle( color="#000", - width=2, + width=1.5, style=LineStyleEnum.DASHED, - alpha=0.2, + alpha=0.4, zorder=ZOrderEnum.LAYER_3, ) """Styling for constellation borders (only applies to map plots)""" @@ -849,7 +958,7 @@ class PlotStyle(BaseStyle): fill_color="#d9d9d9", alpha=0.36, edge_width=0, - zorder=ZOrderEnum.LAYER_2, + zorder=ZOrderEnum.LAYER_1, ) """Styling for the Milky Way (only applies to map plots)""" @@ -867,9 +976,8 @@ class PlotStyle(BaseStyle): zorder=ZOrderEnum.LAYER_2, ), label=LabelStyle( - font_size=9, + font_size=18, font_color="#000", - font_weight=FontWeightEnum.LIGHT, font_alpha=1, anchor_point=AnchorPointEnum.BOTTOM_CENTER, ), @@ -880,16 +988,15 @@ class PlotStyle(BaseStyle): ecliptic: PathStyle = PathStyle( line=LineStyle( color="#777", - width=2, + width=3, style=LineStyleEnum.DOTTED, dash_capstyle=DashCapStyleEnum.ROUND, - alpha=0.8, + alpha=1, zorder=ZOrderEnum.LAYER_3, ), label=LabelStyle( - font_size=6, + font_size=22, font_color="#777", - font_weight=FontWeightEnum.LIGHT, font_alpha=1, zorder=ZOrderEnum.LAYER_3, ), @@ -900,13 +1007,13 @@ class PlotStyle(BaseStyle): celestial_equator: PathStyle = PathStyle( line=LineStyle( color="#999", - width=2, + width=3, style=LineStyleEnum.DASHED_DOTS, alpha=0.65, zorder=ZOrderEnum.LAYER_3, ), label=LabelStyle( - font_size=6, + font_size=22, font_color="#999", font_weight=FontWeightEnum.LIGHT, font_alpha=0.65, @@ -918,7 +1025,7 @@ class PlotStyle(BaseStyle): horizon: PathStyle = PathStyle( line=LineStyle( color="#fff", - width=64, + width=80, edge_width=4, edge_color="#000", style=LineStyleEnum.SOLID, @@ -929,7 +1036,7 @@ class PlotStyle(BaseStyle): label=LabelStyle( anchor_point=AnchorPointEnum.CENTER, font_color="#000", - font_size=23, + font_size=64, font_weight=FontWeightEnum.BOLD, zorder=ZOrderEnum.LAYER_5, ), @@ -961,7 +1068,7 @@ def get_dso_style(self, dso_type: DsoType): DsoType.GROUP_OF_GALAXIES: self.dso_galaxy, # Nebulas ---------- DsoType.NEBULA: self.dso_nebula, - DsoType.PLANETARY_NEBULA: self.dso_nebula, + DsoType.PLANETARY_NEBULA: self.dso_planetary_nebula, DsoType.EMISSION_NEBULA: self.dso_nebula, DsoType.STAR_CLUSTER_NEBULA: self.dso_nebula, DsoType.REFLECTION_NEBULA: self.dso_nebula, diff --git a/src/starplot/styles/ext/antique.yml b/src/starplot/styles/ext/antique.yml index c395c92f..3f4351a2 100644 --- a/src/starplot/styles/ext/antique.yml +++ b/src/starplot/styles/ext/antique.yml @@ -30,9 +30,16 @@ zenith: title: font_color: hsl(60, 20%, 93%) + bayer_labels: - font_alpha: 0.74 - font_color: '#000' + font_alpha: 0.9 + font_color: hsl(60, 3%, 17%) + +flamsteed_labels: + font_alpha: 0.9 + font_color: hsl(60, 3%, 17%) + + celestial_equator: label: font_color: hsl(188, 35%, 56%) @@ -41,30 +48,28 @@ celestial_equator: alpha: 0.62 constellation: label: - font_size: 10 font_weight: light font_color: hsl(60, 3%, 52%) - font_alpha: 0.36 + font_alpha: 0.46 font_name: "serif" line: - alpha: 0.2 + alpha: 0.3 color: hsl(48, 80%, 14%) - width: 1.46 constellation_borders: color: hsl(37, 33%, 40%) - alpha: 0.44 - width: 1.2 + alpha: 0.8 zorder: -500 ecliptic: label: - font_color: hsl(26, 63%, 52%) + font_color: hsl(26, 63%, 50%) line: - color: hsl(26, 93%, 82%) - alpha: 0.6 + color: hsl(26, 90%, 62%) + alpha: 1 + milky_way: - alpha: 0.14 - fill_color: hsl(48, 40%, 70%) - edge_width: 0 + alpha: 0.2 + fill_color: hsl(48, 40%, 75%) + gridlines: label: font_alpha: 0.8 @@ -78,20 +83,18 @@ gridlines: width: 1 star: marker: - color: hsl(60, 12%, 32%) + color: hsl(60, 12%, 24%) edge_color: hsl(48, 80%, 96%) label: - font_color: hsl(60, 3%, 42%) + font_color: hsl(60, 3%, 24%) planets: marker: - size: 8 symbol: circle alpha: 0.68 fill: full color: hsl(26, 93%, 82%) edge_color: hsl(26, 93%, 52%) label: - font_size: 7 font_color: hsl(60, 3%, 42%) sun: label: @@ -109,47 +112,50 @@ moon: # DSOs dso_double_star: marker: - alpha: 0.6 + alpha: 0.9 dso_galaxy: marker: - alpha: 0.42 + alpha: 1 color: hsl(26, 93%, 82%) edge_color: hsl(26, 93%, 32%) label: font_color: hsl(26, 93%, 32%) dso_nebula: marker: - alpha: 0.52 - color: hsl(71, 58%, 76%) - edge_color: hsl(71, 58%, 36%) + alpha: 1 + color: hsl(71, 58%, 80%) + edge_color: hsl(71, 58%, 30%) label: - font_color: hsl(71, 58%, 36%) -dso_open_cluster: + font_color: hsl(71, 58%, 30%) +dso_planetary_nebula: marker: - alpha: 0.52 - color: hsl(49, 92%, 77%) - edge_color: hsl(49, 92%, 27%) + alpha: 1 + color: hsl(71, 58%, 80%) + edge_color: hsl(71, 58%, 30%) label: - font_color: hsl(49, 92%, 27%) -dso_association_stars: + font_color: hsl(71, 58%, 30%) + +dso_open_cluster: &DSO-OC marker: - alpha: 0.52 - color: hsl(49, 92%, 77%) - edge_color: hsl(49, 92%, 27%) + alpha: 1 + color: hsl(49, 96%, 76%) + edge_color: hsl(49, 92%, 17%) label: - font_color: hsl(49, 92%, 27%) + font_color: hsl(49, 92%, 17%) +dso_association_stars: *DSO-OC + dso_globular_cluster: marker: - alpha: 0.5 - color: hsl(60, 53%, 76%) - edge_color: hsl(60, 3%, 32%) + alpha: 1 + color: hsl(49, 96%, 76%) + edge_color: hsl(49, 92%, 17%) label: - font_color: hsl(60, 3%, 32%) + font_color: hsl(49, 92%, 17%) # other DSOs dso_unknown: &DSO marker: - alpha: 0.52 + alpha: 0.8 color: hsl(71, 58%, 76%) edge_color: hsl(71, 58%, 36%) label: diff --git a/src/starplot/styles/ext/blue_dark.yml b/src/starplot/styles/ext/blue_dark.yml index 60c762ea..6a2a59cc 100644 --- a/src/starplot/styles/ext/blue_dark.yml +++ b/src/starplot/styles/ext/blue_dark.yml @@ -30,12 +30,14 @@ celestial_equator: font_color: hsl(209, 30%, 80%) line: color: hsl(209, 30%, 80%) + ecliptic: label: - font_color: hsl(209, 30%, 80%) + font_color: '#e33b3b' line: - width: 1.6 - color: hsl(209, 30%, 80%) + color: '#e33b3b' + alpha: 1 + constellation: label: font_alpha: 0.37 @@ -56,48 +58,43 @@ dso_double_star: alpha: 0.8 color: '#88c0d0' edge_color: '#88c0d0' + + dso_galaxy: - label: - font_color: hsl(209, 23%, 72%) marker: - alpha: 0.16 - color: hsl(209, 20%, 75%) - edge_color: hsl(209, 20%, 90%) - zorder: -600 -dso_nebula: + alpha: 1 + color: hsl(330, 70%, 66%) + edge_color: hsl(330, 54%, 30%) label: - font_color: hsl(209, 23%, 72%) + font_color: hsl(330, 34%, 73%) + +dso_nebula: &DSO-NEB marker: - alpha: 0.46 - color: hsl(209, 50%, 78%) - edge_color: hsl(209, 50%, 20%) - zorder: -500 -dso_open_cluster: + alpha: 1 + # color: hsl(98, 63%, 66%) + color: hsl(110, 52%, 62%) + edge_color: hsl(91, 53%, 10%) label: - font_color: hsl(209, 23%, 72%) + font_color: hsl(91, 63%, 89%) +dso_planetary_nebula: *DSO-NEB + +dso_open_cluster: &DSO-OC marker: - size: 10 - alpha: 0.52 - fill: none - edge_color: hsl(209, 50%, 92%) - zorder: -500 -dso_association_stars: + alpha: 1 + color: hsl(58, 64%, 50%) + edge_color: "#000" label: - font_color: hsl(209, 23%, 72%) - marker: - alpha: 0.52 - fill: none - edge_color: hsl(209, 50%, 92%) - zorder: -500 + font_color: hsl(58, 98%, 20%) +dso_association_stars: *DSO-OC + dso_globular_cluster: + marker: + alpha: 1 + color: hsl(58, 64%, 50%) + edge_color: "#000" label: font_color: hsl(209, 23%, 72%) - marker: - alpha: 0.68 - size: 10 - color: hsl(209, 50%, 92%) - edge_color: null - zorder: 100 + # other DSOs dso_unknown: &DSO @@ -161,7 +158,6 @@ sun: marker: color: hsl(209, 50%, 94%) edge_color: hsl(209, 50%, 94%) - size: 25 legend: background_color: hsl(209, 50%, 26%) diff --git a/src/starplot/styles/ext/blue_light.yml b/src/starplot/styles/ext/blue_light.yml index 1df3f667..8d823ef8 100644 --- a/src/starplot/styles/ext/blue_light.yml +++ b/src/starplot/styles/ext/blue_light.yml @@ -31,48 +31,63 @@ celestial_equator: color: '#2d5ec2' constellation: label: - font_color: '#c5c5c5' + font_alpha: 0.27 + font_color: '#000' line: - alpha: 0.3 + alpha: 0.52 color: '#6ba832' width: 3 dso_double_star: marker: - alpha: 0.6 + alpha: 1 + dso_galaxy: marker: - alpha: 0.5 - color: hsl(18, 68%, 75%) - edge_color: hsl(18, 68%, 40%) + alpha: 1 + color: hsl(330, 80%, 85%) + edge_color: hsl(330, 34%, 43%) + # edge_color: hsl(18, 68%, 40%) label: - font_color: hsl(18, 68%, 40%) -dso_nebula: + font_color: hsl(330, 34%, 43%) + # font_color: hsl(18, 68%, 40%) + +dso_nebula: &DSO-NEB marker: - alpha: 0.5 - color: hsl(91, 53%, 75%) - edge_color: hsl(91, 53%, 40%) + alpha: 1 + color: hsl(98, 68%, 82%) + edge_color: hsl(91, 63%, 24%) label: - font_color: hsl(91, 53%, 40%) -dso_open_cluster: + font_color: hsl(91, 63%, 29%) +dso_planetary_nebula: marker: - alpha: 0.3 - color: '#fffb68' - edge_color: '#989400' + alpha: 1 + color: hsl(96, 76%, 82%) + edge_color: hsl(91, 63%, 24%) label: - font_color: '#989400' -dso_association_stars: + font_color: hsl(91, 63%, 29%) + +dso_open_cluster: &DSO-OC + marker: + alpha: 1 + color: hsl(58, 98%, 77%) + edge_color: "#000" + label: + font_color: hsl(58, 98%, 20%) +dso_association_stars: *DSO-OC + +dso_globular_cluster: marker: - alpha: 0.3 - color: '#fffb68' - edge_color: '#989400' + alpha: 1 + color: hsl(58, 98%, 77%) + edge_color: "#000" label: font_color: '#989400' # other DSOs dso_unknown: &DSO marker: - alpha: 0.5 + alpha: 0.76 color: hsl(91, 53%, 75%) edge_color: hsl(91, 53%, 40%) label: @@ -89,10 +104,13 @@ ecliptic: label: font_color: '#e33b3b' line: - color: '#e33b3b' + # color: hsl(360, 100%, 50%) + color: hsl(359, 98%, 49%) + alpha: 1 + style: [0, [0.14, 2]] milky_way: - alpha: 0.16 - fill_color: '#94c5e3' + alpha: 0.2 + fill_color: hsl(203, 70%, 83%) edge_width: 0 planets: marker: diff --git a/src/starplot/styles/ext/blue_medium.yml b/src/starplot/styles/ext/blue_medium.yml index b4126607..cbb087c0 100644 --- a/src/starplot/styles/ext/blue_medium.yml +++ b/src/starplot/styles/ext/blue_medium.yml @@ -1,4 +1,6 @@ -background_color: '#f1f6ff' +# blue_medium + +background_color: hsl(218, 85%, 97%) figure_background_color: '#fff' text_border_color: '#f1f6ff' @@ -13,28 +15,30 @@ star: marker: edge_color: '#f1f6ff' bayer_labels: - font_alpha: 0.8 + font_alpha: 1 font_color: '#000' -celestial_equator: - label: - font_color: '#2d5ec2' - line: - color: '#2d5ec2' - alpha: 0.6 + constellation: label: - font_size: 7 - font_weight: light + font_alpha: 0.8 + font_color: hsl(212, 20%, 10%) line: - alpha: 0.23 + alpha: 0.48 color: '#6ba832' - width: 3 + +celestial_equator: + label: + font_color: '#2d5ec2' + line: + color: hsl(220, 62%, 47%) + alpha: 0.8 ecliptic: label: font_color: '#e33b3b' line: - color: '#e33b3b' - alpha: 0.6 + color: hsl(360, 85%, 56%) + alpha: 0.9 + planets: marker: alpha: 0.4 @@ -46,15 +50,13 @@ milky_way: edge_width: 0 gridlines: label: - font_alpha: 0.8 + font_alpha: 1 font_color: '#2f4358' - font_size: 8 font_weight: light line: alpha: 0.6 color: '#888' style: solid - width: 1 sun: marker: color: '#ffd22e' @@ -74,50 +76,52 @@ zenith: font_color: '#b979b7' # DSOs -dso_double_star: - marker: - alpha: 0.6 + dso_galaxy: marker: - alpha: 0.45 - color: '#D99CBA' - edge_color: '#b15d87' + alpha: 1 + color: hsl(330, 80%, 85%) + edge_color: hsl(330, 34%, 33%) label: - font_color: '#b15d87' -dso_nebula: + font_color: hsl(330, 34%, 33%) + +dso_nebula: &DSO-NEB marker: - alpha: 0.56 - color: hsl(91, 62%, 82%) - edge_color: hsl(91, 53%, 40%) + alpha: 1 + color: hsl(98, 68%, 82%) + edge_color: hsl(91, 63%, 24%) label: - font_color: hsl(91, 53%, 40%) -dso_open_cluster: + font_color: hsl(91, 63%, 29%) +dso_planetary_nebula: marker: - alpha: 0.4 - color: '#fffb68' - edge_color: '#989400' + alpha: 1 + color: hsl(96, 76%, 82%) + edge_color: hsl(91, 63%, 24%) label: - font_color: '#989400' -dso_association_stars: + font_color: hsl(91, 63%, 29%) + +dso_open_cluster: &DSO-OC marker: - alpha: 0.4 - color: '#fffb68' - edge_color: '#989400' + alpha: 1 + color: hsl(58, 98%, 77%) + edge_color: "#000" label: - font_color: '#989400' + font_color: hsl(58, 98%, 20%) +dso_association_stars: *DSO-OC + dso_globular_cluster: marker: - alpha: 0.8 - color: '#c7c7c7' - edge_color: '#444' + alpha: 1 + color: hsl(58, 98%, 77%) + edge_color: "#000" label: - font_color: '#444' + font_color: '#989400' # other DSOs dso_unknown: &DSO marker: - alpha: 0.56 + alpha: 1 color: hsl(91, 62%, 82%) edge_color: hsl(91, 53%, 40%) label: diff --git a/src/starplot/styles/ext/cb_wong.yml b/src/starplot/styles/ext/cb_wong.yml index b80a362e..f53a25bc 100644 --- a/src/starplot/styles/ext/cb_wong.yml +++ b/src/starplot/styles/ext/cb_wong.yml @@ -58,6 +58,13 @@ dso_nebula: alpha: 0.7 color: hsl(163, 99%, 31%) edge_color: hsl(163, 99%, 21%) +dso_planetary_nebula: + label: + font_color: hsl(163, 99%, 31%) + marker: + alpha: 0.7 + color: hsl(163, 99%, 31%) + edge_color: hsl(163, 99%, 21%) dso_open_cluster: label: font_color: hsl(56, 85%, 30%) diff --git a/src/starplot/styles/ext/grayscale.yml b/src/starplot/styles/ext/grayscale.yml index 29707907..59b309f4 100644 --- a/src/starplot/styles/ext/grayscale.yml +++ b/src/starplot/styles/ext/grayscale.yml @@ -24,20 +24,26 @@ dso_double_star: color: '#000' dso_galaxy: marker: - color: '#000' - alpha: 0.6 - symbol: diamond - fill: top + color: null + fill: none + alpha: 1 + symbol: ellipse dso_nebula: marker: - color: '#000' - alpha: 0.28 + color: '#c8c8c8' + fill: full + alpha: 1 +dso_planetary_nebula: + marker: + color: null + fill: none + alpha: 1 dso_open_cluster: marker: color: null edge_color: '#000' fill: none - alpha: 0.8 + alpha: 1 # other DSOs diff --git a/src/starplot/styles/ext/grayscale_dark.yml b/src/starplot/styles/ext/grayscale_dark.yml index d9d4964b..1e951267 100644 --- a/src/starplot/styles/ext/grayscale_dark.yml +++ b/src/starplot/styles/ext/grayscale_dark.yml @@ -26,9 +26,9 @@ info_text: font_color: hsl(136, 0%, 0%) star: label: - font_color: hsl(136, 0%, 90%) + font_color: hsl(136, 0%, 78%) marker: - color: hsl(136, 0%, 97%) + color: hsl(136, 0%, 92%) edge_color: hsl(136, 0%, 10%) sun: label: @@ -37,7 +37,9 @@ sun: color: hsl(136, 0%, 97%) edge_color: hsl(136, 0%, 97%) bayer_labels: - font_color: hsl(136, 0%, 77%) + font_color: hsl(136, 0%, 80%) +flamsteed_labels: + font_color: hsl(136, 0%, 80%) celestial_equator: label: font_color: '#999' @@ -47,7 +49,7 @@ constellation: label: font_color: hsl(136, 0%, 77%) line: - color: hsl(136, 0%, 42%) + color: hsl(136, 0%, 30%) constellation_borders: color: hsl(136, 0%, 42%) alpha: 0.5 @@ -70,6 +72,12 @@ dso_nebula: marker: color: 'hsl(136, 0%, 97%)' alpha: 0.28 +dso_planetary_nebula: + label: + font_color: hsl(136, 0%, 97%) + marker: + color: 'hsl(136, 0%, 97%)' + alpha: 0.28 dso_open_cluster: label: font_color: hsl(136, 0%, 97%) diff --git a/src/starplot/styles/ext/map.yml b/src/starplot/styles/ext/map.yml index 6731126c..11730cbf 100644 --- a/src/starplot/styles/ext/map.yml +++ b/src/starplot/styles/ext/map.yml @@ -1,9 +1,9 @@ constellation: label: - font_alpha: 0.82 - font_size: 10 + font_size: 38 + font_weight: heavy line: - width: 2.36 + width: 3.4 star: label: - font_size: 11 + font_size: 22 diff --git a/src/starplot/styles/ext/nord.yml b/src/starplot/styles/ext/nord.yml index 8e9fac2a..7e703df9 100644 --- a/src/starplot/styles/ext/nord.yml +++ b/src/starplot/styles/ext/nord.yml @@ -26,55 +26,59 @@ celestial_equator: font_color: '#77A67F' line: color: '#77A67F' + constellation: label: - font_alpha: 0.6 + font_alpha: 0.7 font_color: rgb(230, 204, 147) - font_size: 7 - font_weight: light line: alpha: 0.36 color: rgb(230, 204, 147) - width: 2 +constellation_borders: + color: hsl(220, 16%, 12%) + alpha: 0.8 dso_double_star: marker: - alpha: 0.8 + alpha: 0.9 color: '#88c0d0' edge_color: '#88c0d0' label: font_color: '#88c0d0' dso_galaxy: marker: - alpha: 0.6 - color: '#D99CBA' - edge_color: '#bd5187' + alpha: 0.7 + color: hsl(330, 45%, 74%) + edge_color: hsl(330, 45%, 63%) label: - font_color: '#bd5187' + font_color: hsl(330, 45%, 63%) dso_nebula: marker: - alpha: 0.32 - color: '#9CD9BB' - edge_color: '#52896e' + alpha: 0.7 + color: hsl(172, 15%, 56%) + edge_color: hsl(172, 15%, 50%) label: - font_color: '#52896e' -dso_open_cluster: + font_color: hsl(172, 15%, 56%) +dso_planetary_nebula: marker: - alpha: 0.32 - color: '#d8d99c' - edge_color: '#9d9f3c' + alpha: 0.7 + color: hsl(172, 15%, 56%) + edge_color: hsl(172, 15%, 50%) label: - font_color: '#9d9f3c' -dso_association_stars: + font_color: hsl(172, 15%, 56%) + +dso_open_cluster: &DSO-OC marker: - alpha: 0.32 - color: '#d8d99c' - edge_color: '#9d9f3c' + alpha: 0.7 + color: hsl(61, 45%, 73%) + edge_color: hsl(61, 45%, 5%) label: font_color: '#9d9f3c' +dso_association_stars: *DSO-OC + dso_globular_cluster: marker: - alpha: 0.5 + alpha: 0.7 color: '#c7c7c7' edge_color: '#444' label: @@ -84,7 +88,7 @@ dso_globular_cluster: # other DSOs dso_unknown: &DSO marker: - alpha: 0.32 + alpha: 0.7 color: '#9CD9BB' edge_color: '#52896e' label: @@ -106,17 +110,16 @@ gridlines: label: font_alpha: 0.8 font_color: '#c2d2f3' - font_size: 8 font_weight: light line: alpha: 0.8 color: '#888' style: solid - width: 1 + milky_way: - alpha: 0.14 + alpha: 0.16 fill_color: '#95a3bf' - edge_width: 0 + planets: label: font_color: '#D99CCF' @@ -128,7 +131,6 @@ planets: star: label: font_color: '#88c0d0' - font_size: 9 font_weight: bold marker: color: '#88c0d0' @@ -136,7 +138,6 @@ star: sun: label: font_color: '#88c0d0' - font_size: 9 font_weight: bold marker: color: '#88c0d0' @@ -144,13 +145,12 @@ sun: moon: label: font_color: '#88c0d0' - font_size: 9 font_weight: bold marker: color: '#88c0d0' bayer_labels: - font_alpha: 0.8 + font_alpha: 0.9 font_color: '#85c9de' legend: diff --git a/src/starplot/styles/ext/optic.yml b/src/starplot/styles/ext/optic.yml index 55641595..b56b2811 100644 --- a/src/starplot/styles/ext/optic.yml +++ b/src/starplot/styles/ext/optic.yml @@ -1,18 +1,20 @@ star: label: - font_size: 15 + font_size: 40 marker: size: 30 bayer_labels: - font_size: 15 + font_size: 40 +flamsteed_labels: + font_size: 40 planets: marker: - size: 11 + size: 30 legend: location: "lower center" ecliptic: label: - font_size: 15 + font_size: 27 celestial_equator: label: - font_size: 15 + font_size: 27 diff --git a/src/starplot/styles/fonts-library/gfs-didot/DESCRIPTION.en_us.html b/src/starplot/styles/fonts-library/gfs-didot/DESCRIPTION.en_us.html new file mode 100644 index 00000000..c6716b67 --- /dev/null +++ b/src/starplot/styles/fonts-library/gfs-didot/DESCRIPTION.en_us.html @@ -0,0 +1,9 @@ +

+Under the influence of the neoclassical ideals of the late 18th century, the famous French typecutter Firmin Didot in Paris designed a new Greek typeface (1805) which was immediately used in the publishing programme of Adamantios Korais, the prominent intellectual figure of the Greek diaspora and leading scholar of the Greek Enligntment. +The typeface eventually arrived in Greece, with the field press which came with Didot’s grandson Ambroise Firmin Didot, during the Greek Revolution in 1821. +

+

+Since then the typeface enjoyed an unrivaled success as the type of choice for almost every kind of publication, until the last decades of the 20th century. +Didot’s type was the base for a new font, GFS Didot (1994), which was designed by Takis Katsoulidis, and digitised by George Matthiopoulos, of the Greek Font Society. +The typeface is accompanied by a matching Latin design, inspired by Hermann Zapf’s Palatino. +

diff --git a/src/starplot/styles/fonts-library/gfs-didot/GFSDidot-Regular.ttf b/src/starplot/styles/fonts-library/gfs-didot/GFSDidot-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4e771c995cc09c2a994c77b93568a2d1f4c1ded7 GIT binary patch literal 191168 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, (), +with Reserved Font Name . + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/starplot/styles/fonts-library/hind/DESCRIPTION.en_us.html b/src/starplot/styles/fonts-library/hind/DESCRIPTION.en_us.html new file mode 100644 index 00000000..8945114c --- /dev/null +++ b/src/starplot/styles/fonts-library/hind/DESCRIPTION.en_us.html @@ -0,0 +1,28 @@ +

+Hind is an Open Source typeface supporting the Devanagari and Latin scripts. +Developed explicitly for use in User Interface design, the Hind font family includes five styles. +Hind’s letterforms have a humanist-style construction, which is paired with seemingly monolinear strokes. +Most of these strokes have flat endings: they either terminate with a horizontal or a vertical shear, rather than on a diagonal. +This helps create clear-cut counter forms between the characters. +In addition to this, Hind’s letterforms feature open apertures. +The entire typeface family feels very legible when used to set text. +

+

+The Devanagari and Latin script components are scaled in relation to each other so that the Devanagari headline falls just below the Latin capital-height. +In other words, the Devanagari base characters are 94% as tall as the Latin uppercase. +Text set in the Devanagari script sits nicely alongside the Latin lowercase, too. +Hind’s Devanagari vowel marks take forms that tends toward the traditional end of the design spectrum, while the knotted terminals inside of the base characters feature a treatment that appears more contemporary. +

+

+Each font in the Hind family has 1146 glyphs, which include hundreds of unique Devanagari conjuncts. +These ensure full support for the major languages written with the Devanagari script. +The Latin component’s character set is a basic western one, which enables typesetting in English and the other Western European languages. +Hind is a solid choice for UI design, and a wise selection for electronic display embedding. +

+

+Manushi Parikh designed Hind for the Indian Type Foundry, who first published the fonts in 2014. +

+

+The Hind project is led by Indian Type Foundry, a type design foundry based in Ahmedabad, India. +To contribute, see github.com/itfoundry/hind +

diff --git a/src/starplot/styles/fonts-library/hind/Hind-Bold.ttf b/src/starplot/styles/fonts-library/hind/Hind-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4469b8415f1dcbced9dfc3f2bb24e2f2f2618c5d GIT binary patch literal 286604 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 z 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 UvISj)I?+cLVhlh()zba{0bDMmLI3~& literal 0 HcmV?d00001 diff --git a/src/starplot/styles/fonts-library/hind/Hind-Light.ttf b/src/starplot/styles/fonts-library/hind/Hind-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ea4a7257428fdd0bf575d0ca5df1ef99cf07120d GIT binary patch literal 287484 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 z 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%0AS!;D{?MBnn=LA+>G=83C^Qj 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

9^DFCi1N z990(M($E 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 Ao&W#< literal 0 HcmV?d00001 diff --git a/src/starplot/styles/fonts-library/hind/Hind-Medium.ttf b/src/starplot/styles/fonts-library/hind/Hind-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2c781471bd7f578ad09b3e5181a0d987b6d4559d GIT binary patch literal 277300 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