AstroToolkit 2.0.3__tar.gz → 2.0.4__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.
Files changed (292) hide show
  1. astrotoolkit-2.0.4/LICENSE.rst +11 -0
  2. {astrotoolkit-2.0.3/src/AstroToolkit.egg-info → astrotoolkit-2.0.4}/PKG-INFO +9 -3
  3. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/README.md +5 -0
  4. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/changelog.md +20 -2
  5. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/build.sh +0 -1
  6. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/conf.py +5 -9
  7. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datapages/datapage_hrd.fits.gz +0 -0
  8. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datapages/datapage_image.fits.gz +0 -0
  9. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datapages/datapage_lc.fits.gz +0 -0
  10. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datapages/datapage_plotting.py +1 -1
  11. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datapages/datapage_sed.fits.gz +0 -0
  12. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datapages/datapage_spec.fits.gz +0 -0
  13. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datatables/example_table.fits.gz +0 -0
  14. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/extension/allwise_data_1.fits.gz +0 -0
  15. astrotoolkit-2.0.4/docs/source/tutorials/extension/allwise_data_2.fits.gz +0 -0
  16. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/extension/image_data_1.fits.gz +0 -0
  17. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/extension/image_data_2.fits.gz +0 -0
  18. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/getting_started/data_query.py +2 -2
  19. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/getting_started/data_saving.py +1 -1
  20. astrotoolkit-2.0.4/docs/source/tutorials/getting_started/example_data.fits.gz +0 -0
  21. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/hrds/example_hrd.fits.gz +0 -0
  22. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/hrds/example_hrd_2.fits.gz +0 -0
  23. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/images/example_image_1.fits.gz +0 -0
  24. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/images/example_image_2.fits.gz +0 -0
  25. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/images/example_image_4.fits.gz +0 -0
  26. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/images/image_plotting.py +1 -1
  27. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/intro_image.fits.gz +0 -0
  28. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/example_folded_lc.fits.gz +0 -0
  29. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/example_lightcurve.fits.gz +0 -0
  30. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/example_lightcurve_2.fits.gz +0 -0
  31. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/example_lightcurve_3.fits.gz +0 -0
  32. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/example_lightcurve_4.fits.gz +0 -0
  33. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/example_lightcurve_5.fits.gz +0 -0
  34. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/example_pspec.fits.gz +0 -0
  35. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/merging/asassn_lightcurve.fits.gz +0 -0
  36. astrotoolkit-2.0.4/docs/source/tutorials/merging/gaia_lightcurve.fits.gz +0 -0
  37. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/multiple_targets/multiple_images.fits.gz +0 -0
  38. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/multiple_targets/multiple_lightcurves.fits.gz +0 -0
  39. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/seds/example_sed.fits.gz +0 -0
  40. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/seds/example_spectrum.fits.gz +0 -0
  41. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/spectra/example_sed.fits.gz +0 -0
  42. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/spectra/example_spectrum.fits.gz +0 -0
  43. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/workflows/assasn_data.fits.gz +0 -0
  44. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/workflows/tess_data.fits.gz +0 -0
  45. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/pyproject.toml +3 -1
  46. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/Tools/query.py +2 -6
  47. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/defaults/base_defaults.py +5 -2
  48. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/io/plot_io.py +2 -1
  49. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/datapage/plot_datapage.py +15 -10
  50. astrotoolkit-2.0.4/src/ATK/plotting/datatable/plot_datatable.py +115 -0
  51. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/formatting.py +3 -0
  52. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/spectrum/spectrum_overlay.py +19 -11
  53. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/image/overlays.py +5 -13
  54. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/query_core.py +1 -1
  55. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/simbad/simbad_query.py +31 -5
  56. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/vizier/vizier_query.py +28 -7
  57. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/Base.py +4 -2
  58. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/DataPages.py +1 -1
  59. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/methods/apply.py +2 -2
  60. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/methods/binning.py +8 -12
  61. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/methods/lightcurve/timeseries_core.py +3 -3
  62. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/methods/spectrum/fitting.py +131 -41
  63. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/methods/spectrum/radial_velocities.py +45 -20
  64. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/utilities/defaults.py +1 -1
  65. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4/src/AstroToolkit.egg-info}/PKG-INFO +9 -3
  66. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/AstroToolkit.egg-info/SOURCES.txt +3 -2
  67. astrotoolkit-2.0.4/src/AstroToolkit.egg-info/scm_file_list.json +280 -0
  68. astrotoolkit-2.0.4/src/AstroToolkit.egg-info/scm_version.json +8 -0
  69. astrotoolkit-2.0.3/LICENSE +0 -0
  70. astrotoolkit-2.0.3/build.sh +0 -0
  71. astrotoolkit-2.0.3/docs/source/tutorials/extension/allwise_data_2.fits.gz +0 -0
  72. astrotoolkit-2.0.3/docs/source/tutorials/getting_started/example_data.fits.gz +0 -0
  73. astrotoolkit-2.0.3/docs/source/tutorials/merging/gaia_lightcurve.fits.gz +0 -0
  74. astrotoolkit-2.0.3/src/ATK/plotting/datatable/plot_datatable.py +0 -71
  75. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/.github/workflows/publish.yml +0 -0
  76. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/.gitignore +0 -0
  77. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/.readthedocs.yaml +0 -0
  78. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/MANIFEST.in +0 -0
  79. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/Makefile +0 -0
  80. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/make.bat +0 -0
  81. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/requirements.txt +0 -0
  82. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/sim_rtd.sh +0 -0
  83. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/anim.py +0 -0
  84. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/build.sh +0 -0
  85. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/corrected_image.png +0 -0
  86. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/data.py +0 -0
  87. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/fitted_spec.png +0 -0
  88. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/folded_lightcurve.png +0 -0
  89. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/hrd.fits.gz +0 -0
  90. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/hrd.png +0 -0
  91. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/image_1.fits.gz +0 -0
  92. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/image_2.fits.gz +0 -0
  93. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/lightcurve.fits.gz +0 -0
  94. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/lightcurve.png +0 -0
  95. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/media/videos/anim/1080p60/Anim.mp4 +0 -0
  96. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/pspec.png +0 -0
  97. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/sed.fits.gz +0 -0
  98. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/sed.png +0 -0
  99. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/spec.png +0 -0
  100. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/spectrum.fits.gz +0 -0
  101. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/uncorrected_image.png +0 -0
  102. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/utilities.py +0 -0
  103. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/vizier_1.fits.gz +0 -0
  104. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/animations/vizier_2.fits.gz +0 -0
  105. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/erc_logo_dark.png +0 -0
  106. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/erc_logo_light.png +0 -0
  107. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/logo/icon.png +0 -0
  108. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/logo/icon_is.svg +0 -0
  109. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/logo/logo.png +0 -0
  110. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/logo/logo_is.svg +0 -0
  111. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_static/stylesheet.css +0 -0
  112. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/_templates/autosummary/class.rst +0 -0
  113. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/additional_tutorials.rst +0 -0
  114. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/configuration.rst +0 -0
  115. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/extending_atk.rst +0 -0
  116. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/getting_started.rst +0 -0
  117. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/index.rst +0 -0
  118. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Models.DataPages.rst +0 -0
  119. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Models.DataSet.rst +0 -0
  120. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Models.DataTable.rst +0 -0
  121. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Models.HRD.rst +0 -0
  122. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Models.Image.rst +0 -0
  123. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Models.Lightcurve.rst +0 -0
  124. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Models.Powspec.rst +0 -0
  125. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Models.Record.rst +0 -0
  126. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Models.SED.rst +0 -0
  127. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Models.Spectrum.rst +0 -0
  128. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Models.Target.rst +0 -0
  129. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Tools.query.rst +0 -0
  130. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Tools.read.rst +0 -0
  131. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.Visualisation.grid.rst +0 -0
  132. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.base.Container.rst +0 -0
  133. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.base.DataFrameIOMixin.rst +0 -0
  134. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.base.FITSIOMixin.rst +0 -0
  135. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/generated/ATK.base.TableIOMixin.rst +0 -0
  136. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/models.rst +0 -0
  137. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/tools.rst +0 -0
  138. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/utils.rst +0 -0
  139. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules/visualisation.rst +0 -0
  140. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/modules.rst +0 -0
  141. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/GALLERY_HEADER.rst +0 -0
  142. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/_intro_image.py +0 -0
  143. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/_utilities.py +0 -0
  144. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/configuration/GALLERY_HEADER.rst +0 -0
  145. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/configuration/config.py +0 -0
  146. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/configuration/config_keys.py +0 -0
  147. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datapages/GALLERY_HEADER.rst +0 -0
  148. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datapages/custom_index.rst +0 -0
  149. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datatables/GALLERY_HEADER.rst +0 -0
  150. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datatables/custom_index.rst +0 -0
  151. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/datatables/datatables.py +0 -0
  152. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/extension/GALLERY_HEADER.rst +0 -0
  153. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/extension/external_data.py +0 -0
  154. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/extension/external_lightcurve.dat +0 -0
  155. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/extension/external_spec.fits +0 -0
  156. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/extension/save.txt +0 -0
  157. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/extension/vizier.py +0 -0
  158. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/getting_started/GALLERY_HEADER.rst +0 -0
  159. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/getting_started/custom_index.rst +0 -0
  160. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/getting_started/example_data.fits.gz.gz +0 -0
  161. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/hrds/GALLERY_HEADER.rst +0 -0
  162. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/hrds/custom_index.rst +0 -0
  163. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/hrds/hrd_plotting.py +0 -0
  164. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/hrds/hrd_query.py +0 -0
  165. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/images/GALLERY_HEADER.rst +0 -0
  166. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/images/custom_index.rst +0 -0
  167. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/images/image_query.py +0 -0
  168. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/images/image_query_2.py +0 -0
  169. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/io/GALLERY_HEADER.rst +0 -0
  170. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/io/custom_index.rst +0 -0
  171. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/io/export.py +0 -0
  172. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/GALLERY_HEADER.rst +0 -0
  173. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/custom_index.rst +0 -0
  174. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/folded_plotting.py +0 -0
  175. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/lightcurve_manipulation.py +0 -0
  176. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/lightcurve_plotting.py +0 -0
  177. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/lightcurve_query.py +0 -0
  178. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/lightcurves/lightcurve_timeseries.py +0 -0
  179. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/merging/GALLERY_HEADER.rst +0 -0
  180. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/merging/custom_index.rst +0 -0
  181. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/merging/merging_datasets.py +0 -0
  182. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/multiple_targets/GALLERY_HEADER.rst +0 -0
  183. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/multiple_targets/custom_index.rst +0 -0
  184. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/multiple_targets/multi_target_analysis.py +0 -0
  185. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/multiple_targets/multi_target_plotting.py +0 -0
  186. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/multiple_targets/multi_target_query.py +0 -0
  187. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/seds/GALLERY_HEADER.rst +0 -0
  188. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/seds/custom_index.rst +0 -0
  189. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/seds/sed_plotting.py +0 -0
  190. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/seds/sed_query.py +0 -0
  191. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/spectra/GALLERY_HEADER.rst +0 -0
  192. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/spectra/custom_index.rst +0 -0
  193. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/spectra/spectral_analysis.py +0 -0
  194. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/spectra/spectrum_plotting.py +0 -0
  195. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/spectra/spectrum_query.py +0 -0
  196. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/workflows/GALLERY_HEADER.rst +0 -0
  197. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/workflows/custom_index.rst +0 -0
  198. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/docs/source/tutorials/workflows/workflows.py +0 -0
  199. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/setup.cfg +0 -0
  200. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/Config/__init__.py +0 -0
  201. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/Models/__init__.py +0 -0
  202. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/Tools/__init__.py +0 -0
  203. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/Tools/query.pyi +0 -0
  204. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/Tools/read.py +0 -0
  205. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/Visualisation/__init__.py +0 -0
  206. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/Visualisation/datapages.py +0 -0
  207. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/__init__.py +0 -0
  208. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/base/__init__.py +0 -0
  209. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/alias_config.py +0 -0
  210. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/base_config.py +0 -0
  211. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/defaults/alias_defaults.py +0 -0
  212. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/defaults/epoch_defaults.py +0 -0
  213. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/defaults/overlay_defaults.py +0 -0
  214. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/defaults/survey_defaults.py +0 -0
  215. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/epoch_config.py +0 -0
  216. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/overlay_config.py +0 -0
  217. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/parser_config/ParserConfig.py +0 -0
  218. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/survey_config.py +0 -0
  219. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/yaml_config/YAMLConfig.py +0 -0
  220. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/configuration/yaml_config/yaml_io.py +0 -0
  221. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/io/files/read.py +0 -0
  222. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/io/files/writing.py +0 -0
  223. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/io/struct_stdout.py +0 -0
  224. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/io/structure_io.py +0 -0
  225. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/io/target_io.py +0 -0
  226. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/colours.py +0 -0
  227. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/hrd/backdrop_hrd_allmags.fits.gz +0 -0
  228. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/hrd/plot_hrd.py +0 -0
  229. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/image/false_colour.py +0 -0
  230. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/image/plot_image.py +0 -0
  231. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/lightcurve/folded_params.py +0 -0
  232. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/lightcurve/plot_lightcurve.py +0 -0
  233. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/plotting_core.py +0 -0
  234. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/powspec/plot_powspec.py +0 -0
  235. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/sed/plot_sed.py +0 -0
  236. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/plotting/spectrum/plot_spectrum.py +0 -0
  237. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/arguments.py +0 -0
  238. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/checksum.py +0 -0
  239. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/datatable/datatable_query.py +0 -0
  240. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/hrd/gaia_query.py +0 -0
  241. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/image/2mass_query.py +0 -0
  242. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/image/_query_info.py +0 -0
  243. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/image/dss1_query.py +0 -0
  244. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/image/dss2_query.py +0 -0
  245. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/image/image_core.py +0 -0
  246. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/image/irsa_queries.py +0 -0
  247. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/image/panstarrs_query.py +0 -0
  248. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/image/sdss_query.py +0 -0
  249. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/image/skymapper_query.py +0 -0
  250. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/image/wise_query.py +0 -0
  251. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/lightcurve/_query_info.py +0 -0
  252. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/lightcurve/asassn_query.py +0 -0
  253. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/lightcurve/atlas_query.py +0 -0
  254. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/lightcurve/crts_query.py +0 -0
  255. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/lightcurve/gaia_query.py +0 -0
  256. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/lightcurve/lightcurve_core.py +0 -0
  257. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/lightcurve/tess_query.py +0 -0
  258. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/lightcurve/ztf_query.py +0 -0
  259. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/sed/_query_info.py +0 -0
  260. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/sed/sed_core.py +0 -0
  261. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/sed/sed_query.py +0 -0
  262. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/spectrum/_query_info.py +0 -0
  263. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/spectrum/desi_query.py +0 -0
  264. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/spectrum/sdss_query.py +0 -0
  265. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/queries/vizier/_query_info.py +0 -0
  266. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/DataSet.py +0 -0
  267. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/DataTable.py +0 -0
  268. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/HRD.py +0 -0
  269. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/Image.py +0 -0
  270. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/Lightcurve.py +0 -0
  271. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/Powspec.py +0 -0
  272. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/Record.py +0 -0
  273. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/SED.py +0 -0
  274. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/Spectrum.py +0 -0
  275. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/Target.py +0 -0
  276. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/methods/cropping.py +0 -0
  277. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/methods/lightcurve/phasefold.py +0 -0
  278. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/methods/lightcurve/powspec.py +0 -0
  279. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/structures/methods/sigma_clip.py +0 -0
  280. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/utilities/coordinates.py +0 -0
  281. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/utilities/docstrings.py +0 -0
  282. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/utilities/file_io.py +0 -0
  283. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/utilities/mapping.py +0 -0
  284. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/utilities/misc.py +0 -0
  285. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/utilities/requests.py +0 -0
  286. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/ATK/utilities/units.py +0 -0
  287. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/AstroToolkit.egg-info/dependency_links.txt +0 -0
  288. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/AstroToolkit.egg-info/entry_points.txt +0 -0
  289. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/AstroToolkit.egg-info/requires.txt +0 -0
  290. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/AstroToolkit.egg-info/top_level.txt +0 -0
  291. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/bin/atkconfig_command.py +0 -0
  292. {astrotoolkit-2.0.3 → astrotoolkit-2.0.4}/src/bin/atksurvey_command.py +0 -0
