A technical walkthrough of my first research paper and the methodology behind it.
First of all, read the paper! You can find it here: Refining Dust Extinction Corrections for Hα Luminosity Functions
This page is intended as a more technical companion to my broader Masters Thesis overview.
If you're here because you are trying to understand the actual methodology used in my first paper — welcome! The goal of this page is to walk through the analysis process in a way that would help a university student reproduce the work themselves.
This is NOT a simplified outreach article. I’ll still try to explain concepts clearly, but this page assumes some familiarity with:
The project explored whether radio-derived star formation rates could be used to construct an alternative dust obscuration correction for Hα luminosity functions.
The core idea was:
If radio emission is largely unaffected by dust, and Hα emission IS affected by dust, then the relationship between the two tracers may encode information about dust attenuation itself.
To investigate this, I:
The first stage involved building a relationship between:
The local galaxy sample was restricted to:
0.0 < z < 0.35After calculating star formation rates using the Kennicutt (1998) and Bell (2003) calibrations, the two tracers were compared directly.
A linear regression was then fit using:
numpy.polyfit(..., cov=True)
This produced the local Universe dust correction relation:
log(SFRHα) = 0.55 log(SFR1.4GHz) − 0.22
This relationship became "Model 4" throughout the paper and represented the strongest dust correction scenario.
Three additional intermediate models were then constructed to test how the relationship might evolve with redshift.
Once the SFR relationship was established, the next step was applying it to published Hα luminosity functions.
This involved:
This stage was significantly more difficult than it sounds because different papers:
Once corrected luminosities were produced, new luminosity functions had to be fit.
For this work I used Schechter functions:
φ(L) = φ* (L/L*)α exp(-L/L*)
The luminosity functions were separated into six redshift bins spanning:
z = 0 → 8Initial fits were generated using weighted residual minimisation, then refined using MCMC fitting with the Python package emcee.
Each luminosity function fit used:
Once Schechter parameters were determined, the luminosity functions could be integrated to calculate the luminosity density:
ρL = ∫ L φ(L) dL
This was then converted into the cosmic star formation rate density (SFRD) using the Kennicutt calibration adjusted for a Chabrier IMF.
The resulting SFRD evolution was then compared against:
Which, again, was more difficult than it sounds because of the wide variety of assumptions and calibrations used across different papers, that had to be carefully accounted for to ensure a fair comparison.
The locally calibrated dust correction worked well at low redshift.
But at high redshift the method dramatically overestimated star formation rates — by up to two orders of magnitude.
This implied that:
The local Hα-radio dust relationship does not remain static over cosmic time.
Instead, the results suggested progressively reduced dust obscuration towards earlier cosmic epochs.
This ultimately led to the construction of a composite evolving dust correction model that transitions between different slopes at different redshifts.
This project was intentionally exploratory.
The major next steps would likely involve:
I’m also currently developing a public coding package for constructing luminosity functions using this methodology.
If you would prefer a much more simplified and visually annotated version of the paper, check out the PDF below.
This version is designed more like a guided walkthrough and is intended for students or non-specialists.
Read the published paper here:
Refining Dust Extinction Corrections for Hα Luminosity Functions
A public repository containing luminosity function fitting tools and analysis scripts is currently in development. This will be released in the near future and I will update this page with a link once it's available.
A csv file containing the corrected luminosity function data points from the paper will also be included in the repository.
The pipeline primarily used: