starplot 0.11.3__tar.gz → 0.12.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 (201) hide show
  1. {starplot-0.11.3 → starplot-0.12.0}/.gitignore +1 -0
  2. {starplot-0.11.3 → starplot-0.12.0}/Makefile +6 -0
  3. {starplot-0.11.3 → starplot-0.12.0}/PKG-INFO +4 -13
  4. {starplot-0.11.3 → starplot-0.12.0}/README.md +3 -12
  5. {starplot-0.11.3 → starplot-0.12.0}/docs/changelog.md +15 -6
  6. {starplot-0.11.3 → starplot-0.12.0}/docs/coming-soon.md +2 -1
  7. {starplot-0.11.3 → starplot-0.12.0}/docs/data-sources.md +2 -0
  8. starplot-0.12.0/docs/examples/map-canis-major.md +14 -0
  9. {starplot-0.11.3 → starplot-0.12.0}/docs/examples.md +8 -0
  10. {starplot-0.11.3 → starplot-0.12.0}/docs/reference-callables.md +1 -1
  11. {starplot-0.11.3 → starplot-0.12.0}/docs/reference-data.md +1 -1
  12. {starplot-0.11.3 → starplot-0.12.0}/docs/reference-selecting-objects.md +1 -0
  13. {starplot-0.11.3 → starplot-0.12.0}/docs/reference-styling.md +6 -0
  14. starplot-0.12.0/docs/tutorial/03.md +40 -0
  15. {starplot-0.11.3 → starplot-0.12.0}/docs/tutorial/08.md +1 -1
  16. {starplot-0.11.3 → starplot-0.12.0}/examples/examples.py +34 -9
  17. starplot-0.12.0/examples/map_canis_major.py +37 -0
  18. {starplot-0.11.3 → starplot-0.12.0}/examples/map_orion.py +2 -1
  19. {starplot-0.11.3 → starplot-0.12.0}/examples/map_orthographic.py +7 -5
  20. {starplot-0.11.3 → starplot-0.12.0}/examples/map_sagittarius.py +2 -0
  21. {starplot-0.11.3 → starplot-0.12.0}/examples/star_chart_detail.py +4 -2
  22. {starplot-0.11.3 → starplot-0.12.0}/hash_checks/hashio.py +3 -2
  23. {starplot-0.11.3 → starplot-0.12.0}/hash_checks/hashlock.yml +26 -18
  24. {starplot-0.11.3 → starplot-0.12.0}/hash_checks/map_checks.py +124 -10
  25. {starplot-0.11.3 → starplot-0.12.0}/requirements.txt +3 -3
  26. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/__init__.py +1 -1
  27. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/base.py +21 -1
  28. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/constellations.py +16 -1
  29. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/dsos.py +1 -1
  30. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/library/constellations.gpkg +0 -0
  31. starplot-0.12.0/src/starplot/data/library/ongc.gpkg.zip +0 -0
  32. starplot-0.12.0/src/starplot/data/prep/constellations.py +108 -0
  33. starplot-0.12.0/src/starplot/data/prep/dsos.py +299 -0
  34. starplot-0.12.0/src/starplot/data/prep/utils.py +16 -0
  35. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/map.py +77 -81
  36. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/models/__init__.py +1 -1
  37. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/models/base.py +9 -3
  38. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/models/constellation.py +27 -5
  39. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/models/dso.py +68 -18
  40. starplot-0.12.0/src/starplot/models/geometry.py +44 -0
  41. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/models/moon.py +8 -0
  42. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/models/objects.py +5 -1
  43. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/models/planet.py +14 -1
  44. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/models/star.py +47 -7
  45. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/models/sun.py +14 -1
  46. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/optic.py +11 -4
  47. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/plotters/dsos.py +59 -45
  48. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/plotters/stars.py +15 -29
  49. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/base.py +98 -52
  50. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/ext/antique.yml +29 -1
  51. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/ext/blue_dark.yml +20 -2
  52. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/ext/blue_light.yml +29 -1
  53. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/ext/blue_medium.yml +30 -1
  54. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/ext/cb_wong.yml +28 -1
  55. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/ext/color_print.yml +3 -0
  56. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/ext/grayscale.yml +18 -1
  57. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/ext/grayscale_dark.yml +20 -1
  58. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/ext/nord.yml +33 -7
  59. starplot-0.12.0/src/starplot/styles/markers.py +107 -0
  60. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/utils.py +1 -1
  61. starplot-0.12.0/tests/data/.keep +0 -0
  62. {starplot-0.11.3 → starplot-0.12.0}/tests/test_models.py +9 -2
  63. {starplot-0.11.3 → starplot-0.12.0}/tutorial/tutorial_03.py +12 -1
  64. {starplot-0.11.3 → starplot-0.12.0}/tutorial/tutorial_04.py +3 -1
  65. starplot-0.11.3/docs/tutorial/03.md +0 -38
  66. starplot-0.11.3/src/starplot/data/library/de440s.bsp +0 -0
  67. starplot-0.11.3/src/starplot/data/library/ongc.gpkg.zip +0 -0
  68. {starplot-0.11.3 → starplot-0.12.0}/.dockerignore +0 -0
  69. {starplot-0.11.3 → starplot-0.12.0}/.github/FUNDING.yml +0 -0
  70. {starplot-0.11.3 → starplot-0.12.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  71. {starplot-0.11.3 → starplot-0.12.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  72. {starplot-0.11.3 → starplot-0.12.0}/.github/workflows/docs.yml +0 -0
  73. {starplot-0.11.3 → starplot-0.12.0}/.github/workflows/release.yml +0 -0
  74. {starplot-0.11.3 → starplot-0.12.0}/.github/workflows/test.yml +0 -0
  75. {starplot-0.11.3 → starplot-0.12.0}/CODE_OF_CONDUCT.md +0 -0
  76. {starplot-0.11.3 → starplot-0.12.0}/CONTRIBUTING.md +0 -0
  77. {starplot-0.11.3 → starplot-0.12.0}/Dockerfile +0 -0
  78. {starplot-0.11.3 → starplot-0.12.0}/LICENSE +0 -0
  79. {starplot-0.11.3 → starplot-0.12.0}/docs/about.md +0 -0
  80. {starplot-0.11.3 → starplot-0.12.0}/docs/css/extra.css +0 -0
  81. {starplot-0.11.3 → starplot-0.12.0}/docs/custom/main.html +0 -0
  82. {starplot-0.11.3 → starplot-0.12.0}/docs/data/.keep +0 -0
  83. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/map-big-dipper.md +0 -0
  84. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/map-big.md +0 -0
  85. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/map-comet-neowise.md +0 -0
  86. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/map-milky-way-stars.md +0 -0
  87. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/map-orion.md +0 -0
  88. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/map-orthographic.md +0 -0
  89. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/map-sagittarius.md +0 -0
  90. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/optic-m45.md +0 -0
  91. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/optic-moon-saturn.md +0 -0
  92. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/optic-orion.md +0 -0
  93. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/optic-solar-eclipse.md +0 -0
  94. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/star-chart-basic.md +0 -0
  95. {starplot-0.11.3 → starplot-0.12.0}/docs/examples/star-chart-detail.md +0 -0
  96. {starplot-0.11.3 → starplot-0.12.0}/docs/gallery.md +0 -0
  97. {starplot-0.11.3 → starplot-0.12.0}/docs/images/banner.png +0 -0
  98. {starplot-0.11.3 → starplot-0.12.0}/docs/images/banner.svg +0 -0
  99. {starplot-0.11.3 → starplot-0.12.0}/docs/images/banner.vectornator +0 -0
  100. {starplot-0.11.3 → starplot-0.12.0}/docs/images/celestial-globe.svg +0 -0
  101. {starplot-0.11.3 → starplot-0.12.0}/docs/images/examples/.keep +0 -0
  102. {starplot-0.11.3 → starplot-0.12.0}/docs/images/favicon.png +0 -0
  103. {starplot-0.11.3 → starplot-0.12.0}/docs/images/favicon.svg +0 -0
  104. {starplot-0.11.3 → starplot-0.12.0}/docs/images/logo.png +0 -0
  105. {starplot-0.11.3 → starplot-0.12.0}/docs/images/logo.svg +0 -0
  106. {starplot-0.11.3 → starplot-0.12.0}/docs/images/logo.vectornator +0 -0
  107. {starplot-0.11.3 → starplot-0.12.0}/docs/images/logo2.png +0 -0
  108. {starplot-0.11.3 → starplot-0.12.0}/docs/images/logo2.vectornator +0 -0
  109. {starplot-0.11.3 → starplot-0.12.0}/docs/images/logo500.png +0 -0
  110. {starplot-0.11.3 → starplot-0.12.0}/docs/images/mono.png +0 -0
  111. {starplot-0.11.3 → starplot-0.12.0}/docs/images/mono.svg +0 -0
  112. {starplot-0.11.3 → starplot-0.12.0}/docs/images/star.svg +0 -0
  113. {starplot-0.11.3 → starplot-0.12.0}/docs/images/tutorial/.keep +0 -0
  114. {starplot-0.11.3 → starplot-0.12.0}/docs/index.md +0 -0
  115. {starplot-0.11.3 → starplot-0.12.0}/docs/installation.md +0 -0
  116. {starplot-0.11.3 → starplot-0.12.0}/docs/license.md +0 -0
  117. {starplot-0.11.3 → starplot-0.12.0}/docs/reference-mapplot.md +0 -0
  118. {starplot-0.11.3 → starplot-0.12.0}/docs/reference-models.md +0 -0
  119. {starplot-0.11.3 → starplot-0.12.0}/docs/reference-ongc.md +0 -0
  120. {starplot-0.11.3 → starplot-0.12.0}/docs/reference-opticplot.md +0 -0
  121. {starplot-0.11.3 → starplot-0.12.0}/docs/robots.txt +0 -0
  122. {starplot-0.11.3 → starplot-0.12.0}/docs/tutorial/01.md +0 -0
  123. {starplot-0.11.3 → starplot-0.12.0}/docs/tutorial/02.md +0 -0
  124. {starplot-0.11.3 → starplot-0.12.0}/docs/tutorial/04.md +0 -0
  125. {starplot-0.11.3 → starplot-0.12.0}/docs/tutorial/05.md +0 -0
  126. {starplot-0.11.3 → starplot-0.12.0}/docs/tutorial/06.md +0 -0
  127. {starplot-0.11.3 → starplot-0.12.0}/docs/tutorial/07.md +0 -0
  128. {starplot-0.11.3 → starplot-0.12.0}/docs/tutorial/09.md +0 -0
  129. {starplot-0.11.3 → starplot-0.12.0}/docs/tutorial.md +0 -0
  130. {starplot-0.11.3 → starplot-0.12.0}/examples/map_big.py +0 -0
  131. {starplot-0.11.3 → starplot-0.12.0}/examples/map_big_dipper.py +0 -0
  132. {starplot-0.11.3 → starplot-0.12.0}/examples/map_comet_neowise.py +0 -0
  133. {starplot-0.11.3 → starplot-0.12.0}/examples/map_milky_way_stars.py +0 -0
  134. {starplot-0.11.3 → starplot-0.12.0}/examples/optic_m45.py +0 -0
  135. {starplot-0.11.3 → starplot-0.12.0}/examples/optic_moon_saturn.py +0 -0
  136. {starplot-0.11.3 → starplot-0.12.0}/examples/optic_orion_nebula.py +0 -0
  137. {starplot-0.11.3 → starplot-0.12.0}/examples/optic_solar_eclipse.py +0 -0
  138. {starplot-0.11.3 → starplot-0.12.0}/examples/star_chart_basic.py +0 -0
  139. {starplot-0.11.3 → starplot-0.12.0}/hash_checks/__init__.py +0 -0
  140. {starplot-0.11.3 → starplot-0.12.0}/hash_checks/data/.keep +0 -0
  141. {starplot-0.11.3 → starplot-0.12.0}/hash_checks/optic_checks.py +0 -0
  142. {starplot-0.11.3 → starplot-0.12.0}/hash_checks/template.html +0 -0
  143. {starplot-0.11.3 → starplot-0.12.0}/hash_checks/zenith_checks.py +0 -0
  144. {starplot-0.11.3 → starplot-0.12.0}/mkdocs.yml +0 -0
  145. {starplot-0.11.3 → starplot-0.12.0}/pyproject.toml +0 -0
  146. {starplot-0.11.3 → starplot-0.12.0}/requirements-dev.txt +0 -0
  147. {starplot-0.11.3 → starplot-0.12.0}/scripts/constellation_hips.py +0 -0
  148. {starplot-0.11.3 → starplot-0.12.0}/scripts/download_cons.py +0 -0
  149. {starplot-0.11.3 → starplot-0.12.0}/scripts/ecliptic.py +0 -0
  150. {starplot-0.11.3 → starplot-0.12.0}/scripts/gallery.py +0 -0
  151. {starplot-0.11.3 → starplot-0.12.0}/scripts/geopack.py +0 -0
  152. {starplot-0.11.3 → starplot-0.12.0}/scripts/gpack_constellations.py +0 -0
  153. {starplot-0.11.3 → starplot-0.12.0}/scripts/hip.py +0 -0
  154. {starplot-0.11.3 → starplot-0.12.0}/scripts/hip_parquet.py +0 -0
  155. {starplot-0.11.3 → starplot-0.12.0}/scripts/ipy.py +0 -0
  156. {starplot-0.11.3 → starplot-0.12.0}/scripts/moonphases.py +0 -0
  157. {starplot-0.11.3 → starplot-0.12.0}/scripts/ongc_docdata.py +0 -0
  158. {starplot-0.11.3 → starplot-0.12.0}/scripts/ongc_geopack.py +0 -0
  159. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/callables.py +0 -0
  160. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/__init__.py +0 -0
  161. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/bayer.py +0 -0
  162. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/bigsky.py +0 -0
  163. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/ecliptic.py +0 -0
  164. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/library/constellation_borders_inv.gpkg +0 -0
  165. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/library/constellation_lines_hips.json +0 -0
  166. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/library/constellation_lines_inv.gpkg +0 -0
  167. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/library/constellations_hip.fab +0 -0
  168. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/library/de421_2001.bsp +0 -0
  169. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/library/milkyway.gpkg +0 -0
  170. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/library/milkyway_inv.gpkg +0 -0
  171. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/library/stars.bigsky.mag11.parquet +0 -0
  172. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/library/stars.hipparcos.parquet +0 -0
  173. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/messier.py +0 -0
  174. {starplot-0.11.3/tests → starplot-0.12.0/src/starplot/data/prep}/__init__.py +0 -0
  175. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/stars.py +0 -0
  176. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/data/utils.py +0 -0
  177. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/geod.py +0 -0
  178. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/mixins.py +0 -0
  179. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/optics.py +0 -0
  180. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/plotters/__init__.py +0 -0
  181. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/projections.py +0 -0
  182. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/__init__.py +0 -0
  183. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/ext/map.yml +0 -0
  184. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/ext/optic.yml +0 -0
  185. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/extensions.py +0 -0
  186. {starplot-0.11.3 → starplot-0.12.0}/src/starplot/styles/helpers.py +0 -0
  187. /starplot-0.11.3/tests/data/.keep → /starplot-0.12.0/tests/__init__.py +0 -0
  188. {starplot-0.11.3 → starplot-0.12.0}/tests/test_constellations.py +0 -0
  189. {starplot-0.11.3 → starplot-0.12.0}/tests/test_data.py +0 -0
  190. {starplot-0.11.3 → starplot-0.12.0}/tests/test_map.py +0 -0
  191. {starplot-0.11.3 → starplot-0.12.0}/tests/test_optic.py +0 -0
  192. {starplot-0.11.3 → starplot-0.12.0}/tests/test_stars.py +0 -0
  193. {starplot-0.11.3 → starplot-0.12.0}/tests/test_styles.py +0 -0
  194. {starplot-0.11.3 → starplot-0.12.0}/tests/test_utils.py +0 -0
  195. {starplot-0.11.3 → starplot-0.12.0}/tests/utils.py +0 -0
  196. {starplot-0.11.3 → starplot-0.12.0}/tutorial/build.py +0 -0
  197. {starplot-0.11.3 → starplot-0.12.0}/tutorial/tutorial_02.py +0 -0
  198. {starplot-0.11.3 → starplot-0.12.0}/tutorial/tutorial_05.py +0 -0
  199. {starplot-0.11.3 → starplot-0.12.0}/tutorial/tutorial_06.py +0 -0
  200. {starplot-0.11.3 → starplot-0.12.0}/tutorial/tutorial_07.py +0 -0
  201. {starplot-0.11.3 → starplot-0.12.0}/tutorial/tutorial_08.py +0 -0
@@ -7,6 +7,7 @@ de421.bsp
7
7
  hip_main.dat
8
8
  hip8.dat
9
9
  CometEls.txt
10
+ ongc.gpkg
10
11
 
11
12
  # Big Sky - Full Catalog
12
13
  # we ignore this because of its size (50+ MB)
@@ -70,6 +70,12 @@ profile:
70
70
  $(DOCKER_RUN) "python -m cProfile -o temp/results.prof scripts/scratchpad.py && \
71
71
  snakeviz -s -p 8080 -H 0.0.0.0 temp/results.prof"
72
72
 
73
+ prep-dsos:
74
+ $(DOCKER_RUN) "python -m starplot.data.prep.dsos"
75
+
76
+ prep-constellations:
77
+ $(DOCKER_RUN) "python -m starplot.data.prep.constellations"
78
+
73
79
  version:
74
80
  @$(DOCKER_RUN) "python -c 'import starplot as sp; print(sp.__version__)'"
75
81
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: starplot
3
- Version: 0.11.3
3
+ Version: 0.12.0
4
4
  Summary: Star charts and maps
5
5
  Keywords: astronomy,stars,charts,maps,constellations
6
6
  Author-email: Steve Berardi <hello@steveberardi.com>
@@ -104,23 +104,14 @@ https://discord.gg/WewJJjshFu
104
104
 
105
105
  Contributing to Starplot is welcome and very much appreciated! Please see [here](CONTRIBUTING.md) for details.
106
106
 
107
- ## Core Dependencies
108
-
109
- - matplotlib
110
- - pandas
111
- - numpy
112
- - geopandas
113
- - cartopy
114
- - skyfield
115
- - pydantic
116
- - adjustText
117
-
118
107
  ## Coming Soon
119
108
  - 🌑 Planet moons
120
109
  - ✴️ Custom markers
121
110
  - 🚀 Plotting Optimizations
122
- - 📐 Custom clip paths
111
+ - ☄️ Comet model
112
+ - 🌄 Horizon plots
123
113
  - ⚖️ Better auto font-size adjustment
114
+ - 😄 🔭 Clear skies
124
115
 
125
116
  See more details on the [Public Roadmap](https://trello.com/b/sUksygn4/starplot-roadmap)
126
117
 
@@ -71,23 +71,14 @@ https://discord.gg/WewJJjshFu
71
71
 
72
72
  Contributing to Starplot is welcome and very much appreciated! Please see [here](CONTRIBUTING.md) for details.
73
73
 
74
- ## Core Dependencies
75
-
76
- - matplotlib
77
- - pandas
78
- - numpy
79
- - geopandas
80
- - cartopy
81
- - skyfield
82
- - pydantic
83
- - adjustText
84
-
85
74
  ## Coming Soon
86
75
  - 🌑 Planet moons
87
76
  - ✴️ Custom markers
88
77
  - 🚀 Plotting Optimizations
89
- - 📐 Custom clip paths
78
+ - ☄️ Comet model
79
+ - 🌄 Horizon plots
90
80
  - ⚖️ Better auto font-size adjustment
81
+ - 😄 🔭 Clear skies
91
82
 
92
83
  See more details on the [Public Roadmap](https://trello.com/b/sUksygn4/starplot-roadmap)
93
84
 
@@ -1,5 +1,16 @@
1
+ ## v0.12.x
2
+
3
+ - Adds Shapely geometry to all sky object models, including support for `intersects` in `where` clauses
4
+ - Adds kwarg to map plots to allow custom clip paths
5
+ - Adds callables for star/dso labels
6
+ - Adds a `line` function for plotting lines
7
+ - Adds the standard marker for globular clusters (circle with a cross) and double stars
8
+ - Adds an ellipse marker for galaxies
9
+ - Adds colors for some DSO labels that were missing them in some style extensions
10
+ - Removed the kwarg `types` from `dsos`, so ALL DSO types are plotted by default
1
11
 
2
12
  ## v0.11.x
13
+ [Documentation](https://archives.starplot.dev/0.11.4/)
3
14
 
4
15
  - Replaces Tycho-1 stars with an abridged version of the [Big Sky Catalog](https://github.com/steveberardi/bigsky)
5
16
  - Adds style option for a star's edge color (previously this was forced to be the background color)
@@ -12,12 +23,10 @@
12
23
  - Adds TYC id to stars (if available)
13
24
  - Adds the following projections: Robinson, Lambert Azimuthal Equal-Area
14
25
  - Adds a constellation model, allowing you to selectively plot objects by their constellation
15
- - [**v0.11.1**]
16
- - Fixes default horizon style to be consistent with grayscale extension
17
- - [**v0.11.2**]
18
- - Adds `requests` as a required dependency
19
- - [**v0.11.3**]
20
- - Fixes bug with plotting the celestial equator
26
+ - [**v0.11.1**] Fixes default horizon style to be consistent with grayscale extension
27
+ - [**v0.11.2**] Adds `requests` as a required dependency
28
+ - [**v0.11.3**] Fixes bug with plotting the celestial equator
29
+ - [**v0.11.4**] Fixes bug with filtering DSOs by NGC/IC identifier
21
30
 
22
31
  ## v0.10.x
23
32
  [Documentation](https://archives.starplot.dev/0.10.2/)
@@ -1,8 +1,9 @@
1
1
 
2
2
  - 🌑 Planet moons
3
+ - ☄️ Comet model
4
+ - 🌄 Horizon plots
3
5
  - ✴️ Custom markers
4
6
  - 🚀 Plotting Optimizations
5
- - 📐 Custom clip paths
6
7
  - ⚖️ Better auto font-size adjustment
7
8
  - 😄 🔭 Clear skies
8
9
 
@@ -19,3 +19,5 @@
19
19
 
20
20
  ### **Milky Way Outline**
21
21
  - Created by Steve Berardi with QGIS + GDAL from NASA's [Deep Star Maps](https://svs.gsfc.nasa.gov/4851)
22
+
23
+ <br/><br/>
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: Map of Canis Major
3
+ ---
4
+ [:octicons-arrow-left-24: Back to Examples](/examples)
5
+
6
+ # Map of Canis Major {.example-header}
7
+
8
+ ![map-canis-major](/images/examples/map_canis_major.png)
9
+
10
+ ```python
11
+ --8<-- "examples/map_canis_major.py"
12
+ ```
13
+
14
+
@@ -106,6 +106,14 @@
106
106
  </a>
107
107
  </li>
108
108
 
109
+ <li>
110
+ <a href="/examples/map-canis-major">
111
+ <img src="/images/examples/map_canis_major-sm.png" alt="Map of the Constellation Canis Major" class="off-glb" loading="lazy"/>
112
+
113
+ <p class="example-card-title">Map of Canis Major</p>
114
+ </a>
115
+ </li>
116
+
109
117
  </ul>
110
118
 
111
119
 
@@ -1,4 +1,4 @@
1
- Callables allow you to define your own functions for calculating a few of the style properties for stars: size, alpha (opacity), and color. DSOs support callables for alpha only. Starplot has a few basic callables built-in, but you can also create your own.
1
+ Callables allow you to define your own functions for calculating a few of the style properties for stars: size, alpha (opacity), color, and the star's label. DSOs support callables for alpha and labels only. Starplot has a few basic callables built-in, but you can also create your own.
2
2
 
3
3
  ???- tip "What's a Callable?"
4
4
 
@@ -16,7 +16,7 @@
16
16
  show_docstring_attributes: true
17
17
  members: true
18
18
 
19
- ::: starplot.data.dsos.DEFAULT_DSO_TYPES
19
+ ::: starplot.data.dsos.BASIC_DSO_TYPES
20
20
  options:
21
21
  show_root_heading: true
22
22
  show_docstring_attributes: true
@@ -39,6 +39,7 @@ On line 16, we plot only the DSOs we want by passing the `where` keyword argumen
39
39
  | `(Star.hip.is_not_null()) | (Star.bv < 0)` | Select stars that have a HIP id **OR** have a bluish color (bv < 0) |
40
40
  | `Star.name.is_in(["Sirius", "Rigel", "Vega"])` | Select stars with the names Sirius, Rigel, or Vega |
41
41
  | `(DSO.size.is_null()) | (DSO.size > 0.01)` | Select DSOs that have no defined size **OR** are larger than 0.01 square degrees |
42
+ | `Star.geometry.intersects(m45.geometry)` | Select stars that are within the Pleiades (M45) star cluster (assumes `m45 = DSO.get(m='45')`) |
42
43
 
43
44
  ## Important Details
44
45
 
@@ -292,6 +292,12 @@ When you only want to override one or two style properties, it can be tedious to
292
292
  show_docstring_attributes: true
293
293
  members: true
294
294
 
295
+ ::: starplot.styles.ZOrderEnum
296
+ options:
297
+ show_root_heading: true
298
+ show_docstring_attributes: true
299
+ members: true
300
+
295
301
  ---
296
302
 
297
303
  ## Style Extensions
@@ -0,0 +1,40 @@
1
+ ---
2
+ title: 3 - Adding More Details to the Star Chart
3
+ ---
4
+
5
+ ---
6
+
7
+ <figure markdown="span">
8
+ ![Tutorial - Detailed Star Chart](/images/tutorial/tutorial_03.png){ width="600" }
9
+ </figure>
10
+
11
+ Building on the first example, let's add some color and more objects to the plot, to create the chart above. Here's the revised code with comments explaining the new lines:
12
+
13
+ <div class="tutorial">
14
+ ```python linenums="1"
15
+ --8<-- "tutorial/tutorial_03.py"
16
+ ```
17
+ </div>
18
+
19
+ Here are some more details about what we changed:
20
+
21
+ - **Customized the style** by adding the `style` keyword argument when creating the plot instance. This is an instance of a [`PlotStyle`][starplot.PlotStyle], and it represents ALL the styling properties to use for the plot (e.g. the colors, symbols, sizes, and more). In our revised example here, we create a default `PlotStyle` and then `extend` it with the `BLUE_MEDIUM` color scheme. Starplot has a very customizable [styling framework](/reference-styling) that allows you to customize the appearance of just about anything you plot.
22
+
23
+ - **Plotted deep sky objects (DSOs)** with a limiting magnitude of 9. The `true_size=False` argument tells Starplot to plot each DSO's size based on what's specified in the style definition and NOT their true apparent size. For zenith plots like this one, plotting the true size can make many DSOs too small to see on the plot. We also pass `labels=None` to hide all the labels for DSOs to avoid cluttering the plot.
24
+
25
+ - **Plotted other lines and objects:** constellation borders, ecliptic, celestial equator, and the Milky Way.
26
+
27
+ - **Added a marker for the [Coma Star Cluster](https://en.wikipedia.org/wiki/Coma_Star_Cluster)** (aka Melotte 111), and customized its style. Starplot also has functions for plotting circles, rectangles, polygons, and more. See the reference for [`MapPlot`][starplot.MapPlot] for details.
28
+
29
+ *In the [next section](04.md), we'll learn how to create maps in other projections...*
30
+
31
+ ---
32
+ <div class="flex-space-between" markdown>
33
+
34
+ [:octicons-arrow-left-24: Previous](02.md){ .md-button .text-right }
35
+
36
+ [Tutorial Home](/tutorial)
37
+
38
+ [Next :octicons-arrow-right-24:](04.md){ .md-button .text-right }
39
+
40
+ </div>
@@ -9,7 +9,7 @@ title: 8 - Using Callables
9
9
  </figure>
10
10
 
11
11
 
12
- [Callables](/reference-callables/) allow you to define your own functions for calculating a few of the style properties for stars: size, alpha (opacity), and color. DSOs support callables for alpha only. Starplot has a few basic callables built-in, but you can also create your own.
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
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>
@@ -5,7 +5,7 @@ import glob
5
5
  import time
6
6
 
7
7
  from PIL import Image
8
- from multiprocessing import Pool
8
+ from multiprocessing import Pool, Process
9
9
 
10
10
  start = time.time()
11
11
 
@@ -17,19 +17,44 @@ def thumbnail(filename, max_dimension=900):
17
17
  img.save(f"{filename[:-4]}-sm.png", optimize=True)
18
18
 
19
19
 
20
- # Run all examples
21
- for filename in glob.iglob("*.py"):
22
- if filename.endswith("examples.py"):
23
- continue
20
+ def get_example_names():
21
+ filenames = []
22
+
23
+ for filename in glob.iglob("*.py"):
24
+ if filename.endswith("examples.py"):
25
+ continue
26
+ filenames.append(filename)
27
+
28
+ return filenames
29
+
30
+
31
+ def run_example(filename):
32
+ import subprocess
24
33
 
25
- # if filename != "star_chart_basic.py":
26
- # continue
27
34
  print(f"Running {filename}")
28
- subprocess.call(f"python {filename}", shell=True)
35
+
36
+ subprocess.call(["python", filename])
37
+
38
+
39
+ example_files = get_example_names()
40
+ processes = []
41
+
42
+ with Pool(5) as pool:
43
+ pool.map(run_example, example_files)
44
+
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)
29
54
 
30
55
  # Create thumbnail images for the examples list page
31
56
  image_files = glob.glob("*.png")
32
- pool = Pool(8)
57
+ pool = Pool(5)
33
58
  results = pool.map(thumbnail, image_files)
34
59
 
35
60
  # Copy all images to docs directory
@@ -0,0 +1,37 @@
1
+ from starplot import MapPlot, Projection, Constellation
2
+ from starplot.styles import PlotStyle, extensions
3
+
4
+ style = PlotStyle().extend(
5
+ extensions.CB_WONG,
6
+ extensions.MAP,
7
+ {
8
+ "star": {"marker": {"size": 40}, "label": {"font_size": 13}},
9
+ "bayer_labels": {
10
+ "font_name": "GFS Didot", # use a better font for Greek letters
11
+ "font_size": 10,
12
+ "font_alpha": 0.9,
13
+ },
14
+ "dso_open_cluster": {"marker": {"size": 20}, "label": {"font_size": 10}},
15
+ },
16
+ )
17
+ canis_major = Constellation.get(name="Canis Major")
18
+ p = MapPlot(
19
+ projection=Projection.MILLER,
20
+ ra_min=6,
21
+ ra_max=7.6,
22
+ dec_min=-35,
23
+ dec_max=-9,
24
+ style=style,
25
+ resolution=2000,
26
+ clip_path=canis_major.boundary,
27
+ )
28
+ p.open_clusters(mag=8, true_size=False, label_fn=lambda d: f"{d.ngc}")
29
+ p.stars(mag=9, bayer_labels=True, catalog="big-sky-mag11")
30
+ p.constellations(
31
+ where=[Constellation.iau_id == "cma"],
32
+ style__line__width=7,
33
+ style__label__font_size=18,
34
+ )
35
+ p.constellation_borders()
36
+ p.ax.set_axis_off()
37
+ p.export("map_canis_major.png", padding=0, transparent=True)
@@ -29,7 +29,8 @@ p = MapPlot(
29
29
  )
30
30
  p.gridlines()
31
31
  p.stars(mag=9, bayer_labels=True)
32
- p.dsos(mag=9, labels=None)
32
+ p.open_clusters(mag=9, labels=None)
33
+ p.nebula(mag=9, labels=None)
33
34
  p.constellations()
34
35
  p.constellation_borders()
35
36
  p.milky_way()
@@ -1,6 +1,7 @@
1
1
  from datetime import datetime
2
2
  from pytz import timezone
3
- from starplot import MapPlot, Projection, Star
3
+
4
+ from starplot import MapPlot, Projection, Star, DSO
4
5
  from starplot.data import constellations
5
6
  from starplot.styles import PlotStyle, extensions
6
7
 
@@ -27,11 +28,12 @@ p = MapPlot(
27
28
  )
28
29
  p.gridlines(labels=False)
29
30
  p.stars(mag=7.86, where_labels=[Star.magnitude < 6])
30
- p.open_clusters(mag=8, true_size=False, labels=None)
31
- p.galaxies(mag=8, true_size=False, labels=None)
32
- p.nebula(mag=8, true_size=True, labels=None)
31
+
32
+ p.open_clusters(where=[DSO.magnitude < 12], true_size=False, labels=None)
33
+ p.galaxies(where=[DSO.magnitude < 12], true_size=False, labels=None)
34
+ p.nebula(where=[DSO.magnitude < 12], true_size=False, labels=None)
35
+
33
36
  p.constellations(
34
- labels=constellations.CONSTELLATIONS_FULL_NAMES,
35
37
  style={"label": {"font_size": 9, "font_alpha": 0.8}},
36
38
  )
37
39
  p.constellation_borders()
@@ -47,12 +47,14 @@ p.nebula(
47
47
  DSO.magnitude.is_null() | (DSO.magnitude < 12),
48
48
  ],
49
49
  true_size=True,
50
+ label_fn=lambda d: d.ic,
50
51
  )
51
52
  p.open_clusters(
52
53
  where=[
53
54
  DSO.magnitude.is_null() | (DSO.magnitude < 12),
54
55
  ],
55
56
  true_size=False,
57
+ label_fn=lambda d: d.ngc,
56
58
  )
57
59
  p.constellation_borders()
58
60
  p.ecliptic()
@@ -1,6 +1,6 @@
1
1
  from datetime import datetime
2
2
  from pytz import timezone
3
- from starplot import MapPlot, Projection, Star
3
+ from starplot import MapPlot, Projection, Star, DSO
4
4
  from starplot.styles import PlotStyle, extensions
5
5
 
6
6
  tz = timezone("America/Los_Angeles")
@@ -19,7 +19,9 @@ p = MapPlot(
19
19
  p.constellations()
20
20
  p.stars(mag=4.6, where_labels=[Star.magnitude < 2.1])
21
21
 
22
- p.dsos(mag=9, true_size=True, labels=None)
22
+ p.galaxies(where=[DSO.magnitude < 10], true_size=False, labels=None)
23
+ p.open_clusters(where=[DSO.magnitude < 10], true_size=False, labels=None)
24
+
23
25
  p.constellation_borders()
24
26
  p.ecliptic()
25
27
  p.celestial_equator()
@@ -1,8 +1,8 @@
1
1
  import sys
2
2
  import inspect
3
3
  import time
4
+ import multiprocessing as mp
4
5
 
5
- from multiprocessing import Pool
6
6
  from pathlib import Path
7
7
 
8
8
  import imagehash
@@ -87,9 +87,10 @@ class Hashio:
87
87
 
88
88
  def _get_hashes(self) -> dict:
89
89
  """Gets hashes for all callables"""
90
+ mp.set_start_method("spawn") # required for M1 macs? or macOS issue?
90
91
 
91
92
  console.print("Getting hashes...", style="bold")
92
- with Pool(5) as p:
93
+ with mp.Pool(5) as p:
93
94
  results = p.map(self._call_wrapper, self.callables)
94
95
 
95
96
  return {func_name: hashes for func_name, hashes in results}
@@ -1,7 +1,7 @@
1
1
  map_coma_berenices_dso_size:
2
- dhash: c4a4a292c8a084a080a69292caa2948484aeb2928ea28682
2
+ dhash: c2809292c88084a080829292c8828280868a92928a828282
3
3
  filename: /starplot/hash_checks/data/map-coma-berenices-dso-size.png
4
- phash: c56d36963a696992
4
+ phash: c16916963e696d96
5
5
  map_custom_stars:
6
6
  dhash: 5cb129ceae2e84285cb129ceae2e84285cb129ceae2e8428
7
7
  filename: /starplot/hash_checks/data/map-custom-stars.png
@@ -10,42 +10,50 @@ map_gridlines:
10
10
  dhash: 34318517b2c0902034318517b2c0902034318517b2c09020
11
11
  filename: /starplot/hash_checks/data/map-gridlines.png
12
12
  phash: f82acf9c3c616392
13
+ map_label_callables:
14
+ dhash: 80948c8c9c8c88a080988c8c9c8c88a0809c8d0d9d9c98a0
15
+ filename: /starplot/hash_checks/data/map-m45-label-callables.png
16
+ phash: b26ccd99316664cd
13
17
  map_mollweide:
14
- dhash: 0b2973632b33170f0b2973632b33170f0f297b6323330707
18
+ dhash: 0f2933632b3317070f2933632b3317070f295b6323130707
15
19
  filename: /starplot/hash_checks/data/map-mollweide.png
16
- phash: fa9ab698c0259567
20
+ phash: fa9af698c0259566
17
21
  map_moon_phase_waxing_crescent:
18
22
  dhash: 8884484d4d4884888884484d4d4884888884484d4d488488
19
23
  filename: /starplot/hash_checks/data/map-moon-phase-waxing-crescent.png
20
24
  phash: b3cccc3333cccc31
21
25
  map_orion_base:
22
- dhash: 1c3b3b7e6e2f64681c3b3b4e6e2f64681c3b1bce6e2f646c
26
+ dhash: 1c3b3b6e6e2f64681c3b3b4e6e2f64681c3b1bce6e2f646c
23
27
  filename: /starplot/hash_checks/data/map-orion-base.png
24
28
  phash: be79d9260785709c
25
29
  map_orion_extra:
26
- dhash: 1c1b3a6d2f646c171d1b1b6b2f646c871c1b1b6b2d646c07
30
+ dhash: 1c1b3a6d2f656c171d1b1b6b2f646c871c1b1b6b2d646c07
27
31
  filename: /starplot/hash_checks/data/map-orion-extra.png
28
32
  phash: be71d11ee01fa4d0
29
- map_plot_limit_constellation:
30
- dhash: 228a869606060202028a8686070606462208869647060a06
31
- filename: /starplot/hash_checks/data/map-limit-constellation.png
32
- phash: e5699392cc6d6592
33
+ map_plot_custom_clip_path_virgo:
34
+ dhash: 020103130f0c04040327252d0d0c08040327250f0d0c0804
35
+ filename: /starplot/hash_checks/data/map-custom-clip-path-virgo.png
36
+ phash: e66cc983b3919336
37
+ map_plot_limit_by_geometry:
38
+ dhash: 22a886960c061204028a86960c0a1244122886864c0e0a04
39
+ filename: /starplot/hash_checks/data/map-limit-by-geometry.png
40
+ phash: e54d9b926c6d1692
33
41
  map_scope_bino_fov:
34
42
  dhash: 0bc0808c8c8080802bceb2ac4daa928c2bceb2ac4daa928c
35
43
  filename: /starplot/hash_checks/data/map-scope-bino-fov.png
36
44
  phash: e46b296a6e693964
37
45
  map_stereo_base:
38
- dhash: 627666f07c3c3436627666f0282c3416727666f0ac48d416
46
+ dhash: 627666f07c3c3436627666f0382c3436727666f2ecc89416
39
47
  filename: /starplot/hash_checks/data/map-stereo-north-base.png
40
- phash: 9dce6973429062fa
48
+ phash: 9dce7973429062ba
41
49
  map_with_planets:
42
50
  dhash: 62930d63899b32b362930563899b32b362930563899b32b3
43
51
  filename: /starplot/hash_checks/data/map-mercator-planets.png
44
- phash: e9c69d89861f5b12
52
+ phash: e9c69d89861f5392
45
53
  map_wrapping:
46
- dhash: 16391d2d7743211516391d2d7743211516391d2d77432115
54
+ dhash: 16391d2d7747211516391d2d7747211516391d2d77472115
47
55
  filename: /starplot/hash_checks/data/map-wrapping.png
48
- phash: ee30f16d7464213d
56
+ phash: ee30f1ed3464213d
49
57
  optic_camera_rotated:
50
58
  dhash: 25468b33269d9a6525468b33269d9a6525468b33269d9a65
51
59
  filename: /starplot/hash_checks/data/optic-camera-rotated-m45.png
@@ -65,7 +73,7 @@ optic_m45_camera:
65
73
  optic_m45_reflector:
66
74
  dhash: 8e173b712b338e4d8e173b712b338e4d8e173b712b338e4d
67
75
  filename: /starplot/hash_checks/data/optic-m45-reflector.png
68
- phash: bb7b80e486869b93
76
+ phash: bb7b84e486868b93
69
77
  optic_m45_scope:
70
78
  dhash: 8e172b5133238e4d8e172b5133238e4d8e172b5133238e4d
71
79
  filename: /starplot/hash_checks/data/optic-m45-scope.png
@@ -99,6 +107,6 @@ optic_wrapping:
99
107
  filename: /starplot/hash_checks/data/optic-wrapping.png
100
108
  phash: d0c46f1b396cf078
101
109
  zenith_base:
102
- dhash: 1779cc8ad45d3b8e1779cc8a965d2b8e1779ec8a965d2b0e
110
+ dhash: 1779cc8a945d3b8e1779cc8a965d2b8e1779ec8a965d2b0e
103
111
  filename: /starplot/hash_checks/data/zenith-base.png
104
- phash: b343eb3be1249664
112
+ phash: ba43eb3be1249664