starplot 0.19.1__tar.gz → 0.19.2__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.19.1 → starplot-0.19.2}/CITATION.cff +2 -2
- {starplot-0.19.1 → starplot-0.19.2}/PKG-INFO +1 -1
- {starplot-0.19.1 → starplot-0.19.2}/docs/changelog.md +5 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/map-canis-major.md +1 -1
- {starplot-0.19.1 → starplot-0.19.2}/examples/map_canis_major.py +7 -2
- {starplot-0.19.1 → starplot-0.19.2}/examples/optic_iss_transit.py +1 -1
- {starplot-0.19.1 → starplot-0.19.2}/examples/optic_solar_eclipse.py +2 -2
- {starplot-0.19.1 → starplot-0.19.2}/hash_checks/hashlock.yml +16 -12
- {starplot-0.19.1 → starplot-0.19.2}/hash_checks/map_checks.py +71 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/__init__.py +1 -1
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/catalogs.py +2 -2
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/constellations.py +1 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/geod.py +3 -4
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/constellation.py +12 -1
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/moon.py +1 -1
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/planet.py +1 -1
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/sun.py +1 -1
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plots/base.py +31 -17
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plots/map.py +1 -4
- {starplot-0.19.1 → starplot-0.19.2}/tutorial/tutorial_06.py +1 -1
- {starplot-0.19.1 → starplot-0.19.2}/tutorial/tutorial_07.py +2 -2
- {starplot-0.19.1 → starplot-0.19.2}/.dockerignore +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/.github/FUNDING.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/.github/workflows/docs.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/.github/workflows/release.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/.github/workflows/test.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/.gitignore +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/CODE_OF_CONDUCT.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/CONTRIBUTING.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/Dockerfile +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/LICENSE +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/Makefile +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/README.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/constellation_borders.json +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/constellations.json +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/milkyway.json +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/star_designations.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/constellation_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/dso_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/en-us/constellation_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/en-us/dso_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/en-us/other_terms.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/en-us/star_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/es/constellation_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/es/dso_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/es/other_terms.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/es/star_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/fa/constellation_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/fa/dso_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/fa/other_terms.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/fa/star_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/fr/constellation_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/fr/dso_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/fr/other_terms.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/fr/star_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/lt/constellation_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/lt/dso_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/lt/other_terms.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/lt/readme.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/lt/star_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/other_terms.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/readme.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/star_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/zh-cn/constellation_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/zh-cn/dso_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/zh-cn/other_terms.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/zh-cn/star_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/zh-tw/constellation_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/zh-tw/dso_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/zh-tw/other_terms.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/zh-tw/readme.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/raw/translations/zh-tw/star_names.csv +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/readme.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/scripts/constellation_names.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/scripts/data_settings.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/scripts/db.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/scripts/docdata.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/scripts/dso_names.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/scripts/star_designations.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/data/scripts/translations.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/about.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/coming-soon.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/css/extra.css +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/custom/main.html +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/data/building.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/data/constellations.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/data/dsos.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/data/overview.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/data/stars.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/data-explorer.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/data-sources.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/horizon-double-cluster.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/horizon-gradient.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/horizon-sgr.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/map-big-dipper.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/map-big.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/map-carina-nebula.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/map-cassiopeia.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/map-custom-marker.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/map-milky-way-stars.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/map-orion.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/map-orthographic.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/map-sagittarius.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/optic-iss-transit.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/optic-m45.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/optic-moon-saturn.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/optic-orion.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/optic-solar-eclipse.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/star-chart-basic.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/star-chart-detail.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples/star-chart-french.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/examples.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/celestial-globe.svg +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/cover-front-sm-360.png +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/discord.svg +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/examples/.keep +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/favicon.png +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/logo-2400px.png +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/logo-original/banner.png +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/logo-original/banner.svg +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/logo-original/banner.vectornator +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/logo-original/logo.png +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/logo-original/logo.svg +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/logo-original/logo.vectornator +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/logo-original/logo2.png +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/logo.svg +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/logo2.vectornator +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/logo500.png +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/mono-2400px.png +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/mono.png +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/mono.svg +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/star.svg +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/images/tutorial/.keep +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/index.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/installation.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/license.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/migration-guides/0.16.0.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/object-names/constellations.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/object-names/dsos.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/object-names/stars.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-callables.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-collisions.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-horizonplot.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-localization.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-mapplot.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-models.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-ongc.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-opticplot.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-positions.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-selecting-objects.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-settings.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-styling.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/reference-zenithplot.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/robots.txt +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/showcase.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/snippets/_newsletter.html +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/tutorial/01.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/tutorial/02.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/tutorial/03.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/tutorial/04.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/tutorial/05.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/tutorial/06.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/tutorial/07.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/tutorial/08.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/tutorial/09.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/docs/tutorial.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/examples.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/galaxy_custom_marker.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/horizon_double_cluster.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/horizon_gradient.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/horizon_sgr.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/map_big.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/map_big_dipper.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/map_carina.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/map_cas.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/map_milky_way_stars.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/map_orion.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/map_orthographic.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/map_sagittarius.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/optic_m45.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/optic_moon_saturn.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/optic_orion_nebula.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/star_chart_basic.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/star_chart_detail.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/examples/star_chart_french.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/hash_checks/__init__.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/hash_checks/data/.keep +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/hash_checks/hashio.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/hash_checks/horizon_checks.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/hash_checks/optic_checks.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/hash_checks/template.html +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/hash_checks/zenith_checks.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/mkdocs.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/pyproject.toml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/requirements-dev.txt +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/requirements.txt +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/scripts/ecliptic.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/scripts/marimo.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/scripts/voronoi.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/callables.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/cli.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/config.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/coordinates.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/__init__.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/db.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/dsos.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/ecliptic.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/library/constellation_names.parquet +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/library/dso_names.parquet +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/library/readme.md +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/library/star_designations.parquet +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/stars.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/translations.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/data/utils.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/geometry.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/mixins.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/__init__.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/base.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/comet.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/dso.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/milky_way.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/objects.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/observer.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/optics.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/satellite.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/models/star.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plots/__init__.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plots/horizon.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plots/optic.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plots/zenith.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plotters/__init__.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plotters/arrow.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plotters/constellations.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plotters/dsos.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plotters/experimental.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plotters/gradients.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plotters/legend.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plotters/milkyway.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plotters/stars.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/plotters/text.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/profile.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/projections.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/__init__.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/base.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/antique.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/blue_dark.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/blue_gold.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/blue_light.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/blue_medium.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/blue_night.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/cb_wong.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/color_print.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/gradient_presets.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/grayscale.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/grayscale_dark.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/map.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/nord.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/optic.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/ext/publication.yml +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/extensions.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/gfs-didot/DESCRIPTION.en_us.html +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/gfs-didot/GFSDidot-Regular.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/gfs-didot/METADATA.pb +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/gfs-didot/OFL.txt +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/Inter-Bold.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/Inter-BoldItalic.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/Inter-ExtraBold.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/Inter-ExtraLight.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/Inter-ExtraLightItalic.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/Inter-Italic.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/Inter-Light.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/Inter-LightItalic.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/Inter-Regular.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/Inter-SemiBold.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/Inter-SemiBoldItalic.ttf +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts-library/inter/LICENSE.txt +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/fonts.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/helpers.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/styles/markers.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/utils.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/src/starplot/warnings.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/__init__.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/data/.keep +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/data/comets.txt +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_catalogs.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_comets.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_data.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_languages.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_map.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_models.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_observer.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_optic.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_satellite.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_settings.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_stars.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_styles.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/test_utils.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tests/utils.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tutorial/build.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tutorial/tutorial_02.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tutorial/tutorial_03.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tutorial/tutorial_04.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tutorial/tutorial_05.py +0 -0
- {starplot-0.19.1 → starplot-0.19.2}/tutorial/tutorial_08.py +0 -0
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
## v0.19.x
|
|
2
|
+
|
|
2
3
|
- Adds a `CollisionHandler` for defining what to do when labels collide with something
|
|
3
4
|
- Introduces catalogs for the Milky Way and constellation borders
|
|
4
5
|
- Makes map plots default to plotting at epoch J2000
|
|
5
6
|
- Replaces the `true_size` kwarg on the DSO plotting function with `where_true_size` which is a list of filters
|
|
6
7
|
- Fixes a bug with auto label offsets from markers
|
|
7
8
|
- [**v0.19.1**] Fixes issue with constellation boundaries
|
|
9
|
+
- [**v0.19.2**]
|
|
10
|
+
- Adds a `border` field to the constellation model
|
|
11
|
+
- Modifies the `line` function to accept a Shapely geometry OR a list of coordinates
|
|
12
|
+
- Fixes bug with plotting true apparent size of solar system objects
|
|
8
13
|
|
|
9
14
|
---
|
|
10
15
|
|
|
@@ -7,7 +7,7 @@ title: Map of Canis Major
|
|
|
7
7
|
|
|
8
8
|