@@ -0,0 +1,11 @@
1
+ Copyright 2025-2026 Ethan Moorfield
2
+
3
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
+
5
+ 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6
+
7
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8
+
9
+ 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10
+
11
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,15 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: AstroToolkit
3
- Version: 2.0.3
3
+ Version: 2.0.4
4
4
  Summary: A package for the gathering, plotting and analysis of astronomical data.
5
- Author-email: Ethan Moorfield <ethan.moorfield@hotmail.co.uk>
5
+ Author-email: Ethan Moorfield <ethan.moorfield@outlook.com>
6
+ License-Expression: BSD-3-Clause
6
7
  Project-URL: Homepage, https://github.com/WD-planets/AstroToolkit
7
8
  Project-URL: Issues, https://github.com/WD-planets/AstroToolkit/issues
8
9
  Classifier: Programming Language :: Python :: 3
9
10
  Classifier: Operating System :: OS Independent
10
11
  Requires-Python: >=3.11
11
12
  Description-Content-Type: text/markdown
12
- License-File: LICENSE
13
+ License-File: LICENSE.rst
13
14
  Requires-Dist: astropy
14
15
  Requires-Dist: astroquery
15
16
  Requires-Dist: beautifulsoup4
@@ -58,3 +59,8 @@ This project has received funding from the European Research Council (ERC) under
58
59
  <img src="https://raw.githubusercontent.com/WD-planets/AstroToolkit/latest/docs/source/_static/erc_logo_light.png" width="200">
