Skip to content

Commit

Permalink
avoid confusion with converting to density
Browse files Browse the repository at this point in the history
  • Loading branch information
ndrory committed Oct 8, 2024
1 parent 634c0b5 commit ead8fdb
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 35 deletions.
36 changes: 2 additions & 34 deletions python/lvmdrp/core/rss.py
Original file line number Diff line number Diff line change
Expand Up @@ -1762,7 +1762,7 @@ def selectSpec(self, min=0, max=0, method="median"):
select = numpy.logical_or(numbers < min, numbers > numbers[-1] - max)
return arg[select]

def rectify_wave(self, wave=None, wave_range=None, wave_disp=None, method="linear", return_density=False, **interp_kwargs):
def rectify_wave(self, wave=None, wave_range=None, wave_disp=None):
"""Wavelength rectifies the RSS object
This method rectifies the RSS object to an uniform wavelength grid. The
Expand All @@ -1788,10 +1788,6 @@ def rectify_wave(self, wave=None, wave_range=None, wave_disp=None, method="linea
Wavelength range to rectify to, by default None
wave_disp : float, optional
Wavelength dispersion to rectify to, by default None
method : str, optional
Interpolation method, by default "linear"
return_density : bool, optional
If True, returns the density of the rectification, by default False
Returns
-------
Expand Down Expand Up @@ -1834,7 +1830,6 @@ def rectify_wave(self, wave=None, wave_range=None, wave_disp=None, method="linea

rss._header["BUNIT"] = unit
rss._header["WAVREC"] = True
rss._header["METREC"] = (method, "Wavelength rectification method")
# create output RSS
new_rss = RSS(
data=numpy.zeros((rss._fibers, wave.size), dtype="float32"),
Expand All @@ -1854,15 +1849,6 @@ def rectify_wave(self, wave=None, wave_range=None, wave_disp=None, method="linea
header=rss._header
)

# TODO: convert this into a interpolation class selector
if method == "spline":
method = "cubic"
elif method == "linear":
pass
else:
raise ValueError(f"Invalid interpolation {method = }")

# TODO: when do we have fluxes vs flux densities? what do we want?
# fit and evaluate interpolators
for ifiber in range(rss._fibers):
f = resample_flux(wave, rss._wave[ifiber], rss._data[ifiber])
Expand Down Expand Up @@ -1900,27 +1886,9 @@ def rectify_wave(self, wave=None, wave_range=None, wave_disp=None, method="linea
new_rss.set_supersky(rss._supersky)
new_rss.set_supersky_error(rss._supersky_error)

if not return_density:
dlambda = numpy.gradient(wave)
new_rss._data *= dlambda
if new_rss._error is not None:
new_rss._error *= dlambda
if new_rss._sky is not None:
new_rss._sky *= dlambda
if new_rss._sky_error is not None:
new_rss._sky_error *= dlambda
if new_rss._sky_east is not None:
new_rss._sky_east *= dlambda
if new_rss._sky_east_error is not None:
new_rss._sky_east_error *= dlambda
if new_rss._sky_west is not None:
new_rss._sky_west *= dlambda
if new_rss._sky_west_error is not None:
new_rss._sky_west_error *= dlambda
new_rss._header["BUNIT"] = unit.replace("/angstrom", "")

return new_rss

# TODO: what do we want here in terms of densities?
def to_native_wave(self, method="linear", interp_density=True, return_density=False):
"""Converts the wavelength to the native wavelength grid
Expand Down
2 changes: 1 addition & 1 deletion python/lvmdrp/functions/rssMethod.py
Original file line number Diff line number Diff line change
Expand Up @@ -1121,7 +1121,7 @@ def resample_wavelength(in_rss: str, out_rss: str, method: str = "linear",

# resample the wavelength solution
log.info(f"resampling the spectra ...")
new_rss = rss.rectify_wave(wave_range=wave_range, wave_disp=wave_disp, method=method, return_density=convert_to_density)
new_rss = rss.rectify_wave(wave_range=wave_range, wave_disp=wave_disp)

# write output RSS
log.info(f"writing resampled RSS to '{os.path.basename(out_rss)}'")
Expand Down

0 comments on commit ead8fdb

Please sign in to comment.