starplot 0.12.5__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 (251) hide show
  1. {starplot-0.12.5 → starplot-0.14.0}/.github/workflows/test.yml +7 -0
  2. {starplot-0.12.5 → starplot-0.14.0}/.gitignore +1 -0
  3. {starplot-0.12.5 → starplot-0.14.0}/Dockerfile +2 -8
  4. {starplot-0.12.5 → starplot-0.14.0}/Makefile +14 -5
  5. {starplot-0.12.5 → starplot-0.14.0}/PKG-INFO +12 -12
  6. {starplot-0.12.5 → starplot-0.14.0}/README.md +10 -9
  7. {starplot-0.12.5 → starplot-0.14.0}/docs/about.md +5 -1
  8. {starplot-0.12.5 → starplot-0.14.0}/docs/changelog.md +25 -0
  9. {starplot-0.12.5 → starplot-0.14.0}/docs/coming-soon.md +2 -3
  10. starplot-0.14.0/docs/examples/horizon-sgr.md +16 -0
  11. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/map-canis-major.md +2 -0
  12. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/map-orion.md +1 -1
  13. {starplot-0.12.5 → starplot-0.14.0}/docs/examples.md +8 -0
  14. {starplot-0.12.5 → starplot-0.14.0}/docs/index.md +8 -5
  15. {starplot-0.12.5 → starplot-0.14.0}/docs/installation.md +13 -0
  16. starplot-0.14.0/docs/reference-horizonplot.md +10 -0
  17. {starplot-0.12.5 → starplot-0.14.0}/docs/reference-styling.md +4 -4
  18. {starplot-0.12.5 → starplot-0.14.0}/docs/tutorial/02.md +11 -2
  19. {starplot-0.12.5 → starplot-0.14.0}/docs/tutorial/05.md +2 -2
  20. {starplot-0.12.5 → starplot-0.14.0}/docs/tutorial/06.md +1 -1
  21. {starplot-0.12.5 → starplot-0.14.0}/docs/tutorial/08.md +1 -1
  22. {starplot-0.12.5 → starplot-0.14.0}/docs/tutorial/09.md +1 -0
  23. {starplot-0.12.5 → starplot-0.14.0}/docs/tutorial.md +1 -1
  24. {starplot-0.12.5 → starplot-0.14.0}/examples/examples.py +10 -14
  25. starplot-0.14.0/examples/horizon_sgr.py +39 -0
  26. starplot-0.14.0/examples/map_big.py +55 -0
  27. {starplot-0.12.5 → starplot-0.14.0}/examples/map_big_dipper.py +1 -8
  28. {starplot-0.12.5 → starplot-0.14.0}/examples/map_canis_major.py +6 -15
  29. {starplot-0.12.5 → starplot-0.14.0}/examples/map_comet_neowise.py +6 -5
  30. {starplot-0.12.5 → starplot-0.14.0}/examples/map_milky_way_stars.py +1 -1
  31. starplot-0.14.0/examples/map_orion.py +51 -0
  32. {starplot-0.12.5 → starplot-0.14.0}/examples/map_orthographic.py +5 -7
  33. {starplot-0.12.5 → starplot-0.14.0}/examples/map_sagittarius.py +19 -17
  34. {starplot-0.12.5 → starplot-0.14.0}/examples/optic_m45.py +2 -1
  35. {starplot-0.12.5 → starplot-0.14.0}/examples/optic_moon_saturn.py +3 -2
  36. {starplot-0.12.5 → starplot-0.14.0}/examples/optic_orion_nebula.py +2 -1
  37. {starplot-0.12.5 → starplot-0.14.0}/examples/star_chart_basic.py +5 -3
  38. {starplot-0.12.5 → starplot-0.14.0}/examples/star_chart_detail.py +5 -3
  39. {starplot-0.12.5 → starplot-0.14.0}/hash_checks/hashio.py +7 -1
  40. {starplot-0.12.5 → starplot-0.14.0}/hash_checks/hashlock.yml +61 -53
  41. starplot-0.14.0/hash_checks/horizon_checks.py +76 -0
  42. {starplot-0.12.5 → starplot-0.14.0}/hash_checks/map_checks.py +29 -9
  43. {starplot-0.12.5 → starplot-0.14.0}/hash_checks/optic_checks.py +18 -10
  44. {starplot-0.12.5 → starplot-0.14.0}/hash_checks/zenith_checks.py +5 -3
  45. {starplot-0.12.5 → starplot-0.14.0}/mkdocs.yml +1 -0
  46. {starplot-0.12.5 → starplot-0.14.0}/pyproject.toml +1 -2
  47. {starplot-0.12.5 → starplot-0.14.0}/requirements.txt +2 -3
  48. {starplot-0.12.5 → starplot-0.14.0}/scripts/geopack.py +4 -1
  49. starplot-0.14.0/scripts/starnames.py +52 -0
  50. starplot-0.14.0/scripts/voronoi.py +169 -0
  51. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/__init__.py +3 -2
  52. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/base.py +408 -95
  53. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/callables.py +61 -7
  54. starplot-0.14.0/src/starplot/coordinates.py +6 -0
  55. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/bayer.py +1532 -3
  56. starplot-0.14.0/src/starplot/data/constellations.py +709 -0
  57. starplot-0.14.0/src/starplot/data/flamsteed.py +2682 -0
  58. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/library/constellation_borders_inv.gpkg +0 -0
  59. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/library/constellation_lines_hips.json +3 -1
  60. starplot-0.14.0/src/starplot/data/stars.py +478 -0
  61. starplot-0.14.0/src/starplot/geometry.py +82 -0
  62. starplot-0.14.0/src/starplot/horizon.py +458 -0
  63. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/map.py +97 -284
  64. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/models/base.py +9 -2
  65. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/models/constellation.py +1 -1
  66. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/optic.py +32 -14
  67. starplot-0.14.0/src/starplot/plotters/__init__.py +4 -0
  68. starplot-0.14.0/src/starplot/plotters/constellations.py +339 -0
  69. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/plotters/dsos.py +5 -1
  70. starplot-0.14.0/src/starplot/plotters/experimental.py +171 -0
  71. starplot-0.14.0/src/starplot/plotters/milkyway.py +41 -0
  72. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/plotters/stars.py +143 -13
  73. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/base.py +308 -169
  74. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/ext/antique.yml +54 -46
  75. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/ext/blue_dark.yml +39 -45
  76. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/ext/blue_light.yml +49 -30
  77. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/ext/blue_medium.yml +53 -50
  78. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/ext/cb_wong.yml +16 -7
  79. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/ext/grayscale.yml +17 -10
  80. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/ext/grayscale_dark.yml +18 -8
  81. starplot-0.14.0/src/starplot/styles/ext/map.yml +12 -0
  82. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/ext/nord.yml +38 -38
  83. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/ext/optic.yml +7 -5
  84. starplot-0.14.0/src/starplot/styles/fonts-library/gfs-didot/DESCRIPTION.en_us.html +9 -0
  85. starplot-0.14.0/src/starplot/styles/fonts-library/gfs-didot/GFSDidot-Regular.ttf +0 -0
  86. starplot-0.14.0/src/starplot/styles/fonts-library/gfs-didot/METADATA.pb +16 -0
  87. starplot-0.14.0/src/starplot/styles/fonts-library/gfs-didot/OFL.txt +94 -0
  88. starplot-0.14.0/src/starplot/styles/fonts-library/hind/DESCRIPTION.en_us.html +28 -0
  89. starplot-0.14.0/src/starplot/styles/fonts-library/hind/Hind-Bold.ttf +0 -0
  90. starplot-0.14.0/src/starplot/styles/fonts-library/hind/Hind-Light.ttf +0 -0
  91. starplot-0.14.0/src/starplot/styles/fonts-library/hind/Hind-Medium.ttf +0 -0
  92. starplot-0.14.0/src/starplot/styles/fonts-library/hind/Hind-Regular.ttf +0 -0
  93. starplot-0.14.0/src/starplot/styles/fonts-library/hind/Hind-SemiBold.ttf +0 -0
  94. starplot-0.14.0/src/starplot/styles/fonts-library/hind/METADATA.pb +58 -0
  95. starplot-0.14.0/src/starplot/styles/fonts-library/hind/OFL.txt +93 -0
  96. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-Black.ttf +0 -0
  97. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-BlackItalic.ttf +0 -0
  98. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-Bold.ttf +0 -0
  99. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-BoldItalic.ttf +0 -0
  100. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-ExtraBold.ttf +0 -0
  101. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-ExtraBoldItalic.ttf +0 -0
  102. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-ExtraLight.ttf +0 -0
  103. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-ExtraLightItalic.ttf +0 -0
  104. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-Italic.ttf +0 -0
  105. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-Light.ttf +0 -0
  106. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-LightItalic.ttf +0 -0
  107. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-Medium.ttf +0 -0
  108. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-MediumItalic.ttf +0 -0
  109. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-Regular.ttf +0 -0
  110. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-SemiBold.ttf +0 -0
  111. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-SemiBoldItalic.ttf +0 -0
  112. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-Thin.ttf +0 -0
  113. starplot-0.14.0/src/starplot/styles/fonts-library/inter/Inter-ThinItalic.ttf +0 -0
  114. starplot-0.14.0/src/starplot/styles/fonts-library/inter/LICENSE.txt +92 -0
  115. starplot-0.14.0/src/starplot/styles/fonts.py +15 -0
  116. starplot-0.14.0/src/starplot/styles/markers.py +308 -0
  117. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/utils.py +19 -0
  118. starplot-0.14.0/src/starplot/warnings.py +16 -0
  119. {starplot-0.12.5 → starplot-0.14.0}/tests/test_styles.py +1 -1
  120. {starplot-0.12.5 → starplot-0.14.0}/tutorial/tutorial_02.py +4 -2
  121. {starplot-0.12.5 → starplot-0.14.0}/tutorial/tutorial_03.py +11 -5
  122. {starplot-0.12.5 → starplot-0.14.0}/tutorial/tutorial_04.py +10 -10
  123. {starplot-0.12.5 → starplot-0.14.0}/tutorial/tutorial_05.py +2 -2
  124. starplot-0.14.0/tutorial/tutorial_06.py +69 -0
  125. {starplot-0.12.5 → starplot-0.14.0}/tutorial/tutorial_07.py +7 -3
  126. {starplot-0.12.5 → starplot-0.14.0}/tutorial/tutorial_08.py +1 -0
  127. starplot-0.12.5/examples/map_big.py +0 -37
  128. starplot-0.12.5/examples/map_orion.py +0 -53
  129. starplot-0.12.5/src/starplot/data/constellations.py +0 -147
  130. starplot-0.12.5/src/starplot/data/stars.py +0 -157
  131. starplot-0.12.5/src/starplot/plotters/__init__.py +0 -2
  132. starplot-0.12.5/src/starplot/styles/ext/map.yml +0 -9
  133. starplot-0.12.5/src/starplot/styles/markers.py +0 -107
  134. starplot-0.12.5/tutorial/tutorial_06.py +0 -64
  135. {starplot-0.12.5 → starplot-0.14.0}/.dockerignore +0 -0
  136. {starplot-0.12.5 → starplot-0.14.0}/.github/FUNDING.yml +0 -0
  137. {starplot-0.12.5 → starplot-0.14.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  138. {starplot-0.12.5 → starplot-0.14.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  139. {starplot-0.12.5 → starplot-0.14.0}/.github/workflows/docs.yml +0 -0
  140. {starplot-0.12.5 → starplot-0.14.0}/.github/workflows/release.yml +0 -0
  141. {starplot-0.12.5 → starplot-0.14.0}/CODE_OF_CONDUCT.md +0 -0
  142. {starplot-0.12.5 → starplot-0.14.0}/CONTRIBUTING.md +0 -0
  143. {starplot-0.12.5 → starplot-0.14.0}/LICENSE +0 -0
  144. {starplot-0.12.5 → starplot-0.14.0}/docs/css/extra.css +0 -0
  145. {starplot-0.12.5 → starplot-0.14.0}/docs/custom/main.html +0 -0
  146. {starplot-0.12.5 → starplot-0.14.0}/docs/data/.keep +0 -0
  147. {starplot-0.12.5 → starplot-0.14.0}/docs/data-sources.md +0 -0
  148. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/map-big-dipper.md +0 -0
  149. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/map-big.md +0 -0
  150. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/map-comet-neowise.md +0 -0
  151. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/map-milky-way-stars.md +0 -0
  152. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/map-orthographic.md +0 -0
  153. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/map-sagittarius.md +0 -0
  154. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/optic-m45.md +0 -0
  155. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/optic-moon-saturn.md +0 -0
  156. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/optic-orion.md +0 -0
  157. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/optic-solar-eclipse.md +0 -0
  158. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/star-chart-basic.md +0 -0
  159. {starplot-0.12.5 → starplot-0.14.0}/docs/examples/star-chart-detail.md +0 -0
  160. {starplot-0.12.5 → starplot-0.14.0}/docs/images/banner.png +0 -0
  161. {starplot-0.12.5 → starplot-0.14.0}/docs/images/banner.svg +0 -0
  162. {starplot-0.12.5 → starplot-0.14.0}/docs/images/banner.vectornator +0 -0
  163. {starplot-0.12.5 → starplot-0.14.0}/docs/images/celestial-globe.svg +0 -0
  164. {starplot-0.12.5 → starplot-0.14.0}/docs/images/examples/.keep +0 -0
  165. {starplot-0.12.5 → starplot-0.14.0}/docs/images/favicon.png +0 -0
  166. {starplot-0.12.5 → starplot-0.14.0}/docs/images/favicon.svg +0 -0
  167. {starplot-0.12.5 → starplot-0.14.0}/docs/images/logo.png +0 -0
  168. {starplot-0.12.5 → starplot-0.14.0}/docs/images/logo.svg +0 -0
  169. {starplot-0.12.5 → starplot-0.14.0}/docs/images/logo.vectornator +0 -0
  170. {starplot-0.12.5 → starplot-0.14.0}/docs/images/logo2.png +0 -0
  171. {starplot-0.12.5 → starplot-0.14.0}/docs/images/logo2.vectornator +0 -0
  172. {starplot-0.12.5 → starplot-0.14.0}/docs/images/logo500.png +0 -0
  173. {starplot-0.12.5 → starplot-0.14.0}/docs/images/mono.png +0 -0
  174. {starplot-0.12.5 → starplot-0.14.0}/docs/images/mono.svg +0 -0
  175. {starplot-0.12.5 → starplot-0.14.0}/docs/images/star.svg +0 -0
  176. {starplot-0.12.5 → starplot-0.14.0}/docs/images/tutorial/.keep +0 -0
  177. {starplot-0.12.5 → starplot-0.14.0}/docs/license.md +0 -0
  178. {starplot-0.12.5 → starplot-0.14.0}/docs/reference-callables.md +0 -0
  179. {starplot-0.12.5 → starplot-0.14.0}/docs/reference-data.md +0 -0
  180. {starplot-0.12.5 → starplot-0.14.0}/docs/reference-mapplot.md +0 -0
  181. {starplot-0.12.5 → starplot-0.14.0}/docs/reference-models.md +0 -0
  182. {starplot-0.12.5 → starplot-0.14.0}/docs/reference-ongc.md +0 -0
  183. {starplot-0.12.5 → starplot-0.14.0}/docs/reference-opticplot.md +0 -0
  184. {starplot-0.12.5 → starplot-0.14.0}/docs/reference-selecting-objects.md +0 -0
  185. {starplot-0.12.5 → starplot-0.14.0}/docs/robots.txt +0 -0
  186. {starplot-0.12.5 → starplot-0.14.0}/docs/tutorial/01.md +0 -0
  187. {starplot-0.12.5 → starplot-0.14.0}/docs/tutorial/03.md +0 -0
  188. {starplot-0.12.5 → starplot-0.14.0}/docs/tutorial/04.md +0 -0
  189. {starplot-0.12.5 → starplot-0.14.0}/docs/tutorial/07.md +0 -0
  190. {starplot-0.12.5 → starplot-0.14.0}/examples/optic_solar_eclipse.py +0 -0
  191. {starplot-0.12.5 → starplot-0.14.0}/hash_checks/__init__.py +0 -0
  192. {starplot-0.12.5 → starplot-0.14.0}/hash_checks/data/.keep +0 -0
  193. {starplot-0.12.5 → starplot-0.14.0}/hash_checks/template.html +0 -0
  194. {starplot-0.12.5 → starplot-0.14.0}/requirements-dev.txt +0 -0
  195. {starplot-0.12.5 → starplot-0.14.0}/scripts/constellation_hips.py +0 -0
  196. {starplot-0.12.5 → starplot-0.14.0}/scripts/download_cons.py +0 -0
  197. {starplot-0.12.5 → starplot-0.14.0}/scripts/ecliptic.py +0 -0
  198. {starplot-0.12.5 → starplot-0.14.0}/scripts/gallery.py +0 -0
  199. {starplot-0.12.5 → starplot-0.14.0}/scripts/gpack_constellations.py +0 -0
  200. {starplot-0.12.5 → starplot-0.14.0}/scripts/hip.py +0 -0
  201. {starplot-0.12.5 → starplot-0.14.0}/scripts/hip_parquet.py +0 -0
  202. {starplot-0.12.5 → starplot-0.14.0}/scripts/ipy.py +0 -0
  203. {starplot-0.12.5 → starplot-0.14.0}/scripts/moonphases.py +0 -0
  204. {starplot-0.12.5 → starplot-0.14.0}/scripts/ongc_docdata.py +0 -0
  205. {starplot-0.12.5 → starplot-0.14.0}/scripts/ongc_geopack.py +0 -0
  206. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/__init__.py +0 -0
  207. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/bigsky.py +0 -0
  208. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/dsos.py +0 -0
  209. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/ecliptic.py +0 -0
  210. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/library/constellation_lines_inv.gpkg +0 -0
  211. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/library/constellations.gpkg +0 -0
  212. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/library/constellations_hip.fab +0 -0
  213. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/library/de421_2001.bsp +0 -0
  214. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/library/milkyway.gpkg +0 -0
  215. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/library/milkyway_inv.gpkg +0 -0
  216. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/library/ongc.gpkg.zip +0 -0
  217. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/library/stars.bigsky.mag11.parquet +0 -0
  218. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/library/stars.hipparcos.parquet +0 -0
  219. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/messier.py +0 -0
  220. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/prep/__init__.py +0 -0
  221. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/prep/constellations.py +0 -0
  222. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/prep/dsos.py +0 -0
  223. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/prep/utils.py +0 -0
  224. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/data/utils.py +0 -0
  225. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/geod.py +0 -0
  226. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/mixins.py +0 -0
  227. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/models/__init__.py +0 -0
  228. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/models/dso.py +0 -0
  229. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/models/geometry.py +0 -0
  230. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/models/moon.py +0 -0
  231. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/models/objects.py +0 -0
  232. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/models/planet.py +0 -0
  233. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/models/star.py +0 -0
  234. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/models/sun.py +0 -0
  235. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/optics.py +0 -0
  236. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/projections.py +0 -0
  237. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/__init__.py +0 -0
  238. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/ext/color_print.yml +0 -0
  239. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/extensions.py +0 -0
  240. {starplot-0.12.5 → starplot-0.14.0}/src/starplot/styles/helpers.py +0 -0
  241. {starplot-0.12.5 → starplot-0.14.0}/tests/__init__.py +0 -0
  242. {starplot-0.12.5 → starplot-0.14.0}/tests/data/.keep +0 -0
  243. {starplot-0.12.5 → starplot-0.14.0}/tests/test_constellations.py +0 -0
  244. {starplot-0.12.5 → starplot-0.14.0}/tests/test_data.py +0 -0
  245. {starplot-0.12.5 → starplot-0.14.0}/tests/test_map.py +0 -0
  246. {starplot-0.12.5 → starplot-0.14.0}/tests/test_models.py +0 -0
  247. {starplot-0.12.5 → starplot-0.14.0}/tests/test_optic.py +0 -0
  248. {starplot-0.12.5 → starplot-0.14.0}/tests/test_stars.py +0 -0
  249. {starplot-0.12.5 → starplot-0.14.0}/tests/test_utils.py +0 -0
  250. {starplot-0.12.5 → starplot-0.14.0}/tests/utils.py +0 -0
  251. {starplot-0.12.5 → starplot-0.14.0}/tutorial/build.py +0 -0
@@ -49,3 +49,10 @@ jobs:
49
49
  - uses: actions/checkout@v4
50
50
  - name: Run Tests - Python 3.12
51
51
  run: make test-3.12 CI=true
52
+ # Python 3.13 not supported yet, needs investigation!
53
+ # test-python-3-13:
54
+ # runs-on: ubuntu-22.04
55
+ # steps:
56
+ # - uses: actions/checkout@v4
57
+ # - name: Run Tests - Python 3.13
58
+ # run: make test-3.13 CI=true
@@ -20,6 +20,7 @@ hash_checks/results.html
20
20
  temp.py
21
21
  temp/
22
22
  raw/
23
+ scripts/temp/
23
24
 
24
25
  # Documentation Generated Files
25
26
  examples/*.png
@@ -1,17 +1,11 @@
1
- ARG PYTHON_VERSION=3.11.7
1
+ ARG PYTHON_VERSION=3.11.11
2
2
  FROM python:${PYTHON_VERSION}-bookworm AS base
3
3
 
4
4
  WORKDIR /starplot
5
5
 
6
+ # Install required system libraries (GEOS + GDAL)
6
7
  RUN apt-get clean && apt-get update -y && apt-get install -y libgeos-dev libgdal-dev
7
8
 
8
- # Install fonts
9
- # not required, but make the maps look better (especially greek letters)
10
- RUN mkdir -p /usr/share/fonts/truetype
11
- RUN wget https://github.com/google/fonts/raw/main/ofl/gfsdidot/GFSDidot-Regular.ttf -P /tmp/fonts
12
- RUN install -m644 /tmp/fonts/*.ttf /usr/share/fonts/truetype/
13
- RUN fc-cache -f
14
-
15
9
  # ---------------------------------------------------------------------
16
10
  FROM base as dev
17
11
 
@@ -22,7 +22,7 @@ DOCKER_RUN_PYTHON_TEST=docker run --rm $(DR_ARGS) -v $(shell pwd):/starplot star
22
22
  export PYTHONPATH=./src/
23
23
 
24
24
  # ------------------------------------------------------------------
25
- build: PYTHON_VERSION=3.11.7
25
+ build: PYTHON_VERSION=3.11.11
26
26
  build: DOCKER_BUILD_ARGS=-t starplot-dev
27
27
  build:
28
28
  touch -a .env
@@ -82,26 +82,32 @@ version:
82
82
  # ------------------------------------------------------------------
83
83
  # Python version testing
84
84
  # ------------------------------------------------------------------
85
- test-3.9: PYTHON_VERSION=3.9.18
85
+ test-3.9: PYTHON_VERSION=3.9.21
86
86
  test-3.9:
87
87
  $(DOCKER_BUILD_PYTHON)
88
88
  $(DOCKER_RUN_PYTHON_TEST)
89
89
 
90
- test-3.10: PYTHON_VERSION=3.10.13
90
+ test-3.10: PYTHON_VERSION=3.10.16
91
91
  test-3.10:
92
92
  $(DOCKER_BUILD_PYTHON)
93
93
  $(DOCKER_RUN_PYTHON_TEST)
94
94
 
95
- test-3.11: PYTHON_VERSION=3.11.7
95
+ test-3.11: PYTHON_VERSION=3.11.11
96
96
  test-3.11:
97
97
  $(DOCKER_BUILD_PYTHON)
98
98
  $(DOCKER_RUN_PYTHON_TEST)
99
99
 
100
- test-3.12: PYTHON_VERSION=3.12.1
100
+ test-3.12: PYTHON_VERSION=3.12.8
101
101
  test-3.12:
102
102
  $(DOCKER_BUILD_PYTHON)
103
103
  $(DOCKER_RUN_PYTHON_TEST)
104
104
 
105
+ # Python 3.13 not supported yet!
106
+ test-3.13: PYTHON_VERSION=3.13.1
107
+ test-3.13:
108
+ $(DOCKER_BUILD_PYTHON)
109
+ $(DOCKER_RUN_PYTHON_TEST)
110
+
105
111
  # ------------------------------------------------------------------
106
112
  # Docs
107
113
  docs-serve: DR_ARGS=-it -p 8000:8000
@@ -134,6 +140,9 @@ hip8:
134
140
  scripts:
135
141
  $(DOCKER_RUN) "python ./scripts/$(SCRIPT).py"
136
142
 
143
+ allsky:
144
+ $(DOCKER_RUN) "python ./scripts/temp/allsky.py"
145
+
137
146
  clean:
138
147
  rm -rf __pycache__
139
148
  rm -rf venv
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: starplot
3
- Version: 0.12.5
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 stars 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**
@@ -54,7 +54,7 @@ Project-URL: Source, https://github.com/steveberardi/starplot
54
54
  *Map around the constellation Orion:*
55
55
  ![map-orion](https://starplot.dev/images/examples/map_orion.png)
56
56
 
57
- *Optic plot of The Pleiades through a refractor as seen from a specific time/location:*
57
+ *The Pleiades star cluster, as seen through a refractor telescope from a specific time and location:*
58
58
  ![optic-pleiades](https://starplot.dev/images/examples/optic_m45.png)
59
59
 
60
60
  ## Basic Usage
@@ -75,12 +75,13 @@ p = sp.MapPlot(
75
75
  dt=datetime.now(tz).replace(hour=22),
76
76
  style=sp.styles.PlotStyle().extend(
77
77
  sp.styles.extensions.BLUE_MEDIUM,
78
- sp.styles.extensions.ZENITH,
79
78
  ),
80
- resolution=2000,
79
+ resolution=4096,
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,12 +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
109
+ - 🗄️ Data optimizations
110
+ - 🧮 Coordinate system helpers
108
111
  - 🌑 Planet moons
109
112
  - ✴️ Custom markers
110
- - 🚀 Plotting Optimizations
111
113
  - ☄️ Comet model
112
- - 🌄 Horizon plots
113
- - ⚖️ Better auto font-size adjustment
114
114
  - 😄 🔭 Clear skies
115
115
 
116
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 stars 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**
@@ -21,7 +22,7 @@
21
22
  *Map around the constellation Orion:*
22
23
  ![map-orion](https://starplot.dev/images/examples/map_orion.png)
23
24
 
24
- *Optic plot of The Pleiades through a refractor as seen from a specific time/location:*
25
+ *The Pleiades star cluster, as seen through a refractor telescope from a specific time and location:*
25
26
  ![optic-pleiades](https://starplot.dev/images/examples/optic_m45.png)
26
27
 
27
28
  ## Basic Usage
@@ -42,12 +43,13 @@ p = sp.MapPlot(
42
43
  dt=datetime.now(tz).replace(hour=22),
43
44
  style=sp.styles.PlotStyle().extend(
44
45
  sp.styles.extensions.BLUE_MEDIUM,
45
- sp.styles.extensions.ZENITH,
46
46
  ),
47
- resolution=2000,
47
+ resolution=4096,
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,12 +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
77
+ - 🗄️ Data optimizations
78
+ - 🧮 Coordinate system helpers
75
79
  - 🌑 Planet moons
76
80
  - ✴️ Custom markers
77
- - 🚀 Plotting Optimizations
78
81
  - ☄️ Comet model
79
- - 🌄 Horizon plots
80
- - ⚖️ Better auto font-size adjustment
81
82
  - 😄 🔭 Clear skies
82
83
 
83
84
  See more details on the [Public Roadmap](https://trello.com/b/sUksygn4/starplot-roadmap)
@@ -1,6 +1,10 @@
1
1
  ![Starplot](images/favicon.svg){ align=right width="128" .off-glb }
2
2
 
3
- **Starplot** is a Python library for creating star charts and maps. It lets you create zenith plots that show the whole sky from a time/place, map plots that show more detail of an area, and optic plots that simulate the field of view from a particular optic (e.g. telescope, binoculars, or a camera).
3
+ **Starplot** is a Python library for creating star charts and maps of the sky. It lets you create zenith plots that show the whole sky from a time/place, map plots that show more detail of an area, and optic plots that simulate the field of view from a particular optic (e.g. telescope, binoculars, or a camera).
4
+
5
+ 👷 **Work In Progress** 🚧 Starplot is still very much a work in progress, and under active development. We try to follow [semantic versioning](https://semver.org/), which means that [_anything_ can change between versions before `1.0.0`](https://semver.org/#spec-item-4).
6
+
7
+ However, the Starplot API becomes more stable with each new version. We anticipate that version `1.0.0` is still at least a year away. The best way to help us get there faster is to [join as a contributor](https://github.com/steveberardi/starplot/blob/main/CONTRIBUTING.md) 😃 help is wanted and very much appreciated!
4
8
 
5
9
  Join other starplotters on [Discord :fontawesome-brands-discord:{ .fg-primary }](https://discord.gg/WewJJjshFu)
6
10
 
@@ -1,4 +1,26 @@
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
+
9
+ ## v0.13.x
10
+ [Documentation](https://archives.starplot.dev/0.13.0/)
11
+
12
+ - Adds a `scale` factor to control sizing of all objects/text
13
+ - Adds an "auto" option for label offsets from markers
14
+ - Adds constellation lines to label collision detection
15
+ - Adds a `gid` to plotted objects to make exported SVGs easier to work with in external applications (e.g. Inkscape)
16
+ - Adds Flamsteed numbers to stars
17
+ - Adds all star names from IAU
18
+ - Adds the standard symbol for planetary nebulae
19
+ - Adds a border size/color property to label styles
20
+ - Bundles fonts: Inter & GFS Didot
21
+
1
22
  ## v0.12.x
23
+ [Documentation](https://archives.starplot.dev/0.12.5/)
2
24
 
3
25
  - Adds Shapely geometry to all sky object models, including support for `intersects` in `where` clauses
4
26
  - Adds kwarg to map plots to allow custom clip paths
@@ -12,6 +34,9 @@
12
34
  - [**v0.12.2**] Allows tuples for line styles on polygons and adds geometry kwarg to polygon function
13
35
  - [**v0.12.3**] Fixes bug with constellation names
14
36
  - [**v0.12.4**] Makes labels on markers default to None
37
+ - [**v0.12.5**]
38
+ - Fixes bug with a few constellation ids
39
+ - Fixes bug with `zenith()` function on map plots
15
40
 
16
41
  ## v0.11.x
17
42
  [Documentation](https://archives.starplot.dev/0.11.4/)
@@ -1,10 +1,9 @@
1
1
 
2
+ - 🗄️ Data optimizations
3
+ - 🧮 Coordinate system helpers
2
4
  - 🌑 Planet moons
3
5
  - ☄️ Comet model
4
- - 🌄 Horizon plots
5
6
  - ✴️ Custom markers
6
- - 🚀 Plotting Optimizations
7
- - ⚖️ Better auto font-size adjustment
8
7
  - 😄 🔭 Clear skies
9
8
 
10
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
+
@@ -7,6 +7,8 @@ title: Map of Canis Major
7
7
 
8
8
  ![map-canis-major](/images/examples/map_canis_major.png)
9
9
 
10
+ In this example, we set the plot's `clip_path` to the boundary of Canis Major, so only objects in that constellation are plotted:
11
+
10
12
  ```python
11
13
  --8<-- "examples/map_canis_major.py"
12
14
  ```
@@ -7,7 +7,7 @@ title: Map of Orion
7
7
 
8
8
  ![map-orion](/images/examples/map_orion.png)
9
9
 
10
- The following code will create a simple map plot that shows the area around the constellation Orion, including a legend and an ellipse around [Orion's Belt](https://en.wikipedia.org/wiki/Orion%27s_Belt):
10
+ The following code will create a simple map plot that shows the area around the constellation [Orion](https://en.wikipedia.org/wiki/Orion_(constellation)):
11
11
 
12
12
  ```python
13
13
  --8<-- "examples/map_orion.py"
@@ -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
 
@@ -28,6 +30,7 @@ Starplot is a Python library for creating star charts and maps of the sky.
28
30
 
29
31
  Join other starplotters on [Discord :fontawesome-brands-discord:{ .fg-primary }](https://discord.gg/WewJJjshFu)
30
32
 
33
+
31
34
  *Example charts and maps created with Starplot:*
32
35
  <!-- {.text-subtitle} -->
33
36
 
@@ -38,7 +41,7 @@ Join other starplotters on [Discord :fontawesome-brands-discord:{ .fg-primary }]
38
41
 
39
42
  <figure markdown>
40
43
  <img src="images/examples/map_orion.png" width="900">
41
- <figcaption>Map around the constellation Orion, with an ellipse around Orion's Belt (<a href="/examples/map-orion/">source code</a>)</figcaption>
44
+ <figcaption>Map around the constellation Orion (<a href="/examples/map-orion/">source code</a>)</figcaption>
42
45
  </figure>
43
46
 
44
47
 
@@ -28,6 +28,19 @@ apt-get install libgeos-dev libgdal-dev
28
28
  pip install starplot
29
29
  ```
30
30
 
31
+ ## Docker
32
+
33
+ Here's a basic Docker container definition that'll get you up and running:
34
+
35
+ ```docker
36
+ FROM python:3.11.11-bookworm
37
+
38
+ # Install required system libraries (GEOS + GDAL)
39
+ RUN apt-get clean && apt-get update -y && apt-get install -y libgeos-dev libgdal-dev
40
+
41
+ RUN pip install starplot
42
+ ```
43
+
31
44
  !!! star "What about Windows?"
32
45
 
33
46
  I haven't tried installing Starplot on Windows, but if you have and would like to share instructions, please feel free to [open a pull request on GitHub](https://github.com/steveberardi/starplot) with an update to this file (`docs/installation.md`). Thanks! :)
@@ -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
+
@@ -83,7 +83,7 @@ from starplot import PlotStyle
83
83
  style = PlotStyle().extend(
84
84
  {
85
85
  "bayer_labels": {
86
- "font_name": "GFS Didot",
86
+ "font_name": "Literata",
87
87
  "font_size": 10
88
88
  }
89
89
  }
@@ -92,7 +92,7 @@ style = PlotStyle().extend(
92
92
  Alternatively, you can do this:
93
93
  ```python
94
94
  style = PlotStyle()
95
- style.bayer_labels.font_name = "GFS Didot"
95
+ style.bayer_labels.font_name = "Literata"
96
96
  style.bayer_labels.font_size = 10
97
97
 
98
98
  ```
@@ -152,8 +152,8 @@ Starplot has a bunch of built-in style extensions (all imported from `starplot.s
152
152
  - `GRAYSCALE` - Optimized for printing in grayscale ([details](#extensions-grayscale))
153
153
  - `GRAYSCALE_DARK` - Like `GRAYSCALE`, but inverted (white stars, black background) ([details](#extensions-grayscale-dark))
154
154
  - `BLUE_LIGHT` - Light and bright colors ([details](#extensions-blue-light))
155
- - `BLUE_MEDIUM` - Medium brightness bluish gray colors ([details](#extensions-blue-medium))
156
- - `BLUE_DARK` - Dark "Starplot blue" colors ([details](#extensions-blue-dark))
155
+ - `BLUE_MEDIUM` - Medium brightness blue colors ([details](#extensions-blue-medium))
156
+ - `BLUE_DARK` - Dark blue and contrasting colors ([details](#extensions-blue-dark))
157
157
  - `ANTIQUE` - Antique map inspired colors ([details](#extensions-antique))
158
158
  - `NORD` - Nord-inspired colors ([details](#extensions-nord))
159
159
  - **Plot types**
@@ -37,10 +37,19 @@ On line 8, we create a [`MapPlot`][starplot.MapPlot] instance that specifies a f
37
37
  - `lat`/`lon`: Observing location
38
38
  - `dt`: Observing date/time
39
39
  - `resolution`: Resolution (in pixels) of the widest dimension of the plot
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.
40
41
 
41
- When you create a plot instance, initially it'll be empty (i.e. it won't have any stars). In Starplot, you have to explicitly plot all objects. So, on line 15 we plot the constellations, which includes lines and labels. Then, we plot stars with a limiting magnitude of 4.6.
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.
42
43
 
43
- 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.
44
53
 
45
54
  *In the [next section](03.md), we'll learn how to add some styles and other objects to the plot...*
46
55
 
@@ -22,7 +22,7 @@ For example, here's how you'd create an optic plot of the Beehive Star Cluster (
22
22
 
23
23
  The first 13 lines should look familiar from the other plots we've created in this tutorial.
24
24
 
25
- Line 15 is where we create the instance of an `OpticPlot`. Most of the kwargs are the same as the map plot's kwargs, except for the following:
25
+ Line 14 is where we create the instance of an `OpticPlot`. Most of the kwargs are the same as the map plot's kwargs, except for the following:
26
26
 
27
27
  - `ra`: Right ascension of the target
28
28
  - `dec`: Declination of the target
@@ -30,7 +30,7 @@ Line 15 is where we create the instance of an `OpticPlot`. Most of the kwargs ar
30
30
 
31
31
  The `ra`/`dec` you specify for the target will be the center of the plot.
32
32
 
33
- On line 31, we plot stars down to magnitude 14, but we also specify the [star catalog](/reference-data/#starplot.data.stars.StarCatalog) to use. By default, Starplot uses the Hipparcos catalog, but it also has the [Big Sky Catalog](https://github.com/steveberardi/bigsky) built-in which has many more stars.
33
+ On line 31, we plot stars down to magnitude 12, but we also specify the [star catalog](/reference-data/#starplot.data.stars.StarCatalog) to use. By default, Starplot uses the Hipparcos catalog, but it also has the [Big Sky Catalog](https://github.com/steveberardi/bigsky) built-in which has many more stars.
34
34
 
35
35
  *In the [next section](06.md), we'll learn how to be more selective of objects to plot...*
36
36
 
@@ -20,7 +20,7 @@ p.stars(
20
20
  ],
21
21
  )
22
22
  ```
23
- When passing the `where` kwarg, the `mag` kwarg will be ignored, and only the stars/DSOs that satisfy ALL the `where` conditions will be plotted. You can reference any field on the model in expressions, and there are also a few functions available for determining if a field is null or is in a list of values. For complete details about selecting objects, see the [reference page](/reference-selecting-objects/).
23
+ When passing the `where` kwarg, the `mag` kwarg will be ignored, and only the stars/DSOs that satisfy ALL the `where` conditions will be plotted. You can reference any field on the [model](/reference-models/) in expressions, and there are also a few functions available for determining if a field is null or is in a list of values. For complete details about selecting objects, see the [reference page](/reference-selecting-objects/).
24
24
 
25
25
  Here's some code that uses the `where` kwarg extensively to produce the image above:
26
26
  <div class="tutorial" markdown>
@@ -11,7 +11,7 @@ title: 8 - Using Callables
11
11
 
12
12
  [Callables](/reference-callables/) allow you to define your own functions for calculating a few of the style properties for stars: size, alpha (opacity), color, and their labels. DSOs support callables for alpha and labels only. Starplot has a few basic callables built-in, but you can also create your own.
13
13
 
14
- Here's an example that uses the built-in callable `color_by_bv` to create an optic plot of [Antares](https://en.wikipedia.org/wiki/Antares) that colorizes the stars based on their B-V index (Antares B-V is 1.83 so it appears red/orange in the sky):
14
+ Here's an example that uses the built-in callable `color_by_bv` to create an optic plot of [Antares](https://en.wikipedia.org/wiki/Antares) that colorizes the stars based on their B-V index (Antares' B-V is 1.83 so it appears red/orange in the sky):
15
15
  <div class="tutorial" markdown>
16
16
  ```python linenums="1"
17
17
  --8<-- "tutorial/tutorial_08.py"
@@ -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)
@@ -15,7 +15,7 @@ Here's an overview of what the tutorial covers:
15
15
  8. [Using callables](tutorial/08.md)
16
16
  9. [Where to go from here](tutorial/09.md)
17
17
 
18
- Estimated time to complete: 1 hour
18
+ Estimated time to complete: 30 minutes
19
19
 
20
20
  <br/>
21
21
 
@@ -5,10 +5,15 @@ import glob
5
5
  import time
6
6
 
7
7
  from PIL import Image
8
- from multiprocessing import Pool, Process
8
+ from multiprocessing import Pool
9
9
 
10
10
  start = time.time()
11
11
 
12
+ skip = [
13
+ # "map_milky_way_stars.py",
14
+ # "stuff.py",
15
+ ]
16
+
12
17
 
13
18
  def thumbnail(filename, max_dimension=900):
14
19
  print(filename)
@@ -23,16 +28,17 @@ def get_example_names():
23
28
  for filename in glob.iglob("*.py"):
24
29
  if filename.endswith("examples.py"):
25
30
  continue
31
+
32
+ if filename in skip:
33
+ continue
34
+
26
35
  filenames.append(filename)
27
36
 
28
37
  return filenames
29
38
 
30
39
 
31
40
  def run_example(filename):
32
- import subprocess
33
-
34
41
  print(f"Running {filename}")
35
-
36
42
  subprocess.call(["python", filename])
37
43
 
38
44
 
@@ -42,16 +48,6 @@ processes = []
42
48
  with Pool(5) as pool:
43
49
  pool.map(run_example, example_files)
44
50
 
45
- # Run all examples
46
- # for filename in glob.iglob("*.py"):
47
- # if filename.endswith("examples.py"):
48
- # continue
49
-
50
- # # if filename != "map_lyra.py":
51
- # # continue
52
- # print(f"Running {filename}")
53
- # subprocess.call(f"python {filename}", shell=True)
54
-
55
51
  # Create thumbnail images for the examples list page
56
52
  image_files = glob.glob("*.png")
57
53
  pool = Pool(5)
@@ -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)