59
60
  </picture>
60
61
  </p>
62
+
63
+ License
64
+ =======
65
+
66
+ This project is licensed under the BSD 3-Clause License. See the LICENSE.rst file for details.
@@ -31,3 +31,8 @@ This project has received funding from the European Research Council (ERC) under
31
31
  <img src="https://raw.githubusercontent.com/WD-planets/AstroToolkit/latest/docs/source/_static/erc_logo_light.png" width="200">
32
32
  </picture>
33
33
  </p>
34
+
35
+ License
36
+ =======
37
+
38
+ This project is licensed under the BSD 3-Clause License. See the LICENSE.rst file for details.
@@ -96,6 +96,23 @@ Changes
96
96
  + other stuff that I forgot to write down
97
97
 
98
98
 
99
+ 2.0.4 Changes
100
+ =============
101
+ - Fixed datapages save_by_id not receiving fname
102
+ - DataSets now more reliably retain container/plot order
103
+ - Improved DataTable aesthetics, and stored text now dynamically downsizes to fit table
104
+ - Added vizier_mirror and simbad_mirror config keys to allow the use of Vizier and SIMBAD mirrors while CDS is experiencing issues
105
+ - Added vizier_caching option to enable/disable caching of astroquery Vizier data. Enabled by default
106
+
107
+ ===============
108
+ To-Do Pre-Paper
109
+ ===============
110
+ - units currently get converted to a set of pre-defined units - users should be able to use whatever valid units they want
111
+ - pandas series vs numpy arrays
112
+ - improve spectral fitting/radial velocity fitting
113
+ - max_width gets triggered too easily if spectrum is cropped since it is based on a fraction of the width, not the resolution
114
+ - Scoring: The score only measures how tightly the matched lines fit. It doesn’t reward the number of matches, so a chance two-line coincidence can beat a real four-line match. Ranking by match count, with scatter as the tiebreak, would be more robust.
115
+ - Could also weight matches based on line strength
99
116
 
