py-lfkit 0.2.0__tar.gz → 0.3.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.
Files changed (329) hide show
  1. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/.gitignore +16 -10
  2. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/CITATION.cff +2 -2
  3. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/PKG-INFO +1 -1
  4. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/about/index.rst +4 -4
  5. py_lfkit-0.3.0/docs/about/photometry_overview.rst +421 -0
  6. py_lfkit-0.3.0/docs/api/index.rst +16 -0
  7. py_lfkit-0.3.0/docs/api/lfkit.api.conditional_luminosity_function.rst +12 -0
  8. py_lfkit-0.3.0/docs/api/lfkit.api.corrections.rst +12 -0
  9. py_lfkit-0.3.0/docs/api/lfkit.api.luminosity_function.rst +12 -0
  10. py_lfkit-0.3.0/docs/api/lfkit.api.rst +15 -0
  11. py_lfkit-0.3.0/docs/api/lfkit.corrections.color_anchors.rst +12 -0
  12. py_lfkit-0.3.0/docs/api/lfkit.corrections.filters.rst +17 -0
  13. py_lfkit-0.3.0/docs/api/lfkit.corrections.kcorrect_backend.rst +12 -0
  14. py_lfkit-0.3.0/docs/api/lfkit.corrections.kcorrect_from_color.rst +12 -0
  15. py_lfkit-0.3.0/docs/api/lfkit.corrections.kcorrect_grids.rst +14 -0
  16. py_lfkit-0.3.0/docs/api/lfkit.corrections.poggianti1997.rst +21 -0
  17. py_lfkit-0.3.0/docs/api/lfkit.corrections.responses.rst +16 -0
  18. py_lfkit-0.3.0/docs/api/lfkit.corrections.rst +19 -0
  19. py_lfkit-0.3.0/docs/api/lfkit.cosmo.cosmology.rst +17 -0
  20. py_lfkit-0.3.0/docs/api/lfkit.cosmo.rst +13 -0
  21. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.completeness.rst +16 -0
  22. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.conditional_integrals.rst +14 -0
  23. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.conditional_models.rst +12 -0
  24. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.integrals.rst +21 -0
  25. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.composite.rst +13 -0
  26. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.gaussian.rst +13 -0
  27. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.modifiers.rst +12 -0
  28. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.power_law.rst +15 -0
  29. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.rst +17 -0
  30. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.schechter.rst +19 -0
  31. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.parameter_models.rst +23 -0
  32. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.redshift_density.rst +13 -0
  33. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.registry.rst +24 -0
  34. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.rst +20 -0
  35. py_lfkit-0.3.0/docs/api/lfkit.photometry.luminosities.rst +16 -0
  36. py_lfkit-0.3.0/docs/api/lfkit.photometry.magnitudes.rst +16 -0
  37. py_lfkit-0.3.0/docs/api/lfkit.photometry.rst +14 -0
  38. py_lfkit-0.3.0/docs/api/lfkit.rst +18 -0
  39. py_lfkit-0.3.0/docs/api/lfkit.utils.download_poggianti97_data.rst +12 -0
  40. py_lfkit-0.3.0/docs/api/lfkit.utils.evaluators.rst +16 -0
  41. py_lfkit-0.3.0/docs/api/lfkit.utils.integrators.rst +13 -0
  42. py_lfkit-0.3.0/docs/api/lfkit.utils.interpolation.rst +15 -0
  43. py_lfkit-0.3.0/docs/api/lfkit.utils.io.rst +18 -0
  44. py_lfkit-0.3.0/docs/api/lfkit.utils.rst +20 -0
  45. py_lfkit-0.3.0/docs/api/lfkit.utils.types.rst +6 -0
  46. py_lfkit-0.3.0/docs/api/lfkit.utils.units.rst +17 -0
  47. py_lfkit-0.3.0/docs/api/lfkit.utils.validators.rst +14 -0
  48. py_lfkit-0.3.0/docs/citation.rst +46 -0
  49. py_lfkit-0.3.0/docs/contributing.rst +128 -0
  50. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/examples/catalog_completeness.rst +49 -34
  51. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/examples/conditional_luminosity_function.rst +271 -186
  52. py_lfkit-0.3.0/docs/examples/index.rst +624 -0
  53. py_lfkit-0.3.0/docs/examples/lf_models/composite_models.rst +171 -0
  54. py_lfkit-0.3.0/docs/examples/lf_models/gaussian_models.rst +130 -0
  55. py_lfkit-0.3.0/docs/examples/lf_models/index.rst +33 -0
  56. {py_lfkit-0.2.0/docs/examples → py_lfkit-0.3.0/docs/examples/lf_models}/model_registry.rst +1 -1
  57. py_lfkit-0.3.0/docs/examples/lf_models/power_law_models.rst +205 -0
  58. py_lfkit-0.3.0/docs/examples/lf_models/schechter_models.rst +264 -0
  59. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/examples/magnitude_integrals.rst +134 -46
  60. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/examples/magnitudes_and_luminosities.rst +13 -8
  61. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/examples/redshift_density.rst +13 -11
  62. py_lfkit-0.3.0/docs/index.rst +61 -0
  63. py_lfkit-0.3.0/docs/installation.rst +47 -0
  64. py_lfkit-0.3.0/docs/license.rst +11 -0
  65. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/_version.py +3 -3
  66. py_lfkit-0.3.0/src/lfkit/api/_namespaces.py +139 -0
  67. py_lfkit-0.3.0/src/lfkit/api/conditional_luminosity_function.py +185 -0
  68. py_lfkit-0.3.0/src/lfkit/api/luminosity_function.py +399 -0
  69. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/cosmo/cosmology.py +1 -1
  70. py_lfkit-0.3.0/src/lfkit/luminosity_functions/_discovery.py +36 -0
  71. py_lfkit-0.2.0/src/lfkit/photometry/catalog_completeness.py → py_lfkit-0.3.0/src/lfkit/luminosity_functions/completeness.py +14 -14
  72. py_lfkit-0.3.0/src/lfkit/luminosity_functions/conditional_models.py +83 -0
  73. py_lfkit-0.2.0/src/lfkit/photometry/lf_integrals.py → py_lfkit-0.3.0/src/lfkit/luminosity_functions/integrals.py +312 -36
  74. py_lfkit-0.3.0/src/lfkit/luminosity_functions/models/composite.py +96 -0
  75. py_lfkit-0.3.0/src/lfkit/luminosity_functions/models/gaussian.py +89 -0
  76. py_lfkit-0.3.0/src/lfkit/luminosity_functions/models/modifiers.py +52 -0
  77. py_lfkit-0.3.0/src/lfkit/luminosity_functions/models/power_law.py +115 -0
  78. py_lfkit-0.2.0/src/lfkit/photometry/luminosity_function.py → py_lfkit-0.3.0/src/lfkit/luminosity_functions/models/schechter.py +2 -2
  79. py_lfkit-0.2.0/src/lfkit/photometry/lf_redshift_density.py → py_lfkit-0.3.0/src/lfkit/luminosity_functions/redshift_density.py +10 -5
  80. py_lfkit-0.3.0/src/lfkit/luminosity_functions/registry.py +203 -0
  81. py_lfkit-0.3.0/src/lfkit/photometry/__init__.py +0 -0
  82. py_lfkit-0.3.0/src/lfkit/photometry/luminosities.py +183 -0
  83. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/photometry/magnitudes.py +8 -0
  84. py_lfkit-0.3.0/src/lfkit/utils/__init__.py +0 -0
  85. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/utils/integrators.py +1 -1
  86. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/py_lfkit.egg-info/PKG-INFO +1 -1
  87. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/py_lfkit.egg-info/SOURCES.txt +50 -35
  88. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/benchmarks/test_cacciato_clf_reference.py +23 -8
  89. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/benchmarks/test_cacciato_hod_reference.py +22 -10
  90. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_api_conditional_luminosity_function.py +10 -62
  91. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_api_luminosity_function.py +88 -11
  92. py_lfkit-0.2.0/tests/test_photometry_completeness.py → py_lfkit-0.3.0/tests/test_lumfuncs_completeness.py +6 -6
  93. py_lfkit-0.2.0/tests/test_photometry_completeness_fake_catalog.py → py_lfkit-0.3.0/tests/test_lumfuncs_completeness_fake_catalog.py +9 -9
  94. py_lfkit-0.2.0/tests/test_photometry_conditional_lf_integrals.py → py_lfkit-0.3.0/tests/test_lumfuncs_conditional_integrals.py +1 -1
  95. py_lfkit-0.2.0/tests/test_photometry_conditional_lf_models.py → py_lfkit-0.3.0/tests/test_lumfuncs_conditional_models.py +48 -177
  96. py_lfkit-0.2.0/tests/test_photometry_lf_integrals.py → py_lfkit-0.3.0/tests/test_lumfuncs_integrals.py +214 -4
  97. py_lfkit-0.2.0/tests/test_photometry_luminosity_function.py → py_lfkit-0.3.0/tests/test_lumfuncs_models_schechter.py +1 -1
  98. py_lfkit-0.2.0/tests/test_photometry_lf_parameter_models.py → py_lfkit-0.3.0/tests/test_lumfuncs_parameter_models.py +1 -1
  99. py_lfkit-0.2.0/tests/test_photometry_lf_redshift_density.py → py_lfkit-0.3.0/tests/test_lumfuncs_redshift_density.py +5 -5
  100. py_lfkit-0.3.0/tests/test_photometry_luminosities.py +82 -0
  101. py_lfkit-0.2.0/docs/about/lf_overview.rst +0 -541
  102. py_lfkit-0.2.0/docs/api/index.rst +0 -7
  103. py_lfkit-0.2.0/docs/api/lfkit.api.conditional_luminosity_function.rst +0 -7
  104. py_lfkit-0.2.0/docs/api/lfkit.api.corrections.rst +0 -7
  105. py_lfkit-0.2.0/docs/api/lfkit.api.luminosity_function.rst +0 -7
  106. py_lfkit-0.2.0/docs/api/lfkit.api.rst +0 -20
  107. py_lfkit-0.2.0/docs/api/lfkit.corrections.color_anchors.rst +0 -7
  108. py_lfkit-0.2.0/docs/api/lfkit.corrections.filters.rst +0 -7
  109. py_lfkit-0.2.0/docs/api/lfkit.corrections.kcorrect_backend.rst +0 -7
  110. py_lfkit-0.2.0/docs/api/lfkit.corrections.kcorrect_from_color.rst +0 -7
  111. py_lfkit-0.2.0/docs/api/lfkit.corrections.kcorrect_grids.rst +0 -7
  112. py_lfkit-0.2.0/docs/api/lfkit.corrections.poggianti1997.rst +0 -7
  113. py_lfkit-0.2.0/docs/api/lfkit.corrections.responses.rst +0 -7
  114. py_lfkit-0.2.0/docs/api/lfkit.corrections.rst +0 -24
  115. py_lfkit-0.2.0/docs/api/lfkit.cosmo.cosmology.rst +0 -7
  116. py_lfkit-0.2.0/docs/api/lfkit.cosmo.rst +0 -18
  117. py_lfkit-0.2.0/docs/api/lfkit.photometry.catalog_completeness.rst +0 -7
  118. py_lfkit-0.2.0/docs/api/lfkit.photometry.conditional_lf_integrals.rst +0 -7
  119. py_lfkit-0.2.0/docs/api/lfkit.photometry.conditional_lf_models.rst +0 -7
  120. py_lfkit-0.2.0/docs/api/lfkit.photometry.lf_integrals.rst +0 -7
  121. py_lfkit-0.2.0/docs/api/lfkit.photometry.lf_parameter_models.rst +0 -7
  122. py_lfkit-0.2.0/docs/api/lfkit.photometry.lf_redshift_density.rst +0 -7
  123. py_lfkit-0.2.0/docs/api/lfkit.photometry.luminosities.rst +0 -7
  124. py_lfkit-0.2.0/docs/api/lfkit.photometry.luminosity_function.rst +0 -7
  125. py_lfkit-0.2.0/docs/api/lfkit.photometry.magnitudes.rst +0 -7
  126. py_lfkit-0.2.0/docs/api/lfkit.photometry.rst +0 -26
  127. py_lfkit-0.2.0/docs/api/lfkit.rst +0 -22
  128. py_lfkit-0.2.0/docs/api/lfkit.utils.download_poggianti97_data.rst +0 -7
  129. py_lfkit-0.2.0/docs/api/lfkit.utils.evaluators.rst +0 -7
  130. py_lfkit-0.2.0/docs/api/lfkit.utils.integrators.rst +0 -7
  131. py_lfkit-0.2.0/docs/api/lfkit.utils.interpolation.rst +0 -7
  132. py_lfkit-0.2.0/docs/api/lfkit.utils.io.rst +0 -7
  133. py_lfkit-0.2.0/docs/api/lfkit.utils.rst +0 -25
  134. py_lfkit-0.2.0/docs/api/lfkit.utils.types.rst +0 -7
  135. py_lfkit-0.2.0/docs/api/lfkit.utils.units.rst +0 -7
  136. py_lfkit-0.2.0/docs/api/lfkit.utils.validators.rst +0 -7
  137. py_lfkit-0.2.0/docs/examples/api_overview.rst +0 -553
  138. py_lfkit-0.2.0/docs/examples/index.rst +0 -23
  139. py_lfkit-0.2.0/docs/examples/luminosity_function_models.rst +0 -626
  140. py_lfkit-0.2.0/docs/index.rst +0 -64
  141. py_lfkit-0.2.0/src/lfkit/api/_clf_models.py +0 -23
  142. py_lfkit-0.2.0/src/lfkit/api/_completeness.py +0 -51
  143. py_lfkit-0.2.0/src/lfkit/api/_expose.py +0 -45
  144. py_lfkit-0.2.0/src/lfkit/api/_integrals.py +0 -53
  145. py_lfkit-0.2.0/src/lfkit/api/_lf_param_models.py +0 -77
  146. py_lfkit-0.2.0/src/lfkit/api/_luminosities.py +0 -36
  147. py_lfkit-0.2.0/src/lfkit/api/_magnitudes.py +0 -27
  148. py_lfkit-0.2.0/src/lfkit/api/_redshift_density.py +0 -39
  149. py_lfkit-0.2.0/src/lfkit/api/conditional_luminosity_function.py +0 -161
  150. py_lfkit-0.2.0/src/lfkit/api/luminosity_function.py +0 -370
  151. py_lfkit-0.2.0/src/lfkit/photometry/conditional_lf_models.py +0 -424
  152. py_lfkit-0.2.0/src/lfkit/photometry/luminosities.py +0 -426
  153. py_lfkit-0.2.0/tests/test_photometry_luminosities.py +0 -377
  154. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/.github/workflows/ci.yml +0 -0
  155. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/.github/workflows/docs.yml +0 -0
  156. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/.github/workflows/publish.yml +0 -0
  157. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/LICENSE +0 -0
  158. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/MANIFEST.in +0 -0
  159. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/README.md +0 -0
  160. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/Makefile +0 -0
  161. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/_static/custom.css +0 -0
  162. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/_static/logos/lfkit_logo-icon.png +0 -0
  163. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/_static/logos/lfkit_logo.pdf +0 -0
  164. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/_static/logos/lfkit_logo.png +0 -0
  165. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/_static/logos/lfkit_logo.svg +0 -0
  166. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/_templates/pages_redirect.html +0 -0
  167. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/_templates/sidebar/brand.html +0 -0
  168. /py_lfkit-0.2.0/docs/about/corr_overview.rst → /py_lfkit-0.3.0/docs/about/corrections_overview.rst +0 -0
  169. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/conf.py +0 -0
  170. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/examples/kcorrect_examples.rst +0 -0
  171. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/examples/poggianti_examples.rst +0 -0
  172. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/docs/make.bat +0 -0
  173. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/logo/lfkit_github_banner.png +0 -0
  174. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/logo/lfkit_logo-icon.png +0 -0
  175. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/logo/lfkit_logo.pdf +0 -0
  176. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/logo/lfkit_logo.png +0 -0
  177. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/logo/lfkit_logo.svg +0 -0
  178. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/logo/make_gh_banner.py +0 -0
  179. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/logo/make_logo.py +0 -0
  180. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-g__blue-red__surveys-native-gr.pdf +0 -0
  181. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-g__blue-red__surveys-native-gr.png +0 -0
  182. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-i__blue-red__surveys-native-gr.pdf +0 -0
  183. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-i__blue-red__surveys-native-gr.png +0 -0
  184. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-r__blue-red__surveys-native-gr.pdf +0 -0
  185. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-r__blue-red__surveys-native-gr.png +0 -0
  186. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-u__blue-red__surveys-native-gr.pdf +0 -0
  187. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-u__blue-red__surveys-native-gr.png +0 -0
  188. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-z__blue-red__surveys-native-gr.pdf +0 -0
  189. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-z__blue-red__surveys-native-gr.png +0 -0
  190. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-B__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  191. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-B__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  192. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-I__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  193. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-I__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  194. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-R__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  195. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-R__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  196. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-U__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  197. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-U__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  198. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-V__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  199. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-V__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  200. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-g__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  201. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-g__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  202. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-i__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  203. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-i__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  204. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-r__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  205. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-r__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  206. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone/K__band_bessell_B.pdf +0 -0
  207. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone/K__band_bessell_I.pdf +0 -0
  208. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone/K__band_bessell_R.pdf +0 -0
  209. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone/K__band_bessell_U.pdf +0 -0
  210. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone/K__band_bessell_V.pdf +0 -0
  211. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_Y.pdf +0 -0
  212. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_g.pdf +0 -0
  213. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_i.pdf +0 -0
  214. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_r.pdf +0 -0
  215. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_u.pdf +0 -0
  216. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_z.pdf +0 -0
  217. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone/K__band_sdss_g0.pdf +0 -0
  218. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone/K__band_sdss_i0.pdf +0 -0
  219. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone/K__band_sdss_r0.pdf +0 -0
  220. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone/K__band_sdss_u0.pdf +0 -0
  221. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone/K__band_sdss_z0.pdf +0 -0
  222. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_B.pdf +0 -0
  223. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_Ic.pdf +0 -0
  224. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_Rc.pdf +0 -0
  225. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_V.pdf +0 -0
  226. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_g.pdf +0 -0
  227. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_i.pdf +0 -0
  228. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_r.pdf +0 -0
  229. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_z.pdf +0 -0
  230. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_B_type_E.pdf +0 -0
  231. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_B_type_E2.pdf +0 -0
  232. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_B_type_Sa.pdf +0 -0
  233. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_B_type_Sc.pdf +0 -0
  234. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_H_type_E.pdf +0 -0
  235. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_H_type_E2.pdf +0 -0
  236. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_H_type_Sa.pdf +0 -0
  237. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_H_type_Sc.pdf +0 -0
  238. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_I_type_E.pdf +0 -0
  239. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_I_type_E2.pdf +0 -0
  240. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_I_type_Sa.pdf +0 -0
  241. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_I_type_Sc.pdf +0 -0
  242. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_Ic_type_E.pdf +0 -0
  243. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_Ic_type_Sc.pdf +0 -0
  244. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_J_type_E.pdf +0 -0
  245. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_J_type_E2.pdf +0 -0
  246. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_J_type_Sa.pdf +0 -0
  247. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_J_type_Sc.pdf +0 -0
  248. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_K_type_E.pdf +0 -0
  249. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_K_type_E2.pdf +0 -0
  250. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_K_type_Sa.pdf +0 -0
  251. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_K_type_Sc.pdf +0 -0
  252. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_R_type_E.pdf +0 -0
  253. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_R_type_E2.pdf +0 -0
  254. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_R_type_Sa.pdf +0 -0
  255. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_R_type_Sc.pdf +0 -0
  256. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_Rc_type_E.pdf +0 -0
  257. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_Rc_type_Sc.pdf +0 -0
  258. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_U_type_E.pdf +0 -0
  259. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_U_type_E2.pdf +0 -0
  260. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_U_type_Sa.pdf +0 -0
  261. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_U_type_Sc.pdf +0 -0
  262. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_V_type_E.pdf +0 -0
  263. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_V_type_E2.pdf +0 -0
  264. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_V_type_Sa.pdf +0 -0
  265. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_V_type_Sc.pdf +0 -0
  266. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_g_type_E.pdf +0 -0
  267. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_g_type_E2.pdf +0 -0
  268. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_g_type_Sa.pdf +0 -0
  269. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/output/plots/poggianti1997/ke_pogg1997_band_g_type_Sc.pdf +0 -0
  270. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/pyproject.toml +0 -0
  271. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/scripts/compare_kcorr_surveys.py +0 -0
  272. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/scripts/compare_poggianti_to_kcorrect.py +0 -0
  273. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/scripts/make_fake_magnitude_limited_catalog.py +0 -0
  274. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/scripts/plot_poggianti1997_corrections.py +0 -0
  275. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/setup.cfg +0 -0
  276. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/__init__.py +0 -0
  277. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/api/__init__.py +0 -0
  278. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/api/corrections.py +0 -0
  279. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/corrections/__init__.py +0 -0
  280. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/corrections/color_anchors.py +0 -0
  281. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/corrections/filters.py +0 -0
  282. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/corrections/kcorrect_backend.py +0 -0
  283. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/corrections/kcorrect_from_color.py +0 -0
  284. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/corrections/kcorrect_grids.py +0 -0
  285. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/corrections/poggianti1997.py +0 -0
  286. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/corrections/responses.py +0 -0
  287. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/cosmo/__init__.py +0 -0
  288. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/data/demo_catalogs/fake_magnitude_limited_catalog.csv +0 -0
  289. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/data/kcorrect/grids/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone.npz +0 -0
  290. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/data/kcorrect/grids/kcorrect__decam__z0.0000_4.0__Nz801__bsnone.npz +0 -0
  291. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/data/kcorrect/grids/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone.npz +0 -0
  292. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/data/kcorrect/grids/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone.npz +0 -0
  293. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/data/poggianti1997/__init__.py +0 -0
  294. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/data/poggianti1997/ecorr.csv +0 -0
  295. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/data/poggianti1997/filters.csv +0 -0
  296. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/data/poggianti1997/kcorr.csv +0 -0
  297. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/data/poggianti1997/kcorrv.csv +0 -0
  298. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/data/poggianti1997/sed.csv +0 -0
  299. {py_lfkit-0.2.0/src/lfkit/photometry → py_lfkit-0.3.0/src/lfkit/luminosity_functions}/__init__.py +0 -0
  300. /py_lfkit-0.2.0/src/lfkit/photometry/conditional_lf_integrals.py → /py_lfkit-0.3.0/src/lfkit/luminosity_functions/conditional_integrals.py +0 -0
  301. {py_lfkit-0.2.0/src/lfkit/utils → py_lfkit-0.3.0/src/lfkit/luminosity_functions/models}/__init__.py +0 -0
  302. /py_lfkit-0.2.0/src/lfkit/photometry/lf_parameter_models.py → /py_lfkit-0.3.0/src/lfkit/luminosity_functions/parameter_models.py +0 -0
  303. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/utils/download_poggianti97_data.py +0 -0
  304. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/utils/evaluators.py +0 -0
  305. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/utils/interpolation.py +0 -0
  306. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/utils/io.py +0 -0
  307. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/utils/types.py +0 -0
  308. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/utils/units.py +0 -0
  309. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/lfkit/utils/validators.py +0 -0
  310. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/py_lfkit.egg-info/dependency_links.txt +0 -0
  311. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/py_lfkit.egg-info/requires.txt +0 -0
  312. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/src/py_lfkit.egg-info/top_level.txt +0 -0
  313. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_api_corrections.py +0 -0
  314. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_corrections_color_anchors.py +0 -0
  315. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_corrections_filters.py +0 -0
  316. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_corrections_kcorrect_backend.py +0 -0
  317. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_corrections_kcorrect_from_color.py +0 -0
  318. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_corrections_kcorrrect_grids.py +0 -0
  319. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_corrections_poggianti1997.py +0 -0
  320. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_corrections_responses.py +0 -0
  321. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_cosmo_cosmology.py +0 -0
  322. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_photometry_magnitudes.py +0 -0
  323. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_utils_download_pogg97_data.py +0 -0
  324. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_utils_evaluators.py +0 -0
  325. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_utils_integrators.py +0 -0
  326. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_utils_interpolation.py +0 -0
  327. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_utils_io.py +0 -0
  328. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_utils_units.py +0 -0
  329. {py_lfkit-0.2.0 → py_lfkit-0.3.0}/tests/test_utils_validators.py +0 -0
