starplot 0.13.0__tar.gz → 0.14.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.

Potentially problematic release.


This version of starplot might be problematic. Click here for more details.

Files changed (247) hide show
  1. {starplot-0.13.0 → starplot-0.14.0}/PKG-INFO +10 -9
  2. {starplot-0.13.0 → starplot-0.14.0}/README.md +8 -6
  3. {starplot-0.13.0 → starplot-0.14.0}/docs/changelog.md +9 -0
  4. {starplot-0.13.0 → starplot-0.14.0}/docs/coming-soon.md +2 -2
  5. starplot-0.14.0/docs/examples/horizon-sgr.md +16 -0
  6. {starplot-0.13.0 → starplot-0.14.0}/docs/examples.md +8 -0
  7. {starplot-0.13.0 → starplot-0.14.0}/docs/index.md +6 -4
  8. starplot-0.14.0/docs/reference-horizonplot.md +10 -0
  9. {starplot-0.13.0 → starplot-0.14.0}/docs/tutorial/02.md +10 -2
  10. {starplot-0.13.0 → starplot-0.14.0}/docs/tutorial/09.md +1 -0
  11. starplot-0.14.0/examples/horizon_sgr.py +39 -0
  12. {starplot-0.13.0 → starplot-0.14.0}/examples/map_big.py +2 -3
  13. {starplot-0.13.0 → starplot-0.14.0}/examples/map_canis_major.py +1 -0
  14. {starplot-0.13.0 → starplot-0.14.0}/examples/map_comet_neowise.py +1 -0
  15. {starplot-0.13.0 → starplot-0.14.0}/examples/map_orion.py +1 -0
  16. {starplot-0.13.0 → starplot-0.14.0}/examples/map_orthographic.py +2 -3
  17. {starplot-0.13.0 → starplot-0.14.0}/examples/map_sagittarius.py +1 -0
  18. {starplot-0.13.0 → starplot-0.14.0}/examples/optic_m45.py +1 -1
  19. {starplot-0.13.0 → starplot-0.14.0}/examples/optic_orion_nebula.py +1 -1
  20. {starplot-0.13.0 → starplot-0.14.0}/examples/star_chart_basic.py +2 -1
  21. {starplot-0.13.0 → starplot-0.14.0}/examples/star_chart_detail.py +2 -1
  22. {starplot-0.13.0 → starplot-0.14.0}/hash_checks/hashio.py +7 -1
  23. {starplot-0.13.0 → starplot-0.14.0}/hash_checks/hashlock.yml +48 -40
  24. starplot-0.14.0/hash_checks/horizon_checks.py +76 -0
  25. {starplot-0.13.0 → starplot-0.14.0}/hash_checks/map_checks.py +10 -4
  26. {starplot-0.13.0 → starplot-0.14.0}/hash_checks/zenith_checks.py +3 -2
  27. {starplot-0.13.0 → starplot-0.14.0}/mkdocs.yml +1 -0
  28. {starplot-0.13.0 → starplot-0.14.0}/pyproject.toml +1 -2
  29. {starplot-0.13.0 → starplot-0.14.0}/requirements.txt +0 -1
  30. {starplot-0.13.0 → starplot-0.14.0}/scripts/voronoi.py +23 -17
  31. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/__init__.py +3 -2
  32. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/base.py +187 -185
  33. starplot-0.14.0/src/starplot/coordinates.py +6 -0
  34. starplot-0.14.0/src/starplot/data/constellations.py +709 -0
  35. starplot-0.14.0/src/starplot/geometry.py +82 -0
  36. starplot-0.14.0/src/starplot/horizon.py +458 -0
  37. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/map.py +57 -369
  38. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/models/base.py +9 -2
  39. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/models/constellation.py +1 -1
  40. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/optic.py +7 -1
  41. starplot-0.14.0/src/starplot/plotters/__init__.py +4 -0
  42. starplot-0.14.0/src/starplot/plotters/constellations.py +339 -0
  43. starplot-0.14.0/src/starplot/plotters/experimental.py +171 -0
  44. starplot-0.14.0/src/starplot/plotters/milkyway.py +41 -0
  45. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/plotters/stars.py +56 -27
  46. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/base.py +49 -17
  47. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/ext/antique.yml +11 -9
  48. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/ext/blue_dark.yml +8 -10
  49. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/ext/blue_light.yml +9 -8
  50. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/ext/blue_medium.yml +12 -13
  51. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/ext/cb_wong.yml +9 -7
  52. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/ext/grayscale.yml +4 -3
  53. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/ext/grayscale_dark.yml +7 -5
  54. starplot-0.14.0/src/starplot/styles/ext/map.yml +12 -0
  55. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/ext/nord.yml +7 -7
  56. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/ext/optic.yml +1 -1
  57. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/utils.py +19 -0
  58. starplot-0.14.0/src/starplot/warnings.py +16 -0
  59. {starplot-0.13.0 → starplot-0.14.0}/tests/test_styles.py +1 -1
  60. {starplot-0.13.0 → starplot-0.14.0}/tutorial/tutorial_02.py +2 -1
  61. {starplot-0.13.0 → starplot-0.14.0}/tutorial/tutorial_03.py +3 -1
  62. {starplot-0.13.0 → starplot-0.14.0}/tutorial/tutorial_04.py +2 -0
  63. {starplot-0.13.0 → starplot-0.14.0}/tutorial/tutorial_06.py +2 -0
  64. starplot-0.13.0/src/starplot/data/constellations.py +0 -147
  65. starplot-0.13.0/src/starplot/horizon.py +0 -398
  66. starplot-0.13.0/src/starplot/plotters/__init__.py +0 -2
  67. starplot-0.13.0/src/starplot/styles/ext/map.yml +0 -9
  68. {starplot-0.13.0 → starplot-0.14.0}/.dockerignore +0 -0
  69. {starplot-0.13.0 → starplot-0.14.0}/.github/FUNDING.yml +0 -0
  70. {starplot-0.13.0 → starplot-0.14.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  71. {starplot-0.13.0 → starplot-0.14.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  72. {starplot-0.13.0 → starplot-0.14.0}/.github/workflows/docs.yml +0 -0
  73. {starplot-0.13.0 → starplot-0.14.0}/.github/workflows/release.yml +0 -0
  74. {starplot-0.13.0 → starplot-0.14.0}/.github/workflows/test.yml +0 -0
  75. {starplot-0.13.0 → starplot-0.14.0}/.gitignore +0 -0
  76. {starplot-0.13.0 → starplot-0.14.0}/CODE_OF_CONDUCT.md +0 -0
  77. {starplot-0.13.0 → starplot-0.14.0}/CONTRIBUTING.md +0 -0
  78. {starplot-0.13.0 → starplot-0.14.0}/Dockerfile +0 -0
  79. {starplot-0.13.0 → starplot-0.14.0}/LICENSE +0 -0
  80. {starplot-0.13.0 → starplot-0.14.0}/Makefile +0 -0
  81. {starplot-0.13.0 → starplot-0.14.0}/docs/about.md +0 -0
  82. {starplot-0.13.0 → starplot-0.14.0}/docs/css/extra.css +0 -0
  83. {starplot-0.13.0 → starplot-0.14.0}/docs/custom/main.html +0 -0
  84. {starplot-0.13.0 → starplot-0.14.0}/docs/data/.keep +0 -0
  85. {starplot-0.13.0 → starplot-0.14.0}/docs/data-sources.md +0 -0
  86. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/map-big-dipper.md +0 -0
  87. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/map-big.md +0 -0
  88. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/map-canis-major.md +0 -0
  89. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/map-comet-neowise.md +0 -0
  90. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/map-milky-way-stars.md +0 -0
  91. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/map-orion.md +0 -0
  92. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/map-orthographic.md +0 -0
  93. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/map-sagittarius.md +0 -0
  94. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/optic-m45.md +0 -0
  95. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/optic-moon-saturn.md +0 -0
  96. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/optic-orion.md +0 -0
  97. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/optic-solar-eclipse.md +0 -0
  98. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/star-chart-basic.md +0 -0
  99. {starplot-0.13.0 → starplot-0.14.0}/docs/examples/star-chart-detail.md +0 -0
  100. {starplot-0.13.0 → starplot-0.14.0}/docs/images/banner.png +0 -0
  101. {starplot-0.13.0 → starplot-0.14.0}/docs/images/banner.svg +0 -0
  102. {starplot-0.13.0 → starplot-0.14.0}/docs/images/banner.vectornator +0 -0
  103. {starplot-0.13.0 → starplot-0.14.0}/docs/images/celestial-globe.svg +0 -0
  104. {starplot-0.13.0 → starplot-0.14.0}/docs/images/examples/.keep +0 -0
  105. {starplot-0.13.0 → starplot-0.14.0}/docs/images/favicon.png +0 -0
  106. {starplot-0.13.0 → starplot-0.14.0}/docs/images/favicon.svg +0 -0
  107. {starplot-0.13.0 → starplot-0.14.0}/docs/images/logo.png +0 -0
  108. {starplot-0.13.0 → starplot-0.14.0}/docs/images/logo.svg +0 -0
  109. {starplot-0.13.0 → starplot-0.14.0}/docs/images/logo.vectornator +0 -0
  110. {starplot-0.13.0 → starplot-0.14.0}/docs/images/logo2.png +0 -0
  111. {starplot-0.13.0 → starplot-0.14.0}/docs/images/logo2.vectornator +0 -0
  112. {starplot-0.13.0 → starplot-0.14.0}/docs/images/logo500.png +0 -0
  113. {starplot-0.13.0 → starplot-0.14.0}/docs/images/mono.png +0 -0
  114. {starplot-0.13.0 → starplot-0.14.0}/docs/images/mono.svg +0 -0
  115. {starplot-0.13.0 → starplot-0.14.0}/docs/images/star.svg +0 -0
  116. {starplot-0.13.0 → starplot-0.14.0}/docs/images/tutorial/.keep +0 -0
  117. {starplot-0.13.0 → starplot-0.14.0}/docs/installation.md +0 -0
  118. {starplot-0.13.0 → starplot-0.14.0}/docs/license.md +0 -0
  119. {starplot-0.13.0 → starplot-0.14.0}/docs/reference-callables.md +0 -0
  120. {starplot-0.13.0 → starplot-0.14.0}/docs/reference-data.md +0 -0
  121. {starplot-0.13.0 → starplot-0.14.0}/docs/reference-mapplot.md +0 -0
  122. {starplot-0.13.0 → starplot-0.14.0}/docs/reference-models.md +0 -0
  123. {starplot-0.13.0 → starplot-0.14.0}/docs/reference-ongc.md +0 -0
  124. {starplot-0.13.0 → starplot-0.14.0}/docs/reference-opticplot.md +0 -0
  125. {starplot-0.13.0 → starplot-0.14.0}/docs/reference-selecting-objects.md +0 -0
  126. {starplot-0.13.0 → starplot-0.14.0}/docs/reference-styling.md +0 -0
  127. {starplot-0.13.0 → starplot-0.14.0}/docs/robots.txt +0 -0
  128. {starplot-0.13.0 → starplot-0.14.0}/docs/tutorial/01.md +0 -0
  129. {starplot-0.13.0 → starplot-0.14.0}/docs/tutorial/03.md +0 -0
  130. {starplot-0.13.0 → starplot-0.14.0}/docs/tutorial/04.md +0 -0
  131. {starplot-0.13.0 → starplot-0.14.0}/docs/tutorial/05.md +0 -0
  132. {starplot-0.13.0 → starplot-0.14.0}/docs/tutorial/06.md +0 -0
  133. {starplot-0.13.0 → starplot-0.14.0}/docs/tutorial/07.md +0 -0
  134. {starplot-0.13.0 → starplot-0.14.0}/docs/tutorial/08.md +0 -0
  135. {starplot-0.13.0 → starplot-0.14.0}/docs/tutorial.md +0 -0
  136. {starplot-0.13.0 → starplot-0.14.0}/examples/examples.py +0 -0
  137. {starplot-0.13.0 → starplot-0.14.0}/examples/map_big_dipper.py +0 -0
  138. {starplot-0.13.0 → starplot-0.14.0}/examples/map_milky_way_stars.py +0 -0
  139. {starplot-0.13.0 → starplot-0.14.0}/examples/optic_moon_saturn.py +0 -0
  140. {starplot-0.13.0 → starplot-0.14.0}/examples/optic_solar_eclipse.py +0 -0
  141. {starplot-0.13.0 → starplot-0.14.0}/hash_checks/__init__.py +0 -0
  142. {starplot-0.13.0 → starplot-0.14.0}/hash_checks/data/.keep +0 -0
  143. {starplot-0.13.0 → starplot-0.14.0}/hash_checks/optic_checks.py +0 -0
  144. {starplot-0.13.0 → starplot-0.14.0}/hash_checks/template.html +0 -0
  145. {starplot-0.13.0 → starplot-0.14.0}/requirements-dev.txt +0 -0
  146. {starplot-0.13.0 → starplot-0.14.0}/scripts/constellation_hips.py +0 -0
  147. {starplot-0.13.0 → starplot-0.14.0}/scripts/download_cons.py +0 -0
  148. {starplot-0.13.0 → starplot-0.14.0}/scripts/ecliptic.py +0 -0
  149. {starplot-0.13.0 → starplot-0.14.0}/scripts/gallery.py +0 -0
  150. {starplot-0.13.0 → starplot-0.14.0}/scripts/geopack.py +0 -0
  151. {starplot-0.13.0 → starplot-0.14.0}/scripts/gpack_constellations.py +0 -0
  152. {starplot-0.13.0 → starplot-0.14.0}/scripts/hip.py +0 -0
  153. {starplot-0.13.0 → starplot-0.14.0}/scripts/hip_parquet.py +0 -0
  154. {starplot-0.13.0 → starplot-0.14.0}/scripts/ipy.py +0 -0
  155. {starplot-0.13.0 → starplot-0.14.0}/scripts/moonphases.py +0 -0
  156. {starplot-0.13.0 → starplot-0.14.0}/scripts/ongc_docdata.py +0 -0
  157. {starplot-0.13.0 → starplot-0.14.0}/scripts/ongc_geopack.py +0 -0
  158. {starplot-0.13.0 → starplot-0.14.0}/scripts/starnames.py +0 -0
  159. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/callables.py +0 -0
  160. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/__init__.py +0 -0
  161. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/bayer.py +0 -0
  162. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/bigsky.py +0 -0
  163. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/dsos.py +0 -0
  164. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/ecliptic.py +0 -0
  165. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/flamsteed.py +0 -0
  166. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/library/constellation_borders_inv.gpkg +0 -0
  167. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/library/constellation_lines_hips.json +0 -0
  168. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/library/constellation_lines_inv.gpkg +0 -0
  169. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/library/constellations.gpkg +0 -0
  170. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/library/constellations_hip.fab +0 -0
  171. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/library/de421_2001.bsp +0 -0
  172. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/library/milkyway.gpkg +0 -0
  173. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/library/milkyway_inv.gpkg +0 -0
  174. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/library/ongc.gpkg.zip +0 -0
  175. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/library/stars.bigsky.mag11.parquet +0 -0
  176. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/library/stars.hipparcos.parquet +0 -0
  177. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/messier.py +0 -0
  178. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/prep/__init__.py +0 -0
  179. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/prep/constellations.py +0 -0
  180. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/prep/dsos.py +0 -0
  181. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/prep/utils.py +0 -0
  182. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/stars.py +0 -0
  183. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/data/utils.py +0 -0
  184. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/geod.py +0 -0
  185. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/mixins.py +0 -0
  186. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/models/__init__.py +0 -0
  187. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/models/dso.py +0 -0
  188. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/models/geometry.py +0 -0
  189. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/models/moon.py +0 -0
  190. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/models/objects.py +0 -0
  191. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/models/planet.py +0 -0
  192. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/models/star.py +0 -0
  193. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/models/sun.py +0 -0
  194. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/optics.py +0 -0
  195. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/plotters/dsos.py +0 -0
  196. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/projections.py +0 -0
  197. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/__init__.py +0 -0
  198. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/ext/color_print.yml +0 -0
  199. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/extensions.py +0 -0
  200. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/gfs-didot/DESCRIPTION.en_us.html +0 -0
  201. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/gfs-didot/GFSDidot-Regular.ttf +0 -0
  202. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/gfs-didot/METADATA.pb +0 -0
  203. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/gfs-didot/OFL.txt +0 -0
  204. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/hind/DESCRIPTION.en_us.html +0 -0
  205. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/hind/Hind-Bold.ttf +0 -0
  206. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/hind/Hind-Light.ttf +0 -0
  207. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/hind/Hind-Medium.ttf +0 -0
  208. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/hind/Hind-Regular.ttf +0 -0
  209. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/hind/Hind-SemiBold.ttf +0 -0
  210. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/hind/METADATA.pb +0 -0
  211. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/hind/OFL.txt +0 -0
  212. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-Black.ttf +0 -0
  213. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-BlackItalic.ttf +0 -0
  214. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-Bold.ttf +0 -0
  215. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-BoldItalic.ttf +0 -0
  216. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-ExtraBold.ttf +0 -0
  217. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-ExtraBoldItalic.ttf +0 -0
  218. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-ExtraLight.ttf +0 -0
  219. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-ExtraLightItalic.ttf +0 -0
  220. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-Italic.ttf +0 -0
  221. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-Light.ttf +0 -0
  222. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-LightItalic.ttf +0 -0
  223. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-Medium.ttf +0 -0
  224. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-MediumItalic.ttf +0 -0
  225. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-Regular.ttf +0 -0
  226. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-SemiBold.ttf +0 -0
  227. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-SemiBoldItalic.ttf +0 -0
  228. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-Thin.ttf +0 -0
  229. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/Inter-ThinItalic.ttf +0 -0
  230. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts-library/inter/LICENSE.txt +0 -0
  231. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/fonts.py +0 -0
  232. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/helpers.py +0 -0
  233. {starplot-0.13.0 → starplot-0.14.0}/src/starplot/styles/markers.py +0 -0
  234. {starplot-0.13.0 → starplot-0.14.0}/tests/__init__.py +0 -0
  235. {starplot-0.13.0 → starplot-0.14.0}/tests/data/.keep +0 -0
  236. {starplot-0.13.0 → starplot-0.14.0}/tests/test_constellations.py +0 -0
  237. {starplot-0.13.0 → starplot-0.14.0}/tests/test_data.py +0 -0
  238. {starplot-0.13.0 → starplot-0.14.0}/tests/test_map.py +0 -0
  239. {starplot-0.13.0 → starplot-0.14.0}/tests/test_models.py +0 -0
  240. {starplot-0.13.0 → starplot-0.14.0}/tests/test_optic.py +0 -0
  241. {starplot-0.13.0 → starplot-0.14.0}/tests/test_stars.py +0 -0
  242. {starplot-0.13.0 → starplot-0.14.0}/tests/test_utils.py +0 -0
  243. {starplot-0.13.0 → starplot-0.14.0}/tests/utils.py +0 -0
  244. {starplot-0.13.0 → starplot-0.14.0}/tutorial/build.py +0 -0
  245. {starplot-0.13.0 → starplot-0.14.0}/tutorial/tutorial_05.py +0 -0
  246. {starplot-0.13.0 → starplot-0.14.0}/tutorial/tutorial_07.py +0 -0
  247. {starplot-0.13.0 → starplot-0.14.0}/tutorial/tutorial_08.py +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: starplot
3
- Version: 0.13.0
3
+ Version: 0.14.0
4
4
  Summary: Star charts and maps of the sky
5
- Keywords: astronomy,stars,charts,maps,constellations
5
+ Keywords: astronomy,stars,charts,maps,constellations,sky,plotting
6
6
  Author-email: Steve Berardi <hello@steveberardi.com>
7
7
  Description-Content-Type: text/markdown
8
8
  Classifier: License :: OSI Approved :: MIT License
@@ -17,7 +17,6 @@ Requires-Dist: pandas >= 1.4.0
17
17
  Requires-Dist: pydantic >= 2.0.3
18
18
  Requires-Dist: shapely >= 2.0.1
19
19
  Requires-Dist: skyfield >= 1.41
20
- Requires-Dist: adjustText >= 1.0
21
20
  Requires-Dist: cartopy >= 0.21.1
22
21
  Requires-Dist: geopandas >= 0.13.2
23
22
  Requires-Dist: pillow >= 10.0.0
@@ -39,10 +38,11 @@ Project-URL: Source, https://github.com/steveberardi/starplot
39
38
 
40
39
  **Starplot** is a Python library for creating star charts and maps of the sky.
41
40
 
42
- - ⭐ **Zenith Plots** - showing the whole sky from a specific time/location
41
+ - ⭐ **Zenith Plots** - shows the entire sky at a specific time and place
43
42
  - 🗺️ **Map Plots** - including many map projections
44
- - 🔭 **Optic Plots** - simulates what you'll see through an optic (e.g. binoculars, telescope) from a time/location
45
- - 🪐 **Planets and Deep Sky Objects (DSOs)**
43
+ - 🌃 **Horizon Plots** - shows the horizon at a specific time and place
44
+ - 🔭 **Optic Plots** - shows what you'll see through an optic (e.g. telescope) at a specific time and place
45
+ - 🪐 **Planets and Deep Sky Objects (DSOs)** - more than 14,000 objects built-in
46
46
  - 🎨 **Custom Styles** - for all objects
47
47
  - 📥 **Export** - png, svg, jpeg
48
48
  - 🧭 **Label Collision Avoidance**
@@ -76,11 +76,12 @@ p = sp.MapPlot(
76
76
  style=sp.styles.PlotStyle().extend(
77
77
  sp.styles.extensions.BLUE_MEDIUM,
78
78
  ),
79
- resolution=3200,
79
+ resolution=4096,
80
80
  autoscale=True,
81
81
  )
82
82
  p.constellations()
83
83
  p.stars(mag=4.6)
84
+ p.constellation_labels()
84
85
  p.export("starchart.png")
85
86
  ```
86
87
 
@@ -105,11 +106,11 @@ https://discord.gg/WewJJjshFu
105
106
  Contributing to Starplot is welcome and very much appreciated! Please see [here](CONTRIBUTING.md) for details.
106
107
 
107
108
  ## Coming Soon
108
- - 🌄 Horizon plots
109
+ - 🗄️ Data optimizations
110
+ - 🧮 Coordinate system helpers
109
111
  - 🌑 Planet moons
110
112
  - ✴️ Custom markers
111
113
  - ☄️ Comet model
112
- - 💫 Better constellation label placement
113
114
  - 😄 🔭 Clear skies
114
115
 
115
116
  See more details on the [Public Roadmap](https://trello.com/b/sUksygn4/starplot-roadmap)
@@ -6,10 +6,11 @@
6
6
 
7
7
  **Starplot** is a Python library for creating star charts and maps of the sky.
8
8
 
9
- - ⭐ **Zenith Plots** - showing the whole sky from a specific time/location
9
+ - ⭐ **Zenith Plots** - shows the entire sky at a specific time and place
10
10
  - 🗺️ **Map Plots** - including many map projections
11
- - 🔭 **Optic Plots** - simulates what you'll see through an optic (e.g. binoculars, telescope) from a time/location
12
- - 🪐 **Planets and Deep Sky Objects (DSOs)**
11
+ - 🌃 **Horizon Plots** - shows the horizon at a specific time and place
12
+ - 🔭 **Optic Plots** - shows what you'll see through an optic (e.g. telescope) at a specific time and place
13
+ - 🪐 **Planets and Deep Sky Objects (DSOs)** - more than 14,000 objects built-in
13
14
  - 🎨 **Custom Styles** - for all objects
14
15
  - 📥 **Export** - png, svg, jpeg
15
16
  - 🧭 **Label Collision Avoidance**
@@ -43,11 +44,12 @@ p = sp.MapPlot(
43
44
  style=sp.styles.PlotStyle().extend(
44
45
  sp.styles.extensions.BLUE_MEDIUM,
45
46
  ),
46
- resolution=3200,
47
+ resolution=4096,
47
48
  autoscale=True,
48
49
  )
49
50
  p.constellations()
50
51
  p.stars(mag=4.6)
52
+ p.constellation_labels()
51
53
  p.export("starchart.png")
52
54
  ```
53
55
 
@@ -72,11 +74,11 @@ https://discord.gg/WewJJjshFu
72
74
  Contributing to Starplot is welcome and very much appreciated! Please see [here](CONTRIBUTING.md) for details.
73
75
 
74
76
  ## Coming Soon
75
- - 🌄 Horizon plots
77
+ - 🗄️ Data optimizations
78
+ - 🧮 Coordinate system helpers
76
79
  - 🌑 Planet moons
77
80
  - ✴️ Custom markers
78
81
  - ☄️ Comet model
79
- - 💫 Better constellation label placement
80
82
  - 😄 🔭 Clear skies
81
83
 
82
84
  See more details on the [Public Roadmap](https://trello.com/b/sUksygn4/starplot-roadmap)
@@ -1,4 +1,13 @@
1
+ ## v0.14.x
2
+ - Adds horizon plots, which show what the sky looks like from the horizon at a specific time and place
3
+ - Improved auto placement of constellation labels
4
+ - Separates styles and functions for constellation lines and labels
5
+ - Plots constellation lines and borders as a `LineCollection` to improve performance
6
+ - Adds option to suppress warnings from dependencies
7
+ - Adds legend labels to shape functions
8
+
1
9
  ## v0.13.x
10
+ [Documentation](https://archives.starplot.dev/0.13.0/)
2
11
 
3
12
  - Adds a `scale` factor to control sizing of all objects/text
4
13
  - Adds an "auto" option for label offsets from markers
@@ -1,9 +1,9 @@
1
1
 
2
- - 🌄 Horizon plots
2
+ - 🗄️ Data optimizations
3
+ - 🧮 Coordinate system helpers
3
4
  - 🌑 Planet moons
4
5
  - ☄️ Comet model
5
6
  - ✴️ Custom markers
6
- - 💫 Better constellation label placement
7
7
  - 😄 🔭 Clear skies
8
8
 
9
9
  <br/>
@@ -0,0 +1,16 @@
1
+ ---
2
+ title: Horizon Plot
3
+ ---
4
+ [:octicons-arrow-left-24: Back to Examples](/examples)
5
+
6
+ # Horizon Plot {.example-header}
7
+
8
+ ![horizon-sgr](/images/examples/horizon_sgr.png)
9
+
10
+ This plot shows what was in the sky when looking southwest from Lone Pine, California on August 30, 2024 at 9pm PT.
11
+
12
+ ```python
13
+ --8<-- "examples/horizon_sgr.py"
14
+ ```
15
+
16
+
@@ -57,6 +57,14 @@
57
57
  <p class="example-card-title">Milky Way Stars</p>
58
58
  </a>
59
59
  </li>
60
+
61
+ <li>
62
+ <a href="/examples/horizon-sgr/">
63
+ <img src="/images/examples/horizon_sgr-sm.png" alt="Horizon Plot of Sagittarius" class="off-glb" loading="lazy"/>
64
+
65
+ <p class="example-card-title">Horizon Plot</p>
66
+ </a>
67
+ </li>
60
68
 
61
69
  <li>
62
70
  <a href="/examples/map-big-dipper/">
@@ -12,13 +12,15 @@ title: Star Charts and Maps of the Sky in Python
12
12
  Starplot is a Python library for creating star charts and maps of the sky.
13
13
  {.text-subtitle}
14
14
 
15
- - ⭐ **Zenith Plots** - showing the stars from a specific time/location
15
+ - ⭐ **Zenith Plots** - shows the entire sky at a specific time and place
16
16
 
17
- - 🗺️ **Map Plots** - including stereographic and perspective projections
17
+ - 🗺️ **Map Plots** - including many projections
18
18
 
19
- - 🔭 **Optic Plots** - simulates what you'll see through an optic (e.g. telescope) from a time/location
19
+ - 🌃 **Horizon Plots** - shows the horizon at a specific time and place
20
20
 
21
- - 🪐 **Planets and Deep Sky Objects (DSOs)**
21
+ - 🔭 **Optic Plots** - shows what you'll see through an optic (e.g. telescope) at a specific time and place
22
+
23
+ - 🪐 **Planets and Deep Sky Objects (DSOs)** - more than 14,000 objects built-in
22
24
 
23
25
  - 🎨 **Custom Styles** - for all objects
24
26
 
@@ -0,0 +1,10 @@
1
+ **Horizon plots show what the sky looks like from the horizon at a specific time and place**. They can help illustrate answers to questions like "what stars will I see in the sky tonight at 9pm when I look directly West from my backyard?"
2
+
3
+ These plots use the [Lambert azimuthal equal-area projection](https://en.wikipedia.org/wiki/Lambert_azimuthal_equal-area_projection), with the horizon as the central altitude (0 degrees) and the central azimuth is determined by the azimuth range you define when creating the plot.
4
+
5
+ ::: starplot.HorizonPlot
6
+ options:
7
+ inherited_members: true
8
+ merge_init_into_class: true
9
+ show_root_heading: true
10
+
@@ -39,9 +39,17 @@ On line 8, we create a [`MapPlot`][starplot.MapPlot] instance that specifies a f
39
39
  - `resolution`: Resolution (in pixels) of the widest dimension of the plot
40
40
  - `scale`: This controls the sizing of all text and markers. At scale `1.0` everything is optimized for a basic map of 1-3 constellations, so if you're plotting a larger area (or just want everything smaller), then it's a good idea to decrease the scale so the plot isn't too crowded.
41
41
 
42
- When you create a plot instance, initially it'll be empty (i.e. it won't have any stars). In Starplot, you have to explicitly plot all objects. So, on line 16 we plot the constellations, which includes lines and labels. Then, we plot stars with a limiting magnitude of 4.6.
42
+ When you create a plot instance, initially it'll be empty (i.e. it won't have any stars or constellations). In Starplot, you have to explicitly plot all objects.
43
43
 
44
- Finally, we export the plot to a PNG file.
44
+ So, on line 16 we start by plotting the constellation lines. We plot these _first_, because Starplot can use the constellation lines to automatically find good places to plot object labels.
45
+
46
+ Next, we plot stars with a limiting magnitude of 4.6. Notice how none of the star names in the plot cross over a constellation line? That's because we plotted the constellation lines _before_ plotting the stars.
47
+
48
+ After the stars, we plot the horizon, which is the border around the plot with the cardinal direction labels.
49
+
50
+ Lastly, we plot the constellation labels. It's good to plot these last because they're area-based labels (vs point-based, like for star names), and area-based labels have more freedom to move around. If you plot area-based labels first, then it would limit the available space for point-based labels.
51
+
52
+ Once we're done plotting, we export the plot to a PNG file.
45
53
 
46
54
  *In the [next section](03.md), we'll learn how to add some styles and other objects to the plot...*
47
55
 
@@ -14,6 +14,7 @@ The purpose of the tutorial was just to give you an intro to some of Starplot's
14
14
  - [Examples](/examples)
15
15
  - Code References:
16
16
  - [MapPlot](/reference-mapplot/)
17
+ - [HorizonPlot](/reference-horizonplot/)
17
18
  - [OpticPlot](/reference-opticplot/)
18
19
  - [Styling](/reference-styling/)
19
20
  - [Join other Starplotters on Discord](https://discord.gg/WewJJjshFu)
@@ -0,0 +1,39 @@
1
+ from datetime import datetime
2
+
3
+ from pytz import timezone
4
+
5
+ from starplot import HorizonPlot, Star, DSO
6
+ from starplot.styles import PlotStyle, extensions
7
+
8
+ style = PlotStyle().extend(
9
+ extensions.BLUE_MEDIUM,
10
+ extensions.MAP,
11
+ {"figure_background_color": "hsl(212, 27%, 48%)"},
12
+ )
13
+
14
+ dt = timezone("US/Pacific").localize(datetime(2024, 8, 30, 21, 0, 0, 0))
15
+
16
+ p = HorizonPlot(
17
+ altitude=(0, 60),
18
+ azimuth=(175, 275),
19
+ lat=36.606111, # Lone Pine, California
20
+ lon=-118.079444,
21
+ dt=dt,
22
+ style=style,
23
+ resolution=4000,
24
+ scale=0.9,
25
+ )
26
+
27
+ p.constellations()
28
+ p.milky_way()
29
+
30
+ p.stars(where=[Star.magnitude < 5])
31
+ p.messier(where=[DSO.magnitude < 12], true_size=False, label_fn=lambda d: f"M{d.m}")
32
+
33
+ p.constellation_labels()
34
+ p.planets()
35
+ p.ecliptic()
36
+ p.horizon()
37
+ p.gridlines()
38
+
39
+ p.export("horizon_sgr.png", padding=0.2)
@@ -19,9 +19,7 @@ p = MapPlot(
19
19
  scale=0.8,
20
20
  )
21
21
  p.gridlines()
22
- p.constellations(
23
- style__label__font_size=28,
24
- )
22
+ p.constellations()
25
23
  p.stars(mag=6, where_labels=[Star.magnitude < 2.1])
26
24
  p.open_clusters(
27
25
  labels=None,
@@ -49,6 +47,7 @@ p.nebula(
49
47
  where=[(DSO.magnitude <= 10) | (DSO.magnitude.is_null()), DSO.size > 0.05],
50
48
  )
51
49
 
50
+ p.constellation_labels(style__font_size=28)
52
51
  p.milky_way()
53
52
  p.ecliptic()
54
53
  p.celestial_equator()
@@ -23,5 +23,6 @@ p.constellations(
23
23
  p.constellation_borders()
24
24
  p.open_clusters(mag=8, true_size=False, label_fn=lambda d: f"{d.ngc}")
25
25
  p.stars(mag=9, bayer_labels=True, catalog="big-sky-mag11")
26
+ p.constellation_labels()
26
27
  p.ax.set_axis_off()
27
28
  p.export("map_canis_major.png", padding=0, transparent=True)
@@ -93,6 +93,7 @@ p.gridlines(labels=False)
93
93
  p.constellations()
94
94
  p.constellation_borders()
95
95
  p.stars(mag=6, where_labels=[Star.magnitude < 2])
96
+ p.constellation_labels()
96
97
  p.milky_way()
97
98
  p.legend()
98
99
 
@@ -43,6 +43,7 @@ p.open_clusters(
43
43
 
44
44
  p.nebula(mag=9, labels=None, label_fn=lambda d: d.ngc)
45
45
 
46
+ p.constellation_labels()
46
47
  p.milky_way()
47
48
  p.ecliptic()
48
49
  p.legend()
@@ -26,9 +26,7 @@ p = MapPlot(
26
26
  scale=0.9, # lower the scale since it shows a large area
27
27
  )
28
28
  p.gridlines(labels=False)
29
- p.constellations(
30
- style={"label": {"font_alpha": 0.4}},
31
- )
29
+ p.constellations()
32
30
  p.constellation_borders()
33
31
 
34
32
  p.stars(mag=7.86, where_labels=[Star.magnitude < 6])
@@ -36,6 +34,7 @@ p.open_clusters(where=[DSO.magnitude < 12], true_size=False, labels=None)
36
34
  p.galaxies(where=[DSO.magnitude < 12], true_size=False, labels=None)
37
35
  p.nebula(where=[DSO.magnitude < 12], true_size=False, labels=None)
38
36
 
37
+ p.constellation_labels(style__font_alpha=0.4)
39
38
  p.ecliptic()
40
39
  p.celestial_equator()
41
40
  p.milky_way()
@@ -61,4 +61,5 @@ p.globular_clusters(
61
61
  p.ecliptic()
62
62
  p.celestial_equator()
63
63
  p.milky_way()
64
+ p.constellation_labels()
64
65
  p.export("map_sagittarius.png", padding=0.08)
@@ -26,7 +26,7 @@ p = OpticPlot(
26
26
  ),
27
27
  dt=dt,
28
28
  style=style,
29
- resolution=2048,
29
+ resolution=4096,
30
30
  autoscale=True,
31
31
  )
32
32
  p.stars(
@@ -26,7 +26,7 @@ p = OpticPlot(
26
26
  ),
27
27
  dt=dt,
28
28
  style=style,
29
- resolution=2048,
29
+ resolution=4096,
30
30
  autoscale=True,
31
31
  )
32
32
  p.stars(mag=15, color_fn=color_by_bv, bayer_labels=True)
@@ -17,8 +17,9 @@ p = MapPlot(
17
17
  resolution=3600,
18
18
  autoscale=True,
19
19
  )
20
+ p.horizon()
20
21
  p.constellations()
21
22
  p.stars(mag=4.4, where_labels=[Star.magnitude < 2.4])
22
- p.horizon()
23
+ p.constellation_labels()
23
24
 
24
25
  p.export("star_chart_basic.png", transparent=True, padding=0.1)
@@ -17,6 +17,7 @@ p = MapPlot(
17
17
  resolution=3600,
18
18
  autoscale=True,
19
19
  )
20
+ p.horizon()
20
21
  p.constellations()
21
22
  p.stars(mag=4.6, where_labels=[Star.magnitude < 2.1])
22
23
 
@@ -51,6 +52,6 @@ p.marker(
51
52
  },
52
53
  label="Mel 111",
53
54
  )
54
- p.horizon()
55
+ p.constellation_labels()
55
56
 
56
57
  p.export("star_chart_detail.png", transparent=True, padding=0.1)
@@ -15,6 +15,7 @@ from rich.console import Console
15
15
  import map_checks
16
16
  import optic_checks
17
17
  import zenith_checks
18
+ import horizon_checks
18
19
 
19
20
  TEMPLATE_NAME = "template.html"
20
21
 
@@ -87,7 +88,7 @@ class Hashio:
87
88
 
88
89
  def _get_hashes(self) -> dict:
89
90
  """Gets hashes for all callables"""
90
- mp.set_start_method("spawn") # required for M1 macs? or macOS issue?
91
+ # mp.set_start_method("spawn") # required for M1 macs? or macOS issue?
91
92
 
92
93
  console.print("Getting hashes...", style="bold")
93
94
  with mp.Pool(5) as p:
@@ -154,6 +155,7 @@ if __name__ == "__main__":
154
155
  callables = Hashio.find_functions(map_checks)
155
156
  callables += Hashio.find_functions(zenith_checks)
156
157
  callables += Hashio.find_functions(optic_checks)
158
+ callables += Hashio.find_functions(horizon_checks)
157
159
 
158
160
  h = Hashio(callables=callables)
159
161
 
@@ -167,6 +169,10 @@ if __name__ == "__main__":
167
169
 
168
170
  console.print(f"\nPASSED: {passed}\n", style="green")
169
171
 
172
+ if failed:
173
+ console.print("FAILED: retrying...\n", style="bold red")
174
+ passed, failed, new = h.check()
175
+
170
176
  if failed or new:
171
177
  console.print(f"FAILED: {failed}\n", style="bold red")
172
178
  console.print(f"NEW : {new}\n", style="blue")
@@ -1,87 +1,95 @@
1
+ horizon_base:
2
+ dhash: 2f8bcd0dc10376542f8bcd0dc11b76542fcbcd8d801b7652
3
+ filename: /starplot/hash_checks/data/horizon-base.png
4
+ phash: e3a21cdd34b47295
5
+ horizon_north_celestial_pole:
6
+ dhash: 18aa4a68c232885419a84a68c232485439ab4ad8e2328854
7
+ filename: /starplot/hash_checks/data/horizon-north-celestial-pole.png
8
+ phash: d5b27ad908d13dc1
1
9
  map_coma_berenices_dso_size:
2
- dhash: 82848cece098c0c28a848cece098c482a28a92e2ec92c282
10
+ dhash: 8a84acecc888c0c0a2848ceca888c6c08a8a92a2a882c282
3
11
  filename: /starplot/hash_checks/data/map-coma-berenices-dso-size.png
4
- phash: 969669694f9212cf
12
+ phash: 969669696f961269
5
13
  map_custom_stars:
6
14
  dhash: 5c21a9ceac2c84485c21a9ceac2c84485c21a9ceac2c8448
7
15
  filename: /starplot/hash_checks/data/map-custom-stars.png
8
- phash: e65a5bb405a535d8
16
+ phash: e65a5b3415b535d0
9
17
  map_gridlines:
10
- dhash: 0c219595224949210c219595224949210c21959522494921
18
+ dhash: 0c219595224949110c219595224949110c21959522494911
11
19
  filename: /starplot/hash_checks/data/map-gridlines.png
12
20
  phash: d2b45b172d3262ad
13
21
  map_label_callables:
14
22
  dhash: 80908c8c9c8c889080988c0c9c8c98a0809a9d0d8d9e98a0
15
23
  filename: /starplot/hash_checks/data/map-m45-label-callables.png
16
- phash: b330cdcd3ce6268c
24
+ phash: b330cdc93ce6269c
17
25
  map_milky_way_multi_polygon:
18
- dhash: 711f0b0c80761c2d711f0b0c80761c2d71530b0c80669c0d
26
+ dhash: 715f0b0880662c2d711f0b088076242d71530b088066ac2d
19
27
  filename: /starplot/hash_checks/data/map-milky-way-multi-polygon.png
20
- phash: be89be8856524e69
28
+ phash: be89be9856504e69
21
29
  map_mollweide:
22
- dhash: 0b0929733b31170f0b0929733b31170f0b0d29732b311707
30
+ dhash: 0b2b316b3b33070f0b2b316b3b33070f0b2b416b3b33250f
23
31
  filename: /starplot/hash_checks/data/map-mollweide.png
24
- phash: facbe09885599563
32
+ phash: bb4bf2bc81649564
25
33
  map_moon_phase_waxing_crescent:
26
34
  dhash: 0804084d4d4804080804084d4d4804080804084d4d480408
27
35
  filename: /starplot/hash_checks/data/map-moon-phase-waxing-crescent.png
28
36
  phash: b3cccc3333cccc31
29
37
  map_orion_base:
30
- dhash: 1c39393e2e2f64681c39396e2e2f64685c3939a62e4f2468
38
+ dhash: 18393b5e2e2f64681c393b5e2e2f64681c392bce2e0f6448
31
39
  filename: /starplot/hash_checks/data/map-orion-base.png
32
- phash: be785b2435a4b598
40
+ phash: bf785b2415a4359c
33
41
  map_orion_extra:
34
- dhash: 1c19393e2f656c4f1c39392e2f6568471c1b2b2e2f256c47
42
+ dhash: 1c393b3e2b67680f1d391b6f2b27680f1c3b0b0e2b276c0f
35
43
  filename: /starplot/hash_checks/data/map-orion-extra.png
36
- phash: be71c11ee117a4d1
44
+ phash: bf71d01ee017e491
37
45
  map_plot_custom_clip_path_virgo:
38
- dhash: 060529331d1c04040625252f0d1c0404060525270d1e0404
46
+ dhash: 060521331d1c04040625252f0d1c04040625252f0d1e0404
39
47
  filename: /starplot/hash_checks/data/map-custom-clip-path-virgo.png
40
- phash: e66e8d91b1191bd2
48
+ phash: e66ec591b10d4bd2
41
49
  map_plot_limit_by_geometry:
42
- dhash: 12a8809644041202122a82964404120232a880d645041242
50
+ dhash: 12a880964c0c1202122a8296440c120232a880d6452c1242
43
51
  filename: /starplot/hash_checks/data/map-limit-by-geometry.png
44
- phash: a4899b366679669a
52
+ phash: a4019bbe6779168e
45
53
  map_scope_bino_fov:
46
- dhash: 068080848cc088200686334d4d21924c0686334d4d21924c
54
+ dhash: 068080848cc080200686234d4d21924c0686234d4d21924c
47
55
  filename: /starplot/hash_checks/data/map-scope-bino-fov.png
48
- phash: e6659931666c9939
56
+ phash: e6649931666c9979
49
57
  map_stereo_base:
50
- dhash: 777264f234381416777264f0303cd416777664f2b498d456
58
+ dhash: 677666f0353a5412677666f431bcd412577666f0b598d412
51
59
  filename: /starplot/hash_checks/data/map-stereo-north-base.png
52
- phash: 9dce69624a9176b2
60
+ phash: 9dce6d624a9132ba
53
61
  map_with_planets:
54
- dhash: 629304668ddb3233629304668ddb3233629305668ddb3233
62
+ dhash: 229304668ddb323b2a9304668ddb323b2a9304668ddb32bb
55
63
  filename: /starplot/hash_checks/data/map-mercator-planets.png
56
- phash: eac29d81a65f5332
64
+ phash: e8c29d89a67f5312
57
65
  map_wrapping:
58
- dhash: 2f134c2d45cf23152f134c2d45cf23152f134c2d45cf2315
66
+ dhash: 0f332c4d4953311d0f332c4d4953311d0f332c4d4953311d
59
67
  filename: /starplot/hash_checks/data/map-wrapping.png
60
- phash: ba32c9c5968cb713
68
+ phash: ea34f8c98387a572
61
69
  optic_camera_rotated:
62
70
  dhash: 25468b13261c1a6525468b13261c1a6525468b13261c1a65
63
71
  filename: /starplot/hash_checks/data/optic-camera-rotated-m45.png
64
72
  phash: bc6cc6941ed97285
65
73
  optic_clipping:
66
- dhash: 70d898f066e4fc5d70d898f0eae4f85971f098eaf6f4fc71
74
+ dhash: 70d898f062e4fc5d70d898f0eae4f85971f098f2e6e4fc71
67
75
  filename: /starplot/hash_checks/data/optic-clipping.png
68
76
  phash: 95696a872f9a7870
69
77
  optic_m45_binoculars:
70
- dhash: 8e173b7133330e4d8e173b7133330e4d8e173b7133330e4d
78
+ dhash: 8e17237133330e4d8e17237133330e4d8e17237133330e4d
71
79
  filename: /starplot/hash_checks/data/optic-m45-binoculars.png
72
- phash: aa7b84f586d18ac6
80
+ phash: ae7b80f186d18ad3
73
81
  optic_m45_camera:
74
- dhash: 4d715151716559754d715151716559754d71515171655975
82
+ dhash: 4d515151716559754d515151716559754d51515171655975
75
83
  filename: /starplot/hash_checks/data/optic-m45-camera.png
76
- phash: ba7b846e847b84d1
84
+ phash: ba7b846e843b84d5
77
85
  optic_m45_reflector:
78
- dhash: 8e1f2b7123330e4d8e1f2b7123330e4d8e1f2b7123330e4d
86
+ dhash: 8e172b7123330e4d8e172b7123330e4d8e172b7123330e4d
79
87
  filename: /starplot/hash_checks/data/optic-m45-reflector.png
80
- phash: ba7b80e4c6b19b92
88
+ phash: ba7b80e5c6b19a92
81
89
  optic_m45_scope:
82
- dhash: 8e173b5133230e4d8e173b5133230e4d8e173b5133230e4d
90
+ dhash: 8e173b5123230e4d8e173b5123230e4d8e173b5123230e4d
83
91
  filename: /starplot/hash_checks/data/optic-m45-scope.png
84
- phash: ba7b84e486b18e93
92
+ phash: aa7b84e586b18e93
85
93
  optic_moon_phase_full:
86
94
  dhash: 0e2b553333552b0e0e2b553333552b0e0e2b553333552b0e
87
95
  filename: /starplot/hash_checks/data/optic-moon-phase-full.png
@@ -97,20 +105,20 @@ optic_moon_phase_waxing_crescent:
97
105
  optic_orion_nebula_refractor:
98
106
  dhash: 8e1f2d7163230e4d8e1f2d7163230e4d8e1f2d7163230e4d
99
107
  filename: /starplot/hash_checks/data/optic-orion-nebula-refractor.png
100
- phash: ae3ab165c3919e92
108
+ phash: ae3ab065c7919e92
101
109
  optic_polaris_binoculars:
102
- dhash: 8e172b5533338e4d8e172b5533338e4d8e172b5533338e4d
110
+ dhash: 8e172b5523338e4d8e172b5523338e4d8e172b5523338e4d
103
111
  filename: /starplot/hash_checks/data/optic-binoculars-polaris.png
104
112
  phash: aa7b84f182d18ed3
105
113
  optic_solar_eclipse_binoculars:
106
- dhash: 1779609a9a64610f0759e09a9ae469070359c09c9cc06903
114
+ dhash: 0779649a9ae461071759e49a9ae461170359c09c9cc06903
107
115
  filename: /starplot/hash_checks/data/optic-binoculars-eclipse.png
108
116
  phash: b1ccce3131cece31
109
117
  optic_wrapping:
110
- dhash: 71f0ac92d2d8650a71e0d4aca4c4782a71e8d4acacc4713a
118
+ dhash: 71f0ec92d2d8650a71e0d4aca4c4782a71e8d4aca4c4713a
111
119
  filename: /starplot/hash_checks/data/optic-wrapping.png
112
120
  phash: d1846e1b792ef138
113
121
  zenith_base:
114
- dhash: 1771c49e9e7d338e1779c49c9e5d338e1779c49c9e7d370e
122
+ dhash: 1771d496865d338e1771d494865d338e1779d494865d330e
115
123
  filename: /starplot/hash_checks/data/zenith-base.png
116
- phash: bb41aa3be13c8764
124
+ phash: be40ab3be1389764
@@ -0,0 +1,76 @@
1
+ from pathlib import Path
2
+ from datetime import datetime
3
+
4
+ from pytz import timezone
5
+
6
+ from starplot import styles, Star, HorizonPlot
7
+
8
+ HERE = Path(__file__).resolve().parent
9
+ DATA_PATH = HERE / "data"
10
+
11
+ STYLE = styles.PlotStyle().extend(
12
+ styles.extensions.BLUE_MEDIUM,
13
+ styles.extensions.MAP,
14
+ )
15
+
16
+ RESOLUTION = 4096
17
+
18
+ AUTO_ADJUST_SETTINGS = {"seed": 1}
19
+
20
+
21
+ def _horizon():
22
+ dt = timezone("US/Pacific").localize(datetime(2024, 8, 30, 21, 0, 0, 0))
23
+
24
+ p = HorizonPlot(
25
+ altitude=(0, 50),
26
+ azimuth=(150, 210),
27
+ lat=36.606111, # Lone Pine, California
28
+ lon=-118.079444,
29
+ dt=dt,
30
+ style=STYLE,
31
+ resolution=RESOLUTION,
32
+ scale=1.5,
33
+ )
34
+ p.constellations()
35
+ p.constellation_borders()
36
+ p.milky_way()
37
+ p.stars(where=[Star.magnitude < 5])
38
+ p.ecliptic()
39
+ p.horizon()
40
+ p.constellation_labels(auto_adjust_settings=AUTO_ADJUST_SETTINGS)
41
+ p.gridlines()
42
+ return p
43
+
44
+
45
+ def check_horizon_base():
46
+ horizon_base = _horizon()
47
+ filename = DATA_PATH / "horizon-base.png"
48
+ horizon_base.export(filename)
49
+ return filename
50
+
51
+
52
+ def check_horizon_north_celestial_pole():
53
+ dt = timezone("US/Pacific").localize(datetime(2024, 8, 30, 21, 0, 0, 0))
54
+
55
+ p = HorizonPlot(
56
+ altitude=(0, 50),
57
+ azimuth=(330, 390),
58
+ lat=36.606111, # Lone Pine, California
59
+ lon=-118.079444,
60
+ dt=dt,
61
+ style=STYLE,
62
+ resolution=RESOLUTION,
63
+ scale=1.5,
64
+ )
65
+ p.constellations()
66
+ p.constellation_borders()
67
+ p.milky_way()
68
+ p.stars(where=[Star.magnitude < 5])
69
+ p.ecliptic()
70
+ p.horizon()
71
+ p.constellation_labels(auto_adjust_settings=AUTO_ADJUST_SETTINGS)
72
+ p.gridlines()
73
+
74
+ filename = DATA_PATH / "horizon-north-celestial-pole.png"
75
+ p.export(filename)
76
+ return filename