100
117
  =========
101
118
  To-Do Now
@@ -104,6 +121,8 @@ To-Do Now
104
121
  - replace 'star' with e.g. system, source, etc.
105
122
  - check docstrings / comments
106
123
  - check type hints
124
+ - add spectral fitting to technical docs
125
+ - test sub groups of frequency peaks in power spectra (currently if signal is dominated by a weird signal like 0.001 etc., this and its harmonics are tested, which leaves the other possible real signals untested)
107
126
 
108
127
 
109
128
  ===========
@@ -111,6 +130,7 @@ To-Do Later
111
130
  ===========
112
131
  improved testing
113
132
 
133
+ - add option to switch between grid/row/column layout for multiple figs
114
134
  - get full set of spectral lines from NIST for rv fitting?
115
135
  - rename tutorial .py files
116
136
  - function/docs links in code examples (like for external libraries)?
@@ -144,5 +164,3 @@ improved testing
144
164
  - add annotations to ATK keywords in fits headers
145
165
  - let spectral peak fitting work in velocity-space (?)
146
166
  - image overlay DataFrame -> Table
147
-
148
- - AI thing (?)
@@ -20,4 +20,3 @@ python source/_intro_image.py
20
20
  # run again to ensure no argument change warnings, and to ensure includes are built
21
21
  make clean
22
22
  make html
23
-
@@ -17,6 +17,8 @@ release = pkg_version("AstroToolkit").split(".dev")[0]
17
17
  CONFIG["plot_settings"]["titles"] = False
18
18
  CONFIG["datapage_settings"]["grid_size"] = 150
19
19
  CONFIG["datapage_settings"]["font_size"] = 6
20
+ CONFIG["global_settings"]["vizier_mirror"] = "vizier.cfa.harvard.edu"
21
+ CONFIG["global_settings"]["simbad_mirror"] = "simbad.harvard.edu"
20
22
 
21
23
  print(f"\nBUILDING UNDER CURRENT ATK VERSION: {release}\n")
22
24
 
@@ -92,9 +94,7 @@ def attach_units(app, what, name, obj, options, lines):
92
94
  # not in use currently but doesn't hurt to leave
93
95
  lines.append(f".. _{obj.__name__}_Units:")
94
96
  lines.append("")
95
- lines.append(
96
- "The following attributes are automatically converted to :class:`~astropy.units.Quantity` with a default unit unless one is explictly provided:"
97
- )
97
+ lines.append("The following attributes are automatically converted to :class:`~astropy.units.Quantity` with a default unit unless one is explictly provided:")
98
98
 
99
99
  for attr, unit in obj._units.items():
100
100
  lines.append("")
@@ -130,9 +130,7 @@ def attach_plotting_params(app, what, name, obj, options, lines):
130
130
  # not in use currently but doesn't hurt to leave
131
131
  lines.append(f".. _{obj.__name__}_Plotting_Arguments:")
132
132
  lines.append("")
133
- lines.append(
134
- "The following keyword arguments are accepted when plotting via :meth:`~ATK.Models.DataSet.plot()` or :meth:`~ATK.Models.DataSet.open`."
135
- )
133
+ lines.append("The following keyword arguments are accepted when plotting via :meth:`~ATK.Models.DataSet.plot()` or :meth:`~ATK.Models.DataSet.open`.")
136
134
 
137
135
  for param, info in obj._plot_params.items():
138
136
  lines.append("")
@@ -157,9 +155,7 @@ def attach_data_methods(app, what, name, obj, options, lines):
157
155
  # not in use currently but doesn't hurt to leave
158
156
  lines.append(f".. _{obj.__name__}_Data_Methods:")
159
157
  lines.append("")
160
- lines.append(
161
- f"The following **Data Methods** are supported by :class:`~ATK.Models.{obj.__name__}` - either individually or through :meth:`DataSet.apply() <ATK.Models.DataSet.apply>`:"
162
- )
158
+ lines.append(f"The following **Data Methods** are supported by :class:`~ATK.Models.{obj.__name__}` - either individually or through :meth:`DataSet.apply() <ATK.Models.DataSet.apply>`:")
163
159
 