|
|
9
9
|
|
|
10
|
-
In this example, we set the plot's `clip_path` to the
|
|
10
|
+
In this example, we set the plot's `clip_path` to the border of Canis Major, so only objects in that constellation are plotted:
|
|
11
11
|
|
|
12
12
|
```python
|
|
13
13
|
--8<-- "examples/map_canis_major.py"
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from shapely import Polygon
|
|
2
|
+
|
|
1
3
|
from starplot import MapPlot, Miller, Constellation, _
|
|
2
4
|
from starplot.styles import PlotStyle, extensions
|
|
3
5
|
|
|
@@ -14,13 +16,16 @@ p = MapPlot(
|
|
|
14
16
|
dec_max=-10.9,
|
|
15
17
|
style=style,
|
|
16
18
|
resolution=3400,
|
|
17
|
-
clip_path=canis_major.
|
|
19
|
+
clip_path=Polygon(canis_major.border.coords),
|
|
18
20
|
scale=1.2,
|
|
19
21
|
)
|
|
20
22
|
p.constellations(
|
|
21
23
|
where=[_.iau_id == "cma"],
|
|
22
24
|
)
|
|
23
|
-
p.
|
|
25
|
+
p.line(
|
|
26
|
+
geometry=canis_major.border,
|
|
27
|
+
style=p.style.constellation_borders,
|
|
28
|
+
)
|
|
24
29
|
p.open_clusters(where=[_.magnitude < 9], where_true_size=[False])
|
|
25
30
|
p.stars(where=[_.magnitude < 9], where_labels=[_.magnitude < 4], bayer_labels=True)
|
|
26
31
|
p.constellation_labels()
|
|
@@ -5,7 +5,7 @@ from starplot import Moon, Binoculars, Observer
|
|
|
5
5
|
from starplot.styles import PlotStyle, extensions
|
|
6
6
|
|
|
7
7
|
# time of partial eclipse. total eclipse started at 15:13:46
|
|
8
|
-
dt = datetime(2024, 4, 8, 14,
|
|
8
|
+
dt = datetime(2024, 4, 8, 14, 45, 0, 0, tzinfo=ZoneInfo("US/Eastern"))
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
observer = Observer(
|
|
@@ -18,7 +18,7 @@ m = Moon.get(dt=observer.dt, lat=observer.lat, lon=observer.lon)
|
|
|
18
18
|
|
|
19
19
|
op = m.create_optic(
|
|
20
20
|
observer=observer,
|
|
21
|
-
optic=Binoculars(magnification=
|
|
21
|
+
optic=Binoculars(magnification=30, fov=65),
|
|
22
22
|
style=PlotStyle().extend(
|
|
23
23
|
extensions.GRAYSCALE_DARK,
|
|
24
24
|
extensions.OPTIC,
|
|
@@ -22,6 +22,10 @@ map_coma_berenices_dso_size:
|
|
|
22
22
|
dhash: ea92ecacb08cc0c0aa86acacb088c682aa8a9292b08ac282
|
|
23
23
|
filename: /starplot/hash_checks/data/map-coma-berenices-dso-size.png
|
|
24
24
|
phash: 92966d6d4d9616c9
|
|
25
|
+
map_constellation_clip_path:
|
|
26
|
+
dhash: 3202ee96e47819103002ee96e4781910b002ee96e4781910
|
|
27
|
+
filename: /starplot/hash_checks/data/map-constellation-clip-path.png
|
|
28
|
+
phash: 99c45b99c4d98ec6
|
|
25
29
|
map_custom_stars:
|
|
26
30
|
dhash: 5e21a1ceac2c84485e21a1ceac2c84485e21a1ceac2c8448
|
|
27
31
|
filename: /starplot/hash_checks/data/map-custom-stars.png
|
|
@@ -43,7 +47,7 @@ map_mollweide:
|
|
|
43
47
|
filename: /starplot/hash_checks/data/map-mollweide.png
|
|
44
48
|
phash: ebcbb698e3309461
|
|
45
49
|
map_moon_phase_waxing_crescent:
|
|
46
|
-
dhash:
|
|
50
|
+
dhash: 0008344a4a3408008088a04a4aa088808088804a4a808880
|
|
47
51
|
filename: /starplot/hash_checks/data/map-moon-phase-waxing-crescent.png
|
|
48
52
|
phash: b38ccc3333cccc33
|
|
49
53
|
map_orion_base:
|
|
@@ -51,9 +55,9 @@ map_orion_base:
|
|
|
51
55
|
filename: /starplot/hash_checks/data/map-orion-base.png
|
|
52
56
|
phash: bf7952269584b594
|
|
53
57
|
map_orion_extra:
|
|
54
|
-
dhash:
|
|
58
|
+
dhash: 191b1b3f2f2f6d691b1b1b5b2f236d695c1b1b1b2a2f6d69
|
|
55
59
|
filename: /starplot/hash_checks/data/map-orion-extra.png
|
|
56
|
-
phash:
|
|
60
|
+
phash: bf61e606c59ed092
|
|
57
61
|
map_plot_custom_clip_path_virgo:
|
|
58
62
|
dhash: 23032913950c040443032507870c0c0203032507070e0c02
|
|
59
63
|
filename: /starplot/hash_checks/data/map-custom-clip-path-virgo.png
|
|
@@ -91,9 +95,9 @@ optic_clipping:
|
|
|
91
95
|
filename: /starplot/hash_checks/data/optic-clipping.png
|
|
92
96
|
phash: 95696a87add86983
|
|
93
97
|
optic_iss_moon_transit:
|
|
94
|
-
dhash:
|
|
98
|
+
dhash: 70d0ceb0f088f47071d08eb4f68ad47171c488b6b4aac471
|
|
95
99
|
filename: /starplot/hash_checks/data/optic-iss-moon-transit.png
|
|
96
|
-
phash:
|
|
100
|
+
phash: c49d33624c9d3367
|
|
97
101
|
optic_m45_binoculars:
|
|
98
102
|
dhash: 8e17237133330e4d8e17237133330e4d8e17237133330e4d
|
|
99
103
|
filename: /starplot/hash_checks/data/optic-m45-binoculars.png
|
|
@@ -115,15 +119,15 @@ optic_m45_scope_gradient:
|
|
|
115
119
|
filename: /starplot/hash_checks/data/optic-m45-scope-gradient.png
|
|
116
120
|
phash: aa3b84e48693ced3
|
|
117
121
|
optic_moon_phase_full:
|
|
118
|
-
dhash:
|
|
122
|
+
dhash: 0e334d71714d330e0e334d71714d330e0e334d71714d330e
|
|
119
123
|
filename: /starplot/hash_checks/data/optic-moon-phase-full.png
|
|
120
|
-
phash:
|
|
124
|
+
phash: ff7aa02a85318735
|
|
121
125
|
optic_moon_phase_new:
|
|
122
|
-
dhash:
|
|
126
|
+
dhash: 0814084d4d0814080814084d4d0814080814084d4d081408
|
|
123
127
|
filename: /starplot/hash_checks/data/optic-moon-phase-new.png
|
|
124
|
-
phash:
|
|
128
|
+
phash: e63399cc6633998c
|
|
125
129
|
optic_moon_phase_waxing_crescent:
|
|
126
|
-
dhash:
|
|
130
|
+
dhash: 0e3345495145330e0e3345495145330e0e3345495145330e
|
|
127
131
|
filename: /starplot/hash_checks/data/optic-moon-phase-waxing-crescent.png
|
|
128
132
|
phash: bb26e4999166c699
|
|
129
133
|
optic_orion_nebula_refractor:
|
|
@@ -135,9 +139,9 @@ optic_polaris_binoculars:
|
|
|
135
139
|
filename: /starplot/hash_checks/data/optic-binoculars-polaris.png
|
|
136
140
|
phash: aa6b84f182f18ed3
|
|
137
141
|
optic_solar_eclipse_binoculars:
|
|
138
|
-
dhash:
|
|
142
|
+
dhash: 71cc928a8a92cc7171cc928a8a92cc7171c0b28a8a92c071
|
|
139
143
|
filename: /starplot/hash_checks/data/optic-binoculars-eclipse.png
|
|
140
|
-
phash:
|
|
144
|
+
phash: 91cc4e333bcc6c33
|
|
141
145
|
optic_wrapping:
|
|
142
146
|
dhash: 70f0ec92d2d8650a71e0d4acacc471aa71e0d4acacc4792a
|
|
143
147
|
filename: /starplot/hash_checks/data/optic-wrapping.png
|
|
@@ -5,6 +5,7 @@ from datetime import datetime
|
|
|
5
5
|
from zoneinfo import ZoneInfo
|
|
6
6
|
|
|
7
7
|
import numpy as np
|
|
8
|
+
from shapely import Polygon
|
|
8
9
|
|
|
9
10
|
from starplot import (
|
|
10
11
|
MapPlot,
|
|
@@ -20,6 +21,7 @@ from starplot import (
|
|
|
20
21
|
Mercator,
|
|
21
22
|
Mollweide,
|
|
22
23
|
StereoNorth,
|
|
24
|
+
StereoSouth,
|
|
23
25
|
CollisionHandler,
|
|
24
26
|
Binoculars,
|
|
25
27
|
Scope,
|
|
@@ -713,3 +715,72 @@ def check_map_allow_marker_and_line_collisions():
|
|
|
713
715
|
p.export(filename)
|
|
714
716
|
p.close_fig()
|
|
715
717
|
return filename
|
|
718
|
+
|
|
719
|
+
|
|
720
|
+
def check_map_constellation_clip_path():
|
|
721
|
+
constellation = Constellation.get(iau_id="and")
|
|
722
|
+
|
|
723
|
+
ra, dec = [p for p in constellation.border.coords.xy]
|
|
724
|
+
extent = (min(ra) - 2, max(min(dec) - 2, -90), max(ra) + 2, min(max(dec) + 2, 90))
|
|
725
|
+
|
|
726
|
+
if constellation.dec > 60:
|
|
727
|
+
proj = StereoNorth
|
|
728
|
+
elif constellation.dec < -60:
|
|
729
|
+
proj = StereoSouth
|
|
730
|
+
else:
|
|
731
|
+
proj = Miller
|
|
732
|
+
|
|
733
|
+
if extent[0] < 0:
|
|
734
|
+
extent = (extent[0] + 360, extent[1], extent[2] + 360, extent[3])
|
|
735
|
+
|
|
736
|
+
center_ra = (extent[0] + extent[2]) / 2
|
|
737
|
+
if center_ra < 0:
|
|
738
|
+
center_ra += 360
|
|
739
|
+
elif center_ra > 360:
|
|
740
|
+
center_ra -= 360
|
|
741
|
+
|
|
742
|
+
p = MapPlot(
|
|
743
|
+
projection=proj(center_ra=center_ra),
|
|
744
|
+
ra_min=extent[0],
|
|
745
|
+
ra_max=extent[2],
|
|
746
|
+
dec_min=extent[1],
|
|
747
|
+
dec_max=extent[3],
|
|
748
|
+
style=styles.PlotStyle().extend(
|
|
749
|
+
styles.extensions.BLUE_NIGHT,
|
|
750
|
+
styles.extensions.MAP,
|
|
751
|
+
),
|
|
752
|
+
clip_path=Polygon(constellation.border.coords),
|
|
753
|
+
resolution=2000,
|
|
754
|
+
scale=0.8,
|
|
755
|
+
)
|
|
756
|
+
|
|
757
|
+
p.line(
|
|
758
|
+
geometry=constellation.border,
|
|
759
|
+
style=p.style.constellation_borders,
|
|
760
|
+
)
|
|
761
|
+
|
|
762
|
+
for hip1, hip2 in constellation.star_hip_lines:
|
|
763
|
+
star1 = Star.get(hip=hip1)
|
|
764
|
+
star2 = Star.get(hip=hip2)
|
|
765
|
+
p.line(
|
|
766
|
+
coordinates=[
|
|
767
|
+
(star1.ra, star1.dec),
|
|
768
|
+
(star2.ra, star2.dec),
|
|
769
|
+
],
|
|
770
|
+
style=p.style.constellation_lines,
|
|
771
|
+
)
|
|
772
|
+
|
|
773
|
+
p.stars(
|
|
774
|
+
where=[_.hip.isin(constellation.star_hip_ids)],
|
|
775
|
+
where_labels=[_.magnitude < 4],
|
|
776
|
+
bayer_labels=True,
|
|
777
|
+
)
|
|
778
|
+
|
|
779
|
+
p.title(constellation.name, style__line_spacing=80)
|
|
780
|
+
|
|
781
|
+
p.ax.set_axis_off() # hide the axis background that's outside the clip path
|
|
782
|
+
|
|
783
|
+
filename = DATA_PATH / "map-constellation-clip-path.png"
|
|
784
|
+
p.export(filename, padding=0.5)
|
|
785
|
+
|
|
786
|
+
return filename
|
|
@@ -328,8 +328,8 @@ OPEN_NGC = Catalog(
|
|
|
328
328
|
"""
|
|
329
329
|
|
|
330
330
|
CONSTELLATIONS_IAU = Catalog(
|
|
331
|
-
path=settings.data_path / "constellations.0.3.
|
|
332
|
-
url="https://github.com/steveberardi/starplot-constellations/releases/download/v0.3.
|
|
331
|
+
path=settings.data_path / "constellations.0.3.3.parquet",
|
|
332
|
+
url="https://github.com/steveberardi/starplot-constellations/releases/download/v0.3.3/constellations.0.3.3.parquet",
|
|
333
333
|
)
|
|
334
334
|
"""
|
|
335
335
|
Constellations recognized by IAU, with lines by Sky & Telescope.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import math
|
|
2
2
|
|
|
3
3
|
import pyproj
|
|
4
|
-
|
|
4
|
+
import numpy as np
|
|
5
5
|
|
|
6
6
|
GEOD = pyproj.Geod("+a=6378137 +f=0.0", sphere=True)
|
|
7
7
|
|
|
@@ -70,11 +70,10 @@ def ellipse(
|
|
|
70
70
|
|
|
71
71
|
height = distance_m(height_degrees / 2) # b
|
|
72
72
|
width = distance_m(width_degrees / 2) # a
|
|
73
|
+
step_size = (end_angle - start_angle) / num_pts
|
|
73
74
|
|
|
74
75
|
points = []
|
|
75
|
-
for angle_pt in
|
|
76
|
-
start_angle, end_angle + 1, int((end_angle - start_angle) / num_pts)
|
|
77
|
-
):
|
|
76
|
+
for angle_pt in np.arange(start_angle, end_angle + step_size, step_size):
|
|
78
77
|
radians = math.radians(angle_pt)
|
|
79
78
|
radius_a = (height * width) / math.sqrt(
|
|
80
79
|
height**2 * (math.sin(radians)) ** 2
|
|
@@ -16,7 +16,11 @@ class Constellation(CatalogObject, SkyObject):
|
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
18
|
boundary: Polygon | MultiPolygon
|
|
19
|
-
"""
|
|
19
|
+
"""
|
|
20
|
+
Shapely Polygon of the constellation's boundary. Right ascension coordinates are in degrees (0...360).
|
|
21
|
+
|
|
22
|
+
If the constellation's boundary crosses the 0-meridian, then this will be a MultiPolygon split at the meridian.
|
|
23
|
+
"""
|
|
20
24
|
|
|
21
25
|
star_hip_ids: list[int]
|
|
22
26
|
"""List of HIP ids for stars that are part of the _lines_ for this constellation."""
|
|
@@ -35,6 +39,13 @@ class Constellation(CatalogObject, SkyObject):
|
|
|
35
39
|
Serpens Caput has the `iau_id` of `ser1` and Serpens Cauda is `ser2`
|
|
36
40
|
"""
|
|
37
41
|
|
|
42
|
+
border: LineString = None
|
|
43
|
+
"""
|
|
44
|
+
Shapely LineString of the constellation's border. Right ascension coordinates are in degrees (0...360).
|
|
45
|
+
|
|
46
|
+
Coordinates in this geometry may extend past RA=360, if the border crosses the 0-meridian. This makes it ready to plot with the `line` function.
|
|
47
|
+
"""
|
|
48
|
+
|
|
38
49
|
def __repr__(self) -> str:
|
|
39
50
|
return f"Constellation(iau_id={self.iau_id}, name={self.name}, ra={self.ra}, dec={self.dec})"
|
|
40
51
|
|
|
@@ -72,7 +72,7 @@ class Planet(SkyObject):
|
|
|
72
72
|
"""Date/time of planet's position"""
|
|
73
73
|
|
|
74
74
|
apparent_size: float = 0
|
|
75
|
-
"""Apparent
|
|
75
|
+
"""Apparent diameter (degrees)"""
|
|
76
76
|
|
|
77
77
|
geometry: Polygon = None
|
|
78
78
|
"""Shapely Polygon of the planet's extent. Right ascension coordinates are in degrees (0...360)."""
|
|
@@ -22,7 +22,7 @@ class Sun(SkyObject):
|
|
|
22
22
|
"""Date/time of Sun's position"""
|
|
23
23
|
|
|
24
24
|
apparent_size: float = 0
|
|
25
|
-
"""Apparent
|
|
25
|
+
"""Apparent diameter (degrees)"""
|
|
26
26
|
|
|
27
27
|
geometry: Polygon = None
|
|
28
28
|
"""Shapely Polygon of the Sun's extent. Right ascension coordinates are in degrees (0...360)."""
|
|
@@ -8,7 +8,7 @@ from matplotlib import pyplot as plt, patheffects
|
|
|
8
8
|
from matplotlib.axes import Axes
|
|
9
9
|
from matplotlib.figure import Figure
|
|
10
10
|
from matplotlib.lines import Line2D
|
|
11
|
-
from shapely import Polygon
|
|
11
|
+
from shapely import Polygon, LineString
|
|
12
12
|
|
|
13
13
|
from starplot.coordinates import CoordinateSystem
|
|
14
14
|
from starplot import geod, models, warnings
|
|
@@ -334,9 +334,9 @@ class BasePlot(TextPlotterMixin, ABC):
|
|
|
334
334
|
polygon_style = style.marker.to_polygon_style()
|
|
335
335
|
polygon_style.edge_color = None
|
|
336
336
|
self.circle(
|
|
337
|
-
(p.ra, p.dec),
|
|
338
|
-
p.apparent_size,
|
|
339
|
-
polygon_style,
|
|
337
|
+
center=(p.ra, p.dec),
|
|
338
|
+
radius_degrees=p.apparent_size / 2,
|
|
339
|
+
style=polygon_style,
|
|
340
340
|
gid="planet-marker",
|
|
341
341
|
)
|
|
342
342
|
self._add_legend_handle_marker(legend_label, style.marker)
|
|
@@ -406,10 +406,11 @@ class BasePlot(TextPlotterMixin, ABC):
|
|
|
406
406
|
polygon_style.edge_color = None
|
|
407
407
|
|
|
408
408
|
self.circle(
|
|
409
|
-
(s.ra, s.dec),
|
|
410
|
-
s.apparent_size,
|
|
409
|
+
center=(s.ra, s.dec),
|
|
410
|
+
radius_degrees=s.apparent_size / 2,
|
|
411
411
|
style=polygon_style,
|
|
412
412
|
gid="sun-marker",
|
|
413
|
+
num_pts=200,
|
|
413
414
|
)
|
|
414
415
|
|
|
415
416
|
style.marker.symbol = MarkerSymbolEnum.CIRCLE
|
|
@@ -633,14 +634,27 @@ class BasePlot(TextPlotterMixin, ABC):
|
|
|
633
634
|
)
|
|
634
635
|
|
|
635
636
|
@use_style(LineStyle)
|
|
636
|
-
def line(
|
|
637
|
+
def line(
|
|
638
|
+
self,
|
|
639
|
+
style: LineStyle,
|
|
640
|
+
coordinates: list[tuple[float, float]] = None,
|
|
641
|
+
geometry: LineString = None,
|
|
642
|
+
**kwargs,
|
|
643
|
+
):
|
|
637
644
|
"""Plots a line
|
|
638
645
|
|
|
639
646
|
Args:
|
|
640
647
|
coordinates: List of coordinates, e.g. `[(ra, dec), (ra, dec)]`
|
|
648
|
+
geometry: A shapely LineString. If this value is passed, then the `coordinates` kwarg will be ignored.
|
|
641
649
|
style: Style of the line
|
|
642
650
|
"""
|
|
643
|
-
|
|
651
|
+
|
|
652
|
+
if coordinates is None and geometry is None:
|
|
653
|
+
raise ValueError("Must pass coordinates or geometry when plotting lines.")
|
|
654
|
+
|
|
655
|
+
coords = geometry.coords if geometry is not None else coordinates
|
|
656
|
+
|
|
657
|
+
x, y = zip(*[self._prepare_coords(*p) for p in coords])
|
|
644
658
|
|
|
645
659
|
self.ax.plot(
|
|
646
660
|
x,
|
|
@@ -700,9 +714,9 @@ class BasePlot(TextPlotterMixin, ABC):
|
|
|
700
714
|
|
|
701
715
|
if show_phase:
|
|
702
716
|
self._moon_with_phase(
|
|
703
|
-
m.phase_description,
|
|
704
|
-
(m.ra, m.dec),
|
|
705
|
-
m.apparent_size,
|
|
717
|
+
moon_phase=m.phase_description,
|
|
718
|
+
center=(m.ra, m.dec),
|
|
719
|
+
radius_degrees=m.apparent_size / 2,
|
|
706
720
|
style=polygon_style,
|
|
707
721
|
dark_side_color=style.marker.edge_color,
|
|
708
722
|
)
|
|
@@ -797,8 +811,8 @@ class BasePlot(TextPlotterMixin, ABC):
|
|
|
797
811
|
# Plot left side
|
|
798
812
|
self.ellipse(
|
|
799
813
|
center,
|
|
800
|
-
radius_degrees * 2,
|
|
801
|
-
radius_degrees * 2,
|
|
814
|
+
height_degrees=radius_degrees * 2,
|
|
815
|
+
width_degrees=radius_degrees * 2,
|
|
802
816
|
style=left,
|
|
803
817
|
num_pts=num_pts,
|
|
804
818
|
angle=0,
|
|
@@ -808,8 +822,8 @@ class BasePlot(TextPlotterMixin, ABC):
|
|
|
808
822
|
# Plot right side
|
|
809
823
|
self.ellipse(
|
|
810
824
|
center,
|
|
811
|
-
radius_degrees * 2,
|
|
812
|
-
radius_degrees * 2,
|
|
825
|
+
height_degrees=radius_degrees * 2,
|
|
826
|
+
width_degrees=radius_degrees * 2,
|
|
813
827
|
style=right,
|
|
814
828
|
num_pts=num_pts,
|
|
815
829
|
angle=180,
|
|
@@ -819,8 +833,8 @@ class BasePlot(TextPlotterMixin, ABC):
|
|
|
819
833
|
# Plot middle
|
|
820
834
|
self.ellipse(
|
|
821
835
|
center,
|
|
822
|
-
radius_degrees * 2,
|
|
823
|
-
radius_degrees,
|
|
836
|
+
height_degrees=radius_degrees * 2,
|
|
837
|
+
width_degrees=radius_degrees,
|
|
824
838
|
style=middle,
|
|
825
839
|
gid="moon-marker",
|
|
826
840
|
)
|
|
@@ -11,7 +11,7 @@ from skyfield.api import wgs84
|
|
|
11
11
|
import numpy as np
|
|
12
12
|
|
|
13
13
|
from starplot.coordinates import CoordinateSystem
|
|
14
|
-
from starplot import geod
|
|
14
|
+
from starplot import geod
|
|
15
15
|
from starplot.plots.base import BasePlot, DPI
|
|
16
16
|
from starplot.mixins import ExtentMaskMixin
|
|
17
17
|
from starplot.models.observer import Observer
|
|
@@ -124,9 +124,6 @@ class MapPlot(
|
|
|
124
124
|
self.dec_min = dec_min
|
|
125
125
|
self.dec_max = dec_max
|
|
126
126
|
|
|
127
|
-
if clip_path and clip_path.geom_type == "MultiPolygon":
|
|
128
|
-
clip_path = geometry.union_at_zero(clip_path.geoms[0], clip_path.geoms[1])
|
|
129
|
-
|
|
130
127
|
self.clip_path = clip_path
|
|
131
128
|
|
|
132
129
|
self._geodetic = ccrs.Geodetic()
|
|
@@ -39,7 +39,7 @@ p.stars(
|
|
|
39
39
|
)
|
|
40
40
|
|
|
41
41
|
p.nebula(
|
|
42
|
-
# select
|
|
42
|
+
# select nebulae which have no defined magnitude or less than 7
|
|
43
43
|
where=[_.magnitude.isnull() | (_.magnitude < 7)],
|
|
44
44
|
where_true_size=[_.size > 1], # only plot large nebula as their true size
|
|
45
45
|
)
|
|
@@ -33,8 +33,8 @@ p.planets(
|
|
|
33
33
|
# since we're plotting the planets as their "true size"
|
|
34
34
|
# the 'auto' offset won't work (it's not supported yet!)
|
|
35
35
|
# so we manually set the offsets here:
|
|
36
|
-
style__label__offset_x=
|
|
37
|
-
style__label__offset_y=-
|
|
36
|
+
style__label__offset_x=68,
|
|
37
|
+
style__label__offset_y=-30,
|
|
38
38
|
style__label__font_size=56,
|
|
39
39
|
style__marker__color="#fcdb72",
|
|
40
40
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|