skypy
skypy copied to clipboard
BUG: Overgeneration of galaxies
Describe the bug When calculating the number density of galaxies for redshift sampling in 'schechter lf redshift' (/galaxies/redshift.py) there is a missing factor of h_0^3. This is required due to the units of phi_*. Not including this factor can overgenerate the number of galaxies by a factor of 3 (given h=0.7) for the entire magnitude/luminosity function.
To Reproduce Steps to reproduce the behaviour:
- Generate a catalogue of galaxies
- Integrate the expected magnitude Schechter function with the values used in the YAML file by volume defined by skyarea
- Create a histogram (or extract values) from the catalogue with the same bins as the above integral
- Plot these together, there should be a significantly increased number in the catalogue values compared to the analytical values Please see the Jupyter Notebook and YAML files attached (I couldn't attach them in their native forms so hopefully they are still helpful)
Expected behaviour The catalogue values should exactly follow the analytical plot as they are sampled from the same distribution
Desktop (please complete the following information):
- OS: Windows/WSL
- Version 10/Debian? red_galaxy_text.txt blue_galaxy_text.txt Galaxy_Overgeneration_(Git).pdf
Hi @Fox-Davidson, thanks for this PR! Am I right in saying this could also be fixed by making your units for phi* have a h_0 in them? I think doing that + updating the documentation to specify that normalisation constants should have those units would be better than putting h_0 units in here, which we had discussed before and decided not to do.
Action: Add more specific guidance to the contributing guidelines for the consistency in h units. The user should put in and receive h-less units (ie where there is no h unit present as a variable).