Skip to content

Commit

Permalink
lambda edge corrected
Browse files Browse the repository at this point in the history
  • Loading branch information
abhi0395 committed Feb 25, 2025
1 parent a903110 commit 2344020
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
6 changes: 3 additions & 3 deletions qsoabsfind/absfinder.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ def read_single_spectrum_and_find_absorber(fits_file, spec_index, absorber, **kw
lam_obs = spectra.wavelength

# Define the wavelength range for searching the absorber
min_wave, max_wave = lam_obs.min() + kwargs["lam_edge_sep"], lam_obs.max() - kwargs["lam_edge_sep"] # avoiding edges

min_wave, max_wave = lam_obs.min(), lam_obs.max()
# Retrieve flux and error data, ensuring consistent dtype for Numba compatibility
residual, error = spectra.flux.astype('float64'), spectra.error.astype('float64')
lam_obs = lam_obs.astype('float64')
Expand All @@ -81,7 +81,7 @@ def read_single_spectrum_and_find_absorber(fits_file, spec_index, absorber, **kw

# Identify the wavelength region for searching the specified absorber
lam_search, unmsk_residual, unmsk_error = absorber_search_window(
lam_obs, residual, error, z_qso, absorber, min_wave, max_wave, verbose=kwargs['verbose'])
lam_obs, residual, error, z_qso, absorber, min_wave, max_wave, lam_edge_sep= kwargs["lam_edge_sep"], verbose=kwargs['verbose'])

# Verify that the arrays are of equal size
assert lam_search.size == unmsk_residual.size == unmsk_error.size, "Mismatch in array sizes of lam_search, unmsk_residual, and unmsk_error"
Expand Down
7 changes: 4 additions & 3 deletions qsoabsfind/absorberutils.py
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,7 @@ def redshift_estimate(fitted_obs_l1, fitted_obs_l2, std_fitted_obs_l1, std_fitte
return z_corr, z_err


def absorber_search_window(wavelength, residual, err_residual, zqso, absorber, min_wave, max_wave, verbose=False):
def absorber_search_window(wavelength, residual, err_residual, zqso, absorber, min_wave, max_wave, lam_edge_sep=0, verbose=False):
"""
Wrapper function to return the most basic wavelength window for absorber
search.
Expand All @@ -547,6 +547,7 @@ def absorber_search_window(wavelength, residual, err_residual, zqso, absorber, m
absorber (str): Options 'CIV', 'MgII'.
min_wave (float): minimum wavelength edge (in Ang)
max_wave (float): maximum wavelength edge (in Ang)
lam_edge_sep (float): separation from minimum wavelength, i.e. lam_min + lam_edge_sep, this is just to make sure that we avoid the very edge of the spectrum
verbose (bool, optional): If True will print time info. Default is False.
Returns:
Expand All @@ -557,12 +558,12 @@ def absorber_search_window(wavelength, residual, err_residual, zqso, absorber, m
if absorber == 'MgII':
lam_CIV = lines['CIV_1549'] * (1 + zqso + lines['dz_start']) #redshifted from CIV emission lines
lam_MgII = lines['MgI_2799'] * (1 + zqso - lines['dz_end']) #blueshifted MgII emission lines
lam_start = max(min_wave, lam_CIV)
lam_start = max(min_wave, lam_CIV) + lam_edge_sep
lam_end = min(max_wave, lam_MgII)
elif absorber == 'CIV':
dz = (lines['dv'] / speed_of_light) * (1 + zqso)
lam_CIV = lines['CIV_1549'] * (1 + zqso + dz)
lam_start = max(min_wave, 1310 * (1 + zqso)) # This is from Cooksey et al 2013
lam_start = max(min_wave, 1310 * (1 + zqso)) + lam_edge_sep # This is from Cooksey et al 2013
lam_end = min(lam_CIV, max_wave)
else:
raise ValueError("Absorber must be 'CIV' or 'MgII'")
Expand Down

0 comments on commit 2344020

Please sign in to comment.