164
160
  data_methods = getattr(obj, "_data_methods", ())
165
161
  group_data_methods = getattr(obj, "_group_data_methods_doc", {})
@@ -10,7 +10,7 @@ ATK supports the creation of **datapages** as a means of neatly combining plots
10
10
  # isort: skip_file
11
11
  from bokeh.document import Document
12
12
  from ATK.Config import CONFIG
13
- CONFIG.reset()
13
+ # CONFIG.reset()
14
14
  CONFIG["datapage_settings"]["grid_size"] = 150
15
15
  CONFIG["datapage_settings"]["font_size"] = 6
16
16
  # sphinx_gallery_end_ignore
@@ -116,7 +116,7 @@ pass
116
116
  #
117
117
  # The majority of the returned :class:`~ATK.Models.DataSet`'s attributes are immediately clear, but there are a couple details to note:
118
118
  #
119
- # - :attr:`~ATK.Models.DataSet.targets` lists every :class:`ATK.Models.Target` of the search **as they were entered** (coordinates, frame and epoch).
119
+ # - :attr:`~ATK.Models.DataSet.targets` lists every :class:`~ATK.Models.Target` of the search **as they were entered** (coordinates, frame and epoch).
120
120
  #
121
121
  # - :attr:`~ATK.Models.DataSet.exception` states whether any exceptions were encountered. If :attr:`~ATK.Models.DataSet.exception` is ``True``, then the query encountered something unexpected. The most common cause of this is that service being utilised (in this case `Vizier <https://vizier.cds.unistra.fr/>`_) is experiencing downtime.
122
122
  #
@@ -145,7 +145,7 @@ pass
145
145
  #
146
146
  # Using the Returned Data
147
147
  # =======================
148
- # A :class:`ATK.Models.DataSet` **store any returned data as a list of containers matching the** ``kind`` **of data that was requested**. Since this tutorial performed a `Vizier <https://vizier.cds.unistra.fr/>`_ query for one target, the returned :class:`~ATK.Models.DataSet` contains a single :class:`~ATK.Models.Record`:
148
+ # A :class:`~ATK.Models.DataSet` **store any returned data as a list of containers matching the** ``kind`` **of data that was requested**. Since this tutorial performed a `Vizier <https://vizier.cds.unistra.fr/>`_ query for one target, the returned :class:`~ATK.Models.DataSet` contains a single :class:`~ATK.Models.Record`:
149
149
 
150
150
  galex_entry = galex_query.data[0]
151
151
  # sphinx_gallery_start_ignore
@@ -2,7 +2,7 @@
2
2
  ##################
3
3
  Local Data Storage
4
4
  ##################
5
- A :class:`ATK.Models.DataSet` of any kind can be stored as a local FITS file. These files can then be read to recreate the original :class:`~ATK.Models.DataSet`.
5
+ A :class:`~ATK.Models.DataSet` of any kind can be stored as a local FITS file. These files can then be read to recreate the original :class:`~ATK.Models.DataSet`.
6
6
 
7
7
  |
8
8
 
@@ -84,7 +84,7 @@ figure
84
84
  #
85
85
  # Configuring Axes Coordinates
86
86
  # ============================
87
- # So far, all images have had coordinate axes that are defined relative to the image centre, i.e. ``relative_axes = True`` (default). To instead use absolute coordinates on the sky, `pass ``relative_axes = False``:
87
+ # So far, all images have had coordinate axes that are defined relative to the image centre, i.e. ``relative_axes = True`` (default). To instead use absolute coordinates on the sky, pass ``relative_axes = False``:
88
88
 
89
89
  # sphinx_gallery_start_ignore
90
90
  ps_query.plot(relative_axes=False)
@@ -19,8 +19,10 @@ line-length = 240
19
19
  name = "AstroToolkit"
20
20
  dynamic = ["version"]
21
21
  authors = [
22
- { name="Ethan Moorfield", email="ethan.moorfield@hotmail.co.uk"},
22
+ { name="Ethan Moorfield", email="ethan.moorfield@outlook.com"},
23
23
  ]
24
+ license = "BSD-3-Clause"
25
+ license-files = ["LICENSE.rst"]
24
26
  description = "A package for the gathering, plotting and analysis of astronomical data."
25
27
  readme = "README.md"
26
28
  requires-python = ">=3.11"
