starplot 0.20.0__tar.gz → 0.20.1__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.20.0 → starplot-0.20.1}/CITATION.cff +2 -2
- {starplot-0.20.0 → starplot-0.20.1}/PKG-INFO +1 -1
- {starplot-0.20.0 → starplot-0.20.1}/docs/changelog.md +3 -0
- {starplot-0.20.0 → starplot-0.20.1}/hash_checks/hashlock.yml +12 -12
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/__init__.py +1 -1
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/geometry.py +16 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plots/base.py +5 -1
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plots/galaxy.py +16 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plots/horizon.py +19 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plots/optic.py +19 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plotters/constellations.py +44 -74
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plotters/stars.py +13 -11
- {starplot-0.20.0 → starplot-0.20.1}/.dockerignore +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/.github/FUNDING.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/.github/workflows/docs.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/.github/workflows/release.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/.github/workflows/test.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/.gitignore +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/CODE_OF_CONDUCT.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/CONTRIBUTING.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/Dockerfile +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/LICENSE +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/Makefile +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/README.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/constellation_borders.json +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/constellations.json +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/milkyway.json +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/star_designations.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/constellation_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/dso_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/en-us/constellation_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/en-us/dso_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/en-us/other_terms.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/en-us/star_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/es/constellation_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/es/dso_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/es/other_terms.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/es/star_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/fa/constellation_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/fa/dso_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/fa/other_terms.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/fa/star_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/fr/constellation_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/fr/dso_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/fr/other_terms.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/fr/star_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/lt/constellation_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/lt/dso_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/lt/other_terms.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/lt/readme.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/lt/star_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/other_terms.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/readme.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/star_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/zh-cn/constellation_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/zh-cn/dso_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/zh-cn/other_terms.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/zh-cn/star_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/zh-tw/constellation_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/zh-tw/dso_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/zh-tw/other_terms.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/zh-tw/readme.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/raw/translations/zh-tw/star_names.csv +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/readme.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/scripts/constellation_names.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/scripts/data_settings.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/scripts/db.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/scripts/docdata.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/scripts/dso_names.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/scripts/star_designations.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/data/scripts/translations.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/about.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/coming-soon.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/css/extra.css +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/custom/main.html +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/data/building.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/data/constellations.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/data/dsos.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/data/overview.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/data/stars.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/data-explorer.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/data-sources.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/horizon-double-cluster.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/horizon-gradient.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/horizon-sgr.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-big-dipper.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-big.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-canis-major.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-carina-nebula.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-cassiopeia.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-custom-marker.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-galaxy.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-milky-way-stars.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-orion.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-orthographic.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-sagittarius.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/map-virgo-cluster.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/optic-iss-transit.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/optic-m45.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/optic-moon-saturn.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/optic-orion.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/optic-solar-eclipse.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/star-chart-basic.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/star-chart-detail.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples/star-chart-french.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/examples.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/celestial-globe.svg +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/cover-front-sm-360.png +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/discord.svg +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/examples/.keep +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/favicon.png +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/logo-2400px.png +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/logo-original/banner.png +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/logo-original/banner.svg +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/logo-original/banner.vectornator +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/logo-original/logo.png +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/logo-original/logo.svg +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/logo-original/logo.vectornator +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/logo-original/logo2.png +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/logo.svg +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/logo2.vectornator +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/logo500.png +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/mono-2400px.png +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/mono.png +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/mono.svg +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/star.svg +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/images/tutorial/.keep +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/index.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/installation.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/license.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/migration-guides/0.16.0.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/object-names/constellations.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/object-names/dsos.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/object-names/stars.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-callables.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-collisions.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-galaxyplot.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-horizonplot.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-localization.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-mapplot.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-models.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-ongc.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-opticplot.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-positions.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-selecting-objects.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-settings.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-styling.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/reference-zenithplot.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/robots.txt +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/showcase.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/snippets/_newsletter.html +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/tutorial/01.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/tutorial/02.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/tutorial/03.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/tutorial/04.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/tutorial/05.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/tutorial/06.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/tutorial/07.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/tutorial/08.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/tutorial/09.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/docs/tutorial.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/examples.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/galaxy_custom_marker.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/horizon_double_cluster.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/horizon_gradient.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/horizon_sgr.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/map_big.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/map_big_dipper.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/map_canis_major.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/map_carina.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/map_cas.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/map_galaxy.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/map_milky_way_stars.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/map_orion.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/map_orthographic.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/map_sagittarius.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/map_virgo_cluster.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/optic_iss_transit.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/optic_m45.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/optic_moon_saturn.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/optic_orion_nebula.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/optic_solar_eclipse.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/star_chart_basic.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/star_chart_detail.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/examples/star_chart_french.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/hash_checks/__init__.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/hash_checks/data/.keep +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/hash_checks/hashio.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/hash_checks/horizon_checks.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/hash_checks/map_checks.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/hash_checks/optic_checks.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/hash_checks/template.html +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/hash_checks/zenith_checks.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/mkdocs.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/pyproject.toml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/requirements-dev.txt +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/requirements.txt +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/scripts/ecliptic.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/scripts/marimo.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/scripts/voronoi.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/callables.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/cli.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/config.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/coordinates.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/__init__.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/catalogs.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/constellations.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/db.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/dsos.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/ecliptic.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/library/constellation_names.parquet +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/library/dso_names.parquet +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/library/readme.md +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/library/star_designations.parquet +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/stars.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/translations.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/data/utils.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/mixins.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/__init__.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/base.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/comet.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/constellation.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/dso.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/milky_way.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/moon.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/objects.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/observer.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/optics.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/planet.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/satellite.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/star.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/models/sun.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plots/__init__.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plots/map.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plots/zenith.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plotters/__init__.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plotters/arrow.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plotters/debug.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plotters/dsos.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plotters/experimental.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plotters/gradients.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plotters/legend.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plotters/milkyway.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/plotters/text.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/profile.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/projections.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/__init__.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/base.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/antique.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/blue_dark.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/blue_gold.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/blue_light.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/blue_medium.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/blue_night.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/cb_wong.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/color_print.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/gradient_presets.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/grayscale.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/grayscale_dark.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/map.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/nord.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/optic.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/ext/publication.yml +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/extensions.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/gfs-didot/DESCRIPTION.en_us.html +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/gfs-didot/GFSDidot-Regular.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/gfs-didot/METADATA.pb +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/gfs-didot/OFL.txt +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/Inter-Bold.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/Inter-BoldItalic.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/Inter-ExtraBold.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/Inter-ExtraLight.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/Inter-ExtraLightItalic.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/Inter-Italic.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/Inter-Light.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/Inter-LightItalic.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/Inter-Regular.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/Inter-SemiBold.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/Inter-SemiBoldItalic.ttf +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts-library/inter/LICENSE.txt +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/fonts.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/helpers.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/styles/markers.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/utils.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/src/starplot/warnings.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/__init__.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/data/.keep +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/data/comets.txt +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_catalogs.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_comets.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_data.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_geometry.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_languages.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_map.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_models.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_observer.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_optic.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_satellite.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_settings.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_stars.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_styles.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/test_utils.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tests/utils.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tutorial/build.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tutorial/tutorial_02.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tutorial/tutorial_03.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tutorial/tutorial_04.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tutorial/tutorial_05.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tutorial/tutorial_06.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tutorial/tutorial_07.py +0 -0
- {starplot-0.20.0 → starplot-0.20.1}/tutorial/tutorial_08.py +0 -0
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
- Adds the PlateCarree projection
|
|
9
9
|
- Adds effect of atmospheric refraction to horizon and optic plots
|
|
10
10
|
- Fixes a bug with calculating apparent positions of solar system objects in horizon/optic plots
|
|
11
|
+
- [**v0.20.1**]
|
|
12
|
+
- Optimizes coordinate conversions
|
|
13
|
+
- Makes constellation lines straight
|
|
11
14
|
|
|
12
15
|
|
|
13
16
|
## v0.19.x
|
|
@@ -15,7 +15,7 @@ map_allow_all_collisions:
|
|
|
15
15
|
filename: /starplot/hash_checks/data/map-allow-all-collisions.png
|
|
16
16
|
phash: ac1b1e9626c379f0
|
|
17
17
|
map_allow_marker_and_line_collisions:
|
|
18
|
-
dhash:
|
|
18
|
+
dhash: 858486ed36d2276f85848eed3652276f8da48ead334b276f
|
|
19
19
|
filename: /starplot/hash_checks/data/map-allow-some-collisions.png
|
|
20
20
|
phash: aed0f6299ee203d8
|
|
21
21
|
map_coma_berenices_dso_size:
|
|
@@ -27,9 +27,9 @@ map_constellation_clip_path:
|
|
|
27
27
|
filename: /starplot/hash_checks/data/map-constellation-clip-path.png
|
|
28
28
|
phash: 99c41b19ccd98ece
|
|
29
29
|
map_custom_stars:
|
|
30
|
-
dhash:
|
|
30
|
+
dhash: 5c21a9ceac2c844a5c21a9ceac2c844a5c21a9ceac2c844a
|
|
31
31
|
filename: /starplot/hash_checks/data/map-custom-stars.png
|
|
32
|
-
phash:
|
|
32
|
+
phash: e65a5b3405a5b7d0
|
|
33
33
|
map_gridlines:
|
|
34
34
|
dhash: 082a899422c94983082a899422c94983082a899422c94983
|
|
35
35
|
filename: /starplot/hash_checks/data/map-gridlines.png
|
|
@@ -43,9 +43,9 @@ map_milky_way_multi_polygon:
|
|
|
43
43
|
filename: /starplot/hash_checks/data/map-milky-way-multi-polygon.png
|
|
44
44
|
phash: ae89be88d6584fe0
|
|
45
45
|
map_mollweide:
|
|
46
|
-
dhash:
|
|
46
|
+
dhash: 0f2b336b2b33170f0f2b336b2b33170f1763736b2b36170f
|
|
47
47
|
filename: /starplot/hash_checks/data/map-mollweide.png
|
|
48
|
-
phash:
|
|
48
|
+
phash: ebcbb698e3309461
|
|
49
49
|
map_moon_phase_waxing_crescent:
|
|
50
50
|
dhash: 000830484830080000082048482008008088804848808880
|
|
51
51
|
filename: /starplot/hash_checks/data/map-moon-phase-waxing-crescent.png
|
|
@@ -67,7 +67,7 @@ map_plot_custom_clip_path_virgo:
|
|
|
67
67
|
filename: /starplot/hash_checks/data/map-custom-clip-path-virgo.png
|
|
68
68
|
phash: ec6dc9e594929296
|
|
69
69
|
map_plot_limit_by_geometry:
|
|
70
|
-
dhash:
|
|
70
|
+
dhash: a02189a4568c6552a0219104160d6512a02199b4140c6d12
|
|
71
71
|
filename: /starplot/hash_checks/data/map-limit-by-geometry.png
|
|
72
72
|
phash: b2d88e33c986f349
|
|
73
73
|
map_scope_bino_fov:
|
|
@@ -75,7 +75,7 @@ map_scope_bino_fov:
|
|
|
75
75
|
filename: /starplot/hash_checks/data/map-scope-bino-fov.png
|
|
76
76
|
phash: f3504c72735c4c73
|
|
77
77
|
map_stereo_base:
|
|
78
|
-
dhash:
|
|
78
|
+
dhash: 45c37b3192a9b9b245c35b3192a1999245c34b3192a93992
|
|
79
79
|
filename: /starplot/hash_checks/data/map-stereo-north-base.png
|
|
80
80
|
phash: 8a2f62d2949e4fb4
|
|
81
81
|
map_with_planets:
|
|
@@ -95,7 +95,7 @@ optic_camera_rotated:
|
|
|
95
95
|
filename: /starplot/hash_checks/data/optic-camera-rotated-m45.png
|
|
96
96
|
phash: b86cc6b40ed9f08d
|
|
97
97
|
optic_clipping:
|
|
98
|
-
dhash:
|
|
98
|
+
dhash: 32c498f8e6e4fc5d32c498f8e6e4fc5933e098faf6e2fc79
|
|
99
99
|
filename: /starplot/hash_checks/data/optic-clipping.png
|
|
100
100
|
phash: 95687a872f9868f2
|
|
101
101
|
optic_iss_moon_transit:
|
|
@@ -147,18 +147,18 @@ optic_solar_eclipse_binoculars:
|
|
|
147
147
|
filename: /starplot/hash_checks/data/optic-binoculars-eclipse.png
|
|
148
148
|
phash: 91cc4e333bcc6c33
|
|
149
149
|
optic_wrapping:
|
|
150
|
-
dhash:
|
|
150
|
+
dhash: 71f0ac92d2da651a71e094acacc4782a71e8d4acacc4783a
|
|
151
151
|
filename: /starplot/hash_checks/data/optic-wrapping.png
|
|
152
|
-
phash:
|
|
152
|
+
phash: d1846e1b792ef138
|
|
153
153
|
zenith_base:
|
|
154
154
|
dhash: 71f8cc8eaad4e87171f8cc868ad4e87171f8cc868ed4e871
|
|
155
155
|
filename: /starplot/hash_checks/data/zenith-base.png
|
|
156
156
|
phash: 90d50b7d2955645f
|
|
157
157
|
zenith_chinese:
|
|
158
|
-
dhash:
|
|
158
|
+
dhash: 44863331272b86704c863331252b865471cc8e0f0f8ecc71
|
|
159
159
|
filename: /starplot/hash_checks/data/zenith-chinese.png
|
|
160
160
|
phash: ed30c1469ecb1bcc
|
|
161
161
|
zenith_gradient:
|
|
162
162
|
dhash: 548613333123867044863339312b865471cc960f078ecc71
|
|
163
163
|
filename: /starplot/hash_checks/data/zenith-gradient.png
|
|
164
|
-
phash:
|
|
164
|
+
phash: e93c94c29acb19cd
|
|
@@ -234,6 +234,22 @@ def split_polygon_at_zero(polygon: Polygon) -> list[Polygon]:
|
|
|
234
234
|
return [polygon]
|
|
235
235
|
|
|
236
236
|
|
|
237
|
+
def split_line_at_meridian(p1, p2, meridian=360):
|
|
238
|
+
"""Split a line that crosses the meridian into two segments."""
|
|
239
|
+
x1, y1 = p1
|
|
240
|
+
x2, y2 = p2
|
|
241
|
+
|
|
242
|
+
# Interpolate the crossing point
|
|
243
|
+
t = (meridian - x1) / (x2 - x1)
|
|
244
|
+
y_cross = y1 + t * (y2 - y1)
|
|
245
|
+
|
|
246
|
+
# Two segments on either side
|
|
247
|
+
seg1 = [(x1, y1), (359.9999999, y_cross)]
|
|
248
|
+
seg2 = [(0, y_cross), (x2 - 360, y2)] # or -meridian depending on convention
|
|
249
|
+
|
|
250
|
+
return seg1, seg2
|
|
251
|
+
|
|
252
|
+
|
|
237
253
|
def random_point_in_polygon_at_distance(
|
|
238
254
|
polygon: Polygon,
|
|
239
255
|
origin_point: Point,
|
|
@@ -175,6 +175,9 @@ class BasePlot(DebugPlotterMixin, TextPlotterMixin, ABC):
|
|
|
175
175
|
def _prepare_coords(self, ra, dec) -> tuple[float, float]:
|
|
176
176
|
return ra, dec
|
|
177
177
|
|
|
178
|
+
def _prepare_coords_many(self, coordinates: list, epoch_year: float = 2000) -> list:
|
|
179
|
+
return coordinates
|
|
180
|
+
|
|
178
181
|
def _update_clip_path_polygon(self, buffer=8):
|
|
179
182
|
self.fig.draw_without_rendering()
|
|
180
183
|
coords = self._background_clip_path.get_verts()
|
|
@@ -514,7 +517,8 @@ class BasePlot(DebugPlotterMixin, TextPlotterMixin, ABC):
|
|
|
514
517
|
raise NotImplementedError
|
|
515
518
|
|
|
516
519
|
def _polygon(self, points: list, style: PolygonStyle, **kwargs):
|
|
517
|
-
points = [self._prepare_coords(*p) for p in points]
|
|
520
|
+
# points = [self._prepare_coords(*p) for p in points]
|
|
521
|
+
points = self._prepare_coords_many(points)
|
|
518
522
|
patch = patches.Polygon(
|
|
519
523
|
points,
|
|
520
524
|
# closed=False, # needs to be false for circles at poles?
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from functools import cache
|
|
2
2
|
from typing import Callable
|
|
3
3
|
|
|
4
|
+
import pandas as pd
|
|
4
5
|
import numpy as np
|
|
5
6
|
import astropy.units as u
|
|
6
7
|
from astropy.coordinates import SkyCoord
|
|
@@ -130,6 +131,21 @@ class GalaxyPlot(
|
|
|
130
131
|
|
|
131
132
|
return lon.degrees, lat.degrees
|
|
132
133
|
|
|
134
|
+
def _prepare_coords_many(
|
|
135
|
+
self, coordinates: list, epoch_year: float = 2000
|
|
136
|
+
) -> (float, float):
|
|
137
|
+
"""Converts RA/DEC to AZ/ALT"""
|
|
138
|
+
df = pd.DataFrame(coordinates, columns=["ra", "dec"])
|
|
139
|
+
df["ra_hours"], df["dec_degrees"] = (df.ra / 15, df.dec)
|
|
140
|
+
df["epoch_year"] = epoch_year
|
|
141
|
+
|
|
142
|
+
sf_star = SkyfieldStar.from_dataframe(df)
|
|
143
|
+
position = self.observe(sf_star)
|
|
144
|
+
lat, lon, _ = position.frame_latlon(galactic_frame)
|
|
145
|
+
df["x"], df["y"] = (lon.degrees, lat.degrees)
|
|
146
|
+
|
|
147
|
+
return list(zip(df["x"], df["y"]))
|
|
148
|
+
|
|
133
149
|
def _prepare_star_coords(self, df, limit_by_altaz=True):
|
|
134
150
|
stars_position = self.observe(SkyfieldStar.from_dataframe(df))
|
|
135
151
|
lat, lon, _ = stars_position.frame_latlon(galactic_frame)
|
|
@@ -3,6 +3,8 @@ import math
|
|
|
3
3
|
from functools import cache
|
|
4
4
|
from typing import Callable
|
|
5
5
|
|
|
6
|
+
import pandas as pd
|
|
7
|
+
|
|
6
8
|
from cartopy import crs as ccrs
|
|
7
9
|
from matplotlib import pyplot as plt, patches
|
|
8
10
|
from matplotlib.ticker import FixedLocator, FuncFormatter
|
|
@@ -163,6 +165,23 @@ class HorizonPlot(
|
|
|
163
165
|
ephemeris=self.ephemeris_name,
|
|
164
166
|
)
|
|
165
167
|
|
|
168
|
+
def _prepare_coords_many(
|
|
169
|
+
self, coordinates: list, epoch_year: float = 2000
|
|
170
|
+
) -> (float, float):
|
|
171
|
+
"""Converts RA/DEC to AZ/ALT"""
|
|
172
|
+
df = pd.DataFrame(coordinates, columns=["ra", "dec"])
|
|
173
|
+
df["ra_hours"], df["dec_degrees"] = (df.ra / 15, df.dec)
|
|
174
|
+
df["epoch_year"] = epoch_year
|
|
175
|
+
|
|
176
|
+
sf_star = SkyfieldStar.from_dataframe(df)
|
|
177
|
+
|
|
178
|
+
df["x"], df["y"] = self.observer._apparent(
|
|
179
|
+
obj=sf_star,
|
|
180
|
+
ephemeris=self.ephemeris_name,
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
return list(zip(df["x"], df["y"]))
|
|
184
|
+
|
|
166
185
|
def _prepare_star_coords(self, df, limit_by_altaz=True):
|
|
167
186
|
df["x"], df["y"] = self.observer._apparent(
|
|
168
187
|
obj=SkyfieldStar.from_dataframe(df),
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from typing import Callable
|
|
2
2
|
|
|
3
|
+
|
|
4
|
+
import pandas as pd
|
|
3
5
|
from cartopy import crs as ccrs
|
|
4
6
|
from matplotlib import pyplot as plt, patches, path
|
|
5
7
|
from skyfield.api import Star as SkyfieldStar
|
|
@@ -145,6 +147,23 @@ class OpticPlot(
|
|
|
145
147
|
ephemeris=self.ephemeris_name,
|
|
146
148
|
)
|
|
147
149
|
|
|
150
|
+
def _prepare_coords_many(
|
|
151
|
+
self, coordinates: list, epoch_year: float = 2000
|
|
152
|
+
) -> (float, float):
|
|
153
|
+
"""Converts RA/DEC to AZ/ALT"""
|
|
154
|
+
df = pd.DataFrame(coordinates, columns=["ra", "dec"])
|
|
155
|
+
df["ra_hours"], df["dec_degrees"] = (df.ra / 15, df.dec)
|
|
156
|
+
df["epoch_year"] = epoch_year
|
|
157
|
+
|
|
158
|
+
sf_star = SkyfieldStar.from_dataframe(df)
|
|
159
|
+
|
|
160
|
+
df["x"], df["y"] = self.observer._apparent(
|
|
161
|
+
obj=sf_star,
|
|
162
|
+
ephemeris=self.ephemeris_name,
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
return list(zip(df["x"], df["y"]))
|
|
166
|
+
|
|
148
167
|
def _plot_kwargs(self) -> dict:
|
|
149
168
|
return dict(transform=self._crs)
|
|
150
169
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
from typing import Callable
|
|
2
2
|
|
|
3
|
-
import numpy as np
|
|
4
|
-
|
|
5
3
|
import rtree
|
|
6
4
|
from shapely import (
|
|
7
5
|
MultiPoint,
|
|
@@ -20,34 +18,14 @@ from starplot.data.catalogs import (
|
|
|
20
18
|
from starplot.data.stars import load as load_stars
|
|
21
19
|
from starplot.models import Star, Constellation
|
|
22
20
|
from starplot.models.constellation import from_tuple
|
|
23
|
-
from starplot.projections import (
|
|
24
|
-
StereoNorth,
|
|
25
|
-
StereoSouth,
|
|
26
|
-
Stereographic,
|
|
27
|
-
Equidistant,
|
|
28
|
-
LambertAzEqArea,
|
|
29
|
-
)
|
|
30
21
|
from starplot.profile import profile
|
|
31
22
|
from starplot.styles import LineStyle, LabelStyle
|
|
32
23
|
from starplot.styles.helpers import use_style
|
|
33
|
-
from starplot.geometry import is_wrapped_polygon, line_segment
|
|
24
|
+
from starplot.geometry import is_wrapped_polygon, line_segment, split_line_at_meridian
|
|
34
25
|
from starplot.plotters.text import CollisionHandler
|
|
35
26
|
|
|
36
|
-
GEODETIC_PROJECTIONS = (
|
|
37
|
-
Equidistant,
|
|
38
|
-
LambertAzEqArea,
|
|
39
|
-
Stereographic,
|
|
40
|
-
StereoNorth,
|
|
41
|
-
StereoSouth,
|
|
42
|
-
)
|
|
43
|
-
|
|
44
27
|
|
|
45
28
|
class ConstellationPlotterMixin:
|
|
46
|
-
def inbounds_temp(self, x, y):
|
|
47
|
-
data_x, data_y = self._proj.transform_point(x, y, self._geodetic)
|
|
48
|
-
display_x, display_y = self.ax.transData.transform((data_x, data_y))
|
|
49
|
-
return display_x > 0 and display_y > 0
|
|
50
|
-
|
|
51
29
|
@profile
|
|
52
30
|
def _prepare_constellation_stars(
|
|
53
31
|
self, constellations: list[Constellation]
|
|
@@ -115,13 +93,6 @@ class ConstellationPlotterMixin:
|
|
|
115
93
|
|
|
116
94
|
constellations = [from_tuple(c) for c in constellations_df.itertuples()]
|
|
117
95
|
|
|
118
|
-
projection = getattr(self, "projection", None)
|
|
119
|
-
if isinstance(projection, GEODETIC_PROJECTIONS):
|
|
120
|
-
transform = self._geodetic
|
|
121
|
-
else:
|
|
122
|
-
transform = self._plate_carree
|
|
123
|
-
|
|
124
|
-
style_kwargs = style.matplot_kwargs(self.scale)
|
|
125
96
|
constellation_points_to_index = []
|
|
126
97
|
lines = []
|
|
127
98
|
constars = self._prepare_constellation_stars(constellations)
|
|
@@ -133,16 +104,18 @@ class ConstellationPlotterMixin:
|
|
|
133
104
|
for s1_hip, s2_hip in hiplines:
|
|
134
105
|
if not constars.get(s1_hip) or not constars.get(s2_hip):
|
|
135
106
|
continue
|
|
136
|
-
s1_ra, s1_dec = constars.get(s1_hip)
|
|
137
|
-
s2_ra, s2_dec = constars.get(s2_hip)
|
|
138
107
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
108
|
+
x1, y1 = constars.get(s1_hip)
|
|
109
|
+
x2, y2 = constars.get(s2_hip)
|
|
110
|
+
|
|
111
|
+
if x1 == x2 and y1 == y2:
|
|
112
|
+
continue
|
|
113
|
+
|
|
114
|
+
if x1 - x2 > 60:
|
|
115
|
+
x2 += 360
|
|
116
|
+
elif x2 - x1 > 60:
|
|
117
|
+
x1 += 360
|
|
143
118
|
|
|
144
|
-
x1, x2 = s1_ra, s2_ra
|
|
145
|
-
y1, y2 = s1_dec, s2_dec
|
|
146
119
|
if not inbounds and (
|
|
147
120
|
self._in_bounds_xy(x1, y1) or self._in_bounds_xy(x2, y2)
|
|
148
121
|
):
|
|
@@ -150,57 +123,54 @@ class ConstellationPlotterMixin:
|
|
|
150
123
|
elif not inbounds:
|
|
151
124
|
continue
|
|
152
125
|
|
|
153
|
-
|
|
154
|
-
x1 *= -1
|
|
155
|
-
x2 *= -1
|
|
126
|
+
xy_lines = []
|
|
156
127
|
|
|
157
|
-
|
|
128
|
+
if x2 > 360:
|
|
129
|
+
xy_lines = [*split_line_at_meridian((x1, y1), (x2, y2))]
|
|
130
|
+
elif x1 > 360:
|
|
131
|
+
xy_lines = [*split_line_at_meridian((x2, y2), (x1, y1))]
|
|
132
|
+
else:
|
|
133
|
+
xy_lines = [[(x1, y1), (x2, y2)]]
|
|
158
134
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
135
|
+
data_lines = [
|
|
136
|
+
[self._proj.transform_point(x, y, self._crs) for x, y in line]
|
|
137
|
+
for line in xy_lines
|
|
138
|
+
]
|
|
139
|
+
display_lines = [
|
|
140
|
+
[self.ax.transData.transform(p) for p in line]
|
|
141
|
+
for line in data_lines
|
|
142
|
+
]
|
|
165
143
|
|
|
166
|
-
|
|
167
|
-
display_end = self.ax.transData.transform(end)
|
|
144
|
+
lines.extend(data_lines)
|
|
168
145
|
|
|
169
|
-
if
|
|
170
|
-
display_start[0] == display_end[0]
|
|
171
|
-
and display_start[1] == display_end[1]
|
|
172
|
-
):
|
|
173
|
-
continue
|
|
146
|
+
radius = style.width * self.scale if style.width else 1
|
|
174
147
|
|
|
175
|
-
for
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
self.
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
148
|
+
for display_start, display_end in display_lines:
|
|
149
|
+
for x, y in line_segment(display_start, display_end, radius * 4):
|
|
150
|
+
if x < 0 or y < 0:
|
|
151
|
+
continue
|
|
152
|
+
bbox = (
|
|
153
|
+
x - radius,
|
|
154
|
+
y - radius,
|
|
155
|
+
x + radius,
|
|
156
|
+
y + radius,
|
|
157
|
+
)
|
|
158
|
+
if self.debug_text:
|
|
159
|
+
self._debug_bbox(bbox, color="#39FF14", width=0.5)
|
|
160
|
+
|
|
161
|
+
constellation_points_to_index.append((ctr, bbox, None))
|
|
162
|
+
ctr += 1
|
|
189
163
|
|
|
190
164
|
if inbounds:
|
|
191
165
|
self._objects.constellations.append(c)
|
|
192
166
|
|
|
193
|
-
style_kwargs = style.matplot_line_collection_kwargs(self.scale)
|
|
194
|
-
|
|
195
167
|
line_collection = LineCollection(
|
|
196
168
|
lines,
|
|
197
|
-
**style_kwargs,
|
|
198
|
-
transform=transform,
|
|
199
169
|
clip_on=True,
|
|
200
170
|
clip_path=self._background_clip_path,
|
|
201
171
|
gid="constellations-line",
|
|
172
|
+
**style.matplot_line_collection_kwargs(self.scale),
|
|
202
173
|
)
|
|
203
|
-
|
|
204
174
|
self.ax.add_collection(line_collection)
|
|
205
175
|
|
|
206
176
|
if self._constellations_rtree.get_size() == 0:
|
|
@@ -230,18 +230,20 @@ class StarPlotterMixin:
|
|
|
230
230
|
starz = []
|
|
231
231
|
rtree_id = 1
|
|
232
232
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
233
|
+
transformed = self._proj.transform_points(
|
|
234
|
+
self._crs,
|
|
235
|
+
stars_df["x"].to_numpy(),
|
|
236
|
+
stars_df["y"].to_numpy(),
|
|
237
|
+
)
|
|
238
|
+
stars_df["data_x"] = transformed[:, 0]
|
|
239
|
+
stars_df["data_y"] = transformed[:, 1]
|
|
240
|
+
stars_df[["display_x", "display_y"]] = self.ax.transData.transform(
|
|
241
|
+
stars_df[["data_x", "data_y"]].to_numpy()
|
|
242
|
+
)
|
|
243
|
+
stars_df = stars_df[(stars_df["display_x"] >= 0) & (stars_df["display_y"] >= 0)]
|
|
236
244
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
or display_y < 0
|
|
240
|
-
or np.isnan(display_x)
|
|
241
|
-
or np.isnan(display_y)
|
|
242
|
-
or self._is_clipped([(display_x, display_y)])
|
|
243
|
-
):
|
|
244
|
-
continue
|
|
245
|
+
for star in stars_df.itertuples():
|
|
246
|
+
display_x, display_y = star.display_x, star.display_y
|
|
245
247
|
|
|
246
248
|
obj = from_tuple(star)
|
|
247
249
|
size = size_fn(obj) * self.scale**2
|
|
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
|
|
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
|