@@ -1,14 +1,19 @@
1
- .idea
2
- *__pycache__
1
+ .idea/
2
+ __pycache__/
3
+ *.py[cod]
3
4
  logs/
4
5
  plots_tests/
5
- *.egg-info
6
- venv
7
- build
8
- dist
9
- .tox
10
- .cache
11
- docs/_build
6
+ venv/
7
+ .tox/
8
+ .cache/
9
+
10
+ docs/_build/
11
+ docs/_generated/
12
+
13
+ *.egg-info/
14
+ .eggs/
15
+ build/
16
+ dist/
12
17
 
13
18
  # Notebooks
14
19
  *.ipynb
@@ -17,6 +22,7 @@ notebooks/
17
22
  notebooks/plots/*.png
18
23
  notebooks/plots/*.pdf
19
24
  notebooks/logs/
20
- docs/_generated/
25
+
21
26
  unused/
22
27
  src/lfkit/_version.py
28
+ .DS_Store
@@ -10,8 +10,8 @@ authors:
10
10
  email: "nikolina.sarcevic@gmail.com"
11
11
  orcid: "https://orcid.org/0000-0001-7301-6415"
12
12
 
13
- version: "0.1.0"
14
- date-released: 2026-03-01
13
+ version: "0.2.0"
14
+ date-released: 2026-05-15
15
15
 
16
16
  repository-code: "https://github.com/cosmo-hub/lfkit"
17
17
  url: "https://github.com/cosmo-hub/lfkit"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: py-lfkit
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Luminosity functions and photometric corrections toolkit.
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -21,7 +21,7 @@ Core components
21
21
  :gutter: 3
22
22
 
23
23
  .. grid-item-card::
24
- :link: corr_overview
24
+ :link: corrections_overview
25
25
  :link-type: doc
26
26
  :shadow: md
27
27
 
@@ -33,7 +33,7 @@ Core components
33
33
  filter response curves and spectral energy distributions (SEDs).
34
34
 
35
35
  .. grid-item-card::
36
- :link: lf_overview
36
+ :link: photometry_overview
37
37
  :link-type: doc
38
38
  :shadow: md
39
39
 
@@ -49,5 +49,5 @@ Core components
49
49
  :maxdepth: 1
50
50
  :hidden:
51
51
 
52
- corr_overview
53
- lf_overview
52
+ corrections_overview
53
+ photometry_overview
@@ -0,0 +1,421 @@
1
+ .. |lfkitlogo| image:: /_static/logos/lfkit_logo.png
2
+ :alt: LFKit logo black
3
+ :width: 50px
4
+
5
+ |lfkitlogo| Photometry Overview
6
+ ===============================
7
+
8
+ A luminosity function describes the abundance of galaxies as a function of
9
+ intrinsic brightness. It is a number-density distribution: it tells us how many
10
+ galaxies exist per unit volume and per luminosity or magnitude interval. If it
11
+ is normalized by the total number density, it can also be interpreted as a
12
+ probability density over luminosity or magnitude.
13
+
14
+ In luminosity units, the luminosity function is often written as
15
+ :math:`\Phi(L, z)`, where :math:`L` is luminosity and :math:`z` is redshift.
16
+ The quantity
17
+
18
+ .. math::
19
+
20
+ \Phi(L, z)\,\mathrm{d}L
21
+
22
+ is the comoving number density of galaxies with luminosities between
23
+ :math:`L` and :math:`L+\mathrm{d}L` at redshift :math:`z`.
24
+
25
+ Equivalently, in absolute magnitude space, the luminosity function is written as
26
+ :math:`\Phi(M, z)`, where :math:`M` is absolute magnitude. In this case,
27
+
28
+ .. math::
29
+
30
+ \Phi(M, z)\,\mathrm{d}M
31
+
32
+ is the comoving number density of galaxies with absolute magnitudes between
33
+ :math:`M` and :math:`M+\mathrm{d}M`.
34
+
35
+ Luminosity and absolute magnitude are intrinsic quantities. Surveys instead
36
+ measure fluxes, which are usually reported as apparent magnitudes :math:`m`.
37
+ Therefore, using a luminosity function with observed data usually requires
38
+ converting between apparent magnitude and absolute magnitude using a luminosity
39
+ distance, and sometimes additional photometric corrections.
40
+
41
+ For worked examples of the LFKit public API, see the dedicated example pages:
42
+
43
+ - :doc:`../examples/lf_models/index`
44
+ - :doc:`../examples/magnitudes_and_luminosities`
45
+ - :doc:`../examples/magnitude_integrals`
46
+ - :doc:`../examples/redshift_density`
47
+ - :doc:`../examples/catalog_completeness`
48
+
49
+
50
+ Luminosity and magnitude
51
+ ------------------------
52
+
53
+ Luminosity :math:`L` is the total energy emitted by a galaxy per unit time.
54
+ Flux :math:`F` is the energy received by an observer per unit area and per unit
55
+ time. The two are related by the luminosity distance :math:`d_L`:
56
+
57
+ .. math::
58
+
59
+ F = \frac{L}{4\pi d_L^2}.
60
+
61
+ This is why luminosity is not directly observed. It is inferred from the
62
+ measured flux once a distance has been specified.
63
+
64
+ Astronomy often uses magnitudes instead of luminosities. Apparent magnitude
65
+ :math:`m` describes how bright an object appears to the observer. Absolute
66
+ magnitude :math:`M` describes the intrinsic brightness of the object, defined as
67
+ the apparent magnitude it would have at a standard reference distance.
68
+
69
+ By convention, more negative magnitudes are brighter. A galaxy with
70
+ :math:`M=-22` is brighter than a galaxy with :math:`M=-18`.
71
+
72
+ Luminosity and absolute magnitude are related logarithmically. Relative to a
73
+ reference luminosity :math:`L_0`, the absolute magnitude can be written as
74
+
75
+ .. math::
76
+
77
+ M = M_0 - 2.5 \log_{10}\left(\frac{L}{L_0}\right),
78
+
79
+ or equivalently,
80
+
81
+ .. math::
82
+
83
+ \frac{L}{L_0}
84
+ =
85
+ 10^{-0.4(M - M_0)}.
86
+
87
+ Here :math:`M_0` is the magnitude corresponding to the reference luminosity
88
+ :math:`L_0`. This relation is why brighter objects have smaller, more negative
89
+ magnitudes.
90
+
91
+ The conversion between apparent and absolute magnitude can be written as
92
+
93
+ .. math::
94
+
95
+ M = m - \mu(z) - K(z) + E(z),
96
+
97
+ where:
98
+
99
+ - :math:`M` is absolute magnitude,
100
+ - :math:`m` is apparent magnitude,
101
+ - :math:`\mu(z)` is the distance modulus,
102
+ - :math:`K(z)` is the k-correction,
103
+ - :math:`E(z)` is the evolution correction,
104
+ - :math:`z` is redshift.
105
+
106
+ The distance modulus encodes the effect of distance. The k-correction accounts
107
+ for observing a redshifted galaxy spectrum through a fixed bandpass. The
108
+ evolution correction accounts for intrinsic luminosity evolution of the galaxy
109
+ population, depending on the convention adopted in the analysis.
110
+
111
+
112
+ Magnitude-space luminosity functions
113
+ ------------------------------------
114
+
115
+ LFKit works primarily in rest-frame absolute magnitude space. This is a natural
116
+ choice for galaxy luminosity functions because absolute magnitude is an
117
+ intrinsic brightness variable.
118
+
119
+ A magnitude-space luminosity function :math:`\Phi(M, z)` gives the number
120
+ density of galaxies per unit magnitude. If :math:`\Phi(M, z)` has units of
121
+ :math:`{\rm Mpc}^{-3}\,{\rm mag}^{-1}`, then integrating it over a finite
122
+ absolute magnitude interval gives a number density in
123
+ :math:`{\rm Mpc}^{-3}`:
124
+
125
+ .. math::
126
+
127
+ n(z) =
128
+ \int_{M_{\rm bright}}^{M_{\rm faint}}
129
+ \Phi(M, z)\,\mathrm{d}M.
130
+
131
+ Here:
132
+
133
+ - :math:`n(z)` is the integrated number density at redshift :math:`z`,
134
+ - :math:`M_{\rm bright}` is the bright absolute magnitude limit,
135
+ - :math:`M_{\rm faint}` is the faint absolute magnitude limit,
136
+ - :math:`\Phi(M, z)` is the luminosity function per unit magnitude.
137
+
138
+ Because brighter galaxies have more negative magnitudes,
139
+ :math:`M_{\rm bright}` is usually more negative than :math:`M_{\rm faint}`.
140
+
141
+
142
+ The Schechter luminosity function
143
+ ---------------------------------
144
+
145
+ A common model for galaxy luminosity functions is the Schechter function. In
146
+ luminosity space, it is usually written as
147
+
148
+ .. math::
149
+
150
+ \Phi(L)\,\mathrm{d}L =
151
+ \phi_\star
152
+ \left(\frac{L}{L_\star}\right)^\alpha
153
+ \exp\left(-\frac{L}{L_\star}\right)
154
+ \frac{\mathrm{d}L}{L_\star}.
155
+
156
+ Here:
157
+
158
+ - :math:`L` is galaxy luminosity,
159
+ - :math:`L_\star` is the characteristic luminosity,
160
+ - :math:`\phi_\star` is the normalization,
161
+ - :math:`\alpha` is the faint-end slope.
162
+
163
+ The Schechter form combines two behaviours. At low luminosities, the model is
164
+ approximately a power law controlled by :math:`\alpha`. At high luminosities,
165
+ the exponential term suppresses the abundance of very bright galaxies.
166
+
167
+
168
+ Schechter function in magnitude space
169
+ -------------------------------------
170
+
171
+ The magnitude-space form follows from the luminosity-space form by using the
172
+ luminosity ratio
173
+
174
+ .. math::
175
+
176
+ \frac{L}{L_\star}
177
+ =
178
+ 10^{-0.4(M - M_\star)}.
179
+
180
+ The change of variables from luminosity to magnitude also introduces the factor
181
+ :math:`0.4\ln(10)`.
182
+
183
+ In absolute magnitude space, the Schechter luminosity function can be written as
184
+
185
+ .. math::
186
+
187
+ \Phi(M) =
188
+ 0.4 \ln(10) \, \phi_\star \,
189
+ x^{\alpha + 1} \exp(-x),
190
+
191
+ with
192
+
193
+ .. math::
194
+
195
+ x = 10^{-0.4(M - M_\star)}.
196
+
197
+ Here:
198
+
199
+ - :math:`M` is absolute magnitude,
200
+ - :math:`M_\star` is the characteristic absolute magnitude,
201
+ - :math:`\phi_\star` is the normalization,
202
+ - :math:`\alpha` is the faint-end slope,
203
+ - :math:`x` is the luminosity ratio :math:`L/L_\star` written in magnitude form.
204
+
205
+ The parameter :math:`M_\star` marks the transition between the power-law part of
206
+ the luminosity function and the exponential bright-end cutoff. The parameter
207
+ :math:`\alpha` controls how rapidly the abundance rises toward fainter
208
+ magnitudes. More negative values of :math:`\alpha` produce a steeper faint end.
209
+
210
+ The normalization :math:`\phi_\star` sets the overall abundance scale. If
211
+ :math:`\phi_\star` is supplied in :math:`{\rm Mpc}^{-3}`, then
212
+ :math:`\Phi(M)` is usually interpreted as a number density per magnitude,
213
+ :math:`{\rm Mpc}^{-3}\,{\rm mag}^{-1}`.
214
+
215
+
216
+ Redshift evolution
217
+ ------------------
218
+
219
+ Galaxy populations evolve with redshift, so luminosity function parameters are
220
+ often allowed to depend on :math:`z`. A redshift-dependent Schechter model can
221
+ be written schematically as
222
+
223
+ .. math::
224
+
225
+ \Phi(M, z) =
226
+ \Phi\left(M \mid \phi_\star(z), M_\star(z), \alpha(z)\right).
227
+
228
+ Here:
229
+
230
+ - :math:`\phi_\star(z)` describes evolution in the overall normalization,
231
+ - :math:`M_\star(z)` describes evolution in the characteristic magnitude,
232
+ - :math:`\alpha(z)` describes evolution in the faint-end slope.
233
+
234
+ Changing :math:`\phi_\star(z)` changes the total abundance scale. Changing
235
+ :math:`M_\star(z)` shifts the characteristic magnitude where the luminosity
236
+ function turns over. Changing :math:`\alpha(z)` mainly changes the relative
237
+ abundance of faint galaxies.
238
+
239
+ Different analyses use different parameterizations for this evolution. For
240
+ example, one may use a constant parameter, a linear trend with redshift, or a
241
+ survey-specific empirical model. The important point is that the luminosity
242
+ function model and the photometric evolution correction should be defined
243
+ consistently.
244
+
245
+
246
+ Apparent magnitude limits
247
+ -------------------------
248
+
249
+ Observed catalogs are often selected by an apparent magnitude limit
250
+ :math:`m_{\rm lim}`. A luminosity function, however, is usually evaluated in
251
+ absolute magnitude space. The corresponding absolute magnitude limit is
252
+
253
+ .. math::
254
+
255
+ M_{\rm lim}(z)
256
+ =
257
+ m_{\rm lim} - \mu(z) - K(z) + E(z).
258
+
259
+ Here:
260
+
261
+ - :math:`M_{\rm lim}(z)` is the redshift-dependent absolute magnitude limit,
262
+ - :math:`m_{\rm lim}` is the apparent magnitude limit of the catalog,
263
+ - :math:`\mu(z)` is the distance modulus,
264
+ - :math:`K(z)` is the k-correction,
265
+ - :math:`E(z)` is the evolution correction.
266
+
267
+ The dependence on :math:`z` is important. The same apparent magnitude limit
268
+ corresponds to different intrinsic luminosities at different redshifts. At
269
+ higher redshift, a fixed apparent magnitude cut usually selects only brighter
270
+ galaxies.
271
+
272
+ This is the basic reason magnitude-limited samples become increasingly
273
+ incomplete for faint galaxies at larger distances.
274
+
275
+
276
+ Number-density integrals
277
+ ------------------------
278
+
279
+ Integrating a luminosity function over magnitude gives the number density of
280
+ galaxies inside a chosen magnitude range:
281
+
282
+ .. math::
283
+
284
+ n(z) =
285
+ \int_{M_{\rm bright}}^{M_{\rm faint}}
286
+ \Phi(M, z)\,\mathrm{d}M.
287
+
288
+ This quantity is useful when the luminosity function is used to predict the
289
+ abundance of a galaxy sample. Changing the integration limits changes the
290
+ population being counted. A brighter cut selects only luminous galaxies, while a
291
+ fainter cut includes more of the faint galaxy population.
292
+
293
+ For a magnitude-limited catalog, the observed number density can be written as
294
+
295
+ .. math::
296
+
297
+ n_{\rm obs}(z) =
298
+ \int_{M_{\rm bright}}^{\min[M_{\rm lim}(z), M_{\rm faint}]}
299
+ \Phi(M, z)\,\mathrm{d}M.
300
+
301
+ The missing, or out-of-catalog, number density can be written as
302
+
303
+ .. math::
304
+
305
+ n_{\rm miss}(z) =
306
+ \int_{\max[M_{\rm lim}(z), M_{\rm bright}]}^{M_{\rm faint}}
307
+ \Phi(M, z)\,\mathrm{d}M.
308
+
309
+ Here:
310
+
311
+ - :math:`n_{\rm obs}(z)` is the number density above the catalog selection,
312
+ - :math:`n_{\rm miss}(z)` is the number density below the catalog selection,
313
+ - :math:`M_{\rm lim}(z)` is the absolute magnitude limit implied by the apparent
314
+ magnitude cut.
315
+
316
+ These definitions split the same reference luminosity function into the part
317
+ that is observable and the part that is missed by the magnitude limit.
318
+
319
+
320
+ Completeness fractions
321
+ ----------------------
322
+
323
+ The catalog completeness fraction is the fraction of the reference population
324
+ that is retained by the magnitude limit:
325
+
326
+ .. math::
327
+
328
+ f_{\rm obs}(z) =
329
+ \frac{n_{\rm obs}(z)}
330
+ {n_{\rm obs}(z) + n_{\rm miss}(z)}.
331
+
332
+ The missing fraction is
333
+
334
+ .. math::
335
+
336
+ f_{\rm miss}(z) = 1 - f_{\rm obs}(z).
337
+
338
+ Here:
339
+
340
+ - :math:`f_{\rm obs}(z)` is the observed or in-catalog fraction,
341
+ - :math:`f_{\rm miss}(z)` is the missing or out-of-catalog fraction.
342
+
343
+ These fractions only describe the selection caused by the apparent magnitude
344
+ limit. Other survey effects, such as masks, blending, targeting, color cuts, or
345
+ spectroscopic failures, are separate selection effects and should be modeled
346
+ elsewhere.
347
+
348
+
349
+ LF-weighted redshift trends
350
+ ---------------------------
351
+
352
+ A luminosity function can also be used to build a redshift-dependent selection
353
+ trend. For a magnitude-limited sample, one common ingredient is the
354
+ magnitude-integrated luminosity function as a function of redshift:
355
+
356
+ .. math::
357
+
358
+ S(z) =
359
+ \int_{M_{\rm bright}}^{M_{\rm lim}(z)}
360
+ \Phi(M, z)\,\mathrm{d}M.
361
+
362
+ Here:
363
+
364
+ - :math:`S(z)` is the luminosity function selection factor,
365
+ - :math:`M_{\rm bright}` is the bright integration limit,
366
+ - :math:`M_{\rm lim}(z)` is the redshift-dependent faint limit implied by the
367
+ apparent magnitude cut.
368
+
369
+ This selection factor describes how much of the luminosity function is retained
370
+ at each redshift. It is not by itself a full survey redshift distribution. To
371
+ build a redshift distribution, it is often combined with a volume factor or
372
+ another redshift-dependent weight:
373
+
374
+ .. math::
375
+
376
+ n(z) \propto S(z)\,W(z),
377
+
378
+ where :math:`W(z)` is a chosen redshift or volume weight.
379
+
380
+ The exact form of :math:`W(z)` depends on the analysis. For example, it may
381
+ represent the comoving volume element, an input parent population, or another
382
+ survey-specific weighting function.
383
+
384
+
385
+ Luminosity evolution and double counting
386
+ ----------------------------------------
387
+
388
+ Luminosity evolution can enter an analysis in more than one place. It may appear
389
+ in the photometric conversion through an evolution correction :math:`E(z)`, or
390
+ it may appear directly in the luminosity function through a redshift-dependent
391
+ parameter such as :math:`M_\star(z)`.
392
+
393
+ These two choices are not automatically equivalent. Using both at the same time
394
+ can be correct if the conventions are defined carefully, but it can also double
395
+ count evolution if both terms describe the same physical effect.
396
+
397
+ A useful rule is to keep the roles separate:
398
+
399
+ - :math:`E(z)` belongs to the apparent-to-absolute magnitude conversion,
400
+ - :math:`M_\star(z)`, :math:`\phi_\star(z)`, and :math:`\alpha(z)` belong to the
401
+ luminosity function model.
402
+
403
+ The analysis should define which part of the evolution is handled by the
404
+ photometric correction and which part is handled by the luminosity function
405
+ parameterization.
406
+
407
+
408
+ What LFKit models
409
+ -----------------
410
+
411
+ LFKit focuses on the luminosity function side of these calculations. In this
412
+ layer, the relevant ingredients are intrinsic luminosity or magnitude,
413
+ redshift-dependent luminosity function parameters, apparent-to-absolute
414
+ magnitude conversions, and number-density integrals.
415
+
416
+ LFKit does not model every survey selection effect. Angular masks, survey area,
417
+ blending, targeting, spectroscopic success rates, and other catalog-level
418
+ effects should be handled by the calling analysis code.
419
+
420
+ The theory described here is implemented in the public LFKit interface and shown
421
+ with executable examples in the example pages.
@@ -0,0 +1,16 @@
1
+ API reference
2
+ =============
3
+
4
+ .. autosummary::
5
+ :toctree:
6
+ :recursive:
7
+
8
+ lfkit
9
+ lfkit.api
10
+ lfkit.api.luminosity_function
11
+ lfkit.api.conditional_luminosity_function
12
+ lfkit.api.corrections
13
+ lfkit.luminosity_functions
14
+ lfkit.photometry
15
+ lfkit.corrections
16
+ lfkit.cosmo
@@ -0,0 +1,12 @@
1
+ lfkit.api.conditional\_luminosity\_function
2
+ ===========================================
3
+
4
+ .. automodule:: lfkit.api.conditional_luminosity_function
5
+
6
+
7
+ .. rubric:: Classes
8
+
9
+ .. autosummary::
10
+
11
+ ConditionalLuminosityFunction
12
+
@@ -0,0 +1,12 @@
1
+ lfkit.api.corrections
2
+ =====================
3
+
4
+ .. automodule:: lfkit.api.corrections
5
+
6
+
7
+ .. rubric:: Classes
8
+
9
+ .. autosummary::
10
+
11
+ Corrections
12
+
@@ -0,0 +1,12 @@
1
+ lfkit.api.luminosity\_function
2
+ ==============================
3
+
4
+ .. automodule:: lfkit.api.luminosity_function
5
+
6
+
7
+ .. rubric:: Classes
8
+
9
+ .. autosummary::
10
+
11
+ LuminosityFunction
12
+
@@ -0,0 +1,15 @@
1
+ lfkit.api
2
+ =========
3
+
4
+ .. automodule:: lfkit.api
5
+
6
+
7
+ .. rubric:: Modules
8
+
9
+ .. autosummary::
10
+ :toctree:
11
+ :recursive:
12
+
13
+ conditional_luminosity_function
14
+ corrections
15
+ luminosity_function
@@ -0,0 +1,12 @@
1
+ lfkit.corrections.color\_anchors
2
+ ================================
3
+
4
+ .. automodule:: lfkit.corrections.color_anchors
5
+
6
+
7
+ .. rubric:: Functions
8
+
9
+ .. autosummary::
10
+
11
+ fit_coeffs_from_bandcolor
12
+
@@ -0,0 +1,17 @@
1
+ lfkit.corrections.filters
2
+ =========================
3
+
4
+ .. automodule:: lfkit.corrections.filters
5
+
6
+
7
+ .. rubric:: Functions
8
+
9
+ .. autosummary::
10
+
11
+ list_supported
12
+ make_response_map
13
+ normalize_band
14
+ normalize_filterset
15
+ resolve_response_name
16
+ validate_coverage
17
+
@@ -0,0 +1,12 @@
1
+ lfkit.corrections.kcorrect\_backend
2
+ ===================================
3
+
4
+ .. automodule:: lfkit.corrections.kcorrect_backend
5
+
6
+
7
+ .. rubric:: Functions
8
+
9
+ .. autosummary::
10
+
11
+ build_kcorrect
12
+
@@ -0,0 +1,12 @@
1
+ lfkit.corrections.kcorrect\_from\_color
2
+ =======================================
3
+
4
+ .. automodule:: lfkit.corrections.kcorrect_from_color
5
+
6
+
7
+ .. rubric:: Functions
8
+
9
+ .. autosummary::
10
+
11
+ kcorrect_from_bandcolor
12
+
@@ -0,0 +1,14 @@
1
+ lfkit.corrections.kcorrect\_grids
2
+ =================================
3
+
4
+ .. automodule:: lfkit.corrections.kcorrect_grids
5
+
6
+
7
+ .. rubric:: Functions
8
+
9
+ .. autosummary::
10
+
11
+ build_kcorr_grid_package
12
+ compute_k_table
13
+ kcorr_interpolators
14
+
@@ -0,0 +1,21 @@
1
+ lfkit.corrections.poggianti1997
2
+ ===============================
3
+
4
+ .. automodule:: lfkit.corrections.poggianti1997
5
+
6
+
7
+ .. rubric:: Functions
8
+
9
+ .. autosummary::
10
+
11
+ available_pairs
12
+ describe_poggianti1997_available
13
+ extract_sed_spectrum
14
+ load_poggianti1997_tables
15
+ make_ecorr_interpolator
16
+ make_kcorr_interpolator
17
+ poggianti1997_lookback_time_gyr
18
+ poggianti1997_time_since_bb_gyr
19
+ poggianti1997_to_accelerating_redshift
20
+ z_from_lookback_time
21
+
@@ -0,0 +1,16 @@
1
+ lfkit.corrections.responses
2
+ ===========================
3
+
4
+ .. automodule:: lfkit.corrections.responses
5
+
6
+
7
+ .. rubric:: Functions
8
+
9
+ .. autosummary::
10
+
11
+ discover_response_dir_auto
12
+ kcorrect_supports_response_dir
13
+ list_available_responses
14
+ require_responses
15
+ write_kcorrect_response
16
+