starplot 0.22.0__tar.gz → 0.23.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {starplot-0.22.0 → starplot-0.23.0}/CITATION.cff +2 -2
- {starplot-0.22.0 → starplot-0.23.0}/Makefile +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/PKG-INFO +2 -2
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/readme.md +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/docs/changelog.md +15 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/coming-soon.md +2 -2
- starplot-0.23.0/docs/examples/optic-image-overlay.md +14 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples.md +12 -6
- {starplot-0.22.0 → starplot-0.23.0}/docs/index.md +3 -2
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-settings.md +15 -1
- {starplot-0.22.0 → starplot-0.23.0}/docs/scripts/markers.py +4 -1
- {starplot-0.22.0 → starplot-0.23.0}/docs/scripts/style_explorer.py +14 -8
- {starplot-0.22.0 → starplot-0.23.0}/docs/styling/index.md +7 -5
- {starplot-0.22.0 → starplot-0.23.0}/docs/styling/markers.md +2 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/styling/reference.md +15 -0
- starplot-0.23.0/examples/andromeda.jpeg +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/examples.py +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/examples/horizon_gradient.py +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_canis_major.py +1 -1
- starplot-0.23.0/examples/optic_image_overlay.py +97 -0
- {starplot-0.22.0 → starplot-0.23.0}/hash_checks/hashlock.yml +10 -10
- {starplot-0.22.0 → starplot-0.23.0}/hash_checks/map_checks.py +4 -5
- {starplot-0.22.0 → starplot-0.23.0}/hash_checks/zenith_checks.py +27 -27
- {starplot-0.22.0 → starplot-0.23.0}/pyproject.toml +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/scripts/download_test_fonts.py +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/scripts/svg.py +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/__init__.py +2 -20
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/cli.py +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/constants.py +4 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/__init__.py +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/catalogs.py +3 -3
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/constellations.py +4 -3
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/db.py +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/dsos.py +4 -3
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/library/constellation_names.parquet +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/library/dso_names.parquet +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/library/star_designations.parquet +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/stars.py +4 -3
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/geometry.py +13 -9
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/constellation.py +5 -4
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/dso.py +2 -2
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/star.py +2 -2
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plots/base.py +13 -9
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plots/galaxy.py +7 -7
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plots/horizon.py +2 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plots/map.py +2 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plots/optic.py +12 -9
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plotters/__init__.py +1 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plotters/arrow.py +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plotters/constellations.py +5 -5
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plotters/dsos.py +18 -19
- starplot-0.23.0/src/starplot/plotters/image.py +249 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plotters/stars.py +22 -17
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plotters/text.py +15 -5
- starplot-0.22.0/src/starplot/config.py → starplot-0.23.0/src/starplot/settings.py +34 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/elements.py +38 -2
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/antique.yml +26 -25
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/blue_dark.yml +20 -19
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/blue_gold.yml +15 -14
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/blue_light.yml +8 -7
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/blue_medium.yml +11 -10
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/blue_night.yml +18 -17
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/cb_wong.yml +8 -7
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/grayscale.yml +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/grayscale_dark.yml +13 -12
- starplot-0.23.0/src/starplot/styles/ext/horizon.yml +6 -0
- starplot-0.23.0/src/starplot/styles/ext/map.yml +13 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/nord.yml +14 -13
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/optic.yml +5 -5
- starplot-0.23.0/src/starplot/styles/ext/publication.yml +9 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/starplot.yml +24 -23
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/helpers.py +12 -3
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/plot.py +46 -47
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/svg/canvas.py +47 -4
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/svg/elements.py +11 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/svg/fonts.py +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/svg/layout.py +1 -1
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/svg/symbols.py +57 -10
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/utils.py +25 -3
- {starplot-0.22.0 → starplot-0.23.0}/tests/conftest.py +4 -2
- {starplot-0.22.0 → starplot-0.23.0}/tests/models/test_dso.py +4 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/models/test_star.py +6 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/svg/test_canvas.py +3 -4
- {starplot-0.22.0 → starplot-0.23.0}/tests/svg/test_symbols.py +67 -26
- starplot-0.23.0/tests/test_data.py +21 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/test_geometry.py +26 -0
- starplot-0.23.0/tests/test_image.py +249 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/test_languages.py +5 -5
- {starplot-0.22.0 → starplot-0.23.0}/tests/test_map.py +50 -0
- starplot-0.23.0/tests/test_settings.py +51 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/test_styles.py +59 -2
- starplot-0.22.0/src/starplot/styles/ext/horizon.yml +0 -5
- starplot-0.22.0/src/starplot/styles/ext/map.yml +0 -12
- starplot-0.22.0/src/starplot/styles/ext/publication.yml +0 -8
- starplot-0.22.0/tests/test_data.py +0 -18
- starplot-0.22.0/tests/test_settings.py +0 -22
- {starplot-0.22.0 → starplot-0.23.0}/.dockerignore +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/.github/FUNDING.yml +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/.github/workflows/archives.yaml +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/.github/workflows/docs.yml +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/.github/workflows/release.yml +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/.github/workflows/test.yml +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/.gitignore +0 -0
- /starplot-0.22.0/CLAUDE.md → /starplot-0.23.0/AGENTS.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/CODE_OF_CONDUCT.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/CONTRIBUTING.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/Dockerfile +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/LICENSE +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/README.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/constellation_borders.json +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/constellations.json +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/milkyway.json +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/star_designations.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/de/constellation_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/de/dso_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/de/other_terms.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/de/readme.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/de/star_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/en-us/constellation_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/en-us/dso_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/en-us/other_terms.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/en-us/star_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/es/constellation_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/es/dso_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/es/other_terms.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/es/star_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/fa/constellation_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/fa/dso_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/fa/other_terms.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/fa/star_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/fr/constellation_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/fr/dso_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/fr/other_terms.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/fr/star_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/it/constellation_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/it/dso_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/it/other_terms.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/it/readme.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/it/star_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/lt/constellation_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/lt/dso_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/lt/other_terms.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/lt/readme.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/lt/star_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/nl/constellation_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/nl/dso_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/nl/other_terms.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/nl/readme.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/nl/star_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/zh-cn/constellation_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/zh-cn/dso_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/zh-cn/other_terms.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/zh-cn/star_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/zh-tw/constellation_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/zh-tw/dso_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/zh-tw/other_terms.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/zh-tw/readme.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/raw/translations/zh-tw/star_names.csv +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/readme.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/scripts/constellation_names.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/scripts/data_settings.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/scripts/db.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/scripts/dso_names.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/scripts/star_designations.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/data/scripts/translations.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/about.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/css/extra.css +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/custom/main.html +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/data/building.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/data/constellations.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/data/dsos.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/data/index.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/data/stars.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/data-sources.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/horizon-double-cluster.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/horizon-gradient.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/horizon-sgr.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-big-dipper.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-big.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-canis-major.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-carina-nebula.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-cassiopeia.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-custom-marker.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-galaxy.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-milky-way-stars.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-orion.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-orthographic.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-sagittarius.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/map-virgo-cluster.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/optic-iss-transit.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/optic-m45.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/optic-orion.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/optic-solar-eclipse.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/star-chart-basic.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/star-chart-detail.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/examples/star-chart-french.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/celestial-globe.svg +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/cover-front-sm-360.png +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/discord.svg +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/examples/.keep +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/favicon.png +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/figure_layout.svg +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/logo-2400px.png +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/logo-original/banner.png +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/logo-original/banner.svg +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/logo-original/banner.vectornator +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/logo-original/logo.png +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/logo-original/logo.svg +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/logo-original/logo.vectornator +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/logo-original/logo2.png +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/logo.svg +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/logo2.vectornator +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/logo500.png +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/mono-2400px.png +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/mono.png +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/mono.svg +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/star.svg +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/starplot-header.svg +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/images/tutorial/.keep +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/installation.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/license.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/migration-guides/0.16.0.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/migration-guides/0.21.0.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/comet.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/constellation.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/dso.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/index.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/moon.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/object-list.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/observer.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/optics.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/planet.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/satellite.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/star.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/models/sun.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/object-names/constellations.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/object-names/dsos.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/object-names/stars.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-callables.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-collisions.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-galaxyplot.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-horizonplot.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-localization.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-mapplot.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-ongc.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-opticplot.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-positions.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-projections.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-selecting-objects.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/reference-zenithplot.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/robots.txt +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/scripts/data.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/scripts/gradients.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/scripts/projection_list.html +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/scripts/projection_list.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/scripts/projections.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/scripts/style_explorer.html +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/showcase.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/snippets/_newsletter.html +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/styling/color.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/styling/explorer.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/styling/extensions.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/styling/gradients.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/styling/layout.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/tutorial/01.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/tutorial/02.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/tutorial/03.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/tutorial/04.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/tutorial/05.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/tutorial/06.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/tutorial/07.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/tutorial/08.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/tutorial/09.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/docs/tutorial/index.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/constellation.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/galaxy.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/gradient.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/horizon_double_cluster.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_big.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_big_dipper.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_carina.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_cas.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_equidistant.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_galaxy.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_milky_way_stars.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_orion.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_orthographic.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_sagittarius.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/map_virgo_cluster.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/optic_iss_transit.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/optic_m45.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/optic_orion_nebula.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/optic_solar_eclipse.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/star_chart_basic.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/star_chart_detail.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/examples/star_chart_french.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/hash_checks/__init__.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/hash_checks/data/.keep +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/hash_checks/flaky.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/hash_checks/galaxy_checks.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/hash_checks/hashio.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/hash_checks/horizon_checks.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/hash_checks/optic_checks.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/hash_checks/template.html +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/scripts/list_fonts.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/scripts/marimo.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/scripts/voronoi.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/callables.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/coordinates.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/ecliptic.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/library/readme.md +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/translations.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/data/utils.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/mixins.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/__init__.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/base.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/comet.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/milky_way.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/moon.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/objects.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/observer.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/optics.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/planet.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/satellite.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/models/sun.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plots/__init__.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plots/zenith.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plotters/gridlines.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plotters/legend.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/plotters/milkyway.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/profile.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/projections.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/__init__.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/base.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/constants.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/ext/gradient_presets.yml +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/extensions.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/gradients.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/styles/types.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/svg/__init__.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/svg/png.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/src/starplot/warnings.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/__init__.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/data/__init__.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/data/comets.txt +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/data/test_utils.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/models/__init__.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/models/test_comets.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/models/test_constellation.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/models/test_observer.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/models/test_optics.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/models/test_satellite.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/models/test_solar_system.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/plots/__init__.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/plots/test_galaxy.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/plots/test_horizon.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/svg/__init__.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/svg/test_elements.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/svg/test_fonts.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/svg/test_layout.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/test_catalogs.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/test_cli.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/test_optic.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/test_utils.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tests/utils.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tutorial/build.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tutorial/tutorial_02.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tutorial/tutorial_03.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tutorial/tutorial_04.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tutorial/tutorial_05.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tutorial/tutorial_06.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tutorial/tutorial_07.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/tutorial/tutorial_08.py +0 -0
- {starplot-0.22.0 → starplot-0.23.0}/zensical.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: starplot
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.23.0
|
|
4
4
|
Summary: Star charts and maps of the sky
|
|
5
5
|
Keywords: astronomy,stars,charts,maps,constellations,sky,plotting
|
|
6
6
|
Author-email: Steve Berardi <steve@starplot.dev>
|
|
@@ -26,7 +26,7 @@ Requires-Dist: pyarrow >= 14.0.2
|
|
|
26
26
|
Requires-Dist: rtree >= 1.2.0
|
|
27
27
|
Requires-Dist: pyqtree >= 1.0.0
|
|
28
28
|
Requires-Dist: requests >= 2.31.0
|
|
29
|
-
Requires-Dist: duckdb
|
|
29
|
+
Requires-Dist: duckdb < 2.0.0
|
|
30
30
|
Requires-Dist: sqlglot >= 28.9.0
|
|
31
31
|
Requires-Dist: ibis-framework[duckdb, geospatial] >= 11
|
|
32
32
|
Requires-Dist: astropy-healpix >= 1.1.2
|
|
@@ -29,7 +29,7 @@ Please follow these steps in a pull request to submit a new translation:
|
|
|
29
29
|
- `star_names.csv`
|
|
30
30
|
3. Add the ISO-639-1 code to:
|
|
31
31
|
- `LANGUAGES` list [here](https://github.com/steveberardi/starplot/blob/main/src/starplot/data/translations.py)
|
|
32
|
-
- Doc-string for `Settings.language` [here](https://github.com/steveberardi/starplot/blob/main/src/starplot/
|
|
32
|
+
- Doc-string for `Settings.language` [here](https://github.com/steveberardi/starplot/blob/main/src/starplot/settings.py)
|
|
33
33
|
4. Copy the values from `other_terms.csv` to the `LABELS` dictionary [here](https://github.com/steveberardi/starplot/blob/main/src/starplot/data/translations.py)
|
|
34
34
|
5. Include a `readme.md` file in the data folder that explains the source of the translation (e.g. a well known astronomy book in the language, astronomical society, etc) - [see example here](https://github.com/steveberardi/starplot/blob/main/data/raw/translations/it/readme.md)
|
|
35
35
|
6. Add test cases for the translation in [test_languages.py](https://github.com/steveberardi/starplot/blob/main/tests/test_languages.py)
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
## v0.23.x
|
|
2
|
+
[Documentation](https://archives.starplot.dev/0.23.0/)
|
|
3
|
+
|
|
4
|
+
- Adds an `image` overlay plotting function to map, horizon, and optic plots
|
|
5
|
+
- Normalizes sizing of circle-based markers
|
|
6
|
+
- Adds support for defining `where_*` kwargs as string SQL `WHERE` clauses
|
|
7
|
+
- Improved smoothing in the `ellipse` function
|
|
8
|
+
- Updates default DSO catalog to fix a bug with galaxy geometries
|
|
9
|
+
- **Breaking:** Restructures some `PlotStyle` fields:
|
|
10
|
+
- `bayer_labels` and `flamsteed_labels` are now `star.bayer_label` and `star.flamsteed_label`
|
|
11
|
+
- `constellation_lines`, `constellation_labels`, and `constellation_borders` are now `constellation.line`, `constellation.label`, and `constellation.border`
|
|
12
|
+
- `planets` is now `planet`
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
1
16
|
## v0.22.x
|
|
2
17
|
[Documentation](https://archives.starplot.dev/0.22.0/)
|
|
3
18
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
<table class="table-coming-soon">
|
|
10
10
|
<tr>
|
|
11
|
-
<td>v0.
|
|
11
|
+
<td>v0.24</td>
|
|
12
12
|
<td>
|
|
13
13
|
<h4>⭐ Next Release ⭐</h4>
|
|
14
14
|
<ul>
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<td></td>
|
|
21
21
|
</tr>
|
|
22
22
|
<tr>
|
|
23
|
-
<td>v0.
|
|
23
|
+
<td>v0.25+</td>
|
|
24
24
|
<td>
|
|
25
25
|
<ul>
|
|
26
26
|
<li>Planet moons</li>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Image Overlay on an Optic Plot
|
|
3
|
+
---
|
|
4
|
+
[:octicons-arrow-left-24: Back to Examples](../examples.md)
|
|
5
|
+
|
|
6
|
+
# Image Overlay on an Optic Plot {.example-header}
|
|
7
|
+
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
Here's an example of plotting an image of the Andromeda Galaxy (M31) on an optic plot. The image is aligned to the sky using control points, which map pixel positions in the image with the known RA/DEC of the stars at those positions. You can use a plate solver like [tetra3rs](https://tetra3rs.dev/) to find these control points automatically.
|
|
11
|
+
|
|
12
|
+
```python
|
|
13
|
+
--8<-- "examples/optic_image_overlay.py"
|
|
14
|
+
```
|
|
@@ -68,15 +68,15 @@
|
|
|
68
68
|
</a>
|
|
69
69
|
</li>
|
|
70
70
|
<li>
|
|
71
|
-
<a href="examples/
|
|
72
|
-
<img src="images/examples/
|
|
73
|
-
<p class="example-card-title">
|
|
71
|
+
<a href="examples/optic-image-overlay/">
|
|
72
|
+
<img src="images/examples/optic_image_overlay-sm.png" alt="Image Overlay on an Optic Plot of the Andromeda Galaxy" class="off-glb" loading="lazy"/>
|
|
73
|
+
<p class="example-card-title">Image Overlay on an Optic Plot</p>
|
|
74
74
|
</a>
|
|
75
75
|
</li>
|
|
76
76
|
<li>
|
|
77
|
-
<a href="examples/map-
|
|
78
|
-
<img src="images/examples/
|
|
79
|
-
<p class="example-card-title">The
|
|
77
|
+
<a href="examples/map-milky-way-stars/">
|
|
78
|
+
<img src="images/examples/map_milky_way_stars-sm.png" alt="Stars of the Milky Way" class="off-glb">
|
|
79
|
+
<p class="example-card-title">The Milky Way</p>
|
|
80
80
|
</a>
|
|
81
81
|
</li>
|
|
82
82
|
<li>
|
|
@@ -103,6 +103,12 @@
|
|
|
103
103
|
<p class="example-card-title">Orthographic Map</p>
|
|
104
104
|
</a>
|
|
105
105
|
</li>
|
|
106
|
+
<li>
|
|
107
|
+
<a href="examples/map-big-dipper/">
|
|
108
|
+
<img src="images/examples/map_big_dipper-sm.png" alt="Map of the Big Dipper" class="off-glb" loading="lazy"/>
|
|
109
|
+
<p class="example-card-title">The Big Dipper</p>
|
|
110
|
+
</a>
|
|
111
|
+
</li>
|
|
106
112
|
<li>
|
|
107
113
|
<a href="examples/map-canis-major/">
|
|
108
114
|
<img src="images/examples/map_canis_major-sm.png" alt="Map of the Constellation Canis Major" class="off-glb" loading="lazy"/>
|
|
@@ -12,7 +12,7 @@ Starplot is a Python library for creating star charts and maps of the sky
|
|
|
12
12
|
- <img src="images/examples/map_orion.png" width="600"> <h3>__Maps__</h3> shows an area that you define in one of many available map projections
|
|
13
13
|
- <img src="images/examples/horizon_gradient.png" width="600"> <h3>Horizon Charts</h3> shows the horizon at a specific time and place
|
|
14
14
|
- <img src="images/examples/star_chart_basic.png" height="600" width="600"> <h3>Zenith Charts</h3> shows the entire sky at a specific time and place
|
|
15
|
-
- <img src="images/examples/
|
|
15
|
+
- <img src="images/examples/optic_image_overlay.png" width="600"> <h3>Optic Charts</h3> shows what you'll see through an optic (e.g. telescope) at a specific time and place
|
|
16
16
|
- <img src="images/examples/galaxy.png" height="600" width="600"> <h3>Galaxy Charts</h3> shows the entire sky in galactic coordinates
|
|
17
17
|
|
|
18
18
|
- <a href="examples/">
|
|
@@ -33,7 +33,8 @@ Starplot is a Python library for creating star charts and maps of the sky
|
|
|
33
33
|
<li><strong>Planets and Deep Sky Objects (DSOs)</strong> - with support for plotting their true extent</li>
|
|
34
34
|
<li><strong>Comets and Satellites</strong> - easy trajectory plotting</li>
|
|
35
35
|
<li><strong>Custom Styles</strong> - for all objects and with 8+ built-in themes</li>
|
|
36
|
-
<li><strong>Export to SVG or PNG</strong
|
|
36
|
+
<li><strong>Export to SVG or PNG</strong> - with easy scaling for png exports</li>
|
|
37
|
+
<li><strong>Image overlays</strong> - given a set of control points</li>
|
|
37
38
|
<li><strong>Data Backend</strong> - powered by DuckDB + Ibis for fast object lookup</li>
|
|
38
39
|
<li><strong>Custom Data Catalogs</strong> - with helpers for building and optimizing</li>
|
|
39
40
|
<li><strong>Label Collision Avoidance</strong> - ensuring all labels are readable</li>
|
|
@@ -29,6 +29,20 @@ STARPLOT_LANGUAGE=fr
|
|
|
29
29
|
```
|
|
30
30
|
</div>
|
|
31
31
|
|
|
32
|
+
## Temporary overrides
|
|
33
|
+
|
|
34
|
+
To change settings for just part of your code, call `settings` in a `with` block. The previous values are restored when the block exits:
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
from starplot import settings
|
|
38
|
+
|
|
39
|
+
with settings(language="de", svg_text_type="path"):
|
|
40
|
+
# Plots created here will use German labels and SVG text as paths
|
|
41
|
+
...
|
|
42
|
+
|
|
43
|
+
# Back to the previous settings here
|
|
44
|
+
```
|
|
45
|
+
|
|
32
46
|
---
|
|
33
47
|
|
|
34
48
|
## `data_path`
|
|
@@ -93,7 +107,7 @@ Number of decimal places to round coordinates and dimensions to when rendering S
|
|
|
93
107
|
|
|
94
108
|
|
|
95
109
|
<!--
|
|
96
|
-
::: starplot.
|
|
110
|
+
::: starplot.settings.Settings
|
|
97
111
|
options:
|
|
98
112
|
show_docstring_attributes: true
|
|
99
113
|
separate_signature: true
|
|
@@ -8,6 +8,7 @@ from typing import get_args
|
|
|
8
8
|
from starplot import MapPlot, Miller
|
|
9
9
|
from starplot.styles import MarkerStyle, ObjectStyle, PlotStyle, extensions
|
|
10
10
|
from starplot.styles.types import MarkerSymbol
|
|
11
|
+
from starplot.svg import symbols
|
|
11
12
|
|
|
12
13
|
OUTPUT_DIR = Path(__file__).resolve().parent.parent / "images" / "reference"
|
|
13
14
|
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
|
@@ -56,10 +57,12 @@ marker_styles = {
|
|
|
56
57
|
|
|
57
58
|
for symbol_str in get_args(MarkerSymbol):
|
|
58
59
|
marker_style = default_style
|
|
59
|
-
marker_style.size = 64
|
|
60
60
|
marker_style.symbol = symbol_str
|
|
61
61
|
marker_style.stroke_width = default_style.stroke_width
|
|
62
62
|
|
|
63
|
+
# size is the diameter of the circle for circle-based symbols, so scale it down
|
|
64
|
+
# to fit the whole symbol in the same box as all the others
|
|
65
|
+
marker_style.size = 64 / max(symbols.extent(symbol_str, 1))
|
|
63
66
|
|
|
64
67
|
object_style = ObjectStyle(marker=marker_style)
|
|
65
68
|
|
|
@@ -29,8 +29,8 @@ OUTPUT_PATH = REPO_ROOT / "docs" / "images" / "reference" / "style_explorer.html
|
|
|
29
29
|
# Groups of PlotStyle's own properties, in the order they should appear.
|
|
30
30
|
GROUPS = [
|
|
31
31
|
("Layout", ["base", "axes", "figure", "title", "table", "legend"]),
|
|
32
|
-
("Stars", ["star"
|
|
33
|
-
("Solar System", ["
|
|
32
|
+
("Stars", ["star"]),
|
|
33
|
+
("Solar System", ["planet", "moon", "sun"]),
|
|
34
34
|
(
|
|
35
35
|
"Deep Sky Objects",
|
|
36
36
|
[
|
|
@@ -49,10 +49,7 @@ GROUPS = [
|
|
|
49
49
|
"dso_duplicate",
|
|
50
50
|
],
|
|
51
51
|
),
|
|
52
|
-
(
|
|
53
|
-
"Constellations",
|
|
54
|
-
["constellation_lines", "constellation_borders", "constellation_labels"],
|
|
55
|
-
),
|
|
52
|
+
("Constellations", ["constellation"]),
|
|
56
53
|
(
|
|
57
54
|
"Sky Features",
|
|
58
55
|
[
|
|
@@ -69,8 +66,17 @@ GROUPS = [
|
|
|
69
66
|
],
|
|
70
67
|
),
|
|
71
68
|
(
|
|
72
|
-
"
|
|
73
|
-
[
|
|
69
|
+
"Plotting Functions",
|
|
70
|
+
[
|
|
71
|
+
"line",
|
|
72
|
+
"polygon",
|
|
73
|
+
"circle",
|
|
74
|
+
"ellipse",
|
|
75
|
+
"rectangle",
|
|
76
|
+
"marker",
|
|
77
|
+
"text",
|
|
78
|
+
"image",
|
|
79
|
+
],
|
|
74
80
|
),
|
|
75
81
|
]
|
|
76
82
|
|
|
@@ -84,9 +84,11 @@ from starplot import PlotStyle
|
|
|
84
84
|
|
|
85
85
|
style = PlotStyle().extend(
|
|
86
86
|
{
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
|
|
87
|
+
"star": {
|
|
88
|
+
"bayer_label": {
|
|
89
|
+
"font_name": "Literata",
|
|
90
|
+
"font_size": 10
|
|
91
|
+
}
|
|
90
92
|
}
|
|
91
93
|
}
|
|
92
94
|
)
|
|
@@ -94,8 +96,8 @@ style = PlotStyle().extend(
|
|
|
94
96
|
Alternatively, you can do this:
|
|
95
97
|
```python
|
|
96
98
|
style = PlotStyle()
|
|
97
|
-
style.
|
|
98
|
-
style.
|
|
99
|
+
style.star.bayer_label.font_name = "Literata"
|
|
100
|
+
style.star.bayer_label.font_size = 10
|
|
99
101
|
|
|
100
102
|
```
|
|
101
103
|
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Below are previews of all marker symbols available in Starplot. Many aspects of the symbol can be customized through its style, including fill color, edge color, edge thickness, edge style (solid, dotted, dashed, etc), opacity, and much more. See [`MarkerStyle`][starplot.MarkerStyle] for details.
|
|
4
4
|
|
|
5
|
+
Most symbols fit inside a square with sides equal to the marker's `size`. The exceptions are `circle_line`, `circle_crosshair`, and `circle_double_border`: for these symbols, `size` is the diameter of the circle, so they're the same size as a `circle` marker with the same `size` (and the rest of the symbol extends outside of that circle).
|
|
6
|
+
|
|
5
7
|
<div class="marker-symbol-grid" markdown>
|
|
6
8
|
|
|
7
9
|
<div class="marker-symbol-card" markdown>
|
|
@@ -34,6 +34,16 @@
|
|
|
34
34
|
show_root_heading: true
|
|
35
35
|
show_docstring_attributes: true
|
|
36
36
|
|
|
37
|
+
::: starplot.styles.StarStyle
|
|
38
|
+
options:
|
|
39
|
+
show_root_heading: true
|
|
40
|
+
show_docstring_attributes: true
|
|
41
|
+
|
|
42
|
+
::: starplot.styles.ConstellationStyle
|
|
43
|
+
options:
|
|
44
|
+
show_root_heading: true
|
|
45
|
+
show_docstring_attributes: true
|
|
46
|
+
|
|
37
47
|
::: starplot.styles.PathStyle
|
|
38
48
|
options:
|
|
39
49
|
show_root_heading: true
|
|
@@ -70,6 +80,11 @@
|
|
|
70
80
|
show_docstring_attributes: true
|
|
71
81
|
inherited_members: true
|
|
72
82
|
|
|
83
|
+
::: starplot.styles.ImageStyle
|
|
84
|
+
options:
|
|
85
|
+
show_root_heading: true
|
|
86
|
+
show_docstring_attributes: true
|
|
87
|
+
|
|
73
88
|
::: starplot.styles.TitleStyle
|
|
74
89
|
options:
|
|
75
90
|
show_root_heading: true
|
|
Binary file
|
|
@@ -10,7 +10,7 @@ style = PlotStyle().extend(
|
|
|
10
10
|
extensions.GRADIENT_PRE_DAWN,
|
|
11
11
|
)
|
|
12
12
|
style.figure.padding = 40
|
|
13
|
-
style.
|
|
13
|
+
style.constellation.line.width = 4
|
|
14
14
|
style.star.marker.stroke_width = 0
|
|
15
15
|
|
|
16
16
|
dt = datetime(2025, 8, 20, 21, 0, 0, 0, tzinfo=ZoneInfo("Pacific/Honolulu"))
|
|
@@ -25,7 +25,7 @@ p.constellations(
|
|
|
25
25
|
)
|
|
26
26
|
p.line(
|
|
27
27
|
geometry=canis_major.border,
|
|
28
|
-
style__line=p.style.
|
|
28
|
+
style__line=p.style.constellation.border,
|
|
29
29
|
)
|
|
30
30
|
p.open_clusters(where=[_.magnitude < 9], where_true_size=[False])
|
|
31
31
|
p.stars(where=[_.magnitude < 9], where_labels=[_.magnitude < 4], bayer_labels=True)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
from datetime import datetime
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
from zoneinfo import ZoneInfo
|
|
4
|
+
|
|
5
|
+
from starplot import DSO, Observer, OpticPlot, Scope, callables, _
|
|
6
|
+
from starplot.styles import PlotStyle, extensions
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
IMAGE = Path(__file__).parent / "andromeda.jpeg"
|
|
10
|
+
IMAGE_SIZE = (1200, 1200)
|
|
11
|
+
|
|
12
|
+
# Control points that match a pixel position in the image with
|
|
13
|
+
# its sky position: ((x, y), (ra, dec)) in degrees.
|
|
14
|
+
CONTROL_POINTS = [
|
|
15
|
+
((231.9, 870.0), (10.5060, 40.6883)), # HIP 3293
|
|
16
|
+
((113.8, 533.3), (11.1549, 40.6794)), # HIP 3494
|
|
17
|
+
((141.9, 316.8), (11.5135, 40.8089)), # HIP 3597
|
|
18
|
+
((132.2, 576.7), (11.0697, 40.6852)), # HIP 3461
|
|
19
|
+
((751.0, 404.0), (11.0162, 41.5709)), # HIP 3447
|
|
20
|
+
((421.1, 281.7), (11.4187, 41.1902)), # TYC 2801-1743-1
|
|
21
|
+
((543.3, 368.3), (11.1977, 41.3136)), # TYC 2805-117-1
|
|
22
|
+
((400.3, 638.7), (10.8089, 41.0094)), # TYC 2801-2078-1
|
|
23
|
+
((426.8, 41.7), (11.8345, 41.2989)), # TYC 2805-39-1
|
|
24
|
+
((1083.7, 503.7), (10.6477, 41.9630)), # TYC 2805-695-1
|
|
25
|
+
((1073.0, 280.3), (11.0473, 42.0458)), # TYC 2805-1072-1
|
|
26
|
+
((392.6, 744.0), (10.6292, 40.9537)), # HIP 3333
|
|
27
|
+
((993.9, 765.0), (10.2416, 41.7309)), # HIP 3223
|
|
28
|
+
((900.8, 560.2), (10.6563, 41.6994)), # TYC 2805-789-1
|
|
29
|
+
((1130.1, 761.1), (10.1676, 41.9105)), # TYC 2805-1240-1
|
|
30
|
+
((643.1, 152.1), (11.5197, 41.5368)), # TYC 2805-700-1
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
# custom gradient background
|
|
34
|
+
NIGHT_SUBTLE = (
|
|
35
|
+
(0.0, "hsl(240, 14%, 10%)"),
|
|
36
|
+
(0.25, "hsl(240, 14%, 5%)"),
|
|
37
|
+
(0.6, "hsl(240, 14%, 2%)"),
|
|
38
|
+
(1.0, "#000000"),
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
m31 = DSO.get(m="31")
|
|
42
|
+
|
|
43
|
+
observer = Observer(
|
|
44
|
+
dt=datetime(2026, 10, 13, 21, 0, 0, tzinfo=ZoneInfo("US/Pacific")),
|
|
45
|
+
lat=33.363484,
|
|
46
|
+
lon=-116.836394,
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
style = PlotStyle().extend(
|
|
50
|
+
extensions.GRAYSCALE_DARK,
|
|
51
|
+
extensions.OPTIC,
|
|
52
|
+
{
|
|
53
|
+
"axes": {
|
|
54
|
+
"background": {"fill": {"stops": NIGHT_SUBTLE, "type": "radial"}},
|
|
55
|
+
"border": {
|
|
56
|
+
"stroke": "#3A3A3A",
|
|
57
|
+
"width": 32,
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
extensions.FIGURE_TRANSPARENT,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
# outline the galaxies instead of filling them, so the photo shows through
|
|
65
|
+
style.dso_galaxy.marker.fill = None
|
|
66
|
+
style.dso_galaxy.marker.stroke = "#86c7f2"
|
|
67
|
+
style.dso_galaxy.marker.stroke_width = 5
|
|
68
|
+
style.dso_galaxy.marker.opacity = 1
|
|
69
|
+
|
|
70
|
+
style.dso_galaxy.label.font_size = 72
|
|
71
|
+
style.dso_galaxy.label.font_weight = 700
|
|
72
|
+
|
|
73
|
+
p = OpticPlot(
|
|
74
|
+
ra=m31.ra,
|
|
75
|
+
dec=m31.dec,
|
|
76
|
+
optic=Scope(focal_length=714, eyepiece_focal_length=28, eyepiece_fov=82),
|
|
77
|
+
observer=observer,
|
|
78
|
+
resolution=2800,
|
|
79
|
+
scale=0.9,
|
|
80
|
+
style=style,
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
p.image(IMAGE, CONTROL_POINTS)
|
|
84
|
+
|
|
85
|
+
p.stars(
|
|
86
|
+
where=[_.magnitude < 12],
|
|
87
|
+
color_fn=callables.color_by_bv_gradient,
|
|
88
|
+
style__marker__stroke=None,
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
# plot Andromeda (M31) and its satellite galaxies (M32, M110)
|
|
92
|
+
p.dsos(
|
|
93
|
+
where=[_.m.isin([31, 32, 110])],
|
|
94
|
+
where_true_size=True,
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
p.export("optic_image_overlay.png")
|
|
@@ -59,10 +59,10 @@ map_gridlines:
|
|
|
59
59
|
filename: /Users/steveberardi/src/starplot/hash_checks/data/map-gridlines.png
|
|
60
60
|
phash: cbb44b172d3261a7
|
|
61
61
|
map_label_callables:
|
|
62
|
-
dhash:
|
|
62
|
+
dhash: 80e0e0c8c8e0a080d8982c0c2cac98e0c0989c0d0d9e98a0
|
|
63
63
|
exception: null
|
|
64
64
|
filename: /Users/steveberardi/src/starplot/hash_checks/data/map-m45-label-callables.png
|
|
65
|
-
phash:
|
|
65
|
+
phash: b232c9d94ec74ccc
|
|
66
66
|
map_milky_way_multi_polygon:
|
|
67
67
|
dhash: 93cbe2f2ec6432da93cba2f2ec6632dac2c4b0d96c64129a
|
|
68
68
|
exception: null
|
|
@@ -84,7 +84,7 @@ map_orion_base:
|
|
|
84
84
|
filename: /Users/steveberardi/src/starplot/hash_checks/data/map-orion-base.png
|
|
85
85
|
phash: be79d3649585a194
|
|
86
86
|
map_orion_extra:
|
|
87
|
-
dhash:
|
|
87
|
+
dhash: 1a1b39772b6d64680a1b39532b6f646a4a1bb9962b2f6468
|
|
88
88
|
exception: null
|
|
89
89
|
filename: /Users/steveberardi/src/starplot/hash_checks/data/map-orion-extra.png
|
|
90
90
|
phash: bf715f648186909e
|
|
@@ -94,10 +94,10 @@ map_plate_caree:
|
|
|
94
94
|
filename: /Users/steveberardi/src/starplot/hash_checks/data/map-plate-caree.png
|
|
95
95
|
phash: c43d69c6749a67b0
|
|
96
96
|
map_plot_custom_clip_path_virgo:
|
|
97
|
-
dhash:
|
|
97
|
+
dhash: 0302d26b262d240c0323c62e262f24040333442e262f2404
|
|
98
98
|
exception: null
|
|
99
99
|
filename: /Users/steveberardi/src/starplot/hash_checks/data/map-custom-clip-path-virgo.png
|
|
100
|
-
phash:
|
|
100
|
+
phash: ee4be8eaebc22094
|
|
101
101
|
map_plot_limit_by_geometry:
|
|
102
102
|
dhash: 80a088a4568c6c8082b090a4568c6480a02098a4568c6480
|
|
103
103
|
exception: null
|
|
@@ -134,10 +134,10 @@ optic_camera_rotated:
|
|
|
134
134
|
filename: /Users/steveberardi/src/starplot/hash_checks/data/optic-camera-rotated-m45.png
|
|
135
135
|
phash: d0993f62f0af0366
|
|
136
136
|
optic_clipping:
|
|
137
|
-
dhash:
|
|
137
|
+
dhash: 709838e6e2e2fcfc7098b8e6eae2fcfc70c8bae4f6e2fcf4
|
|
138
138
|
exception: null
|
|
139
139
|
filename: /Users/steveberardi/src/starplot/hash_checks/data/optic-clipping.png
|
|
140
|
-
phash:
|
|
140
|
+
phash: 95687a852f953d1a
|
|
141
141
|
optic_iss_moon_transit:
|
|
142
142
|
dhash: f0d48eb0b48ad4f0f0d48ab0b48ac4f0f0d48ab2b4aac4f0
|
|
143
143
|
exception: null
|
|
@@ -187,12 +187,12 @@ optic_orion_naked_eye:
|
|
|
187
187
|
dhash: 64c4a2a092ccf07064d4a4a092ccf07060c4a2a092ccf070
|
|
188
188
|
exception: null
|
|
189
189
|
filename: /Users/steveberardi/src/starplot/hash_checks/data/optic-orion-naked-eye.png
|
|
190
|
-
phash:
|
|
190
|
+
phash: c46c0bd57fca2499
|
|
191
191
|
optic_orion_nebula_refractor:
|
|
192
|
-
dhash:
|
|
192
|
+
dhash: f0cca4f872e2ec70f0cca4f872e2ec70f0cca4f872e2ec70
|
|
193
193
|
exception: null
|
|
194
194
|
filename: /Users/steveberardi/src/starplot/hash_checks/data/optic-orion-nebula-refractor.png
|
|
195
|
-
phash:
|
|
195
|
+
phash: 87b4344bcb5a2eb4
|
|
196
196
|
optic_polaris_binoculars:
|
|
197
197
|
dhash: f0c48a10908ac070f0c48a10908ac070f0c48a10908ac070
|
|
198
198
|
exception: null
|
|
@@ -540,8 +540,7 @@ def check_map_plot_custom_clip_path_virgo():
|
|
|
540
540
|
dec_max=17,
|
|
541
541
|
style=STYLE.extend(
|
|
542
542
|
{
|
|
543
|
-
"
|
|
544
|
-
"dso_galaxy": {"marker": {"size": 20}},
|
|
543
|
+
"dso_galaxy": {"marker": {"size": 30}},
|
|
545
544
|
}
|
|
546
545
|
),
|
|
547
546
|
resolution=RESOLUTION,
|
|
@@ -723,7 +722,7 @@ def check_map_constellation_clip_path():
|
|
|
723
722
|
|
|
724
723
|
p.line(
|
|
725
724
|
geometry=constellation.border,
|
|
726
|
-
style__line=p.style.
|
|
725
|
+
style__line=p.style.constellation.border,
|
|
727
726
|
)
|
|
728
727
|
|
|
729
728
|
for hip1, hip2 in constellation.star_hip_lines:
|
|
@@ -734,7 +733,7 @@ def check_map_constellation_clip_path():
|
|
|
734
733
|
(star1.ra, star1.dec),
|
|
735
734
|
(star2.ra, star2.dec),
|
|
736
735
|
],
|
|
737
|
-
style__line=p.style.
|
|
736
|
+
style__line=p.style.constellation.line,
|
|
738
737
|
)
|
|
739
738
|
|
|
740
739
|
p.stars(
|
|
@@ -778,7 +777,7 @@ def check_map_font_fallback():
|
|
|
778
777
|
styles.extensions.MAP,
|
|
779
778
|
)
|
|
780
779
|
style.title.font_name = "ThisFontDoesNotExist12345"
|
|
781
|
-
style.
|
|
780
|
+
style.constellation.label.font_name = "AlsoNotARealFont"
|
|
782
781
|
|
|
783
782
|
p = MapPlot(
|
|
784
783
|
projection=Miller(),
|
|
@@ -9,7 +9,7 @@ from starplot import (
|
|
|
9
9
|
Observer,
|
|
10
10
|
ZenithPlot,
|
|
11
11
|
_,
|
|
12
|
-
|
|
12
|
+
settings,
|
|
13
13
|
styles,
|
|
14
14
|
)
|
|
15
15
|
|
|
@@ -85,30 +85,30 @@ def check_zenith_gradient():
|
|
|
85
85
|
|
|
86
86
|
|
|
87
87
|
@flake
|
|
88
|
-
@override_settings(language="zh-cn")
|
|
89
88
|
def check_zenith_chinese():
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
styles.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
"
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
89
|
+
with settings(language="zh-cn"):
|
|
90
|
+
p = ZenithPlot(
|
|
91
|
+
observer=Observer(
|
|
92
|
+
lat=32.97,
|
|
93
|
+
lon=-117.038611,
|
|
94
|
+
dt=JUNE_2023,
|
|
95
|
+
),
|
|
96
|
+
style=styles.PlotStyle().extend(
|
|
97
|
+
styles.extensions.BLUE_GOLD,
|
|
98
|
+
styles.extensions.GRADIENT_PRE_DAWN,
|
|
99
|
+
{
|
|
100
|
+
"base": {
|
|
101
|
+
"font_name": "Noto Sans CJK SC",
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
),
|
|
105
|
+
resolution=RESOLUTION,
|
|
106
|
+
autoscale=True,
|
|
107
|
+
)
|
|
108
|
+
p.horizon()
|
|
109
|
+
p.constellations()
|
|
110
|
+
p.stars(where=[_.magnitude < 4.6], where_labels=[_.magnitude < 4])
|
|
111
|
+
p.constellation_labels(collision_handler=HANDLER)
|
|
112
|
+
filename = DATA_PATH / "zenith-chinese.png"
|
|
113
|
+
p.export(filename)
|
|
114
|
+
return filename
|