@@ -196,9 +196,7 @@ def query(kind: str, targets: int | SkyCoord | Target | list[int | SkyCoord | Ta
196
196
  if any(target is RETURNS.EXCEPTION for target in targets):
197
197
  warnings.warn("Failed to generate requested targets, this is likely due to a Vizier fault.")
198
198
 
199
- structure = DataSet[kind](
200
- kind=None, survey=arguments.get("survey", None), targets=None, radius=arguments.get("radius", None), exception=True
201
- )
199
+ structure = DataSet[kind](kind=None, survey=arguments.get("survey", None), targets=None, radius=arguments.get("radius", None), exception=True)
202
200
 
203
201
  return structure
204
202
 
@@ -206,9 +204,7 @@ def query(kind: str, targets: int | SkyCoord | Target | list[int | SkyCoord | Ta
206
204
  if not arguments.get("corrections", True):
207
205
  for target in targets:
208
206
  initial_coords = target.initial_coords
209
- target.initial_coords = SkyCoord(
210
- ra=initial_coords.ra, dec=initial_coords.dec, frame=initial_coords.frame, obstime=initial_coords.obstime
211
- )
207
+ target.initial_coords = SkyCoord(ra=initial_coords.ra, dec=initial_coords.dec, frame=initial_coords.frame, obstime=initial_coords.obstime)
212
208
  target.coords = initial_coords
213
209
  target.identifier = None
214
210
  target.survey = None
@@ -3,7 +3,7 @@ from pathlib import Path
3
3
  PATH = Path.home() / ".AstroToolkit" / "ATK_config.ini"
4
4
 
5
5
  DEFAULTS = {
6
- "global_settings": {"unit_format": "symbol"},
6
+ "global_settings": {"unit_format": "symbol", "vizier_mirror": "vizier.cds.unistra.fr", "simbad_mirror": "simbad.cds.unistra.fr", "vizier_caching": True},
7
7
  "plot_settings": {
8
8
  "cache_time": 3600,
9
9
  "size": 500,
@@ -22,7 +22,10 @@ DEFAULTS = {
22
22
 
23
23
  CONFIG_KEY_DEFS = {
24
24
  "global_settings": {
25
- "unit_format": "Sets the default format when printing an astropy :class:`~astropy.units.Quantity`, from (symbol, text)."
25
+ "unit_format": "Sets the default format when printing an astropy :class:`~astropy.units.Quantity`, from (symbol, text).",
26
+ "vizier_mirror": "Sets the default mirror to use in Vizier queries throughout the package. Can be helpful if Vizier is experiencing downtime.",
27
+ "simbad_mirror": "Sets the default mirror to use in SIMBAD queries throughout the package. Can be helpful is SIMBAD is experiencing downtime.",
28
+ "vizier_caching": "If true, vizier results are read from the local cache where available.",
26
29
  },
27
30
  "plot_settings": {
28
31
  "cache_time": "Sets the duration for which figures (i.e. HTML pages) are cached to the ``~/.AstroToolkit/cached_figures`` directory in seconds.",
@@ -68,7 +68,8 @@ def dispatch_plotting(
68
68
  all_figures = do_plotting(all_figures, plotting_func, plot_method, containers, target, **kwargs)
69
69
 
70
70
  else:
71
- surveys = list(set(ctnr.survey for ctnr in containers))
71
+ # preserve order
72
+ surveys = list(dict.fromkeys(ctnr.survey for ctnr in containers))
72
73
 
73
74
  for survey in surveys:
74
75
  survey_containers = [ctnr for ctnr in containers if ctnr.survey == survey]
@@ -2,7 +2,7 @@ from bokeh.models import GridBox, InlineStyleSheet, Label, Range1d, TabPanel, Ta
2
2
  from bokeh.plotting import figure
3
3
 
4
4
  from ...configuration.base_config import BASE_CONFIG
5
- from ...plotting.datatable.plot_datatable import autosize_table
5
+ from ...plotting.datatable.plot_datatable import fit_table_font, autosize_table
6
6
  from ...structures.DataPages import DataPages
7
7
  from ...structures.DataSet import DataSet
8
8
  from ...structures.methods.apply import unpack_layout
@@ -15,19 +15,19 @@ TEXT_FONT = str(BASE_CONFIG._get("datapage_settings", "font"))
15
15
 
16
16
  def format_datatable(table, height, width):
17
17
  grid_size = BASE_CONFIG._get("datapage_settings", "grid_size")
18
+ target_width = grid_size * width
19
+ target_height = grid_size * height
18
20
 
19
21
  table.min_width = 0
20
- table = autosize_table(table, table.source, TEXT_SIZE, grid_size * height)
21
- table.width = grid_size * width
22
- table.height = grid_size * height
23
22
 
24
- table.sizing_mode = "fixed"
25
-
26
- style_sheet = InlineStyleSheet(
27
- css=f".slick-header-columns {{background-color: #e0e0e0 !important;font-family: {TEXT_FONT.lower()};font-size: {int(TEXT_SIZE[:-2])}pt; font-weight: normal}}.slick-row {{font-size: {int(TEXT_SIZE[:-2])}pt; font-weight: normal}}"
28
- )
23
+ base_font_pt = float(str(TEXT_SIZE).replace("pt", ""))
24
+ text_font = str(BASE_CONFIG._get("plot_settings", "font"))
25
+ font_pt = fit_table_font(table, target_width, base_font_pt, text_font)
29
26
 
30
- table.stylesheets = [style_sheet]
27
+ table = autosize_table(table, table.source, f"{font_pt}pt", target_height)
28
+ table.width = target_width
29
+ table.height = target_height
30
+ table.sizing_mode = "fixed"
31
31
 
32
32
  return table
33
33
 
@@ -219,6 +219,7 @@ def prepare_datasets(key: str, datasets: list[DataSet]):
219
219
  plot_dict, ctnr_dict, plot_ctnr_map = {}, {}, {}
220
220
  for dataset in datasets:
221
221
  ctnrs = [ctnr for ctnr in dataset.data if ctnr._target_key == key]
222
+
222
223
  if not dataset.figure:
223
224
  dataset.plot()
224
225
  plot_ids = [ctnr._plot_id for ctnr in ctnrs]
@@ -282,6 +283,10 @@ def get_datapage(layout: list[list]):
282
283
  for index, key in enumerate(target_keys):
283
284
  plots, ctnrs, plot_ctnr_map = prepare_datasets(key, datasets)
284
285
 
286
+ # print(plots)
287
+ # print(ctnrs)
288
+ # print(plot_ctnr_map)
289
+
285
290
  grid_children = []
286
291
 
287
292
  for region in regions:
@@ -0,0 +1,115 @@
1
+ from bokeh.models import ColumnDataSource
2
+ from bokeh.models import DataTable as bokeh_DataTable
3
+ from bokeh.models import TableColumn
4
+ from ...configuration.base_config import BASE_CONFIG
5
+ from ...structures.DataTable import DataTable
6
+ from ...utilities.defaults import PLOT_DIMENSIONS
7
+
8
+ from bokeh.models import InlineStyleSheet
9
+
10
+ # never shrink text past this, no matter how narrow the table gets
11
+ MIN_FONT_PT = 6.0
12
+
13
+
14
+ def autosize_table(table, source, font_size_pt, max_height=None):
15
+ # convert pt -> pixels
16
+ font_px = int(float(font_size_pt.replace("pt", "")) * 1.333)
17
+ # scale row + header height
18
+ row_height = max(int(font_px * 1.6), 25)
19
+ header_height = max(int(font_px * 1.8), 30)
20
+ table.row_height = row_height
21
+ # number of rows
22
+ n_rows = len(source.data.get(next(iter(source.data)), []))
23
+ height = header_height + n_rows * row_height
24
+ if max_height:
25
+ height = min(height, max_height)
26
+ table.height = height
27
+
28
+ return table
29
+
30
+
31
+ def _get_max_len(col, values):
32
+ if values is None:
33
+ return len(col)
34
+ return max([len(str(v)) for v in values] + [len(col)])
35
+
36
+
37
+ def _get_col_width(max_len, char_px):
38
+ return int(max_len * char_px) + 16
39
+
40
+
41
+ def _char_px_for_font(font_pt):
42
+ """
43
+ (Rough) Pixels-per-character for a given point size.
44
+ """
45
+
46
+ return (font_pt * 1.333) * 0.55
47
+
48
+
49
+ def fit_table_font(table, target_width, base_font_pt, text_font):
50
+ fields = [col.field for col in table.columns]
51
+ max_lens = [_get_max_len(f, table.source.data.get(f)) for f in fields]
52
+ total_chars = sum(max_lens) or 1
53
+ overhead = 16 * len(fields)
54
+ natural_char_px = _char_px_for_font(base_font_pt)
55
+ max_char_px = (target_width - overhead) / total_chars
56
+ char_px = min(natural_char_px, max(max_char_px, 0))
57
+ font_pt = max(char_px / (1.333 * 0.55), MIN_FONT_PT)
58
+
59
+ for col, max_len in zip(table.columns, max_lens):
60
+ col.width = _get_col_width(max_len, char_px)
61
+
62
+ header_pt = round(font_pt, 1)
63
+ row_pt = round(max(font_pt - round(0.2 * font_pt, 1), MIN_FONT_PT), 0)
64
+ # stop letters like (g,y,p) from clipping through bottom of header
65
+ header_px = max(int(font_pt * 1.333 * 1.8), 30)
66
+
67
+ css = (
68
+ f".slick-header-columns {{background-color: #e0e0e0 !important;"
69
+ f"font-family: {text_font.lower()};font-size: {header_pt}pt; font-weight: normal;"
70
+ f"height: {header_px}px !important;}}"
71
+ f".slick-header-column {{height: {header_px}px !important;"
72
+ f"box-sizing: border-box !important;"
73
+ f"padding-top: 0px !important;"
74
+ f"line-height: {header_px}px !important;}}"
75
+ f".slick-row {{font-size: {row_pt}pt; font-weight: normal}}"
76
+ )
77
+
78
+ table.stylesheets = [InlineStyleSheet(css=css)]
79
+
80
+ return font_pt
81
+
82
+
83
+ def plot(dt: DataTable, **kwargs):
84
+ source = ColumnDataSource(dt.table.to_pandas())
85
+
86
+ text_size = str(BASE_CONFIG._get("plot_settings", "font_size"))
87
+ if not text_size.endswith("pt"):
88
+ text_size += "pt"
89
+ text_font = str(BASE_CONFIG._get("plot_settings", "font"))
90
+ base_font_pt = float(text_size[:-2])
91
+
92
+ dimensions = PLOT_DIMENSIONS["datatable"]
93
+ target_width = int(BASE_CONFIG._get("plot_settings", "size")) * dimensions[0]
94
+
95
+ cols = [TableColumn(field=c, title=c) for c in dt.table.colnames]
96
+
97
+ table = bokeh_DataTable(
98
+ source=source,
99
+ columns=cols,
100
+ height=400,
101
+ autosize_mode="force_fit",
102
+ sizing_mode="stretch_width",
103
+ min_width=target_width,
104
+ )
105
+
106
+ # Sets column widths + stylesheet font-size in place, returns the font
107
+ # size actually applied (<= base_font_pt) so it fits target_width.
108
+ font_pt = fit_table_font(table, target_width, base_font_pt, text_font)
109
+
110
+ height = int(BASE_CONFIG._get("plot_settings", "size")) * dimensions[1]
111
+ table = autosize_table(table, source, f"{font_pt}pt", height)
112
+
113
+ dt._plot_id = table.id
114
+ return table
115
+
@@ -63,6 +63,9 @@ def format_plot(kind: str, plot: figure, force_square: bool = False):
63
63
  Formats the aesthetics of plots using the ATK config
64
64
  """
65
65
 
66
+ if plot is None:
67
+ return None
68
+
66
69
  # resize
67
70
  dimensions = PLOT_DIMENSIONS[kind]
68
71
  width = int(BASE_CONFIG._get("plot_settings", "size")) * dimensions[0]
@@ -10,18 +10,26 @@ from ..colours import get_palette
10
10
 
11
11
  # wavelengths in Angstroms
12
12
  OVERLAY_LINES = [
13
- {"label": "Hydrogen", "wavelength": 8503},
14
- {"label": "Hydrogen", "wavelength": 8454},
15
- {"label": "Hydrogen", "wavelength": 8598},
16
- {"label": "Hydrogen", "wavelength": 8665},
17
- {"label": "Hydrogen", "wavelength": 6562, "line_label": r"\[\text{H}\alpha\]"},
18
- {"label": "Hydrogen", "wavelength": 4862, "line_label": r"\[\text{H}\beta\]"},
19
- {"label": "Hydrogen", "wavelength": 4340, "line_label": r"\[\text{H}\gamma\]"},
13
+ # Paschen series (n=18 -> 10 -> 3)
14
+ *[{"label": "Hydrogen", "wavelength": w} for w in [8437.959, 8467.257, 8502.486, 8545.386, 8598.395, 8665.022, 8750.476, 8862.786, 9014.913]],
15
+ # Balmer series
16
+ {"label": "Hydrogen", "wavelength": 6562.797, "line_label": r"\[\text{H}\alpha\]"},
17
+ {"label": "Hydrogen", "wavelength": 4861.329, "line_label": r"\[\text{H}\beta\]"},
18
+ {"label": "Hydrogen", "wavelength": 4340.462, "line_label": r"\[\text{H}\gamma\]"},
20
19
  {"label": "Hydrogen", "wavelength": 4101.734, "line_label": r"\[\text{H}\delta\]"},
21
- *[{"label": "Helium", "wavelength": w} for w in [4472, 4686, 4713, 4921, 5016, 5876, 6678]],
22
- *[{"label": "Sodium", "wavelength": w} for w in [8183, 8195]],
23
- *[{"label": "Calcium", "wavelength": w} for w in [3934, 3967, 8498, 8542, 8662]],
24
- *[{"label": "Calcium II", "wavelength": w} for w in [3608, 3854, 4109, 4383, 4737, 5165, 5636, 6191]],
20
+ {"label": "Hydrogen", "wavelength": 3970.071, "line_label": r"\[\text{H}\epsilon\]"},
21
+ {"label": "Hydrogen", "wavelength": 3889.048, "line_label": r"\[\text{H}8\]"},
22
+ {"label": "Hydrogen", "wavelength": 3835.384, "line_label": r"\[\text{H}9\]"},
23
+ {"label": "Hydrogen", "wavelength": 3797.897, "line_label": r"\[\text{H}10\]"},
24
+ # He I, plus He II 4685.684 and 5411.52
25
+ *[{"label": "Helium", "wavelength": w} for w in [3888.643, 4026.206, 4387.929, 4471.501, 4685.684, 4713.174, 4921.931, 5015.678, 5411.52, 5875.671, 6678.152, 7065.249, 7281.351]],
26
+ *[{"label": "Sodium", "wavelength": w} for w in [5889.950, 5895.924, 8183.256, 8194.821]],
27
+ # Ca II H & K, Ca I 4226.727, Ca II infrared triplet
28
+ *[{"label": "Calcium", "wavelength": w} for w in [3933.661, 3968.467, 4226.727, 8498.018, 8542.089, 8662.140]],
29
+ # Mg II 4481 blend, Mg I b triplet
30
+ *[{"label": "Magnesium", "wavelength": w} for w in [4481.222, 5167.322, 5172.684, 5183.604]],
31
+ # unchanged from the previous list - not atomic Ca II
32
+ # *[{"label": "Calcium II", "wavelength": w} for w in [3608, 3854, 4109, 4383, 4737, 5165, 5636, 6191]],
25
33
  ]
26
34
 
27
35
 
@@ -33,6 +33,7 @@ def get_overlay_data(image: Image, target: int | SkyCoord, survey: str, survey_i
33
33
 
34
34
  if not non_gaia_data:
35
35
  return pd.DataFrame()
36
+
36
37
  non_gaia_data = non_gaia_data[0].table
37
38
 
38
39
  gaia_data = query(kind="vizier", targets=image.search_pos, radius=radius, survey="gaia").data
@@ -103,9 +104,7 @@ def get_overlay_data(image: Image, target: int | SkyCoord, survey: str, survey_i
103
104
  # if rng < 0.5:
104
105
  # dist_val = None
105
106
 
106
- gaia_coords.append(
107
- SkyCoord(ra=ra, dec=dec, frame="icrs", pm_ra_cosdec=pmra, pm_dec=pmdec, distance=dist_val, obstime=gaia_epoch)
108
- )
107
+ gaia_coords.append(SkyCoord(ra=ra, dec=dec, frame="icrs", pm_ra_cosdec=pmra, pm_dec=pmdec, distance=dist_val, obstime=gaia_epoch))
109
108
 
110
109
  non_gaia_coords = [c.transform_to("icrs") for c in non_gaia_coords]
111
110
  gaia_coords = correct_coords(gaia_coords, non_gaia_epoch)
@@ -132,10 +131,7 @@ def get_overlay_data(image: Image, target: int | SkyCoord, survey: str, survey_i
132
131
  if len(matched_index):
133
132
  pm_ra[matched_index] = [gaia_coords[i].pm_ra_cosdec.to_value(u.mas / u.yr) for i in index[matched_index]]
134
133
  pm_dec[matched_index] = [gaia_coords[i].pm_dec.to_value(u.mas / u.yr) for i in index[matched_index]]
135
- dist[matched_index] = [
136
- gaia_coords[i].distance.to_value(u.pc) if gaia_coords[i].distance.unit is not u.one else np.nan
137
- for i in index[matched_index]
138
- ]
134
+ dist[matched_index] = [gaia_coords[i].distance.to_value(u.pc) if gaia_coords[i].distance.unit is not u.one else np.nan for i in index[matched_index]]
139
135
 
140
136
  new_coords = []
141
137
 
@@ -150,9 +146,7 @@ def get_overlay_data(image: Image, target: int | SkyCoord, survey: str, survey_i
150
146
  elif np.isnan(dist_val):
151
147
  raise ValueError("Bad distance.")
152
148
 
153
- new_coords.append(
154
- SkyCoord(ra=c.ra, dec=c.dec, frame="icrs", obstime=c.obstime, pm_ra_cosdec=pmra_val, pm_dec=pmdec_val, distance=dist_val)
155
- )
149
+ new_coords.append(SkyCoord(ra=c.ra, dec=c.dec, frame="icrs", obstime=c.obstime, pm_ra_cosdec=pmra_val, pm_dec=pmdec_val, distance=dist_val))
156
150
 
157
151
  non_gaia_coords = new_coords
158
152
  non_gaia_coords, correction = correct_coords(non_gaia_coords, image.epoch, get_correction=True)
@@ -239,9 +233,7 @@ def get_overlay_data(image: Image, target: int | SkyCoord, survey: str, survey_i
239
233
 
240
234
  ids = get_ids(final_coords, BASE_CONFIG._get("overlay_settings", "simbad_radius") * u.arcsec)
241
235
 
242
- if ids is RETURNS.EXCEPTION:
243
- return ids
244
- elif ids is RETURNS.NULL:
236
+ if ids is RETURNS.EXCEPTION or ids is RETURNS.NULL:
245
237
  final_df["simbad_id"] = "None"
246
238
  else:
247
239
  final_df["simbad_id"] = ids