From aa594b35a53fd10730daf72c46ca1427e1990075 Mon Sep 17 00:00:00 2001 From: rcooke Date: Thu, 12 Oct 2023 13:38:00 +0100 Subject: [PATCH 01/67] initialise the model --- pypeit/calibrations.py | 94 ++++++++++++++++++- pypeit/images/combineimage.py | 2 +- pypeit/images/rawimage.py | 9 +- pypeit/scattlight.py | 171 ++++++++++++++++++++++++++++++++++ 4 files changed, 272 insertions(+), 4 deletions(-) create mode 100644 pypeit/scattlight.py diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index 8291fe1d9d..f3cf15098e 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -20,6 +20,7 @@ from pypeit import alignframe from pypeit import flatfield from pypeit import edgetrace +from pypeit import scattlight from pypeit import slittrace from pypeit import wavecalib from pypeit import wavetilts @@ -537,6 +538,95 @@ def get_bpm(self, frame=None): # Return return self.msbpm + def get_scattlight(self): + """ + Load or generate the scattered light model. + + Returns: + :class:`~pypeit.scattlight.ScatteredLight`: The processed calibration image including the model. + """ + # Initialise to None + self.msscattlight = None + + # Check for existing data + if not self._chk_objs(['msbpm', 'slits']): + msgs.warn('Must have the bpm and the slits defined to make a scattered light image! ' + 'Skipping and may crash down the line') + return self.msscattlight + + # Check internals + self._chk_set(['det', 'calib_ID', 'par']) + + # Prep + frame = {'type': 'trace', 'class': scattlight.ScatteredLight} + raw_scattlight_files, cal_file, calib_key, setup, calib_id, detname = \ + self.find_calibrations(frame['type'], frame['class']) + # raw_lampoff_files = self.fitstbl.find_frame_files('scattlight', calib_ID=self.calib_ID) + + if len(raw_scattlight_files) == 0 and cal_file is None: + msgs.warn(f'No raw {frame["type"]} frames found and unable to identify a relevant ' + 'processed calibration frame. Continuing...') + return self.msscattlight + + # If a processed calibration frame exists and we want to reuse it, do + # so: + if cal_file.exists() and self.reuse_calibs: + self.msscattlight = frame['class'].from_file(cal_file) + return self.msscattlight + + # Scattered light model does not exist or we're not reusing it. + # Need to build everything from scratch. Start with the trace image. + msgs.info('Creating edge tracing calibration frame using files: ') + for f in raw_scattlight_files: + msgs.prindent(f'{Path(f).name}') + + # Reset the BPM + self.get_bpm(frame=raw_scattlight_files[0]) + + scattlightImage = buildimage.buildimage_fromlist(self.spectrograph, self.det, + self.par['scattlightframe'], raw_scattlight_files, + bias=self.msbias, bpm=self.msbpm, + dark=self.msdark, calib_dir=self.calib_dir, + setup=setup, calib_id=calib_id) + + model, modelpar, success = self.spectrograph.scattered_light(scattlightImage, self.slits, binning=binning) + + if not success: + # Something went amiss + msgs.warn('Scattered light computation failed. Continuing, but likely to fail soon...') + self.success = False + return self.msscattlight + + # The model has been generated. Store the result in the DataModel + self.msscattlight = scattlight.ScatteredLight(scattlight_raw=scattlightImage, + scattlight_model=model, + scattlight_param=modelpar) + # TODO :: Need to add these to the line above + # datamodel = {'PYP_SPEC': dict(otype=str, descr='PypeIt spectrograph name'), + # 'pypeline': dict(otype=str, descr='PypeIt pypeline name'), + # 'detname': dict(otype=str, descr='Identifier for detector or mosaic'), + # 'nspec': dict(otype=int, + # descr='Number of pixels in the image spectral direction.'), + # 'nspat': dict(otype=int, + # descr='Number of pixels in the image spatial direction.'), + # 'binspec': dict(otype=int, + # descr='Number of pixels binned in the spectral direction.'), + # 'binspat': dict(otype=int, + # descr='Number of pixels binned in the spatial direction.'), + # 'pad': dict(otype=int, + # descr='Integer number of pixels to mask beyond the slit edges.'), + + # Show the result if requested + if self.show: + self.msscattlight.show() + + if self.msscattlight is not None: + self.msscattlight.set_paths(self.calib_dir, setup, calib_id, detname) + # Save the master scattered light model + self.msscattlight.to_file() + + return self.msscattlight + def get_flats(self): """ Load or generate the flat-field calibration images. @@ -1254,7 +1344,7 @@ def default_steps(): # Order matters! And the name must match a viable "get_{step}" method # in Calibrations. # TODO: Does the bpm need to be done after the dark? - return ['bias', 'dark', 'bpm', 'slits', 'arc', 'tiltimg', 'wv_calib', 'tilts', 'flats'] + return ['bias', 'dark', 'bpm', 'slits', 'arc', 'tiltimg', 'wv_calib', 'tilts', 'scattlight', 'flats'] class IFUCalibrations(Calibrations): @@ -1272,7 +1362,7 @@ def default_steps(): """ # Order matters! return ['bias', 'dark', 'bpm', 'arc', 'tiltimg', 'slits', 'wv_calib', 'tilts', 'align', - 'flats'] + 'scattlight', 'flats'] def check_for_calibs(par, fitstbl, raise_error=True, cut_cfg=None): diff --git a/pypeit/images/combineimage.py b/pypeit/images/combineimage.py index 37d36203c4..7951b07e55 100644 --- a/pypeit/images/combineimage.py +++ b/pypeit/images/combineimage.py @@ -194,7 +194,7 @@ def run(self, bias=None, flatimages=None, ignore_saturation=False, sigma_clip=Tr # Load raw image rawImage = rawimage.RawImage(ifile, self.spectrograph, self.det) # Process - pypeitImage = rawImage.process(self.par, bias=bias, bpm=bpm, dark=dark, + pypeitImage = rawImage.process(self.par, scattlight=scattlight, bias=bias, bpm=bpm, dark=dark, flatimages=flatimages, slits=slits, mosaic=mosaic) if self.nfiles == 1: diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index 7c66283deb..41d9b6d7da 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -373,7 +373,7 @@ def build_rn2img(self, units='e-', digitization=False): digitization=digitization) return np.array(rn2) - def process(self, par, bpm=None, flatimages=None, bias=None, slits=None, dark=None, + def process(self, par, bpm=None, scattlight=None, flatimages=None, bias=None, slits=None, dark=None, mosaic=False, debug=False): """ Process the data. @@ -445,6 +445,9 @@ def process(self, par, bpm=None, flatimages=None, bias=None, slits=None, dark=No #. :func:`spatial_flexure_shift`: Measure any spatial shift due to flexure. + #. :func:`subtract_scattlight`: Generate a model of the scattered light + contribution and subtract it. + #. :func:`flatfield`: Divide by the pixel-to-pixel, spatial and spectral response functions. @@ -468,6 +471,8 @@ def process(self, par, bpm=None, flatimages=None, bias=None, slits=None, dark=No The bad-pixel mask. This is used to *overwrite* the default bad-pixel mask for this spectrograph. The shape must match a trimmed and oriented processed image. + scattlight (:class:`~pypeit.scattlight.ScatteredLight`, optional): + Scattered light model to be used to determine scattered light. flatimages (:class:`~pypeit.flatfield.FlatImages`, optional): Flat-field images used to apply flat-field corrections. bias (:class:`~pypeit.images.pypeitimage.PypeItImage`, optional): @@ -512,6 +517,8 @@ def process(self, par, bpm=None, flatimages=None, bias=None, slits=None, dark=No msgs.error('No bias available for bias subtraction!') if self.par['use_darkimage'] and dark is None: msgs.error('No dark available for dark subtraction!') + if self.par['subtract_scattlight'] and scattlight is None: + msgs.error('Scattered light subtraction requested, but scattered light model provided.') if self.par['spat_flexure_correct'] and slits is None: msgs.error('Spatial flexure correction requested but no slits provided.') if self.use_flat and flatimages is None: diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py new file mode 100644 index 0000000000..80e17fa2c9 --- /dev/null +++ b/pypeit/scattlight.py @@ -0,0 +1,171 @@ +""" +Implements the objects used to hold slit edge data. + +.. include common links, assuming primary doc root is up one directory +.. include:: ../include/links.rst + +""" +import inspect + +from IPython import embed + +import numpy as np + +from pypeit import msgs +from pypeit import datamodel +from pypeit import calibframe +from pypeit.display import display + + +class ScatteredLight(calibframe.CalibFrame): + """ + Defines a generic class for generating a model of the scattered light. + + The datamodel attributes are: + + .. include:: ../include/class_datamodel_scatteredlight.rst + + """ + calib_type = 'ScatteredLight' + """Name for type of calibration frame.""" + + calib_file_format = 'fits.gz' + """File format for the calibration frame file.""" + + version = '1.0.0' + """Scattered Light data model version.""" + + internals = calibframe.CalibFrame.internals + """ + Attributes kept separate from the datamodel. + """ + + # Define the data model + datamodel = {'PYP_SPEC': dict(otype=str, descr='PypeIt spectrograph name'), + 'pypeline': dict(otype=str, descr='PypeIt pypeline name'), + 'detname': dict(otype=str, descr='Identifier for detector or mosaic'), + 'nspec': dict(otype=int, + descr='Number of pixels in the image spectral direction.'), + 'nspat': dict(otype=int, + descr='Number of pixels in the image spatial direction.'), + 'binspec': dict(otype=int, + descr='Number of pixels binned in the spectral direction.'), + 'binspat': dict(otype=int, + descr='Number of pixels binned in the spatial direction.'), + 'pad': dict(otype=int, + descr='Integer number of pixels to mask beyond the slit edges.'), + 'scattlight_raw': dict(otype=np.ndarray, atype=np.floating, + descr='Processed, combined scattered light image'), + 'scattlight_model': dict(otype=np.ndarray, atype=np.floating, + descr='Model of the scattered light in scattlight_raw'), + 'scattlight_param': dict(otype=np.ndarray, atype=np.floating, + descr='Model parameters that define the scattered light model')} + """Provides the class data model.""" + + # TODO: Allow tweaked edges to be arguments? + # TODO: May want nspat to be a required argument. + # The INIT must contain every datamodel item or risk fail on I/O when it is a nested container + def __init__(self, pypeline, detname=None, nspec=None, nspat=None, + PYP_SPEC=None, binspec=1, binspat=1, pad=0, + scattlight_raw=None, scattlight_model=None, scattlight_param=None): + + # Instantiate the DataContainer + args, _, _, values = inspect.getargvalues(inspect.currentframe()) + _d = dict([(k,values[k]) for k in args[1:]]) + # The dictionary passed to DataContainer.__init__ does not + # contain self. + # TODO: Does it matter if the calling function passes the + # keyword arguments in a different order? No. + datamodel.DataContainer.__init__(self, d=_d) + + def _validate(self): + """ + Validate the slit traces. + """ + # Allow the object to be empty + if self.scattlight_model is None: + return + + self.nspec, self.nslits = self.left_init.shape + + if self.PYP_SPEC is None: + self.PYP_SPEC = 'unknown' + + def get_model(self, image): + """Generate a model of the scattered light, based on an input image. This routine + requires that the scattered light has already been predefined. + + Parameters + ---------- + image : `numpy.ndarray`_ + A 2D image that you want to determine the amount of scattered light + + Returns + ------- + model : `numpy.ndarray`_ + A model of the expected scattered light in the input image. Shape is (nspec, nspat). + """ + msgs.info("Generating a scattered light image") + # Initialise the output + model = None + + # Generate the model + self.spec + + # Return the model of the scattered light + return model + + def show(self, image=None, slits=None, wcs_match=True): + """ Display the master scattered light frame, the model, and data-model. + + Parameters + ---------- + image : `numpy.ndarray`_, optional + A 2D image that you want to display (including a scattered light model). If None, + the master Scattered Light frame wil be displayed by default + slits : :class:`~pypeit.slittrace.SlitTraceSet`, optional + The current slit traces + wcs_match : :obj:`bool`, optional + Use a reference image for the WCS and match all image in other channels to it. + """ + # Prepare the frames + _data = self.scattlight_raw if image is None else image + _model = self.scattlight_model if image is None else self.get_model(image) + _resid = _data - _model + modmax = np.max(_model) + image_list = zip([_data, _model, _resid], + ['data', 'model', 'data-model'], + [(0.0, modmax), (0.0, modmax), (-modmax/2,modmax/2)]) + + # Display frames + show_scattered_light(image_list, slits=slits, wcs_match=wcs_match) + + +def show_scattered_light(image_list, slits=None, wcs_match=True): + """ + Interface to ginga to show the quality of the Scattered Light subtraction + + Parameters + ---------- + image_list : zip + A zip of the images to show, their names, and the scales + slits : :class:`~pypeit.slittrace.SlitTraceSet`, optional + The current slit traces + wcs_match : :obj:`bool`, optional + Use a reference image for the WCS and match all image in other channels to it. + """ + display.connect_to_ginga(raise_err=True, allow_new=True) + if slits is not None: + left, right, mask = slits.select_edges() + gpm = mask == 0 + # Loop me + clear = True + for img, name, cut in image_list: + if img is None: + continue + viewer, ch = display.show_image(img, chname=name, cuts=cut, wcs_match=wcs_match, clear=clear) + if slits is not None: + display.show_slits(viewer, ch, left[:, gpm], right[:, gpm], slit_ids=slits.spat_id[gpm]) + # Turn off clear + if clear: + clear = False From a770600291111a28cdc6301966e37499ffb28bdd Mon Sep 17 00:00:00 2001 From: rcooke Date: Thu, 12 Oct 2023 22:19:03 +0100 Subject: [PATCH 02/67] scattered light par --- pypeit/calibrations.py | 36 ++++++-------- pypeit/core/framematch.py | 7 +-- pypeit/images/buildimage.py | 13 +++++ pypeit/images/combineimage.py | 4 +- pypeit/images/rawimage.py | 6 ++- pypeit/par/pypeitpar.py | 81 +++++++++++++++++++++++++++++-- pypeit/scattlight.py | 26 +++------- pypeit/spectrographs/keck_kcwi.py | 2 +- 8 files changed, 125 insertions(+), 50 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index f3cf15098e..e3199bdb18 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -558,10 +558,10 @@ def get_scattlight(self): self._chk_set(['det', 'calib_ID', 'par']) # Prep - frame = {'type': 'trace', 'class': scattlight.ScatteredLight} + frame = {'type': 'scattlight', 'class': scattlight.ScatteredLight} raw_scattlight_files, cal_file, calib_key, setup, calib_id, detname = \ self.find_calibrations(frame['type'], frame['class']) - # raw_lampoff_files = self.fitstbl.find_frame_files('scattlight', calib_ID=self.calib_ID) + scatt_idx = self.fitstbl.find_frames(frame['type'], calib_ID=self.calib_ID, index=True) if len(raw_scattlight_files) == 0 and cal_file is None: msgs.warn(f'No raw {frame["type"]} frames found and unable to identify a relevant ' @@ -583,38 +583,34 @@ def get_scattlight(self): # Reset the BPM self.get_bpm(frame=raw_scattlight_files[0]) + binning = self.fitstbl[scatt_idx[0]]['binning'] scattlightImage = buildimage.buildimage_fromlist(self.spectrograph, self.det, self.par['scattlightframe'], raw_scattlight_files, bias=self.msbias, bpm=self.msbpm, dark=self.msdark, calib_dir=self.calib_dir, setup=setup, calib_id=calib_id) + embed() + # TODO :: Need to figure out where `pad` is stored for the call below, and work on scattered_light call on the next line model, modelpar, success = self.spectrograph.scattered_light(scattlightImage, self.slits, binning=binning) if not success: - # Something went amiss - msgs.warn('Scattered light computation failed. Continuing, but likely to fail soon...') + # Something went awry + msgs.warn('Scattered light modelling failed. Continuing, but likely to fail soon...') self.success = False return self.msscattlight - # The model has been generated. Store the result in the DataModel - self.msscattlight = scattlight.ScatteredLight(scattlight_raw=scattlightImage, + # Now generate the DataModel + self.msscattlight = scattlight.ScatteredLight(PYP_SPEC=self.spectrograph.name, + pypeline=self.spectrograph.pypeline, + detname=scattlightImage.detector.name, + nspec=scattlightImage.shape[0], nspat=scattlightImage.shape[1], + binning=scattlightImage.detector.binning, + # TODO :: Need to set this padding correctly + pad=self.par[''], + scattlight_raw=scattlightImage, scattlight_model=model, scattlight_param=modelpar) - # TODO :: Need to add these to the line above - # datamodel = {'PYP_SPEC': dict(otype=str, descr='PypeIt spectrograph name'), - # 'pypeline': dict(otype=str, descr='PypeIt pypeline name'), - # 'detname': dict(otype=str, descr='Identifier for detector or mosaic'), - # 'nspec': dict(otype=int, - # descr='Number of pixels in the image spectral direction.'), - # 'nspat': dict(otype=int, - # descr='Number of pixels in the image spatial direction.'), - # 'binspec': dict(otype=int, - # descr='Number of pixels binned in the spectral direction.'), - # 'binspat': dict(otype=int, - # descr='Number of pixels binned in the spatial direction.'), - # 'pad': dict(otype=int, - # descr='Integer number of pixels to mask beyond the slit edges.'), # Show the result if requested if self.show: diff --git a/pypeit/core/framematch.py b/pypeit/core/framematch.py index 171bc29996..795772d0b2 100644 --- a/pypeit/core/framematch.py +++ b/pypeit/core/framematch.py @@ -29,9 +29,10 @@ def __init__(self): ('pinhole', 'Pinhole observation used for tracing slit centers'), ('pixelflat', 'Flat-field exposure used for pixel-to-pixel response'), ('illumflat', 'Flat-field exposure used for illumination flat'), - ('lampoffflats', 'Flat-field exposure with lamps off used to remove ' - 'persistence from lamp on flat exposures and/or thermal emission ' - 'from the telescope and dome'), + ('lampoffflats', 'Flat-field exposure with lamps off used to remove ' + 'persistence from lamp on flat exposures and/or thermal emission ' + 'from the telescope and dome'), + ('scattlight', 'Frame (usually similar to pixelflat) used to determine scattered light model'), ('science', 'On-sky observation of a primary target'), ('standard', 'On-sky observation of a flux calibrator'), ('trace', 'High-count exposure used to trace slit positions'), diff --git a/pypeit/images/buildimage.py b/pypeit/images/buildimage.py index 1d58581f55..d30183cafc 100644 --- a/pypeit/images/buildimage.py +++ b/pypeit/images/buildimage.py @@ -77,6 +77,18 @@ class TiltImage(pypeitimage.PypeItCalibrationImage): calib_type = 'Tiltimg' +class ScatteredLightImage(pypeitimage.PypeItCalibrationImage): + """ + Simple DataContainer for the Scattered Light Image + """ + # version is inherited from PypeItImage + + # I/O + output_to_disk = ('SCATTLIGHT_IMAGE', 'SCATTLIGHT_FULLMASK', 'SCATTLIGHT_DETECTOR') + hdu_prefix = 'SCATTLIGHT_' + calib_type = 'ScattLight' + + class TraceImage(pypeitimage.PypeItCalibrationImage): """ Simple DataContainer for the Trace Image @@ -133,6 +145,7 @@ def construct_file_name(cls, calib_key, calib_dir=None, basename=None): arc=ArcImage, tilt=TiltImage, trace=TraceImage, + scattlight=ScatteredLightImage, align=AlignImage) """ The list of classes that :func:`buildimage_fromlist` should use to decorate the diff --git a/pypeit/images/combineimage.py b/pypeit/images/combineimage.py index 7951b07e55..8432e77585 100644 --- a/pypeit/images/combineimage.py +++ b/pypeit/images/combineimage.py @@ -63,8 +63,8 @@ def __init__(self, spectrograph, det, par, files): msgs.error('CombineImage requires a list of files to instantiate') def run(self, bias=None, flatimages=None, ignore_saturation=False, sigma_clip=True, - bpm=None, sigrej=None, maxiters=5, slits=None, dark=None, combine_method='mean', - mosaic=False): + bpm=None, sigrej=None, maxiters=5, slits=None, dark=None, scattlight=None, + combine_method='mean', mosaic=False): r""" Process and combine all images. diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index 41d9b6d7da..eb1f3dc737 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -643,7 +643,7 @@ def process(self, par, bpm=None, scattlight=None, flatimages=None, bias=None, sl # - Subtract scattered light... this needs to be done before flatfielding. if self.par['subtract_scattlight']: - self.subtract_scattlight() + self.subtract_scattlight(scattlight) # Flat-field the data. This propagates the flat-fielding corrections to # the variance. The returned bpm is propagated to the PypeItImage @@ -1118,7 +1118,7 @@ def subtract_continuum(self, force=False): #cont = ndimage.median_filter(self.image, size=(1,101,3), mode='reflect') self.steps[step] = True - def subtract_scattlight(self): + def subtract_scattlight(self, scattlight): """ Analyze and subtract the scattered light from the image. @@ -1135,6 +1135,8 @@ def subtract_scattlight(self): # Loop over the images for ii in range(self.nimg): binning = self.detector[0].binning + # TODO :: Need to pass in scattlight or scattlight.scattlight_param + embed() scatt_img = self.spectrograph.scattered_light(self.image[ii, ...], binning) self.image[ii, ...] -= scatt_img self.steps[step] = True diff --git a/pypeit/par/pypeitpar.py b/pypeit/par/pypeitpar.py index 2fa8156edc..9da6dbc53f 100644 --- a/pypeit/par/pypeitpar.py +++ b/pypeit/par/pypeitpar.py @@ -979,7 +979,66 @@ def from_dict(cls, cfg): badkeys = np.array([pk not in parkeys for pk in k]) if np.any(badkeys): - raise ValueError('{0} not recognized key(s) for WaveTiltsPar.'.format(k[badkeys])) + raise ValueError('{0} not recognized key(s) for AlignPar.'.format(k[badkeys])) + + kwargs = {} + for pk in parkeys: + kwargs[pk] = cfg[pk] if pk in k else None + return cls(**kwargs) + + def validate(self): + """ + Check the parameters are valid for the provided method. + """ + pass + + +class ScatteredLightPar(ParSet): + """ + The parameter set used to hold arguments for modelling the scattered light. + + For a table with the current keywords, defaults, and descriptions, + see :ref:`parameters`. + """ + + def __init__(self, pad=None): + + # Grab the parameter names and values from the function + # arguments + args, _, _, values = inspect.getargvalues(inspect.currentframe()) + pars = OrderedDict([(k, values[k]) for k in args[1:]]) # "1:" to skip 'self' + + # Initialize the other used specifications for this parameter + # set + defaults = OrderedDict.fromkeys(pars.keys()) + options = OrderedDict.fromkeys(pars.keys()) + dtypes = OrderedDict.fromkeys(pars.keys()) + descr = OrderedDict.fromkeys(pars.keys()) + + # Fill out parameter specifications. Only the values that are + # *not* None (i.e., the ones that are defined) need to be set + + defaults['pad'] = 5 + dtypes['pad'] = int + descr['pad'] = 'Number of unbinned pixels to extend the slit edges by when masking the slits.' + + # Instantiate the parameter set + super(ScatteredLightPar, self).__init__(list(pars.keys()), + values=list(pars.values()), + defaults=list(defaults.values()), + options=list(options.values()), + dtypes=list(dtypes.values()), + descr=list(descr.values())) + self.validate() + + @classmethod + def from_dict(cls, cfg): + k = np.array([*cfg.keys()]) + parkeys = ['pad'] + + badkeys = np.array([pk not in parkeys for pk in k]) + if np.any(badkeys): + raise ValueError('{0} not recognized key(s) for ScatteredLightPar.'.format(k[badkeys])) kwargs = {} for pk in parkeys: @@ -4070,8 +4129,8 @@ class CalibrationsPar(ParSet): def __init__(self, calib_dir=None, bpm_usebias=None, biasframe=None, darkframe=None, arcframe=None, tiltframe=None, pixelflatframe=None, pinholeframe=None, alignframe=None, alignment=None, traceframe=None, illumflatframe=None, - lampoffflatsframe=None, skyframe=None, standardframe=None, flatfield=None, - wavelengths=None, slitedges=None, tilts=None, raise_chk_error=None): + lampoffflatsframe=None, scattlightframe=None, skyframe=None, standardframe=None, + flatfield=None, wavelengths=None, slitedges=None, tilts=None, raise_chk_error=None): # Grab the parameter names and values from the function @@ -4122,6 +4181,14 @@ def __init__(self, calib_dir=None, bpm_usebias=None, biasframe=None, darkframe=N dtypes['darkframe'] = [ ParSet, dict ] descr['darkframe'] = 'The frames and combination rules for the dark-current correction' + defaults['scattlightframe'] = FrameGroupPar(frametype='scattlight', + process=ProcessImagesPar(satpix='nothing', + use_pixelflat=False, + use_illumflat=False, + use_specillum=False)) + dtypes['scattlightframe'] = [ ParSet, dict ] + descr['scattlightframe'] = 'The frames and combination rules for the scattered light frames' + # JFH Turning off masking of saturated pixels which causes headaches becauase it was being done unintelligently defaults['pixelflatframe'] = FrameGroupPar(frametype='pixelflat', process=ProcessImagesPar(satpix='nothing', @@ -4201,6 +4268,10 @@ def __init__(self, calib_dir=None, bpm_usebias=None, biasframe=None, darkframe=N dtypes['alignment'] = [ ParSet, dict ] descr['alignment'] = 'Define the procedure for the alignment of traces' + defaults['scattlight'] = ScatteredLightPar() + dtypes['scattlight'] = [ ParSet, dict ] + descr['scattlight'] = 'Define the procedure for modelling the scattered light' + defaults['flatfield'] = FlatFieldPar() dtypes['flatfield'] = [ ParSet, dict ] descr['flatfield'] = 'Parameters used to set the flat-field procedure' @@ -4234,7 +4305,7 @@ def from_dict(cls, cfg): parkeys = [ 'calib_dir', 'bpm_usebias', 'raise_chk_error'] allkeys = parkeys + ['biasframe', 'darkframe', 'arcframe', 'tiltframe', 'pixelflatframe', - 'illumflatframe', 'lampoffflatsframe', + 'illumflatframe', 'lampoffflatsframe', 'scattlightframe', 'pinholeframe', 'alignframe', 'alignment', 'traceframe', 'standardframe', 'skyframe', 'flatfield', 'wavelengths', 'slitedges', 'tilts'] badkeys = np.array([pk not in allkeys for pk in k]) @@ -4262,6 +4333,8 @@ def from_dict(cls, cfg): kwargs[pk] = FrameGroupPar.from_dict('lampoffflats', cfg[pk]) if pk in k else None pk = 'pinholeframe' kwargs[pk] = FrameGroupPar.from_dict('pinhole', cfg[pk]) if pk in k else None + pk = 'scattlightframe' + kwargs[pk] = FrameGroupPar.from_dict('scattlight', cfg[pk]) if pk in k else None pk = 'alignframe' kwargs[pk] = FrameGroupPar.from_dict('align', cfg[pk]) if pk in k else None pk = 'alignment' diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py index 80e17fa2c9..4b80aebe4f 100644 --- a/pypeit/scattlight.py +++ b/pypeit/scattlight.py @@ -44,29 +44,19 @@ class ScatteredLight(calibframe.CalibFrame): datamodel = {'PYP_SPEC': dict(otype=str, descr='PypeIt spectrograph name'), 'pypeline': dict(otype=str, descr='PypeIt pypeline name'), 'detname': dict(otype=str, descr='Identifier for detector or mosaic'), - 'nspec': dict(otype=int, - descr='Number of pixels in the image spectral direction.'), - 'nspat': dict(otype=int, - descr='Number of pixels in the image spatial direction.'), - 'binspec': dict(otype=int, - descr='Number of pixels binned in the spectral direction.'), - 'binspat': dict(otype=int, - descr='Number of pixels binned in the spatial direction.'), - 'pad': dict(otype=int, - descr='Integer number of pixels to mask beyond the slit edges.'), - 'scattlight_raw': dict(otype=np.ndarray, atype=np.floating, - descr='Processed, combined scattered light image'), - 'scattlight_model': dict(otype=np.ndarray, atype=np.floating, - descr='Model of the scattered light in scattlight_raw'), - 'scattlight_param': dict(otype=np.ndarray, atype=np.floating, - descr='Model parameters that define the scattered light model')} + 'nspec': dict(otype=int, descr='Number of pixels in the image spectral direction.'), + 'nspat': dict(otype=int, descr='Number of pixels in the image spatial direction.'), + 'binning': dict(otype=str, descr='Binning in PypeIt orientation (not the original)'), + 'pad': dict(otype=int, descr='Integer number of pixels to mask beyond the slit edges.'), + 'scattlight_raw': dict(otype=np.ndarray, atype=np.floating, descr='Processed, combined scattered light image'), + 'scattlight_model': dict(otype=np.ndarray, atype=np.floating, descr='Model of the scattered light in scattlight_raw'), + 'scattlight_param': dict(otype=np.ndarray, atype=np.floating, descr='Model parameters that define the scattered light model')} """Provides the class data model.""" # TODO: Allow tweaked edges to be arguments? # TODO: May want nspat to be a required argument. # The INIT must contain every datamodel item or risk fail on I/O when it is a nested container - def __init__(self, pypeline, detname=None, nspec=None, nspat=None, - PYP_SPEC=None, binspec=1, binspat=1, pad=0, + def __init__(self, pypeline=None, detname=None, nspec=None, nspat=None, PYP_SPEC=None, binning=None, pad=0, scattlight_raw=None, scattlight_model=None, scattlight_param=None): # Instantiate the DataContainer diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index f7163cae78..2336db64cb 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -350,7 +350,7 @@ def check_frame_type(self, ftype, fitstbl, exprng=None): & self.lamps(fitstbl, 'off') & (fitstbl['hatch'] == 'Open') if ftype == 'bias': return good_exp & (fitstbl['idname'] == 'BIAS') - if ftype == 'pixelflat': + if ftype in ['pixelflat', 'scattlight']: # Use internal lamp return good_exp & (fitstbl['idname'] == 'FLATLAMP') & (fitstbl['calpos'] == 'Mirror') \ & self.lamps(fitstbl, 'cont_noarc') From 9167b7451aaede93d9c249667f1f28f4eab52817 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 13 Oct 2023 09:00:57 +0100 Subject: [PATCH 03/67] scattered light par --- pypeit/par/pypeitpar.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pypeit/par/pypeitpar.py b/pypeit/par/pypeitpar.py index 9da6dbc53f..ed7169eb4c 100644 --- a/pypeit/par/pypeitpar.py +++ b/pypeit/par/pypeitpar.py @@ -4130,7 +4130,7 @@ def __init__(self, calib_dir=None, bpm_usebias=None, biasframe=None, darkframe=N arcframe=None, tiltframe=None, pixelflatframe=None, pinholeframe=None, alignframe=None, alignment=None, traceframe=None, illumflatframe=None, lampoffflatsframe=None, scattlightframe=None, skyframe=None, standardframe=None, - flatfield=None, wavelengths=None, slitedges=None, tilts=None, raise_chk_error=None): + scattlight=None, flatfield=None, wavelengths=None, slitedges=None, tilts=None, raise_chk_error=None): # Grab the parameter names and values from the function @@ -4307,7 +4307,7 @@ def from_dict(cls, cfg): allkeys = parkeys + ['biasframe', 'darkframe', 'arcframe', 'tiltframe', 'pixelflatframe', 'illumflatframe', 'lampoffflatsframe', 'scattlightframe', 'pinholeframe', 'alignframe', 'alignment', 'traceframe', 'standardframe', 'skyframe', - 'flatfield', 'wavelengths', 'slitedges', 'tilts'] + 'scattlight', 'flatfield', 'wavelengths', 'slitedges', 'tilts'] badkeys = np.array([pk not in allkeys for pk in k]) if np.any(badkeys): raise ValueError('{0} not recognized key(s) for CalibrationsPar.'.format(k[badkeys])) From 01e7a351381294d042503b14585b4849a5cf69ea Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 13 Oct 2023 14:47:46 +0100 Subject: [PATCH 04/67] implemented scattered light --- pypeit/calibrations.py | 14 ++- pypeit/scattlight.py | 11 +- pypeit/spectrographs/keck_kcwi.py | 170 ++++++++++++++++++++++++------ 3 files changed, 151 insertions(+), 44 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index e3199bdb18..095eb4e68a 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -28,6 +28,7 @@ from pypeit.images import buildimage from pypeit.metadata import PypeItMetaData from pypeit.core import framematch +from pypeit.core import parse from pypeit.par import pypeitpar from pypeit.spectrographs.spectrograph import Spectrograph from pypeit import io @@ -590,9 +591,11 @@ def get_scattlight(self): dark=self.msdark, calib_dir=self.calib_dir, setup=setup, calib_id=calib_id) - embed() - # TODO :: Need to figure out where `pad` is stored for the call below, and work on scattered_light call on the next line - model, modelpar, success = self.spectrograph.scattered_light(scattlightImage, self.slits, binning=binning) + spatbin = parse.parse_binning(binning)[1] + pad = self.par['scattlight']['pad'] // spatbin + slitid_img_init = self.slits.slit_img(pad=pad, initial=True, flexure=None) + + model, modelpar, success = self.spectrograph.scattered_light(scattlightImage.image, slitid_img_init, self.fitstbl[scatt_idx[0]]) if not success: # Something went awry @@ -606,12 +609,13 @@ def get_scattlight(self): detname=scattlightImage.detector.name, nspec=scattlightImage.shape[0], nspat=scattlightImage.shape[1], binning=scattlightImage.detector.binning, - # TODO :: Need to set this padding correctly - pad=self.par[''], + pad=self.par['scattlight']['pad'], scattlight_raw=scattlightImage, scattlight_model=model, scattlight_param=modelpar) + # TODO :: Should we go back and recalculate the slit edges once the scattered light is known? + # Show the result if requested if self.show: self.msscattlight.show() diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py index 4b80aebe4f..a852d7867e 100644 --- a/pypeit/scattlight.py +++ b/pypeit/scattlight.py @@ -96,14 +96,11 @@ def get_model(self, image): A model of the expected scattered light in the input image. Shape is (nspec, nspat). """ msgs.info("Generating a scattered light image") - # Initialise the output - model = None - - # Generate the model - self.spec - + if self.scattlight_param is None: + msgs.warn("No scattered light parameters are available") + return np.zeros_like(image) # Return the model of the scattered light - return model + return self.spec.scattered_light_model(self.scattlight_param, image) def show(self, image=None, slits=None, wcs_match=True): """ Display the master scattered light frame, the model, and data-model. diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index 2336db64cb..c9ab441f66 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -12,8 +12,9 @@ from astropy import wcs, units from astropy.io import fits from astropy.time import Time -from astropy.coordinates import SkyCoord, EarthLocation -from scipy.optimize import curve_fit +from astropy.coordinates import EarthLocation +from scipy.optimize import curve_fit, least_squares +from scipy import signal, interpolate from pypeit import msgs from pypeit import telescopes @@ -1031,46 +1032,97 @@ def get_rawimage(self, raw_file, det): # Return return detpar, raw_img, hdu, exptime, rawdatasec_img, oscansec_img - def scattered_light(self, frame, binning): - """ - Calculate a model of the scattered light of the input frame. + def scattered_light(self, frame, slitmask, tbl, nspecpad=300): + """ Calculate a model of the scattered light of the input frame. + + For KCWI, the main contributor to the scattered light is referred to as the "narcissistic ghost" + by Morrissey et al. (2018), ApJ, 864, 93. This scattered light is thought to be a reflection off the + detector that travels back through the optical system. Some fraction gets sent back out to space, while + the remained comes back through the optical system and a fuzzy version of this is re-imaged onto the + detector. The current KCWI scattered light model is designed to account for these effects. Parameters ---------- frame : `numpy.ndarray`_ Raw 2D data frame to be used to compute the scattered light. - binning : str, `numpy.ndarray`_, tuple - Binning of the frame (e.g. '2x1' refers to a binning of 2 in the spectral - direction, and a binning of 1 in the spatial direction). For the supported - formats, refer to :func:`~pypeit.core.parse.parse_binning`. + TODO :: complete docstring Returns ------- scatt_img : `numpy.ndarray`_ A 2D image of the scattered light determined from the input frame """ - # Determine the spatial binning. Currently, we hard-code the regions on the KCWI detector - # to be used for the determination of the scattered light. This is crude, and a better model - # is currently under development (RJC) - spatbin = parse.parse_binning(binning)[1] - ym = 4096 // (2 * spatbin) - y0 = ym - 180 // spatbin - y1 = ym + 180 // spatbin - # Obtain a robust (median) "spectrum" of the scattered light at the left, right, and middle of the detector - scattlightl = np.nanmedian(frame[:, :20//spatbin], axis=1)[:, None] - scattlightr = np.nanmedian(frame[:, -40//spatbin:], axis=1)[:, None] - scattlight = np.nanmedian(frame[:, y0:y1], axis=1)[:, None] - # The following algorithm is a polynomial fit to: - # (1) The left half of the detector (using the left and middle scattered light spectrum) - # (2) The right half of the detector (using the right and middle scattered light spectrum) - # We then ensure that the model is continuous and smooth at the middle of the detector. - medl = np.median(scattlightl / scattlight) - medr = np.median(scattlightr / scattlight) - spatimg = np.meshgrid(np.arange(frame.shape[1]), np.arange(frame.shape[0]))[0] - scatt_img = np.outer(scattlight, np.ones(frame.shape[1])) - scatt_img[spatimg < ym] *= 1 + (medl - 1) * (spatimg[spatimg < ym] / ym - 1) ** 2 - scatt_img[spatimg >= ym] *= 1 + (medr - 1) * (spatimg[spatimg >= ym] / (4095//spatbin - ym) - ym / (4095//spatbin - ym)) ** 2 - return scatt_img + def resid(param, wpix, img): + """ Residual function used to optimize the model parameters + + Parameters + ---------- + param : `numpy.ndarray`_ + 1D array of model parameters to use for the fitting function. + wpix : tuple + A tuple containing the x,y coordinates of the pixels in img + to be used for computing the residual. + img : `numpy.ndarray`_ + Data image to be used to compute the residual. Shape is (nspec, nspat) + + Returns + ------- + resid : `numpy.ndarray`_ + A 1D vector of the residuals + """ + return img[wpix] - scattered_light_model(param, img)[wpix] + + # Grab the binning for convenience + specbin, spatbin = parse.parse_binning(tbl['binning']) + + # First pad the edges to minimize edge effects + # Do a median filter near the edges + frame[0, :] = np.median(frame[0:10, :], axis=0) + frame[-1, :] = np.median(frame[-10:, :], axis=0) + img = np.pad(frame, nspecpad, mode='edge') + slitmask_pad = np.pad(slitmask, nspecpad, mode='edge') + # Grab the pixels to be included in the fit + wpix = np.where(slitmask_pad == -1) + + # Get some starting parameters (these were determined by fitting spectra, + # and should be close to the final fitted values to reduce computational time) + # Note :: These values need to be originally based on data that uses 1x1 binning, + # and are now scaled here according to the binning of the current data to be analysed. + # if tbl['dispname'] == 'BH2': + # x0 = [sigmx, sigmy1, shft_spec, shft_spat, zoom, term0, term1, term2, term3] + # elif tbl['dispname'] == 'BM': + # x0 = [sigmx, sigmy1, shft_spec, shft_spat, zoom, term0, term1, term2, term3] + if tbl['dispname'] == 'BL': + x0 = np.array([3.55797869e+02/specbin, 2.38333349e+02/spatbin, # kernel widths + 2.52262744e+01/specbin, 1.97022975e+02/spatbin, # pixel offsets + 9.41621820e-01, 1.02049301e-01, -2.10895495e-01, 2.36542387e-01, + -9.83331029e-02]) + else: + msgs.warn(f"Initial scattered light model parameters have not been setup for grating {tbl['dispname']}") + sigmx = 400.0 / specbin # This is the spectral direction + sigmy = 200.0 / spatbin # This is the spatial direction + shft_spec = -60.0 / specbin # Shift of the scattered light in the spectral direction + shft_spat = 0.0 / spatbin # Shift of the scattered light in the spatial direction + zoom = 1.0 # Zoom factor of the scattered light + term0, term1, term2, term3 = 0.1, -0.2, 0.3, -0.1 # Polynomial coefficients + x0 = [sigmx, sigmy, shft_spec, shft_spat, zoom, term0, term1, term2, term3] + + # Compute the best-fitting model parameters + msgs.info("Computing best-fitting model parameters of the scattered light") + res_lsq = least_squares(resid, x0, + bounds=([1, 1, -200 / specbin, -200 / spatbin, 0, -10, -10, -10, -10], + [600 / specbin, 600 / spatbin, 200 / specbin, 200 / spatbin, 2, 10, 10, 10, + 10]), + args=(wpix, img), verbose=2) + # Store if this is a successful fit + success = res_lsq.success + if success: + msgs.info("Generating best-fitting scattered light model") + scatt_img = scattered_light_model(res_lsq.x, img)[nspecpad:-nspecpad, nspecpad:-nspecpad] + else: + msgs.warn("Scattered light model fitting failed") + scatt_img = np.zeros_like(frame) + return scatt_img, res_lsq.x, success def fit_2d_det_response(self, det_resp, gpmask): r""" @@ -1311,7 +1363,6 @@ def is_nasmask(hdr): """ return 'Mask' in hdr['RNASNAM'] - def get_rawimage(self, raw_file, det): """ Read a raw KCRM data frame @@ -1391,3 +1442,58 @@ def get_rawimage(self, raw_file, det): # Return return detpar, raw_img, hdu, exptime, rawdatasec_img, oscansec_img + + +def scattered_light_model(param, img, kernel='gaussian'): + """ Model used to calculate the scattered light + + Parameters + ---------- + param : `numpy.ndarray`_ + Model parameters that determine the scattered light based on the input img. + For KCWI there are 9 model parameters that need to be input, and these are: + + * param[0] = Kernel width in the spectral direction + * param[1] = Kernel width in the spatial direction + * param[2] = Pixel shift of the scattered light in the spectral direction + * param[3] = Pixel shift of the scattered light in the spatial direction + * param[4] = Zoom factor of the scattered light (~1) + * param[5] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**0) + * param[6] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**1) + * param[7] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**2) + * param[8] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**3) + img : `numpy.ndarray`_ + Raw image that you want to compute the scattered light model. + shape is (nspec, nspat) + + Returns + ------- + model : `numpy.ndarray`_ + Model of the scattered light for the input + """ + # For clarity, unpack the parameters + assert param.size == 9 # For KCWI, the scattered light model requires 9 model parameters + sigmx, sigmy, shft_spec, shft_spat, zoom = param[0], param[1], param[2], param[3], param[4] + term0, term1, term2, term3 = param[5], param[6], param[7], param[8] + # Generate a 2D smoothing kernel + if kernel == 'gaussian': + # Gaussian + subkrnx = np.exp(-0.5*(np.arange(int(6*sigmx))-3*sigmx)**2/sigmx**2) + subkrny = np.exp(-0.5*(np.arange(int(6*sigmy))-3*sigmy)**2/sigmy**2) + elif kernel == 'lorentzian': + # Lorentzian + subkrnx = sigmx / ((np.arange(int(10*sigmx))-5*sigmx)**2 + sigmx**2) + subkrny = sigmy / ((np.arange(int(10*sigmy))-5*sigmy)**2 + sigmy**2) + else: + msgs.error(f"Unknown kernel: {kernel}") + kernel = np.outer(subkrnx, subkrny) + kernel /= np.sum(kernel) + # Make a grid of coordinates + specvec, spatvec = np.arange(img.shape[0]), np.arange(img.shape[1]) + spat, spec = np.meshgrid(spatvec, specvec/(specvec.size-1)) + # Convolve the input image (note: most of the time is spent here) + # oaconvolve is the fastest option when the kernel is much smaller dimensions than the image + # scale_img = (term0 + term1 * spec + term2*spec**2 + term3*spec**3) * signal.fftconvolve(img, kernel, mode='same') + scale_img = (term0 + term1 * spec + term2*spec**2 + term3*spec**3) * signal.oaconvolve(img, kernel, mode='same') + spl = interpolate.RectBivariateSpline(specvec, spatvec, scale_img, kx=1, ky=1) + return spl(zoom*(specvec+shft_spec), zoom*(spatvec+shft_spat)) \ No newline at end of file From 9fcbe986c6a82401acd5c49b8dc576a7f14eaefc Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 13 Oct 2023 16:37:42 +0100 Subject: [PATCH 05/67] scattered light cleanup --- pypeit/calibrations.py | 7 +- pypeit/images/rawimage.py | 9 +- pypeit/scattlight.py | 4 +- pypeit/spectrographs/keck_kcwi.py | 136 +++++++++++++++------------ pypeit/spectrographs/spectrograph.py | 44 +++++++-- 5 files changed, 120 insertions(+), 80 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index 095eb4e68a..3bd318253e 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -593,9 +593,10 @@ def get_scattlight(self): spatbin = parse.parse_binning(binning)[1] pad = self.par['scattlight']['pad'] // spatbin - slitid_img_init = self.slits.slit_img(pad=pad, initial=True, flexure=None) + offslitmask = self.slits.slit_img(pad=pad, initial=True, flexure=None)==-1 - model, modelpar, success = self.spectrograph.scattered_light(scattlightImage.image, slitid_img_init, self.fitstbl[scatt_idx[0]]) + model, modelpar, success = self.spectrograph.scattered_light(scattlightImage.image, offslitmask, + self.fitstbl[scatt_idx[0]]) if not success: # Something went awry @@ -610,7 +611,7 @@ def get_scattlight(self): nspec=scattlightImage.shape[0], nspat=scattlightImage.shape[1], binning=scattlightImage.detector.binning, pad=self.par['scattlight']['pad'], - scattlight_raw=scattlightImage, + scattlight_raw=scattlightImage.image, scattlight_model=model, scattlight_param=modelpar) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index eb1f3dc737..8d13124c2a 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -1132,12 +1132,13 @@ def subtract_scattlight(self, scattlight): msgs.warn("The scattered light has already been subtracted from the image!") return + if scattlight.scattlight_param is None: + msgs.warn("Scattered light parameters are not set. Cannot perform scattered light subtraction.") + return + # Loop over the images for ii in range(self.nimg): - binning = self.detector[0].binning - # TODO :: Need to pass in scattlight or scattlight.scattlight_param - embed() - scatt_img = self.spectrograph.scattered_light(self.image[ii, ...], binning) + scatt_img = self.spectrograph.scattered_light_model(scattlight.scattlight_param, self.image[ii, ...]) self.image[ii, ...] -= scatt_img self.steps[step] = True diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py index a852d7867e..8ca9f223fa 100644 --- a/pypeit/scattlight.py +++ b/pypeit/scattlight.py @@ -73,11 +73,9 @@ def _validate(self): Validate the slit traces. """ # Allow the object to be empty - if self.scattlight_model is None: + if self.scattlight_param is None: return - self.nspec, self.nslits = self.left_init.shape - if self.PYP_SPEC is None: self.PYP_SPEC = 'unknown' diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index c9ab441f66..4cd3d8f023 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -1032,7 +1032,68 @@ def get_rawimage(self, raw_file, det): # Return return detpar, raw_img, hdu, exptime, rawdatasec_img, oscansec_img - def scattered_light(self, frame, slitmask, tbl, nspecpad=300): + def scattered_light_model(self, param, img, kernel='gaussian'): + """ Model used to calculate the scattered light + + Parameters + ---------- + param : `numpy.ndarray`_ + Model parameters that determine the scattered light based on the input img. + For KCWI there are 9 model parameters that need to be input, and these are: + + * param[0] = Kernel width in the spectral direction + * param[1] = Kernel width in the spatial direction + * param[2] = Pixel shift of the scattered light in the spectral direction + * param[3] = Pixel shift of the scattered light in the spatial direction + * param[4] = Zoom factor of the scattered light (~1) + * param[5] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**0) + * param[6] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**1) + * param[7] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**2) + * param[8] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**3) + img : `numpy.ndarray`_ + Raw image that you want to compute the scattered light model. + shape is (nspec, nspat) + Model used to calculate the scattered light. This function is used to + generate a model of the scattered light, based on a set of model parameters + that have been optimized using self.scattered_light(). + kernel : :obj:`str`_, optional + The shape of the kernel to use. The allowed values for KCWI are 'gaussian' and 'lorentzian', + but the default value ('gaussian') is known to provide the best fit. + + Returns + ------- + model : `numpy.ndarray`_ + Model of the scattered light for the input + """ + # For clarity, unpack the parameters + assert param.size == 9 # For KCWI, the scattered light model requires 9 model parameters + sigmx, sigmy, shft_spec, shft_spat, zoom = param[0], param[1], param[2], param[3], param[4] + term0, term1, term2, term3 = param[5], param[6], param[7], param[8] + # Generate a 2D smoothing kernel + if kernel == 'gaussian': + # Gaussian + subkrnx = np.exp(-0.5 * (np.arange(int(6 * sigmx)) - 3 * sigmx) ** 2 / sigmx ** 2) + subkrny = np.exp(-0.5 * (np.arange(int(6 * sigmy)) - 3 * sigmy) ** 2 / sigmy ** 2) + elif kernel == 'lorentzian': + # Lorentzian + subkrnx = sigmx / ((np.arange(int(10 * sigmx)) - 5 * sigmx) ** 2 + sigmx ** 2) + subkrny = sigmy / ((np.arange(int(10 * sigmy)) - 5 * sigmy) ** 2 + sigmy ** 2) + else: + msgs.error(f"Unknown kernel: {kernel}") + kernel = np.outer(subkrnx, subkrny) + kernel /= np.sum(kernel) + # Make a grid of coordinates + specvec, spatvec = np.arange(img.shape[0]), np.arange(img.shape[1]) + spat, spec = np.meshgrid(spatvec, specvec / (specvec.size - 1)) + # Convolve the input image (note: most of the time is spent here) + # oaconvolve is the fastest option when the kernel is much smaller dimensions than the image + # scale_img = (term0 + term1 * spec + term2*spec**2 + term3*spec**3) * signal.fftconvolve(img, kernel, mode='same') + scale_img = (term0 + term1 * spec + term2 * spec ** 2 + term3 * spec ** 3) * signal.oaconvolve(img, kernel, + mode='same') + spl = interpolate.RectBivariateSpline(specvec, spatvec, scale_img, kx=1, ky=1) + return spl(zoom * (specvec + shft_spec), zoom * (spatvec + shft_spat)) + + def scattered_light(self, frame, offslitmask, tbl, detpad=300): """ Calculate a model of the scattered light of the input frame. For KCWI, the main contributor to the scattered light is referred to as the "narcissistic ghost" @@ -1045,7 +1106,13 @@ def scattered_light(self, frame, slitmask, tbl, nspecpad=300): ---------- frame : `numpy.ndarray`_ Raw 2D data frame to be used to compute the scattered light. - TODO :: complete docstring + offslitmask : `numpy.ndarray`_ + A boolean mask indicating the pixels that are on/off the slit (True = off the slit) + tbl : :class:`~pypeit.metadata.PypeItMetaData`_ + One row of the fitstbl PypeItMetaData that contains metadata about the file being used to + optimize the scattered light model parameters. + detpad : :obj:`int`_, optional + Number of pixels to pad to each of the detector edges to reduce edge effects. Returns ------- @@ -1070,7 +1137,7 @@ def resid(param, wpix, img): resid : `numpy.ndarray`_ A 1D vector of the residuals """ - return img[wpix] - scattered_light_model(param, img)[wpix] + return img[wpix] - self.scattered_light_model(param, img)[wpix] # Grab the binning for convenience specbin, spatbin = parse.parse_binning(tbl['binning']) @@ -1079,10 +1146,10 @@ def resid(param, wpix, img): # Do a median filter near the edges frame[0, :] = np.median(frame[0:10, :], axis=0) frame[-1, :] = np.median(frame[-10:, :], axis=0) - img = np.pad(frame, nspecpad, mode='edge') - slitmask_pad = np.pad(slitmask, nspecpad, mode='edge') + img = np.pad(frame, detpad, mode='edge') + offslitmask_pad = np.pad(offslitmask, detpad, mode='edge') # Grab the pixels to be included in the fit - wpix = np.where(slitmask_pad == -1) + wpix = np.where(offslitmask_pad) # Get some starting parameters (these were determined by fitting spectra, # and should be close to the final fitted values to reduce computational time) @@ -1118,7 +1185,7 @@ def resid(param, wpix, img): success = res_lsq.success if success: msgs.info("Generating best-fitting scattered light model") - scatt_img = scattered_light_model(res_lsq.x, img)[nspecpad:-nspecpad, nspecpad:-nspecpad] + scatt_img = self.scattered_light_model(res_lsq.x, img)[detpad:-detpad, detpad:-detpad] else: msgs.warn("Scattered light model fitting failed") scatt_img = np.zeros_like(frame) @@ -1442,58 +1509,3 @@ def get_rawimage(self, raw_file, det): # Return return detpar, raw_img, hdu, exptime, rawdatasec_img, oscansec_img - - -def scattered_light_model(param, img, kernel='gaussian'): - """ Model used to calculate the scattered light - - Parameters - ---------- - param : `numpy.ndarray`_ - Model parameters that determine the scattered light based on the input img. - For KCWI there are 9 model parameters that need to be input, and these are: - - * param[0] = Kernel width in the spectral direction - * param[1] = Kernel width in the spatial direction - * param[2] = Pixel shift of the scattered light in the spectral direction - * param[3] = Pixel shift of the scattered light in the spatial direction - * param[4] = Zoom factor of the scattered light (~1) - * param[5] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**0) - * param[6] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**1) - * param[7] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**2) - * param[8] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**3) - img : `numpy.ndarray`_ - Raw image that you want to compute the scattered light model. - shape is (nspec, nspat) - - Returns - ------- - model : `numpy.ndarray`_ - Model of the scattered light for the input - """ - # For clarity, unpack the parameters - assert param.size == 9 # For KCWI, the scattered light model requires 9 model parameters - sigmx, sigmy, shft_spec, shft_spat, zoom = param[0], param[1], param[2], param[3], param[4] - term0, term1, term2, term3 = param[5], param[6], param[7], param[8] - # Generate a 2D smoothing kernel - if kernel == 'gaussian': - # Gaussian - subkrnx = np.exp(-0.5*(np.arange(int(6*sigmx))-3*sigmx)**2/sigmx**2) - subkrny = np.exp(-0.5*(np.arange(int(6*sigmy))-3*sigmy)**2/sigmy**2) - elif kernel == 'lorentzian': - # Lorentzian - subkrnx = sigmx / ((np.arange(int(10*sigmx))-5*sigmx)**2 + sigmx**2) - subkrny = sigmy / ((np.arange(int(10*sigmy))-5*sigmy)**2 + sigmy**2) - else: - msgs.error(f"Unknown kernel: {kernel}") - kernel = np.outer(subkrnx, subkrny) - kernel /= np.sum(kernel) - # Make a grid of coordinates - specvec, spatvec = np.arange(img.shape[0]), np.arange(img.shape[1]) - spat, spec = np.meshgrid(spatvec, specvec/(specvec.size-1)) - # Convolve the input image (note: most of the time is spent here) - # oaconvolve is the fastest option when the kernel is much smaller dimensions than the image - # scale_img = (term0 + term1 * spec + term2*spec**2 + term3*spec**3) * signal.fftconvolve(img, kernel, mode='same') - scale_img = (term0 + term1 * spec + term2*spec**2 + term3*spec**3) * signal.oaconvolve(img, kernel, mode='same') - spl = interpolate.RectBivariateSpline(specvec, spatvec, scale_img, kx=1, ky=1) - return spl(zoom*(specvec+shft_spec), zoom*(spatvec+shft_spat)) \ No newline at end of file diff --git a/pypeit/spectrographs/spectrograph.py b/pypeit/spectrographs/spectrograph.py index f7c87028e8..ce8907b6e1 100644 --- a/pypeit/spectrographs/spectrograph.py +++ b/pypeit/spectrographs/spectrograph.py @@ -1891,21 +1891,50 @@ def calc_pattern_freq(self, frame, rawdatasec_img, oscansec_img, hdu): patt_freqs : :obj:`list` List of pattern frequencies. """ - msgs.info("Pattern noise removal is not implemented for spectrograph {0:s}".format(self.name)) + msgs.warn(f"Pattern noise removal is not implemented for spectrograph {self.name}") return [] - def scattered_light(self, frame, binning): + def scattered_light_model(self, param, img, kernel='gaussian'): + """ Model used to calculate the scattered light. This function is used to + generate a model of the scattered light, based on a set of model parameters + that have been optimized using self.scattered_light(). + + Parameters + ---------- + param : `numpy.ndarray`_ + Model parameters that determine the scattered light based on the input img. + Every spectrograph is allowed a different number of model parameters. + img : `numpy.ndarray`_ + Raw image that you want to compute the scattered light model. + shape is (nspec, nspat) + kernel : :obj:`str`_, optional + The shape of the kernel to use. The allowed values depend on the spectrograph + scattered light model. + + Returns + ------- + model : `numpy.ndarray`_ + Model of the scattered light for the input """ - Calculate a model of the scattered light of the input frame. + msgs.warn(f"Scattered light subtraction is not setup for {self.name}") + return np.zeros_like(img) + + def scattered_light(self, frame, offslitmask, tbl, detpad=300): + """ Calculate the scattered light model parameters of the input frame. + This function is used to optimize the model parameters. See also + self.scattered_light_model() Parameters ---------- frame : `numpy.ndarray`_ Raw 2D data frame to be used to compute the scattered light. - binning : str, `numpy.ndarray`_, tuple - Binning of the frame (e.g. '2x1' refers to a binning of 2 in the spectral - direction, and a binning of 1 in the spatial direction). For the supported - formats, refer to :func:`~pypeit.core.parse.parse_binning`. + offslitmask : `numpy.ndarray`_ + A boolean mask indicating the pixels that are on/off the slit (True = off the slit) + tbl : :class:`~pypeit.metadata.PypeItMetaData`_ + One row of the fitstbl PypeItMetaData that contains metadata about the file being used to + optimize the scattered light model parameters. + detpad : :obj:`int`_, optional + Number of pixels to pad to each of the detector edges to reduce edge effects. Returns ------- @@ -1926,4 +1955,3 @@ def __repr__(self): txt += '>' return txt - From e911a71bff5233c446625f16bd8780765224a180 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 13 Oct 2023 20:56:48 +0100 Subject: [PATCH 06/67] add to config --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index 5f0e25ee7e..4de6a91269 100644 --- a/setup.cfg +++ b/setup.cfg @@ -98,6 +98,7 @@ console_scripts = pypeit_chk_for_calibs = pypeit.scripts.chk_for_calibs:ChkForCalibs.entry_point pypeit_chk_noise_1dspec = pypeit.scripts.chk_noise_1dspec:ChkNoise1D.entry_point pypeit_chk_noise_2dspec = pypeit.scripts.chk_noise_2dspec:ChkNoise2D.entry_point + pypeit_chk_scattlight = pypeit.scripts.chk_scattlight:ChkScattLight.entry_point pypeit_coadd_1dspec = pypeit.scripts.coadd_1dspec:CoAdd1DSpec.entry_point pypeit_coadd_2dspec = pypeit.scripts.coadd_2dspec:CoAdd2DSpec.entry_point pypeit_coadd_datacube = pypeit.scripts.coadd_datacube:CoAddDataCube.entry_point From 0f026322f446306e7b7bfaf90ef23d0d3d3a0ba8 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 13 Oct 2023 20:57:14 +0100 Subject: [PATCH 07/67] add script --- pypeit/scattlight.py | 19 +++++++-- pypeit/scripts/chk_scattlight.py | 72 ++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 pypeit/scripts/chk_scattlight.py diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py index 8ca9f223fa..7e7391efbd 100644 --- a/pypeit/scattlight.py +++ b/pypeit/scattlight.py @@ -15,6 +15,7 @@ from pypeit import datamodel from pypeit import calibframe from pypeit.display import display +from pypeit.spectrographs.util import load_spectrograph class ScatteredLight(calibframe.CalibFrame): @@ -97,10 +98,12 @@ def get_model(self, image): if self.scattlight_param is None: msgs.warn("No scattered light parameters are available") return np.zeros_like(image) + # Load the spectrograph + spec = load_spectrograph(self.PYP_SPEC) # Return the model of the scattered light - return self.spec.scattered_light_model(self.scattlight_param, image) + return spec.scattered_light_model(self.scattlight_param, image) - def show(self, image=None, slits=None, wcs_match=True): + def show(self, image=None, slits=None, mask=False, wcs_match=True): """ Display the master scattered light frame, the model, and data-model. Parameters @@ -110,13 +113,23 @@ def show(self, image=None, slits=None, wcs_match=True): the master Scattered Light frame wil be displayed by default slits : :class:`~pypeit.slittrace.SlitTraceSet`, optional The current slit traces + mask : :obj:`bool`_ + If True, the slits will be masked to show only the scattered light regions wcs_match : :obj:`bool`, optional Use a reference image for the WCS and match all image in other channels to it. """ + offslitmask = slits.slit_img(pad=0, initial=True, flexure=None) == -1 if mask else 1 + # Prepare the frames _data = self.scattlight_raw if image is None else image _model = self.scattlight_model if image is None else self.get_model(image) - _resid = _data - _model + _resid = (_data - _model) + + # Fold in the mask + _data *= offslitmask + _model *= offslitmask + _resid *= offslitmask + modmax = np.max(_model) image_list = zip([_data, _model, _resid], ['data', 'model', 'data-model'], diff --git a/pypeit/scripts/chk_scattlight.py b/pypeit/scripts/chk_scattlight.py new file mode 100644 index 0000000000..f5a0377769 --- /dev/null +++ b/pypeit/scripts/chk_scattlight.py @@ -0,0 +1,72 @@ +""" +This script displays the flat images in an RC Ginga window. + +.. include common links, assuming primary doc root is up one directory +.. include:: ../include/links.rst +""" + +from pypeit.scripts import scriptbase +from pypeit import msgs +from pypeit.pypmsgs import PypeItError, PypeItDataModelError +from pypeit.images.detector_container import DetectorContainer +from pypeit import io + +class ChkScattLight(scriptbase.ScriptBase): + + @classmethod + def get_parser(cls, width=None): + parser = super().get_parser(description='Display the scattered light image in a Ginga viewer', + width=width) + parser.add_argument('file', type=str, + help='PypeIt Scattered Light file [e.g. ScatteredLight_A_0_DET01.fits.gz]') + parser.add_argument('slits', type=str, + help='Slits calibration file [e.g. Slits_A_0_DET01.fits.gz]') + parser.add_argument('--spec2d', type=str, default=None, + help='PypeIt science spec2d file') + parser.add_argument('--det', default='1', type=str, + help='Detector name or number. If a number, the name is constructed ' + 'assuming the reduction is for a single detector. If a string, ' + 'it must match the name of the detector object (e.g., DET01 for ' + 'a detector, MSC01 for a mosaic).') + parser.add_argument('--mask', type=bool, default=False, + help='If True, the detector pixels that are considered on the slit will be ' + 'masked to highlight the scattered light regions') + parser.add_argument("--type", type=str, default='all', + help="Which flats to display. Must be one of: pixel, illum, all") + return parser + + @staticmethod + def main(args): + + from pypeit import scattlight, spec2dobj, slittrace + + # Parse the detector name + try: + det = int(args.det) + except: + detname = args.det + else: + detname = DetectorContainer.get_name(det) + + # Load scattered light calibration frame + ScattLightImage = scattlight.ScatteredLight.from_file(args.file) + + # Load slits information + slits = slittrace.SlitTraceSet.from_file(args.slits) + + # Load the alternate file if requested + display_frame = None # The default is to display the frame used to calculate the scattered light model + if args.spec2d is not None: + msgs.error("displaying the spec2d scattered light is not currently supported") + try: + # TODO :: the spec2d file may have already had the scattered light removed, so this is not correct. + spec2D = spec2dobj.Spec2DObj.from_file(args.spec2d, detname, chk_version=False) + except PypeItDataModelError: + msgs.warn(f"Error loading spec2d file {args.spec2d} - attempting to load science image from fits") + spec2D = None + + # Now set the frame to be displayed + display_frame = io.fits_open(args.spec2d)[detname+'-SCIIMG'].data if spec2D is None else spec2D.sciimg + + # Show + ScattLightImage.show(image=display_frame, slits=slits, mask=args.mask) From 1045b14d72551ab13896dd7800e22bee01186c1d Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 13 Oct 2023 20:57:26 +0100 Subject: [PATCH 08/67] fix display --- pypeit/calibrations.py | 24 ++++++++++++++++-------- pypeit/images/buildimage.py | 6 ++++-- pypeit/images/combineimage.py | 7 ++++--- pypeit/pypeit.py | 2 ++ 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index 3bd318253e..e616821add 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -183,6 +183,7 @@ def __init__(self, fitstbl, par, spectrograph, caldir, qadir=None, self.msbpm = None self.wv_calib = None self.slits = None + self.msscattlight = None self.wavetilts = None self.flatimages = None @@ -323,8 +324,8 @@ def get_arc(self): self.msarc = buildimage.buildimage_fromlist(self.spectrograph, self.det, self.par['arcframe'], raw_files, bias=self.msbias, bpm=self.msbpm, - dark=self.msdark, calib_dir=self.calib_dir, - setup=setup, calib_id=calib_id) + dark=self.msdark, scattlight=self.msscattlight, + calib_dir=self.calib_dir, setup=setup, calib_id=calib_id) # Save the result self.msarc.to_file() # Return it @@ -367,6 +368,7 @@ def get_tiltimg(self): self.par['tiltframe'], raw_files, bias=self.msbias, bpm=self.msbpm, dark=self.msdark, slits=self.slits, + scattlight=self.msscattlight, calib_dir=self.calib_dir, setup=setup, calib_id=calib_id) # Save the result @@ -416,7 +418,8 @@ def get_align(self): self.par['alignframe'], raw_files, bias=self.msbias, bpm=self.msbpm, dark=self.msdark, calib_dir=self.calib_dir, - setup=setup, calib_id=calib_id) + setup=setup, calib_id=calib_id, + scattlight=self.msscattlight) # Instantiate # TODO: From JFH: Do we need the bpm here? Check that this was in the previous code. @@ -713,7 +716,8 @@ def get_flats(self): pixel_flat = buildimage.buildimage_fromlist(self.spectrograph, self.det, self.par['pixelflatframe'], raw_pixel_files, dark=self.msdark, - bias=self.msbias, bpm=self.msbpm) + bias=self.msbias, bpm=self.msbpm, + scattlight=self.msscattlight) if len(raw_lampoff_files) > 0: # Reset the BPM self.get_bpm(frame=raw_lampoff_files[0]) @@ -724,7 +728,7 @@ def get_flats(self): self.par['lampoffflatsframe'], raw_lampoff_files, dark=self.msdark, bias=self.msbias, - bpm=self.msbpm) + bpm=self.msbpm, scattlight=self.msscattlight) pixel_flat = pixel_flat.sub(lampoff_flat) # Initialise the pixel flat @@ -747,7 +751,7 @@ def get_flats(self): msgs.prindent(f'{Path(f).name}') illum_flat = buildimage.buildimage_fromlist(self.spectrograph, self.det, self.par['illumflatframe'], raw_illum_files, - dark=self.msdark, bias=self.msbias, + dark=self.msdark, bias=self.msbias, scattlight=self.msscattlight, flatimages=self.flatimages, bpm=self.msbpm) if len(raw_lampoff_files) > 0: msgs.info('Subtracting lamp off flats using files: ') @@ -758,7 +762,9 @@ def get_flats(self): self.par['lampoffflatsframe'], raw_lampoff_files, dark=self.msdark, - bias=self.msbias, bpm=self.msbpm) + bias=self.msbias, + scattlight=self.msscattlight, + bpm=self.msbpm) illum_flat = illum_flat.sub(lampoff_flat) # Initialise the pixel flat @@ -867,6 +873,7 @@ def get_slits(self): traceImage = buildimage.buildimage_fromlist(self.spectrograph, self.det, self.par['traceframe'], raw_trace_files, bias=self.msbias, bpm=self.msbpm, + scattlight=self.msscattlight, dark=self.msdark, calib_dir=self.calib_dir, setup=setup, calib_id=calib_id) if len(raw_lampoff_files) > 0: @@ -880,7 +887,8 @@ def get_slits(self): lampoff_flat = buildimage.buildimage_fromlist(self.spectrograph, self.det, self.par['lampoffflatsframe'], raw_lampoff_files, dark=self.msdark, - bias=self.msbias, bpm=self.msbpm) + bias=self.msbias, scattlight=self.msscattlight, + bpm=self.msbpm) traceImage = traceImage.sub(lampoff_flat) edges = edgetrace.EdgeTraceSet(traceImage, self.spectrograph, self.par['slitedges'], diff --git a/pypeit/images/buildimage.py b/pypeit/images/buildimage.py index d30183cafc..b9ecfa9339 100644 --- a/pypeit/images/buildimage.py +++ b/pypeit/images/buildimage.py @@ -157,7 +157,7 @@ def construct_file_name(cls, calib_key, calib_dir=None, basename=None): def buildimage_fromlist(spectrograph, det, frame_par, file_list, bias=None, bpm=None, dark=None, - flatimages=None, maxiters=5, ignore_saturation=True, slits=None, + scattlight=None, flatimages=None, maxiters=5, ignore_saturation=True, slits=None, mosaic=None, calib_dir=None, setup=None, calib_id=None): """ Perform basic image processing on a list of images and combine the results. @@ -192,6 +192,8 @@ def buildimage_fromlist(spectrograph, det, frame_par, file_list, bias=None, bpm= dark (:class:`~pypeit.images.buildimage.DarkImage`, optional): Dark-current image; passed directly to :func:`~pypeit.images.rawimage.RawImage.process` for all images. + scattlight (:class:`~pypeit.scattlight.ScatteredLight`, optional): + Scattered light model to be used to determine scattered light. flatimages (:class:`~pypeit.flatfield.FlatImages`, optional): Flat-field images for flat fielding; passed directly to :func:`~pypeit.images.rawimage.RawImage.process` for all images. @@ -247,7 +249,7 @@ def buildimage_fromlist(spectrograph, det, frame_par, file_list, bias=None, bpm= # Do it combineImage = combineimage.CombineImage(spectrograph, det, frame_par['process'], file_list) - pypeitImage = combineImage.run(bias=bias, bpm=bpm, dark=dark, flatimages=flatimages, + pypeitImage = combineImage.run(bias=bias, bpm=bpm, dark=dark, flatimages=flatimages, scattlight=scattlight, sigma_clip=frame_par['process']['clip'], sigrej=frame_par['process']['comb_sigrej'], maxiters=maxiters, ignore_saturation=ignore_saturation, diff --git a/pypeit/images/combineimage.py b/pypeit/images/combineimage.py index 8432e77585..ffb0b20247 100644 --- a/pypeit/images/combineimage.py +++ b/pypeit/images/combineimage.py @@ -62,9 +62,8 @@ def __init__(self, spectrograph, det, par, files): if self.nfiles == 0: msgs.error('CombineImage requires a list of files to instantiate') - def run(self, bias=None, flatimages=None, ignore_saturation=False, sigma_clip=True, - bpm=None, sigrej=None, maxiters=5, slits=None, dark=None, scattlight=None, - combine_method='mean', mosaic=False): + def run(self, bias=None, scattlight=None, flatimages=None, ignore_saturation=False, sigma_clip=True, + bpm=None, sigrej=None, maxiters=5, slits=None, dark=None, combine_method='mean', mosaic=False): r""" Process and combine all images. @@ -137,6 +136,8 @@ def run(self, bias=None, flatimages=None, ignore_saturation=False, sigma_clip=Tr bias (:class:`~pypeit.images.buildimage.BiasImage`, optional): Bias image for bias subtraction; passed directly to :func:`~pypeit.images.rawimage.RawImage.process` for all images. + scattlight (:class:`~pypeit.scattlight.ScatteredLight`, optional): + Scattered light model to be used to determine scattered light. flatimages (:class:`~pypeit.flatfield.FlatImages`, optional): Flat-field images for flat fielding; passed directly to :func:`~pypeit.images.rawimage.RawImage.process` for all images. diff --git a/pypeit/pypeit.py b/pypeit/pypeit.py index 69d9908ab1..bc2f2f33f4 100644 --- a/pypeit/pypeit.py +++ b/pypeit/pypeit.py @@ -759,6 +759,7 @@ def objfind_one(self, frames, det, bg_frames=None, std_outfile=None): self.spectrograph, det, frame_par, sci_files, bias=self.caliBrate.msbias, bpm=self.caliBrate.msbpm, dark=self.caliBrate.msdark, + scattlight=self.caliBrate.msscattlight, flatimages=self.caliBrate.flatimages, slits=self.caliBrate.slits, # For flexure correction ignore_saturation=False) @@ -770,6 +771,7 @@ def objfind_one(self, frames, det, bg_frames=None, std_outfile=None): bpm=self.caliBrate.msbpm, bias=self.caliBrate.msbias, dark=self.caliBrate.msdark, + scattlight=self.caliBrate.msscattlight, flatimages=self.caliBrate.flatimages, slits=self.caliBrate.slits, ignore_saturation=False) From 718263849b5e0ad998c0f2af4597fc1e8e66ccc0 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 13 Oct 2023 21:01:37 +0100 Subject: [PATCH 09/67] scattlight --- doc/releases/1.14.1dev.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/releases/1.14.1dev.rst b/doc/releases/1.14.1dev.rst index 53aae548b7..a39f1a9c4c 100644 --- a/doc/releases/1.14.1dev.rst +++ b/doc/releases/1.14.1dev.rst @@ -24,6 +24,8 @@ Script Changes - When making datacubes, the user can select a separate frame to use for the sky subtraction. In this case, it is the processed data that will be used for sky subtraction (akin to nodding). +- A new script has been written (``chk_scattlight``) to check the generation of the scattered + light calibration frame model. Datamodel Changes ----------------- From eacde5f0a365aa119d0e72abb47c9070a4de4ae2 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 13 Oct 2023 21:35:26 +0100 Subject: [PATCH 10/67] frame specific scattlight --- pypeit/images/rawimage.py | 18 +++++++++++++++--- pypeit/scripts/chk_scattlight.py | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index 8d13124c2a..2d76ae5499 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -643,7 +643,7 @@ def process(self, par, bpm=None, scattlight=None, flatimages=None, bias=None, sl # - Subtract scattered light... this needs to be done before flatfielding. if self.par['subtract_scattlight']: - self.subtract_scattlight(scattlight) + self.subtract_scattlight(scattlight, slits) # Flat-field the data. This propagates the flat-fielding corrections to # the variance. The returned bpm is propagated to the PypeItImage @@ -1118,7 +1118,7 @@ def subtract_continuum(self, force=False): #cont = ndimage.median_filter(self.image, size=(1,101,3), mode='reflect') self.steps[step] = True - def subtract_scattlight(self, scattlight): + def subtract_scattlight(self, scattlight, slits): """ Analyze and subtract the scattered light from the image. @@ -1138,7 +1138,19 @@ def subtract_scattlight(self, scattlight): # Loop over the images for ii in range(self.nimg): - scatt_img = self.spectrograph.scattered_light_model(scattlight.scattlight_param, self.image[ii, ...]) + # Calculate a model specific for this frame + spatbin = parse.parse_binning(self.detector[0]['binning'])[1] + # TODO :: Need to pass in the fitstbl here... currently this is a dummy value + tbl = dict(binning=self.detector[0]['binning'], dispname='BL') + pad = scattlight.pad // spatbin + offslitmask = slits.slit_img(pad=pad, initial=True, flexure=None) == -1 + scatt_img, _, success = self.spectrograph.scattered_light(self.image[ii, ...], offslitmask, tbl) + # If failure, revert back to the Scattered Light calibration frame model parameters + if not success: + msgs.warn("Scattered light model failed - using predefined model parameters") + # Use predefined model parameters + scatt_img = self.spectrograph.scattered_light_model(scattlight.scattlight_param, self.image[ii, ...]) + # Subtract the scattered light model from the image self.image[ii, ...] -= scatt_img self.steps[step] = True diff --git a/pypeit/scripts/chk_scattlight.py b/pypeit/scripts/chk_scattlight.py index f5a0377769..426c8503c4 100644 --- a/pypeit/scripts/chk_scattlight.py +++ b/pypeit/scripts/chk_scattlight.py @@ -59,7 +59,7 @@ def main(args): if args.spec2d is not None: msgs.error("displaying the spec2d scattered light is not currently supported") try: - # TODO :: the spec2d file may have already had the scattered light removed, so this is not correct. + # TODO :: the spec2d file may have already had the scattered light removed, so this is not correct. This script only works when the scattered light is turned off for the spec2d file spec2D = spec2dobj.Spec2DObj.from_file(args.spec2d, detname, chk_version=False) except PypeItDataModelError: msgs.warn(f"Error loading spec2d file {args.spec2d} - attempting to load science image from fits") From 552c667580e9b338c5745f1e780dee4b5365d198 Mon Sep 17 00:00:00 2001 From: rcooke Date: Thu, 19 Oct 2023 08:22:28 +0100 Subject: [PATCH 11/67] rm arg --- pypeit/scripts/chk_scattlight.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pypeit/scripts/chk_scattlight.py b/pypeit/scripts/chk_scattlight.py index 426c8503c4..f7446f17ae 100644 --- a/pypeit/scripts/chk_scattlight.py +++ b/pypeit/scripts/chk_scattlight.py @@ -31,8 +31,6 @@ def get_parser(cls, width=None): parser.add_argument('--mask', type=bool, default=False, help='If True, the detector pixels that are considered on the slit will be ' 'masked to highlight the scattered light regions') - parser.add_argument("--type", type=str, default='all', - help="Which flats to display. Must be one of: pixel, illum, all") return parser @staticmethod From acc6510f72954106e1ac2efe438777bbfd2ad712 Mon Sep 17 00:00:00 2001 From: rcooke Date: Sat, 21 Oct 2023 13:20:14 +0100 Subject: [PATCH 12/67] add scattlight doc --- doc/scripts/build_datacontainer_datamodels.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/scripts/build_datacontainer_datamodels.py b/doc/scripts/build_datacontainer_datamodels.py index d1f0f786f4..e065e6a8a4 100644 --- a/doc/scripts/build_datacontainer_datamodels.py +++ b/doc/scripts/build_datacontainer_datamodels.py @@ -67,6 +67,7 @@ def build_datamodel_tbl(obj): from pypeit.flatfield import FlatImages from pypeit.manual_extract import ManualExtractionObj from pypeit.onespec import OneSpec + from pypeit.scattlight import ScatteredLight from pypeit.sensfunc import SensFunc from pypeit.slittrace import SlitTraceSet from pypeit.spec2dobj import Spec2DObj @@ -86,7 +87,7 @@ def build_datamodel_tbl(obj): from pypeit.images import buildimage - datacontainers = [Alignments, EdgeTraceSet, FlatImages, ManualExtractionObj, OneSpec, + datacontainers = [Alignments, EdgeTraceSet, FlatImages, ManualExtractionObj, OneSpec, ScatteredLight, SensFunc, SlitTraceSet, Spec2DObj, SpecObj, TracePCA, WaveCalib, WaveTilts, bspline, DataCube, PypeItFit, MultiSlitFlexure, Telluric, DetectorContainer, Mosaic, PypeItImage, WaveFit] From 981a006a8993604f008596d19c83068a8ecbf185 Mon Sep 17 00:00:00 2001 From: rcooke Date: Sat, 21 Oct 2023 13:20:29 +0100 Subject: [PATCH 13/67] add binning/dispname --- pypeit/spectrographs/keck_kcwi.py | 15 ++++++++------- pypeit/spectrographs/spectrograph.py | 9 +++++---- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index 4cd3d8f023..76882b369f 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -1093,7 +1093,7 @@ def scattered_light_model(self, param, img, kernel='gaussian'): spl = interpolate.RectBivariateSpline(specvec, spatvec, scale_img, kx=1, ky=1) return spl(zoom * (specvec + shft_spec), zoom * (spatvec + shft_spat)) - def scattered_light(self, frame, offslitmask, tbl, detpad=300): + def scattered_light(self, frame, offslitmask, binning=None, dispname=None, detpad=300): """ Calculate a model of the scattered light of the input frame. For KCWI, the main contributor to the scattered light is referred to as the "narcissistic ghost" @@ -1108,9 +1108,10 @@ def scattered_light(self, frame, offslitmask, tbl, detpad=300): Raw 2D data frame to be used to compute the scattered light. offslitmask : `numpy.ndarray`_ A boolean mask indicating the pixels that are on/off the slit (True = off the slit) - tbl : :class:`~pypeit.metadata.PypeItMetaData`_ - One row of the fitstbl PypeItMetaData that contains metadata about the file being used to - optimize the scattered light model parameters. + binning : :obj:`str`_, optional + Comma-separated binning along the spectral and spatial directions; e.g., ``2,1`` + dispname : :obj:`str`_, optional + Name of the disperser detpad : :obj:`int`_, optional Number of pixels to pad to each of the detector edges to reduce edge effects. @@ -1140,7 +1141,7 @@ def resid(param, wpix, img): return img[wpix] - self.scattered_light_model(param, img)[wpix] # Grab the binning for convenience - specbin, spatbin = parse.parse_binning(tbl['binning']) + specbin, spatbin = parse.parse_binning(binning) # First pad the edges to minimize edge effects # Do a median filter near the edges @@ -1159,13 +1160,13 @@ def resid(param, wpix, img): # x0 = [sigmx, sigmy1, shft_spec, shft_spat, zoom, term0, term1, term2, term3] # elif tbl['dispname'] == 'BM': # x0 = [sigmx, sigmy1, shft_spec, shft_spat, zoom, term0, term1, term2, term3] - if tbl['dispname'] == 'BL': + if dispname == 'BL': x0 = np.array([3.55797869e+02/specbin, 2.38333349e+02/spatbin, # kernel widths 2.52262744e+01/specbin, 1.97022975e+02/spatbin, # pixel offsets 9.41621820e-01, 1.02049301e-01, -2.10895495e-01, 2.36542387e-01, -9.83331029e-02]) else: - msgs.warn(f"Initial scattered light model parameters have not been setup for grating {tbl['dispname']}") + msgs.warn(f"Initial scattered light model parameters have not been setup for grating {dispname}") sigmx = 400.0 / specbin # This is the spectral direction sigmy = 200.0 / spatbin # This is the spatial direction shft_spec = -60.0 / specbin # Shift of the scattered light in the spectral direction diff --git a/pypeit/spectrographs/spectrograph.py b/pypeit/spectrographs/spectrograph.py index ce8907b6e1..4dd4a9e980 100644 --- a/pypeit/spectrographs/spectrograph.py +++ b/pypeit/spectrographs/spectrograph.py @@ -1919,7 +1919,7 @@ def scattered_light_model(self, param, img, kernel='gaussian'): msgs.warn(f"Scattered light subtraction is not setup for {self.name}") return np.zeros_like(img) - def scattered_light(self, frame, offslitmask, tbl, detpad=300): + def scattered_light(self, frame, offslitmask, binning=None, dispname=None, detpad=300): """ Calculate the scattered light model parameters of the input frame. This function is used to optimize the model parameters. See also self.scattered_light_model() @@ -1930,9 +1930,10 @@ def scattered_light(self, frame, offslitmask, tbl, detpad=300): Raw 2D data frame to be used to compute the scattered light. offslitmask : `numpy.ndarray`_ A boolean mask indicating the pixels that are on/off the slit (True = off the slit) - tbl : :class:`~pypeit.metadata.PypeItMetaData`_ - One row of the fitstbl PypeItMetaData that contains metadata about the file being used to - optimize the scattered light model parameters. + binning : :obj:`str`_, optional + Comma-separated binning along the spectral and spatial directions; e.g., ``2,1`` + dispname : :obj:`str`_, optional + Name of the disperser detpad : :obj:`int`_, optional Number of pixels to pad to each of the detector edges to reduce edge effects. From bf9bb1f27d67683fe1dea964ec31811c3f19b5c5 Mon Sep 17 00:00:00 2001 From: rcooke Date: Sat, 21 Oct 2023 13:20:49 +0100 Subject: [PATCH 14/67] add binning/dispname --- pypeit/images/rawimage.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index 2d76ae5499..d231d927ef 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -518,7 +518,7 @@ def process(self, par, bpm=None, scattlight=None, flatimages=None, bias=None, sl if self.par['use_darkimage'] and dark is None: msgs.error('No dark available for dark subtraction!') if self.par['subtract_scattlight'] and scattlight is None: - msgs.error('Scattered light subtraction requested, but scattered light model provided.') + msgs.error('Scattered light subtraction requested, but scattered light model not provided.') if self.par['spat_flexure_correct'] and slits is None: msgs.error('Spatial flexure correction requested but no slits provided.') if self.use_flat and flatimages is None: @@ -1136,15 +1136,17 @@ def subtract_scattlight(self, scattlight, slits): msgs.warn("Scattered light parameters are not set. Cannot perform scattered light subtraction.") return + # Obtain some information that is needed for the scattered light + binning = self.detector[0]['binning'] + dispname = self.spectrograph.get_meta_value(self.spectrograph.get_headarr(self.filename), 'dispname') # Loop over the images for ii in range(self.nimg): # Calculate a model specific for this frame spatbin = parse.parse_binning(self.detector[0]['binning'])[1] - # TODO :: Need to pass in the fitstbl here... currently this is a dummy value - tbl = dict(binning=self.detector[0]['binning'], dispname='BL') pad = scattlight.pad // spatbin offslitmask = slits.slit_img(pad=pad, initial=True, flexure=None) == -1 - scatt_img, _, success = self.spectrograph.scattered_light(self.image[ii, ...], offslitmask, tbl) + scatt_img, _, success = self.spectrograph.scattered_light(self.image[ii, ...], offslitmask, + binning=binning, dispname=dispname) # If failure, revert back to the Scattered Light calibration frame model parameters if not success: msgs.warn("Scattered light model failed - using predefined model parameters") From 9b74cf7c7e053eb770d7df0f7413cc13a5bd87e9 Mon Sep 17 00:00:00 2001 From: rcooke Date: Sat, 21 Oct 2023 13:21:00 +0100 Subject: [PATCH 15/67] cleanup scattlight --- pypeit/calibrations.py | 23 +++++++++-------------- pypeit/core/framematch.py | 2 +- pypeit/scattlight.py | 12 +++++++++--- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index e616821add..ae27fc67d9 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -324,8 +324,8 @@ def get_arc(self): self.msarc = buildimage.buildimage_fromlist(self.spectrograph, self.det, self.par['arcframe'], raw_files, bias=self.msbias, bpm=self.msbpm, - dark=self.msdark, scattlight=self.msscattlight, - calib_dir=self.calib_dir, setup=setup, calib_id=calib_id) + dark=self.msdark, calib_dir=self.calib_dir, + setup=setup, calib_id=calib_id) # Save the result self.msarc.to_file() # Return it @@ -368,7 +368,6 @@ def get_tiltimg(self): self.par['tiltframe'], raw_files, bias=self.msbias, bpm=self.msbpm, dark=self.msdark, slits=self.slits, - scattlight=self.msscattlight, calib_dir=self.calib_dir, setup=setup, calib_id=calib_id) # Save the result @@ -418,8 +417,7 @@ def get_align(self): self.par['alignframe'], raw_files, bias=self.msbias, bpm=self.msbpm, dark=self.msdark, calib_dir=self.calib_dir, - setup=setup, calib_id=calib_id, - scattlight=self.msscattlight) + setup=setup, calib_id=calib_id) # Instantiate # TODO: From JFH: Do we need the bpm here? Check that this was in the previous code. @@ -549,9 +547,6 @@ def get_scattlight(self): Returns: :class:`~pypeit.scattlight.ScatteredLight`: The processed calibration image including the model. """ - # Initialise to None - self.msscattlight = None - # Check for existing data if not self._chk_objs(['msbpm', 'slits']): msgs.warn('Must have the bpm and the slits defined to make a scattered light image! ' @@ -614,19 +609,19 @@ def get_scattlight(self): nspec=scattlightImage.shape[0], nspat=scattlightImage.shape[1], binning=scattlightImage.detector.binning, pad=self.par['scattlight']['pad'], - scattlight_raw=scattlightImage.image, + scattlight_raw=scattlightImage, scattlight_model=model, scattlight_param=modelpar) # TODO :: Should we go back and recalculate the slit edges once the scattered light is known? - # Show the result if requested - if self.show: - self.msscattlight.show() - if self.msscattlight is not None: - self.msscattlight.set_paths(self.calib_dir, setup, calib_id, detname) + # Show the result if requested + if self.show: + self.msscattlight.show() + # Save the master scattered light model + self.msscattlight.set_paths(self.calib_dir, setup, calib_id, detname) self.msscattlight.to_file() return self.msscattlight diff --git a/pypeit/core/framematch.py b/pypeit/core/framematch.py index 795772d0b2..4125f7011e 100644 --- a/pypeit/core/framematch.py +++ b/pypeit/core/framematch.py @@ -32,7 +32,7 @@ def __init__(self): ('lampoffflats', 'Flat-field exposure with lamps off used to remove ' 'persistence from lamp on flat exposures and/or thermal emission ' 'from the telescope and dome'), - ('scattlight', 'Frame (usually similar to pixelflat) used to determine scattered light model'), + ('scattlight', 'Frame (ideally with lots of counts) used to determine the scattered light model'), ('science', 'On-sky observation of a primary target'), ('standard', 'On-sky observation of a flux calibrator'), ('trace', 'High-count exposure used to trace slit positions'), diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py index 7e7391efbd..659936ac4f 100644 --- a/pypeit/scattlight.py +++ b/pypeit/scattlight.py @@ -16,6 +16,7 @@ from pypeit import calibframe from pypeit.display import display from pypeit.spectrographs.util import load_spectrograph +from pypeit.images.buildimage import ScatteredLightImage class ScatteredLight(calibframe.CalibFrame): @@ -49,9 +50,14 @@ class ScatteredLight(calibframe.CalibFrame): 'nspat': dict(otype=int, descr='Number of pixels in the image spatial direction.'), 'binning': dict(otype=str, descr='Binning in PypeIt orientation (not the original)'), 'pad': dict(otype=int, descr='Integer number of pixels to mask beyond the slit edges.'), - 'scattlight_raw': dict(otype=np.ndarray, atype=np.floating, descr='Processed, combined scattered light image'), - 'scattlight_model': dict(otype=np.ndarray, atype=np.floating, descr='Model of the scattered light in scattlight_raw'), - 'scattlight_param': dict(otype=np.ndarray, atype=np.floating, descr='Model parameters that define the scattered light model')} + 'scattlight_raw': dict(otype=ScatteredLightImage, + descr='Image used to construct the edge traces; see ' + ':class:`~pypeit.images.buildimage.ScatteredLightImage` and ' + ':class:`~pypeit.images.pypeitimage.PypeItImage`.'), + 'scattlight_model': dict(otype=np.ndarray, atype=np.floating, + descr='Model of the scattered light in scattlight_raw'), + 'scattlight_param': dict(otype=np.ndarray, atype=np.floating, + descr='Model parameters that define the scattered light model')} """Provides the class data model.""" # TODO: Allow tweaked edges to be arguments? From e2d35dc4d71961a627e94b22627b4ea73ab87a4b Mon Sep 17 00:00:00 2001 From: rcooke Date: Sat, 21 Oct 2023 13:28:18 +0100 Subject: [PATCH 16/67] add chk_scattlight --- pypeit/scripts/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pypeit/scripts/__init__.py b/pypeit/scripts/__init__.py index 410cc4f6d7..8da41d5f5b 100644 --- a/pypeit/scripts/__init__.py +++ b/pypeit/scripts/__init__.py @@ -12,6 +12,7 @@ from pypeit.scripts import chk_for_calibs from pypeit.scripts import chk_noise_1dspec from pypeit.scripts import chk_noise_2dspec +from pypeit.scripts import chk_scattlight from pypeit.scripts import chk_wavecalib from pypeit.scripts import coadd_1dspec from pypeit.scripts import coadd_2dspec From e45f09e1267c999bc211ca58826930671bea77ab Mon Sep 17 00:00:00 2001 From: rcooke Date: Sat, 21 Oct 2023 13:28:31 +0100 Subject: [PATCH 17/67] display scattlight --- pypeit/display/display.py | 28 +++++++++++++++++++++++++++- pypeit/scattlight.py | 32 +------------------------------- 2 files changed, 28 insertions(+), 32 deletions(-) diff --git a/pypeit/display/display.py b/pypeit/display/display.py index dbd0c0cda3..2b53dc466f 100644 --- a/pypeit/display/display.py +++ b/pypeit/display/display.py @@ -636,6 +636,32 @@ def show_tilts(viewer, ch, tilt_traces, yoff=0., xoff=0., points=True, nspec=Non canvas.add('constructedcanvas', canvas_list) +def show_scattered_light(image_list, slits=None, wcs_match=True): + """ + Interface to ginga to show the quality of the Scattered Light subtraction - + Parameters + ---------- + image_list : zip + A zip of the images to show, their names, and the scales + slits : :class:`~pypeit.slittrace.SlitTraceSet`, optional + The current slit traces + wcs_match : :obj:`bool`, optional + Use a reference image for the WCS and match all image in other channels to it. + """ + connect_to_ginga(raise_err=True, allow_new=True) + if slits is not None: + left, right, mask = slits.select_edges() + gpm = mask == 0 + # Loop me + clear = True + for img, name, cut in image_list: + if img is None: + continue + viewer, ch = show_image(img, chname=name, cuts=cut, wcs_match=wcs_match, clear=clear) + if slits is not None: + show_slits(viewer, ch, left[:, gpm], right[:, gpm], slit_ids=slits.spat_id[gpm]) + # Turn off clear + if clear: + clear = False diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py index 659936ac4f..1aca6eb132 100644 --- a/pypeit/scattlight.py +++ b/pypeit/scattlight.py @@ -142,34 +142,4 @@ def show(self, image=None, slits=None, mask=False, wcs_match=True): [(0.0, modmax), (0.0, modmax), (-modmax/2,modmax/2)]) # Display frames - show_scattered_light(image_list, slits=slits, wcs_match=wcs_match) - - -def show_scattered_light(image_list, slits=None, wcs_match=True): - """ - Interface to ginga to show the quality of the Scattered Light subtraction - - Parameters - ---------- - image_list : zip - A zip of the images to show, their names, and the scales - slits : :class:`~pypeit.slittrace.SlitTraceSet`, optional - The current slit traces - wcs_match : :obj:`bool`, optional - Use a reference image for the WCS and match all image in other channels to it. - """ - display.connect_to_ginga(raise_err=True, allow_new=True) - if slits is not None: - left, right, mask = slits.select_edges() - gpm = mask == 0 - # Loop me - clear = True - for img, name, cut in image_list: - if img is None: - continue - viewer, ch = display.show_image(img, chname=name, cuts=cut, wcs_match=wcs_match, clear=clear) - if slits is not None: - display.show_slits(viewer, ch, left[:, gpm], right[:, gpm], slit_ids=slits.spat_id[gpm]) - # Turn off clear - if clear: - clear = False + display.show_scattered_light(image_list, slits=slits, wcs_match=wcs_match) From 2c04eebe8f1dfc4e980eb5a779f7890b0425423d Mon Sep 17 00:00:00 2001 From: rcooke Date: Sat, 21 Oct 2023 13:35:44 +0100 Subject: [PATCH 18/67] doc update --- doc/spectrographs/keck_kcwi.rst | 15 ++++++++++----- pypeit/spectrographs/keck_kcwi.py | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/doc/spectrographs/keck_kcwi.rst b/doc/spectrographs/keck_kcwi.rst index 40e58c07e9..ba9f097fe6 100644 --- a/doc/spectrographs/keck_kcwi.rst +++ b/doc/spectrographs/keck_kcwi.rst @@ -112,11 +112,16 @@ Scattered Light Removal KCWI suffers from mild scattered light (at the level of ~1 percent), and this appears to be worse near regions of the detector where there is brighter illumination. We are currently working towards building a -full model of the scattered light. For the moment, PypeIt uses a robust -piecewise polynomial to model the scattered light that is detected on -the left of slice 1, the unilluminated region between slices 12 and 13, -and the right of slice 24. The model is smooth and continuous, and is -determined for each spectral pixel. By default, the scattered light is +full model of the scattered light. For KCWI, the main contributor to +the scattered light is referred to as the "narcissistic ghost" by +Morrissey et al. (2018), ApJ, 864, 93. This scattered light is thought +to be a reflection off the detector that travels back through the optical +system. Some fraction gets sent back out to space, while the remainder +comes back through the optical system and a fuzzy version of this is +re-imaged onto the detector. The current KCWI scattered light model is +designed to account for these effects. To generate a scattered light model, +it's a good idea to use a frame that has a lot of counts (e.g. a flatfield +frame, or a standard star). By default, the scattered light is subtracted from the science frame, the pixel flat, and the illumination flat. To turn off the scattered light subtraction, you can add the following lines to your :ref:`pypeit_file`: diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index 76882b369f..0621e5796c 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -351,7 +351,7 @@ def check_frame_type(self, ftype, fitstbl, exprng=None): & self.lamps(fitstbl, 'off') & (fitstbl['hatch'] == 'Open') if ftype == 'bias': return good_exp & (fitstbl['idname'] == 'BIAS') - if ftype in ['pixelflat', 'scattlight']: + if ftype in ['pixelflat', 'scattlight']: # Scattered light needs lots of counts - so set it to the pixelflat by default # Use internal lamp return good_exp & (fitstbl['idname'] == 'FLATLAMP') & (fitstbl['calpos'] == 'Mirror') \ & self.lamps(fitstbl, 'cont_noarc') From cdcef0beae98b732d4c19386f8f97e38e4d7f478 Mon Sep 17 00:00:00 2001 From: rcooke Date: Sat, 21 Oct 2023 13:41:18 +0100 Subject: [PATCH 19/67] doc update --- pypeit/spectrographs/keck_kcwi.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index 0621e5796c..30949971eb 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -1066,7 +1066,9 @@ def scattered_light_model(self, param, img, kernel='gaussian'): Model of the scattered light for the input """ # For clarity, unpack the parameters - assert param.size == 9 # For KCWI, the scattered light model requires 9 model parameters + if param.size != 9: + msgs.error("For KCWI, the scattered light model requires 9 model parameters") + # Extract the parameters into more conveniently named variables sigmx, sigmy, shft_spec, shft_spat, zoom = param[0], param[1], param[2], param[3], param[4] term0, term1, term2, term3 = param[5], param[6], param[7], param[8] # Generate a 2D smoothing kernel @@ -1119,6 +1121,10 @@ def scattered_light(self, frame, offslitmask, binning=None, dispname=None, detpa ------- scatt_img : `numpy.ndarray`_ A 2D image of the scattered light determined from the input frame + modelpar : `numpy.ndarray`_ + A 1D array containing the best-fitting model parameters + success : :obj:`bool`_ + True if the fit was successful, False otherwise """ def resid(param, wpix, img): """ Residual function used to optimize the model parameters From 260eb6ded46f0fff612eb225b32bb27f644e1651 Mon Sep 17 00:00:00 2001 From: rcooke Date: Sat, 21 Oct 2023 13:44:14 +0100 Subject: [PATCH 20/67] doc update --- pypeit/spectrographs/keck_kcwi.py | 4 +++- pypeit/spectrographs/spectrograph.py | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index 30949971eb..ea29fa7aac 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -1120,7 +1120,9 @@ def scattered_light(self, frame, offslitmask, binning=None, dispname=None, detpa Returns ------- scatt_img : `numpy.ndarray`_ - A 2D image of the scattered light determined from the input frame + A 2D image of the scattered light determined from the input frame. + Alternatively, if a constant value is used, a constant floating point + value can be returned as well. modelpar : `numpy.ndarray`_ A 1D array containing the best-fitting model parameters success : :obj:`bool`_ diff --git a/pypeit/spectrographs/spectrograph.py b/pypeit/spectrographs/spectrograph.py index 4dd4a9e980..ee4baffc3d 100644 --- a/pypeit/spectrographs/spectrograph.py +++ b/pypeit/spectrographs/spectrograph.py @@ -1943,6 +1943,10 @@ def scattered_light(self, frame, offslitmask, binning=None, dispname=None, detpa A 2D image of the scattered light determined from the input frame. Alternatively, if a constant value is used, a constant floating point value can be returned as well. + modelpar : `numpy.ndarray`_ + A 1D array containing the best-fitting model parameters + success : :obj:`bool`_ + True if the fit was successful, False otherwise """ msgs.info("Scattered light removal is not implemented for spectrograph {0:s}".format(self.name)) return 0.0 From 7bef3d33b1017d3fad2c38a4e56a6fa2954dc22d Mon Sep 17 00:00:00 2001 From: rcooke Date: Sat, 21 Oct 2023 19:33:40 +0100 Subject: [PATCH 21/67] fix binning/dispname --- pypeit/calibrations.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index ae27fc67d9..defe5532cc 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -583,6 +583,7 @@ def get_scattlight(self): self.get_bpm(frame=raw_scattlight_files[0]) binning = self.fitstbl[scatt_idx[0]]['binning'] + dispname = self.fitstbl[scatt_idx[0]]['dispname'] scattlightImage = buildimage.buildimage_fromlist(self.spectrograph, self.det, self.par['scattlightframe'], raw_scattlight_files, bias=self.msbias, bpm=self.msbpm, @@ -591,10 +592,10 @@ def get_scattlight(self): spatbin = parse.parse_binning(binning)[1] pad = self.par['scattlight']['pad'] // spatbin - offslitmask = self.slits.slit_img(pad=pad, initial=True, flexure=None)==-1 + offslitmask = self.slits.slit_img(pad=pad, initial=True, flexure=None) == -1 model, modelpar, success = self.spectrograph.scattered_light(scattlightImage.image, offslitmask, - self.fitstbl[scatt_idx[0]]) + binning=binning, dispname=dispname) if not success: # Something went awry From ce1334b237afec20a323f0c84e670c04664af225 Mon Sep 17 00:00:00 2001 From: rcooke Date: Sun, 22 Oct 2023 21:39:52 +0100 Subject: [PATCH 22/67] fix scattlight --- pypeit/calibrations.py | 2 +- pypeit/scattlight.py | 2 +- pypeit/spectrographs/keck_kcwi.py | 56 +++++++++++++++++++++++-------- 3 files changed, 44 insertions(+), 16 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index defe5532cc..f19864279d 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -610,7 +610,7 @@ def get_scattlight(self): nspec=scattlightImage.shape[0], nspat=scattlightImage.shape[1], binning=scattlightImage.detector.binning, pad=self.par['scattlight']['pad'], - scattlight_raw=scattlightImage, + scattlight_raw=scattlightImage.image, scattlight_model=model, scattlight_param=modelpar) diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py index 1aca6eb132..fb8fa801e1 100644 --- a/pypeit/scattlight.py +++ b/pypeit/scattlight.py @@ -50,7 +50,7 @@ class ScatteredLight(calibframe.CalibFrame): 'nspat': dict(otype=int, descr='Number of pixels in the image spatial direction.'), 'binning': dict(otype=str, descr='Binning in PypeIt orientation (not the original)'), 'pad': dict(otype=int, descr='Integer number of pixels to mask beyond the slit edges.'), - 'scattlight_raw': dict(otype=ScatteredLightImage, + 'scattlight_raw': dict(otype=np.ndarray, atype=np.floating, descr='Image used to construct the edge traces; see ' ':class:`~pypeit.images.buildimage.ScatteredLightImage` and ' ':class:`~pypeit.images.pypeitimage.PypeItImage`.'), diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index ea29fa7aac..b781ce0880 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -1095,7 +1095,7 @@ def scattered_light_model(self, param, img, kernel='gaussian'): spl = interpolate.RectBivariateSpline(specvec, spatvec, scale_img, kx=1, ky=1) return spl(zoom * (specvec + shft_spec), zoom * (spatvec + shft_spat)) - def scattered_light(self, frame, offslitmask, binning=None, dispname=None, detpad=300): + def scattered_light(self, frame, offslitmask, binning=None, dispname=None, detpad=300, debug=False): """ Calculate a model of the scattered light of the input frame. For KCWI, the main contributor to the scattered light is referred to as the "narcissistic ghost" @@ -1116,6 +1116,8 @@ def scattered_light(self, frame, offslitmask, binning=None, dispname=None, detpa Name of the disperser detpad : :obj:`int`_, optional Number of pixels to pad to each of the detector edges to reduce edge effects. + debug : :obj:`bool`_, optional + If True, debug the final model fit that's been output Returns ------- @@ -1146,7 +1148,8 @@ def resid(param, wpix, img): resid : `numpy.ndarray`_ A 1D vector of the residuals """ - return img[wpix] - self.scattered_light_model(param, img)[wpix] + model = self.scattered_light_model(param, img) + return (img[wpix] - model[wpix])*utils.inverse(np.sqrt(model[wpix])) # Grab the binning for convenience specbin, spatbin = parse.parse_binning(binning) @@ -1155,8 +1158,8 @@ def resid(param, wpix, img): # Do a median filter near the edges frame[0, :] = np.median(frame[0:10, :], axis=0) frame[-1, :] = np.median(frame[-10:, :], axis=0) - img = np.pad(frame, detpad, mode='edge') - offslitmask_pad = np.pad(offslitmask, detpad, mode='edge') + img = np.pad(frame, detpad, mode='edge') # Model should be generated on padded data + offslitmask_pad = np.pad(offslitmask, detpad, mode='constant', constant_values=0) # but don't include padded data in the fit # Grab the pixels to be included in the fit wpix = np.where(offslitmask_pad) @@ -1164,20 +1167,26 @@ def resid(param, wpix, img): # and should be close to the final fitted values to reduce computational time) # Note :: These values need to be originally based on data that uses 1x1 binning, # and are now scaled here according to the binning of the current data to be analysed. - # if tbl['dispname'] == 'BH2': - # x0 = [sigmx, sigmy1, shft_spec, shft_spat, zoom, term0, term1, term2, term3] - # elif tbl['dispname'] == 'BM': - # x0 = [sigmx, sigmy1, shft_spec, shft_spat, zoom, term0, term1, term2, term3] - if dispname == 'BL': - x0 = np.array([3.55797869e+02/specbin, 2.38333349e+02/spatbin, # kernel widths - 2.52262744e+01/specbin, 1.97022975e+02/spatbin, # pixel offsets - 9.41621820e-01, 1.02049301e-01, -2.10895495e-01, 2.36542387e-01, - -9.83331029e-02]) + if dispname == 'BH2': + x0 = np.array([3.49128562e+02/specbin, 2.45833322e+02/spatbin, # kernel widths + -1.26958208e+02/specbin, 1.49033883e+01/spatbin, # pixel offsets + 1.00229122e+00, # Zoom factor + 1.87534428e-01, -2.75679127e-01, 4.08198109e-01, -1.87826458e-01]) # Polynomial terms + elif dispname == 'BM': + x0 = np.array([3.50037423e+02/specbin, 2.38662990e+02/spatbin, # kernel widths + -3.82935541e+01/specbin, -2.04645954e+01/spatbin, # pixel offsets + 1.01042546e+00, # Zoom factor + 1.15251491e-01, -1.59419953e-01, 1.30877795e-01, -1.84324642e-02]) # Polynomial terms + elif dispname == 'BL': + x0 = np.array([3.47000453e+02/specbin, 2.12462524e+02/spatbin, # kernel widths + -4.35179357e+01/specbin, 8.21150855e+00/spatbin, # pixel offsets + 9.99651562e-01, # Zoom factor + 1.18828616e-01, -3.22338051e-01, 5.07102665e-01, -2.85286699e-01]) # Polynomial terms else: msgs.warn(f"Initial scattered light model parameters have not been setup for grating {dispname}") sigmx = 400.0 / specbin # This is the spectral direction sigmy = 200.0 / spatbin # This is the spatial direction - shft_spec = -60.0 / specbin # Shift of the scattered light in the spectral direction + shft_spec = 0.0 / specbin # Shift of the scattered light in the spectral direction shft_spat = 0.0 / spatbin # Shift of the scattered light in the spatial direction zoom = 1.0 # Zoom factor of the scattered light term0, term1, term2, term3 = 0.1, -0.2, 0.3, -0.1 # Polynomial coefficients @@ -1198,6 +1207,25 @@ def resid(param, wpix, img): else: msgs.warn("Scattered light model fitting failed") scatt_img = np.zeros_like(frame) + if debug: + # Do some checks on the results + embed() + scatt_img_alt = self.scattered_light_model(x0, img)[detpad:-detpad, detpad:-detpad] + vmin, vmax = 0, np.max(scatt_img_alt) + vmin, vmax = -3, 10.0 + plt.subplot(231) + plt.imshow(frame, vmin=vmin, vmax=vmax) + plt.subplot(232) + plt.imshow(scatt_img, vmin=vmin, vmax=vmax) + plt.subplot(233) + plt.imshow(frame-scatt_img, vmin=vmin, vmax=vmax) + plt.subplot(234) + plt.imshow(frame, vmin=vmin, vmax=vmax) + plt.subplot(235) + plt.imshow(scatt_img_alt, vmin=vmin, vmax=vmax) + plt.subplot(236) + plt.imshow(frame-scatt_img_alt, vmin=vmin, vmax=vmax) + plt.show() return scatt_img, res_lsq.x, success def fit_2d_det_response(self, det_resp, gpmask): From b7d351183c52b89ab3546a93b8cd29a40b6cc7c3 Mon Sep 17 00:00:00 2001 From: rcooke Date: Sun, 22 Oct 2023 21:40:45 +0100 Subject: [PATCH 23/67] Store full ScattLight --- pypeit/calibrations.py | 2 +- pypeit/scattlight.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index f19864279d..defe5532cc 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -610,7 +610,7 @@ def get_scattlight(self): nspec=scattlightImage.shape[0], nspat=scattlightImage.shape[1], binning=scattlightImage.detector.binning, pad=self.par['scattlight']['pad'], - scattlight_raw=scattlightImage.image, + scattlight_raw=scattlightImage, scattlight_model=model, scattlight_param=modelpar) diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py index fb8fa801e1..1aca6eb132 100644 --- a/pypeit/scattlight.py +++ b/pypeit/scattlight.py @@ -50,7 +50,7 @@ class ScatteredLight(calibframe.CalibFrame): 'nspat': dict(otype=int, descr='Number of pixels in the image spatial direction.'), 'binning': dict(otype=str, descr='Binning in PypeIt orientation (not the original)'), 'pad': dict(otype=int, descr='Integer number of pixels to mask beyond the slit edges.'), - 'scattlight_raw': dict(otype=np.ndarray, atype=np.floating, + 'scattlight_raw': dict(otype=ScatteredLightImage, descr='Image used to construct the edge traces; see ' ':class:`~pypeit.images.buildimage.ScatteredLightImage` and ' ':class:`~pypeit.images.pypeitimage.PypeItImage`.'), From 1010c8e56c23eea56ea643812a37e1798547f3d0 Mon Sep 17 00:00:00 2001 From: rcooke Date: Mon, 23 Oct 2023 10:31:33 +0100 Subject: [PATCH 24/67] update msgs --- pypeit/calibrations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index defe5532cc..9b80a9825d 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -575,7 +575,7 @@ def get_scattlight(self): # Scattered light model does not exist or we're not reusing it. # Need to build everything from scratch. Start with the trace image. - msgs.info('Creating edge tracing calibration frame using files: ') + msgs.info('Creating scattered light calibration frame using files: ') for f in raw_scattlight_files: msgs.prindent(f'{Path(f).name}') From 2d56affc6efdff8ba8921351787da1f10b5dc0ac Mon Sep 17 00:00:00 2001 From: rcooke Date: Mon, 23 Oct 2023 21:30:01 +0100 Subject: [PATCH 25/67] scattered light method --- pypeit/par/pypeitpar.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/pypeit/par/pypeitpar.py b/pypeit/par/pypeitpar.py index ed7169eb4c..6990c42d6d 100644 --- a/pypeit/par/pypeitpar.py +++ b/pypeit/par/pypeitpar.py @@ -219,7 +219,7 @@ def __init__(self, trim=None, apply_gain=None, orient=None, dark_expscale=None, empirical_rn=None, shot_noise=None, noise_floor=None, use_pixelflat=None, use_illumflat=None, use_specillum=None, - use_pattern=None, subtract_scattlight=None, subtract_continuum=None, + use_pattern=None, subtract_scattlight=None, scattlight_method=None, subtract_continuum=None, spat_flexure_correct=None): # Grab the parameter names and values from the function @@ -305,6 +305,20 @@ def __init__(self, trim=None, apply_gain=None, orient=None, 'be set to True for spectrographs that have dedicated methods to subtract ' \ 'scattered light. For all other cases, this parameter should be False.' + defaults['scattlight_method'] = 'model' + options['scattlight_method'] = ProcessImagesPar.valid_scattlight_methods() + dtypes['scattlight_method'] = str + descr['scattlight_method'] = 'Method used to fit the overscan. ' \ + 'Options are: {0}'.format(', '.join(options['scattlight_method'])) + '.' + \ + '\'model\' will the scattered light model parameters derived from a ' \ + 'user-specified frame during their reduction (note, you will need to make sure ' \ + 'that you set appropriate scattlight frames in your .pypeit file for this option). ' \ + '\'frame\' will use each individual frame to determine the scattered light ' \ + 'that affects this frame. ' \ + '\'archive\' will use an archival model parameter solution for the scattered ' \ + 'light (note that this option is not currently available for all spectrographs).' + + defaults['empirical_rn'] = False dtypes['empirical_rn'] = bool descr['empirical_rn'] = 'If True, use the standard deviation in the overscan region to ' \ @@ -437,8 +451,8 @@ def __init__(self, trim=None, apply_gain=None, orient=None, def from_dict(cls, cfg): k = np.array([*cfg.keys()]) parkeys = ['trim', 'apply_gain', 'orient', 'use_biasimage', 'subtract_continuum', 'subtract_scattlight', - 'use_pattern', 'use_overscan', 'overscan_method', 'overscan_par', 'use_darkimage', - 'dark_expscale', 'spat_flexure_correct', 'use_illumflat', 'use_specillum', + 'scattlight_method', 'use_pattern', 'use_overscan', 'overscan_method', 'overscan_par', + 'use_darkimage', 'dark_expscale', 'spat_flexure_correct', 'use_illumflat', 'use_specillum', 'empirical_rn', 'shot_noise', 'noise_floor', 'use_pixelflat', 'combine', 'satpix', #'calib_setup_and_bit', 'n_lohi', 'mask_cr', @@ -461,6 +475,13 @@ def valid_overscan_methods(): """ return ['polynomial', 'savgol', 'median'] + @staticmethod + def valid_scattlight_methods(): + """ + Return the valid overscan methods. + """ + return ['model', 'frame', 'archive'] + @staticmethod def valid_combine_methods(): """ From f8f4bd88f3ad69ba018d60294b7fac5209c58cec Mon Sep 17 00:00:00 2001 From: rcooke Date: Mon, 23 Oct 2023 21:30:52 +0100 Subject: [PATCH 26/67] add core methods --- pypeit/core/scattlight.py | 185 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 pypeit/core/scattlight.py diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py new file mode 100644 index 0000000000..4058450f7f --- /dev/null +++ b/pypeit/core/scattlight.py @@ -0,0 +1,185 @@ +""" Module for sky subtraction + +.. include common links, assuming primary doc root is up one directory +.. include:: ../include/links.rst +""" +import numpy as np + +import matplotlib.pyplot as plt +from scipy.optimize import least_squares +from scipy import signal, interpolate + +from IPython import embed + +from pypeit import msgs + + +def scattered_light_model(param, img, kernel='gaussian'): + """ Model used to calculate the scattered light. + + The current model to generate the scattered light is a shifted, scaled, and blurred version of the + data recorded on the detector. We allow for a shift in the spatial and spectral direction, and the + blurring kernel can have different widths in the spectral and spatial directions. Finally, the model + includes a polynomial correction in the spectral direction to account for a change in the spectral + efficiency of the scattered light relative to the detector image. + + Parameters + ---------- + param : `numpy.ndarray`_ + Model parameters that determine the scattered light based on the input img. + The first 5 parameters are the same for all spectrographs. The sixth and all + subsequent parameters in this list are polynomial corrections to the spectral + direction. Here are the individual parameters: + + * param[0] = Kernel width in the spectral direction + * param[1] = Kernel width in the spatial direction + * param[2] = Pixel shift of the scattered light in the spectral direction + * param[3] = Pixel shift of the scattered light in the spatial direction + * param[4] = Zoom factor of the scattered light (~1) + * param[5:] = Polynomial scaling coefficients in the spectral direction + img : `numpy.ndarray`_ + Raw image that you want to compute the scattered light model. + shape is (nspec, nspat) + Model used to calculate the scattered light. This function is used to + generate a model of the scattered light, based on a set of model parameters + that have been optimized using self.scattered_light(). + kernel : :obj:`str`_, optional + The shape of the kernel to use. The allowed values are 'gaussian' and 'lorentzian', + but the default value ('gaussian') is currently believed to provide the best fit. + + Returns + ------- + model : `numpy.ndarray`_ + Model of the scattered light for the input + """ + # Extract the parameters into more conveniently named variables + sigmx, sigmy, shft_spec, shft_spat, zoom = param[0], param[1], param[2], param[3], param[4] + polyterms = param[5:] + # Generate a 2D smoothing kernel + if kernel == 'gaussian': + # Gaussian + subkrnx = np.exp(-0.5 * (np.arange(int(6 * sigmx)) - 3 * sigmx) ** 2 / sigmx ** 2) + subkrny = np.exp(-0.5 * (np.arange(int(6 * sigmy)) - 3 * sigmy) ** 2 / sigmy ** 2) + elif kernel == 'lorentzian': + # Lorentzian + subkrnx = sigmx / ((np.arange(int(10 * sigmx)) - 5 * sigmx) ** 2 + sigmx ** 2) + subkrny = sigmy / ((np.arange(int(10 * sigmy)) - 5 * sigmy) ** 2 + sigmy ** 2) + else: + msgs.error(f"Unknown kernel: {kernel}") + kernel = np.outer(subkrnx, subkrny) + kernel /= np.sum(kernel) + # Make a grid of coordinates + specvec, spatvec = np.arange(img.shape[0]), np.arange(img.shape[1]) + spat, spec = np.meshgrid(spatvec, specvec / (specvec.size - 1)) + # Generate the polynomial efficiency scaling in the spectral direction + polyscale = np.zeros_like(img) + for pp in range(polyterms.size): + polyscale += polyterms[pp] * spec ** pp + # Convolve the input image (note: most of the time is spent here) + # oaconvolve is the fastest option when the kernel is much smaller dimensions than the image + # scale_img = polyscale * signal.fftconvolve(img, kernel, mode='same') + scale_img = polyscale * signal.oaconvolve(img, kernel, mode='same') + spl = interpolate.RectBivariateSpline(specvec, spatvec, scale_img, kx=1, ky=1) + return spl(zoom * (specvec + shft_spec), zoom * (spatvec + shft_spat)) + + +def scattlight_resid(param, wpix, img): + """ Residual function used to optimize the model parameters + + Parameters + ---------- + param : `numpy.ndarray`_ + 1D array of model parameters to use for the fitting function. + wpix : tuple + A tuple containing the x,y coordinates of the pixels in img + to be used for computing the residual. + img : `numpy.ndarray`_ + Data image to be used to compute the residual. Shape is (nspec, nspat) + + Returns + ------- + resid : `numpy.ndarray`_ + A 1D vector of the residuals + """ + model = scattered_light_model(param, img) + return img[wpix] - model[wpix] + + +def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False): + """ Calculate a model of the scattered light of the input frame. + + Parameters + ---------- + frame : `numpy.ndarray`_ + Raw 2D data frame to be used to compute the scattered light. + bpm : `numpy.ndarray`_ + 2D boolean array indicating the bad pixels (True=bad) + offslitmask : `numpy.ndarray`_ + A boolean mask indicating the pixels that are on/off the slit (True = off the slit) + x0 : `numpy.ndarray`_ + A 1D array containing the best-fitting model parameters + bounds : :obj:`tuple`_ + A tuple of two elements, containing two `np.ndarray`_ of the same length as x0. These + two arrays contain the lower (first element of the tuple) and upper (second element of the tuple) + bounds to consider on the scattered light model parameters. + detpad : :obj:`int`_, optional + Number of pixels to pad to each of the detector edges to reduce edge effects. + debug : :obj:`bool`_, optional + If True, debug the final model fit that's been output + + Returns + ------- + scatt_img : `numpy.ndarray`_ + A 2D image of the scattered light determined from the input frame. + Alternatively, if a constant value is used, a constant floating point + value can be returned as well. + modelpar : `numpy.ndarray`_ + A 1D array containing the best-fitting model parameters + success : :obj:`bool`_ + True if the fit was successful, False otherwise + """ + + # Grab a copy of the input frame, and do some pre-processing on it + _frame = frame.copy() + + # First pad the edges to minimize edge effects + # Do a median filter near the edges + _frame[0, :] = np.median(_frame[0:10, :], axis=0) + _frame[-1, :] = np.median(_frame[-10:, :], axis=0) + img = np.pad(_frame, detpad, mode='edge') # Model should be generated on padded data + offslitmask_pad = np.pad(offslitmask * np.logical_not(bpm), detpad, mode='constant', + constant_values=0) # but don't include padded data in the fit + # Grab the pixels to be included in the fit + wpix = np.where(offslitmask_pad) + + # Compute the best-fitting model parameters + msgs.info("Computing best-fitting model parameters of the scattered light") + res_lsq = least_squares(scattlight_resid, x0, bounds=bounds, args=(wpix, img), verbose=2) + # Store if this is a successful fit + success = res_lsq.success + if success: + msgs.info("Generating best-fitting scattered light model") + scatt_img = scattered_light_model(res_lsq.x, img)[detpad:-detpad, detpad:-detpad] + else: + msgs.warn("Scattered light model fitting failed") + scatt_img = np.zeros_like(_frame) + if debug: + # Do some checks on the results + embed() + scatt_img_alt = scattered_light_model(x0, img)[detpad:-detpad, detpad:-detpad] + vmin, vmax = 0, np.max(scatt_img_alt) + vmin, vmax = -3, 10.0 + plt.subplot(231) + plt.imshow(_frame, vmin=vmin, vmax=vmax) + plt.subplot(232) + plt.imshow(scatt_img, vmin=vmin, vmax=vmax) + plt.subplot(233) + plt.imshow(_frame - scatt_img, vmin=vmin, vmax=vmax) + plt.subplot(234) + plt.imshow(_frame, vmin=vmin, vmax=vmax) + plt.subplot(235) + plt.imshow(scatt_img_alt, vmin=vmin, vmax=vmax) + plt.subplot(236) + plt.imshow(_frame - scatt_img_alt, vmin=vmin, vmax=vmax) + plt.show() + return scatt_img, res_lsq.x, success From b78c95d602a5fbc5b0f17f7e1db3f3be0515b29a Mon Sep 17 00:00:00 2001 From: rcooke Date: Mon, 23 Oct 2023 21:43:41 +0100 Subject: [PATCH 27/67] core scattlight --- pypeit/calibrations.py | 12 +- pypeit/core/scattlight.py | 7 +- pypeit/images/rawimage.py | 49 +++++--- pypeit/scattlight.py | 2 +- pypeit/spectrographs/keck_esi.py | 38 +++++++ pypeit/spectrographs/keck_kcwi.py | 161 +++------------------------ pypeit/spectrographs/spectrograph.py | 71 +++++------- 7 files changed, 128 insertions(+), 212 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index 9b80a9825d..b1e055e04c 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -29,6 +29,7 @@ from pypeit.metadata import PypeItMetaData from pypeit.core import framematch from pypeit.core import parse +from pypeit.core import scattlight as core_scattlight from pypeit.par import pypeitpar from pypeit.spectrographs.spectrograph import Spectrograph from pypeit import io @@ -594,8 +595,11 @@ def get_scattlight(self): pad = self.par['scattlight']['pad'] // spatbin offslitmask = self.slits.slit_img(pad=pad, initial=True, flexure=None) == -1 - model, modelpar, success = self.spectrograph.scattered_light(scattlightImage.image, offslitmask, - binning=binning, dispname=dispname) + # Get starting parameters for the scattered light model + x0, bounds = self.spectrograph.scattered_light_archive(binning, dispname) + # Perform a fit to the scattered light + model, modelpar, success = core_scattlight.scattered_light(scattlightImage.image, self.msbpm, offslitmask, + x0, bounds) if not success: # Something went awry @@ -610,7 +614,7 @@ def get_scattlight(self): nspec=scattlightImage.shape[0], nspat=scattlightImage.shape[1], binning=scattlightImage.detector.binning, pad=self.par['scattlight']['pad'], - scattlight_raw=scattlightImage, + scattlight_raw=scattlightImage.image, scattlight_model=model, scattlight_param=modelpar) @@ -712,6 +716,7 @@ def get_flats(self): pixel_flat = buildimage.buildimage_fromlist(self.spectrograph, self.det, self.par['pixelflatframe'], raw_pixel_files, dark=self.msdark, + slits=self.slits, bias=self.msbias, bpm=self.msbpm, scattlight=self.msscattlight) if len(raw_lampoff_files) > 0: @@ -723,6 +728,7 @@ def get_flats(self): lampoff_flat = buildimage.buildimage_fromlist(self.spectrograph, self.det, self.par['lampoffflatsframe'], raw_lampoff_files, + slits=self.slits, dark=self.msdark, bias=self.msbias, bpm=self.msbpm, scattlight=self.msscattlight) pixel_flat = pixel_flat.sub(lampoff_flat) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index 4058450f7f..0e57bcb6b7 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -154,7 +154,8 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False # Compute the best-fitting model parameters msgs.info("Computing best-fitting model parameters of the scattered light") - res_lsq = least_squares(scattlight_resid, x0, bounds=bounds, args=(wpix, img), verbose=2) + res_lsq = least_squares(scattlight_resid, x0, bounds=bounds, args=(wpix, img), verbose=2, ftol=1.0E-4) + # Store if this is a successful fit success = res_lsq.success if success: @@ -166,15 +167,15 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False if debug: # Do some checks on the results embed() + from matplotlib import pyplot as plt scatt_img_alt = scattered_light_model(x0, img)[detpad:-detpad, detpad:-detpad] vmin, vmax = 0, np.max(scatt_img_alt) - vmin, vmax = -3, 10.0 plt.subplot(231) plt.imshow(_frame, vmin=vmin, vmax=vmax) plt.subplot(232) plt.imshow(scatt_img, vmin=vmin, vmax=vmax) plt.subplot(233) - plt.imshow(_frame - scatt_img, vmin=vmin, vmax=vmax) + plt.imshow(_frame - scatt_img, vmin=-vmax/2, vmax=vmax/2) plt.subplot(234) plt.imshow(_frame, vmin=vmin, vmax=vmax) plt.subplot(235) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index d231d927ef..a30c19c809 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -19,6 +19,7 @@ from pypeit.core import procimg from pypeit.core import flat from pypeit.core import flexure +from pypeit.core import scattlight from pypeit.core.mosaic import build_image_mosaic from pypeit.images import pypeitimage from pypeit import utils @@ -1118,12 +1119,12 @@ def subtract_continuum(self, force=False): #cont = ndimage.median_filter(self.image, size=(1,101,3), mode='reflect') self.steps[step] = True - def subtract_scattlight(self, scattlight, slits): + def subtract_scattlight(self, msscattlight, slits): """ Analyze and subtract the scattered light from the image. This is primarily a wrapper for - :func:`~pypeit.spectrographs.spectrograph.scattered_light`. + :func:`~pypeit.core.scattered_light`. """ step = inspect.stack()[0][3] @@ -1132,7 +1133,7 @@ def subtract_scattlight(self, scattlight, slits): msgs.warn("The scattered light has already been subtracted from the image!") return - if scattlight.scattlight_param is None: + if self.par["scattlight_method"] == "model" and msscattlight.scattlight_param is None: msgs.warn("Scattered light parameters are not set. Cannot perform scattered light subtraction.") return @@ -1141,17 +1142,39 @@ def subtract_scattlight(self, scattlight, slits): dispname = self.spectrograph.get_meta_value(self.spectrograph.get_headarr(self.filename), 'dispname') # Loop over the images for ii in range(self.nimg): - # Calculate a model specific for this frame - spatbin = parse.parse_binning(self.detector[0]['binning'])[1] - pad = scattlight.pad // spatbin - offslitmask = slits.slit_img(pad=pad, initial=True, flexure=None) == -1 - scatt_img, _, success = self.spectrograph.scattered_light(self.image[ii, ...], offslitmask, - binning=binning, dispname=dispname) - # If failure, revert back to the Scattered Light calibration frame model parameters - if not success: - msgs.warn("Scattered light model failed - using predefined model parameters") + if self.par["scattlight_method"] == "model": # Use predefined model parameters - scatt_img = self.spectrograph.scattered_light_model(scattlight.scattlight_param, self.image[ii, ...]) + scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, self.image[ii, ...]) + elif self.par["scattlight_method"] == "archive": + # Use archival model parameters + modpar, _ = self.spectrograph.scattered_light_archive(binning, dispname) + if modpar is None: + msgs.error(f"{self.spectrograph.name} does not have archival scattered light parameters. Please " + f"set 'scattlight_method' to another option.") + scatt_img = scattlight.scattered_light_model(modpar, self.image[ii, ...]) + elif self.par["scattlight_method"] == "frame": + # Calculate a model specific for this frame + spatbin = parse.parse_binning(self.detector[0]['binning'])[1] + pad = msscattlight.pad // spatbin + offslitmask = slits.slit_img(pad=pad, initial=True, flexure=None) == -1 + # Get starting parameters for the scattered light model + x0, bounds = self.spectrograph.scattered_light_archive(binning, dispname) + # Perform a fit to the scattered light + scatt_img, _, success = scattlight.scattered_light(self.image[ii, ...], self.bpm, offslitmask, + x0, bounds) + # If failure, revert back to the Scattered Light calibration frame model parameters + if not success: + if msscattlight is not None: + msgs.warn("Scattered light model failed - using predefined model parameters") + scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, self.image[ii, ...]) + else: + msgs.warn("Scattered light model failed - using archival model parameters") + # Use archival model parameters + modpar, _ = self.spectrograph.scattered_light_archive(binning, dispname) + scatt_img = scattlight.scattered_light_model(modpar, self.image[ii, ...]) + else: + msgs.warn("Scattered light not performed") + scatt_img = np.zeros(self.image[ii, ...].shape) # Subtract the scattered light model from the image self.image[ii, ...] -= scatt_img self.steps[step] = True diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py index 1aca6eb132..fb8fa801e1 100644 --- a/pypeit/scattlight.py +++ b/pypeit/scattlight.py @@ -50,7 +50,7 @@ class ScatteredLight(calibframe.CalibFrame): 'nspat': dict(otype=int, descr='Number of pixels in the image spatial direction.'), 'binning': dict(otype=str, descr='Binning in PypeIt orientation (not the original)'), 'pad': dict(otype=int, descr='Integer number of pixels to mask beyond the slit edges.'), - 'scattlight_raw': dict(otype=ScatteredLightImage, + 'scattlight_raw': dict(otype=np.ndarray, atype=np.floating, descr='Image used to construct the edge traces; see ' ':class:`~pypeit.images.buildimage.ScatteredLightImage` and ' ':class:`~pypeit.images.pypeitimage.PypeItImage`.'), diff --git a/pypeit/spectrographs/keck_esi.py b/pypeit/spectrographs/keck_esi.py index c7292ceb5b..7e400666c4 100644 --- a/pypeit/spectrographs/keck_esi.py +++ b/pypeit/spectrographs/keck_esi.py @@ -306,6 +306,44 @@ def bpm(self, filename, det, shape=None, msbias=None): # Return return bpm_img + def scattered_light_archive(self, binning, dispname): + """Archival model parameters for the scattered light. These are based on best fits to currently available data. + + Parameters + ---------- + binning : :obj:`str`_, optional + Comma-separated binning along the spectral and spatial directions; e.g., ``2,1`` + dispname : :obj:`str`_, optional + Name of the disperser + + Returns + ------- + x0 : `numpy.ndarray`_ + A 1D array containing the best-fitting model parameters + bounds : :obj:`tuple`_ + A tuple of two elements, containing two `np.ndarray`_ of the same length as x0. These + two arrays contain the lower (first element of the tuple) and upper (second element of the tuple) + bounds to consider on the scattered light model parameters. + """ + # Grab the binning for convenience + specbin, spatbin = parse.parse_binning(binning) + + # Get some starting parameters (these were determined by fitting spectra, + # and should be close to the final fitted values to reduce computational time) + # Note :: These values need to be originally based on data that uses 1x1 binning, + # and are now scaled here according to the binning of the current data to be analysed. + x0 = np.array([3.16544600e+02/specbin, 2.05443943e+02/spatbin, # kernel widths + -9.23121908e+01/specbin, 6.09000452e+01/spatbin, # pixel offsets + 9.94913292e-01, # Zoom factor + 2.23905249e-01, -1.86171132e-01, 8.55479705e-02, -1.26763813e-02]) # Polynomial terms + + # Now set the bounds of the fitted parameters + bounds = ([1, 1, -200/specbin, -200/spatbin, 0, -10, -10, -10, -10], + [600/specbin, 600/spatbin, 200/specbin, 200/spatbin, 2, 10, 10, 10, 10]) + + # Return the best-fitting archival parameters and the bounds + return x0, bounds + @property def norders(self): """ diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index b781ce0880..4846f8550b 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -13,8 +13,7 @@ from astropy.io import fits from astropy.time import Time from astropy.coordinates import EarthLocation -from scipy.optimize import curve_fit, least_squares -from scipy import signal, interpolate +from scipy.optimize import curve_fit from pypeit import msgs from pypeit import telescopes @@ -1032,71 +1031,8 @@ def get_rawimage(self, raw_file, det): # Return return detpar, raw_img, hdu, exptime, rawdatasec_img, oscansec_img - def scattered_light_model(self, param, img, kernel='gaussian'): - """ Model used to calculate the scattered light - - Parameters - ---------- - param : `numpy.ndarray`_ - Model parameters that determine the scattered light based on the input img. - For KCWI there are 9 model parameters that need to be input, and these are: - - * param[0] = Kernel width in the spectral direction - * param[1] = Kernel width in the spatial direction - * param[2] = Pixel shift of the scattered light in the spectral direction - * param[3] = Pixel shift of the scattered light in the spatial direction - * param[4] = Zoom factor of the scattered light (~1) - * param[5] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**0) - * param[6] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**1) - * param[7] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**2) - * param[8] = Polynomial scaling coefficient in the spectral direction (coefficient of spec_pixel**3) - img : `numpy.ndarray`_ - Raw image that you want to compute the scattered light model. - shape is (nspec, nspat) - Model used to calculate the scattered light. This function is used to - generate a model of the scattered light, based on a set of model parameters - that have been optimized using self.scattered_light(). - kernel : :obj:`str`_, optional - The shape of the kernel to use. The allowed values for KCWI are 'gaussian' and 'lorentzian', - but the default value ('gaussian') is known to provide the best fit. - - Returns - ------- - model : `numpy.ndarray`_ - Model of the scattered light for the input - """ - # For clarity, unpack the parameters - if param.size != 9: - msgs.error("For KCWI, the scattered light model requires 9 model parameters") - # Extract the parameters into more conveniently named variables - sigmx, sigmy, shft_spec, shft_spat, zoom = param[0], param[1], param[2], param[3], param[4] - term0, term1, term2, term3 = param[5], param[6], param[7], param[8] - # Generate a 2D smoothing kernel - if kernel == 'gaussian': - # Gaussian - subkrnx = np.exp(-0.5 * (np.arange(int(6 * sigmx)) - 3 * sigmx) ** 2 / sigmx ** 2) - subkrny = np.exp(-0.5 * (np.arange(int(6 * sigmy)) - 3 * sigmy) ** 2 / sigmy ** 2) - elif kernel == 'lorentzian': - # Lorentzian - subkrnx = sigmx / ((np.arange(int(10 * sigmx)) - 5 * sigmx) ** 2 + sigmx ** 2) - subkrny = sigmy / ((np.arange(int(10 * sigmy)) - 5 * sigmy) ** 2 + sigmy ** 2) - else: - msgs.error(f"Unknown kernel: {kernel}") - kernel = np.outer(subkrnx, subkrny) - kernel /= np.sum(kernel) - # Make a grid of coordinates - specvec, spatvec = np.arange(img.shape[0]), np.arange(img.shape[1]) - spat, spec = np.meshgrid(spatvec, specvec / (specvec.size - 1)) - # Convolve the input image (note: most of the time is spent here) - # oaconvolve is the fastest option when the kernel is much smaller dimensions than the image - # scale_img = (term0 + term1 * spec + term2*spec**2 + term3*spec**3) * signal.fftconvolve(img, kernel, mode='same') - scale_img = (term0 + term1 * spec + term2 * spec ** 2 + term3 * spec ** 3) * signal.oaconvolve(img, kernel, - mode='same') - spl = interpolate.RectBivariateSpline(specvec, spatvec, scale_img, kx=1, ky=1) - return spl(zoom * (specvec + shft_spec), zoom * (spatvec + shft_spat)) - - def scattered_light(self, frame, offslitmask, binning=None, dispname=None, detpad=300, debug=False): - """ Calculate a model of the scattered light of the input frame. + def scattered_light_archive(self, binning, dispname): + """ Archival model parameters for the scattered light. These are based on best fits to currently available data. For KCWI, the main contributor to the scattered light is referred to as the "narcissistic ghost" by Morrissey et al. (2018), ApJ, 864, 93. This scattered light is thought to be a reflection off the @@ -1106,63 +1042,23 @@ def scattered_light(self, frame, offslitmask, binning=None, dispname=None, detpa Parameters ---------- - frame : `numpy.ndarray`_ - Raw 2D data frame to be used to compute the scattered light. - offslitmask : `numpy.ndarray`_ - A boolean mask indicating the pixels that are on/off the slit (True = off the slit) binning : :obj:`str`_, optional Comma-separated binning along the spectral and spatial directions; e.g., ``2,1`` dispname : :obj:`str`_, optional Name of the disperser - detpad : :obj:`int`_, optional - Number of pixels to pad to each of the detector edges to reduce edge effects. - debug : :obj:`bool`_, optional - If True, debug the final model fit that's been output Returns ------- - scatt_img : `numpy.ndarray`_ - A 2D image of the scattered light determined from the input frame. - Alternatively, if a constant value is used, a constant floating point - value can be returned as well. - modelpar : `numpy.ndarray`_ + x0 : `numpy.ndarray`_ A 1D array containing the best-fitting model parameters - success : :obj:`bool`_ - True if the fit was successful, False otherwise + bounds : :obj:`tuple`_ + A tuple of two elements, containing two `np.ndarray`_ of the same length as x0. These + two arrays contain the lower (first element of the tuple) and upper (second element of the tuple) + bounds to consider on the scattered light model parameters. """ - def resid(param, wpix, img): - """ Residual function used to optimize the model parameters - - Parameters - ---------- - param : `numpy.ndarray`_ - 1D array of model parameters to use for the fitting function. - wpix : tuple - A tuple containing the x,y coordinates of the pixels in img - to be used for computing the residual. - img : `numpy.ndarray`_ - Data image to be used to compute the residual. Shape is (nspec, nspat) - - Returns - ------- - resid : `numpy.ndarray`_ - A 1D vector of the residuals - """ - model = self.scattered_light_model(param, img) - return (img[wpix] - model[wpix])*utils.inverse(np.sqrt(model[wpix])) - # Grab the binning for convenience specbin, spatbin = parse.parse_binning(binning) - # First pad the edges to minimize edge effects - # Do a median filter near the edges - frame[0, :] = np.median(frame[0:10, :], axis=0) - frame[-1, :] = np.median(frame[-10:, :], axis=0) - img = np.pad(frame, detpad, mode='edge') # Model should be generated on padded data - offslitmask_pad = np.pad(offslitmask, detpad, mode='constant', constant_values=0) # but don't include padded data in the fit - # Grab the pixels to be included in the fit - wpix = np.where(offslitmask_pad) - # Get some starting parameters (these were determined by fitting spectra, # and should be close to the final fitted values to reduce computational time) # Note :: These values need to be originally based on data that uses 1x1 binning, @@ -1192,41 +1088,12 @@ def resid(param, wpix, img): term0, term1, term2, term3 = 0.1, -0.2, 0.3, -0.1 # Polynomial coefficients x0 = [sigmx, sigmy, shft_spec, shft_spat, zoom, term0, term1, term2, term3] - # Compute the best-fitting model parameters - msgs.info("Computing best-fitting model parameters of the scattered light") - res_lsq = least_squares(resid, x0, - bounds=([1, 1, -200 / specbin, -200 / spatbin, 0, -10, -10, -10, -10], - [600 / specbin, 600 / spatbin, 200 / specbin, 200 / spatbin, 2, 10, 10, 10, - 10]), - args=(wpix, img), verbose=2) - # Store if this is a successful fit - success = res_lsq.success - if success: - msgs.info("Generating best-fitting scattered light model") - scatt_img = self.scattered_light_model(res_lsq.x, img)[detpad:-detpad, detpad:-detpad] - else: - msgs.warn("Scattered light model fitting failed") - scatt_img = np.zeros_like(frame) - if debug: - # Do some checks on the results - embed() - scatt_img_alt = self.scattered_light_model(x0, img)[detpad:-detpad, detpad:-detpad] - vmin, vmax = 0, np.max(scatt_img_alt) - vmin, vmax = -3, 10.0 - plt.subplot(231) - plt.imshow(frame, vmin=vmin, vmax=vmax) - plt.subplot(232) - plt.imshow(scatt_img, vmin=vmin, vmax=vmax) - plt.subplot(233) - plt.imshow(frame-scatt_img, vmin=vmin, vmax=vmax) - plt.subplot(234) - plt.imshow(frame, vmin=vmin, vmax=vmax) - plt.subplot(235) - plt.imshow(scatt_img_alt, vmin=vmin, vmax=vmax) - plt.subplot(236) - plt.imshow(frame-scatt_img_alt, vmin=vmin, vmax=vmax) - plt.show() - return scatt_img, res_lsq.x, success + # Now set the bounds of the fitted parameters + bounds = ([1, 1, -200/specbin, -200/spatbin, 0, -10, -10, -10, -10], + [600/specbin, 600/spatbin, 200/specbin, 200/spatbin, 2, 10, 10, 10, 10]) + + # Return the best-fitting archival parameters and the bounds + return x0, bounds def fit_2d_det_response(self, det_resp, gpmask): r""" diff --git a/pypeit/spectrographs/spectrograph.py b/pypeit/spectrographs/spectrograph.py index ee4baffc3d..dbb9c4c46d 100644 --- a/pypeit/spectrographs/spectrograph.py +++ b/pypeit/spectrographs/spectrograph.py @@ -1894,62 +1894,43 @@ def calc_pattern_freq(self, frame, rawdatasec_img, oscansec_img, hdu): msgs.warn(f"Pattern noise removal is not implemented for spectrograph {self.name}") return [] - def scattered_light_model(self, param, img, kernel='gaussian'): - """ Model used to calculate the scattered light. This function is used to - generate a model of the scattered light, based on a set of model parameters - that have been optimized using self.scattered_light(). + def scattered_light_archive(self, binning, dispname): + """ Archival model parameters for the scattered light. These are based on best fits to currently available data. Parameters ---------- - param : `numpy.ndarray`_ - Model parameters that determine the scattered light based on the input img. - Every spectrograph is allowed a different number of model parameters. - img : `numpy.ndarray`_ - Raw image that you want to compute the scattered light model. - shape is (nspec, nspat) - kernel : :obj:`str`_, optional - The shape of the kernel to use. The allowed values depend on the spectrograph - scattered light model. - - Returns - ------- - model : `numpy.ndarray`_ - Model of the scattered light for the input - """ - msgs.warn(f"Scattered light subtraction is not setup for {self.name}") - return np.zeros_like(img) - - def scattered_light(self, frame, offslitmask, binning=None, dispname=None, detpad=300): - """ Calculate the scattered light model parameters of the input frame. - This function is used to optimize the model parameters. See also - self.scattered_light_model() - - Parameters - ---------- - frame : `numpy.ndarray`_ - Raw 2D data frame to be used to compute the scattered light. - offslitmask : `numpy.ndarray`_ - A boolean mask indicating the pixels that are on/off the slit (True = off the slit) binning : :obj:`str`_, optional Comma-separated binning along the spectral and spatial directions; e.g., ``2,1`` dispname : :obj:`str`_, optional Name of the disperser - detpad : :obj:`int`_, optional - Number of pixels to pad to each of the detector edges to reduce edge effects. Returns ------- - scatt_img : `numpy.ndarray`_, float - A 2D image of the scattered light determined from the input frame. - Alternatively, if a constant value is used, a constant floating point - value can be returned as well. - modelpar : `numpy.ndarray`_ + x0 : `numpy.ndarray`_ A 1D array containing the best-fitting model parameters - success : :obj:`bool`_ - True if the fit was successful, False otherwise - """ - msgs.info("Scattered light removal is not implemented for spectrograph {0:s}".format(self.name)) - return 0.0 + bounds : :obj:`tuple`_ + A tuple of two elements, containing two `np.ndarray`_ of the same length as x0. These + two arrays contain the lower (first element of the tuple) and upper (second element of the tuple) + bounds to consider on the scattered light model parameters. + """ + # Grab the binning for convenience + specbin, spatbin = parse.parse_binning(binning) + + msgs.warn(f"Initial scattered light model parameters have not been setup for grating {dispname} of {self.name}") + sigmx = 400.0 / specbin # This is the spectral direction + sigmy = 200.0 / spatbin # This is the spatial direction + shft_spec = 0.0 / specbin # Shift of the scattered light in the spectral direction + shft_spat = 0.0 / spatbin # Shift of the scattered light in the spatial direction + zoom = 1.0 # Zoom factor of the scattered light + term0, term1, term2, term3 = 0.1, -0.2, 0.3, -0.1 # Polynomial coefficients + x0 = [sigmx, sigmy, shft_spec, shft_spat, zoom, term0, term1, term2, term3] + + # Now set the bounds of the fitted parameters + bounds = ([1, 1, -200/specbin, -200/spatbin, 0, -10, -10, -10, -10], + [600/specbin, 600/spatbin, 200/specbin, 200/spatbin, 2, 10, 10, 10, 10]) + + # Return the best-fitting archival parameters and the bounds + return x0, bounds def __repr__(self): """Return a string representation of the instance.""" From 3443e334ec7e5437923fb15fee0702c3e3f40fb8 Mon Sep 17 00:00:00 2001 From: rcooke Date: Mon, 23 Oct 2023 21:44:29 +0100 Subject: [PATCH 28/67] rm import --- pypeit/core/scattlight.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index 0e57bcb6b7..6ca464fa5f 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -5,7 +5,6 @@ """ import numpy as np -import matplotlib.pyplot as plt from scipy.optimize import least_squares from scipy import signal, interpolate From f9ae3c4915b775b69cbd5e7dd7ca85c9d1eb9a63 Mon Sep 17 00:00:00 2001 From: rcooke Date: Tue, 24 Oct 2023 22:18:05 +0100 Subject: [PATCH 29/67] add docs for scattlight --- doc/calibrations/align.rst | 4 +- doc/calibrations/scattlight.rst | 123 ++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 doc/calibrations/scattlight.rst diff --git a/doc/calibrations/align.rst b/doc/calibrations/align.rst index dd242a0da2..6511ab4773 100644 --- a/doc/calibrations/align.rst +++ b/doc/calibrations/align.rst @@ -47,14 +47,14 @@ the spatial alignment. Trouble Shooting ================ -If your image appears to be in err, here are the things to consider: +If your image appears to be in error, here are the things to consider: - Is one or more of your input alignment frames junk? - Check each of your input alignment frames. Some might be mislabeled. - If some alignments are apparently missing, you might want to check - that the slits are currently traced. + that the slits are correctly traced. Current Alignments Data Model ============================= diff --git a/doc/calibrations/scattlight.rst b/doc/calibrations/scattlight.rst new file mode 100644 index 0000000000..1fe0f6fb05 --- /dev/null +++ b/doc/calibrations/scattlight.rst @@ -0,0 +1,123 @@ + +.. include:: ../include/links.rst + +.. _scattlight: + +=========================== +Scattered light subtraction +=========================== + +Overview +======== + +This document describes how PypeIt implements a scattered light subtraction. +Scattered light usually affects data at the few percent level or even less. +So, before you implement a scattered light correction for your data, convince +yourself that this is really needed for your science case. There is currently +one algorithm that can be applied to all spectrographs, although this model +has only been tested with Keck/KCWI and Keck/ESI data, and may not be optimal +for your instrument setup, so inspect the outputs to be sure that you are not +adding artefacts to your data. + +Overview +======== + +This file describes the model fitting procedure and how to check the results of your +scattered light fits. The input image used should generally be a bright object that +does not fill the slit. A bright standard star or a series of alignment frames are +a good choice. + +The image is written to disk as a multi-extension FITS file +prefixed by ``ScatteredLight`` in the ``Calibrations/`` folder. +See :ref:`calib-naming` for the naming convention. + +Model Implementation +==================== + +The scattered light model is derived from regions of the +detector that are outside of the slit boundaries. The slit edges are padded (assuming 1x1 binning) +by a default integer value so that bleeding light from the edges of the slits minimally +impacts the scattered light modelling procedure. If you would like to change the default amount +of padding, you can set the number of padded pixels by the following parameter (the following +example will pad the slits by 10 detector pixels, assuming 1x1 binning): + +.. code-block:: ini + + [calibrations] + [[scattlight]] + pad = 10 + +Note: if your data are binned by 2 in the spatial direction, then setting ``pad=10`` would actually +pad the slit edges by 5 pixels. + +The current scattered light model involves a 9 parameter fit to the inter-slit regions. The model +utilises the observed 2D (trimmed+oriented+debiased) frame to estimate the scattered light. The +scattered light model is essentially a blurred, shifted, flux-scaled, and zoomed version of the +detector image. The amount of blurring and shifting in the spatial and spectral direction are done +separately (2 parameters each), and there is a single parameter to estimate the zoom factor. The +flux-scaling is a cubic polynomial (4 parameters) to the spectral direction. Once the best-fitting +model parameters are determined, these can be applied to any other frame to estimate the scattered +light contribution of this frame. + +Alternatively, the scattered light can be determined for each frame independently (i.e. you can +derive a separate set of 9 model parameters for each frame that you wish to perform a scattered +light correction). To set this option, you can add the following arguments to your pypeit file: + +.. code-block:: ini + + [calibrations] + [[FRAMETYPE]] + [[[process]]] + scattlight_method = frame + +You can also set ``scattlight_method = archive``, which will use pre-determined archival values +for the spectrograph that you are trying to reduce data for. However, note that not all spectrographs +have this feature implemented, so this is not a good idea in general. + +Inspecting +========== + +There is a dedicated PypeIt script to check the scattered light model fit: + +.. code-block:: console + + pypeit_chk_scattlight Calibrations/ScatteredLight_A_0_DET01.fits.gz Calibrations/Slits_A_0_DET01.fits.gz + +Where the first and second arguments are the ``ScatteredLight`` and ``Slits`` calibration frames. +A three panel ginga window will be opened that shows: +(1) the data frame used to determine the scattered light model parameters; +(2) the model of the scattered light; and +(3) The model subtracted from the data (i.e. data-model). +All panels are re-oriented so that vertical is the spectral dimension with +blue at the bottom, following the PypeIt :ref:`pypeit-orientation` convention. + +Here is an screen shot of a ``ginga`` view for an example from +the ``keck_kcwi`` spectrograph. + +.. image:: ../figures/scatteredlight_image.png + +Trouble Shooting +================ + +If your scattered light model appears to be in error, here are some things to consider: + + - Does the scattered light input frame have enough pixels between the + slits to accurately pin down the scattered light contribution? + + - Check your chosen scattered light frame. It might be mislabeled. It's + often best to choose one really good scattered light frame, unless you + are confident that all frames labelled ``scattlight`` closely resemble + one another + + - Check your slit tracing. If some slits are apparently missing, you might + want to check that the slits are correctly traced. + +Current Scattered Light Data Model +================================== + +The datamodel written to disk is: + +.. include:: ../include/datamodel_scattlight.rst + +The `astropy.io.fits.BinTableHDU`_ contains all the data from the underlying +:class:`~pypeit.scattlight.ScatteredLight` class. For details see its datamodel. From 12f1ff01cc56f32fe883b9522ad75ae2023d4fd4 Mon Sep 17 00:00:00 2001 From: rcooke Date: Thu, 26 Oct 2023 14:31:32 +0100 Subject: [PATCH 30/67] add kernel --- pypeit/scattlight.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py index fb8fa801e1..429cbe1d42 100644 --- a/pypeit/scattlight.py +++ b/pypeit/scattlight.py @@ -15,7 +15,7 @@ from pypeit import datamodel from pypeit import calibframe from pypeit.display import display -from pypeit.spectrographs.util import load_spectrograph +from pypeit.core import scattlight from pypeit.images.buildimage import ScatteredLightImage @@ -49,7 +49,8 @@ class ScatteredLight(calibframe.CalibFrame): 'nspec': dict(otype=int, descr='Number of pixels in the image spectral direction.'), 'nspat': dict(otype=int, descr='Number of pixels in the image spatial direction.'), 'binning': dict(otype=str, descr='Binning in PypeIt orientation (not the original)'), - 'pad': dict(otype=int, descr='Integer number of pixels to mask beyond the slit edges.'), + 'pad': dict(otype=int, descr='Integer number of pixels to mask beyond the slit edges'), + 'kernel': dict(otype=str, descr='Kernel used to generate scattered light image'), 'scattlight_raw': dict(otype=np.ndarray, atype=np.floating, descr='Image used to construct the edge traces; see ' ':class:`~pypeit.images.buildimage.ScatteredLightImage` and ' @@ -64,7 +65,7 @@ class ScatteredLight(calibframe.CalibFrame): # TODO: May want nspat to be a required argument. # The INIT must contain every datamodel item or risk fail on I/O when it is a nested container def __init__(self, pypeline=None, detname=None, nspec=None, nspat=None, PYP_SPEC=None, binning=None, pad=0, - scattlight_raw=None, scattlight_model=None, scattlight_param=None): + kernel=None, scattlight_raw=None, scattlight_model=None, scattlight_param=None): # Instantiate the DataContainer args, _, _, values = inspect.getargvalues(inspect.currentframe()) @@ -104,10 +105,8 @@ def get_model(self, image): if self.scattlight_param is None: msgs.warn("No scattered light parameters are available") return np.zeros_like(image) - # Load the spectrograph - spec = load_spectrograph(self.PYP_SPEC) # Return the model of the scattered light - return spec.scattered_light_model(self.scattlight_param, image) + return scattlight.scattered_light_model(self.scattlight_param, image, kernel=self.kernel) def show(self, image=None, slits=None, mask=False, wcs_match=True): """ Display the master scattered light frame, the model, and data-model. From 0e4cd4714730d196efc054a28b6e832ccd0207ca Mon Sep 17 00:00:00 2001 From: rcooke Date: Thu, 26 Oct 2023 14:33:17 +0100 Subject: [PATCH 31/67] add kernel --- pypeit/calibrations.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index b1e055e04c..9274835624 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -614,6 +614,7 @@ def get_scattlight(self): nspec=scattlightImage.shape[0], nspat=scattlightImage.shape[1], binning=scattlightImage.detector.binning, pad=self.par['scattlight']['pad'], + kernel=self.par['scattlight']['kernel'], scattlight_raw=scattlightImage.image, scattlight_model=model, scattlight_param=modelpar) From 41398c0767818ff053b90700dfc538fd880a5a1f Mon Sep 17 00:00:00 2001 From: rcooke Date: Thu, 26 Oct 2023 22:03:22 +0100 Subject: [PATCH 32/67] docstring --- pypeit/core/scattlight.py | 160 +++++++++++++++++++++++++------------- 1 file changed, 107 insertions(+), 53 deletions(-) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index 6ca464fa5f..e43cf91af9 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -13,7 +13,7 @@ from pypeit import msgs -def scattered_light_model(param, img, kernel='gaussian'): +def scattered_light_model(param, img): """ Model used to calculate the scattered light. The current model to generate the scattered light is a shifted, scaled, and blurred version of the @@ -30,21 +30,24 @@ def scattered_light_model(param, img, kernel='gaussian'): subsequent parameters in this list are polynomial corrections to the spectral direction. Here are the individual parameters: - * param[0] = Kernel width in the spectral direction - * param[1] = Kernel width in the spatial direction - * param[2] = Pixel shift of the scattered light in the spectral direction - * param[3] = Pixel shift of the scattered light in the spatial direction - * param[4] = Zoom factor of the scattered light (~1) - * param[5:] = Polynomial scaling coefficients in the spectral direction + * param[0] = Gaussian kernel width in the spectral direction + * param[1] = Gaussian kernel width in the spatial direction + * param[2] = Lorentzian kernel width in the spectral direction + * param[3] = Lorentzian kernel width in the spatial direction + * param[4] = Pixel shift of the scattered light in the spectral direction + * param[5] = Pixel shift of the scattered light in the spatial direction + * param[6] = Zoom factor of the scattered light (~1) + * param[7] = Kernel angle + * param[8] = Relative importance of Gaussian vs Lorentzian. + 0 < value < 1 means Lorentzian is weighted more + value > 1 means Gaussian is weighted more. + * param[9:] = Polynomial scaling coefficients img : `numpy.ndarray`_ Raw image that you want to compute the scattered light model. shape is (nspec, nspat) Model used to calculate the scattered light. This function is used to generate a model of the scattered light, based on a set of model parameters that have been optimized using self.scattered_light(). - kernel : :obj:`str`_, optional - The shape of the kernel to use. The allowed values are 'gaussian' and 'lorentzian', - but the default value ('gaussian') is currently believed to provide the best fit. Returns ------- @@ -52,37 +55,74 @@ def scattered_light_model(param, img, kernel='gaussian'): Model of the scattered light for the input """ # Extract the parameters into more conveniently named variables - sigmx, sigmy, shft_spec, shft_spat, zoom = param[0], param[1], param[2], param[3], param[4] - polyterms = param[5:] - # Generate a 2D smoothing kernel - if kernel == 'gaussian': - # Gaussian - subkrnx = np.exp(-0.5 * (np.arange(int(6 * sigmx)) - 3 * sigmx) ** 2 / sigmx ** 2) - subkrny = np.exp(-0.5 * (np.arange(int(6 * sigmy)) - 3 * sigmy) ** 2 / sigmy ** 2) - elif kernel == 'lorentzian': - # Lorentzian - subkrnx = sigmx / ((np.arange(int(10 * sigmx)) - 5 * sigmx) ** 2 + sigmx ** 2) - subkrny = sigmy / ((np.arange(int(10 * sigmy)) - 5 * sigmy) ** 2 + sigmy ** 2) - else: - msgs.error(f"Unknown kernel: {kernel}") - kernel = np.outer(subkrnx, subkrny) - kernel /= np.sum(kernel) + sigmx_g, sigmy_g, sigmx_l, sigmy_l = param[0], param[1], param[2], param[3] + shft_spec, shft_spat, zoom = param[4], param[5], param[6] + kern_angle, kern_scale = param[7], param[8] + polyterms = param[9:] + # Make a grid of coordinates specvec, spatvec = np.arange(img.shape[0]), np.arange(img.shape[1]) - spat, spec = np.meshgrid(spatvec, specvec / (specvec.size - 1)) + spat, spec = np.meshgrid(spatvec/(spatvec.size-1), specvec/(specvec.size - 1)) # Generate the polynomial efficiency scaling in the spectral direction - polyscale = np.zeros_like(img) - for pp in range(polyterms.size): - polyscale += polyterms[pp] * spec ** pp + polyscale = polyterms[0] + polyterms[1]*spec + polyterms[2]*spat + polyterms[3]*spec*spat + # polyscale = np.zeros_like(img) + # for pp in range(polyterms_spec.size): + # polyscale += polyterms_spec[pp] * spec ** pp + # for pp in range(polyterms_spat.size): + # polyscale += polyterms_spat[pp] * spat ** pp + + # Generate a 2D smoothing kernel, composed of a 2D Gaussian and a 2D Lorentzian + sigmx, sigmy = max(sigmx_g, sigmx_l), max(sigmy_g, sigmy_l), + xkern, ykern = np.meshgrid(np.arange(int(10 * sigmx)) - 5 * sigmx, + np.arange(int(10 * sigmy)) - 5 * sigmy) + # Rotate the kernel + xkernrot = (xkern * np.cos(kern_angle) - ykern * np.sin(kern_angle)) + ykernrot = (xkern * np.sin(kern_angle) + ykern * np.cos(kern_angle)) + # Create and normalise the Gaussian kernel + kernel_gaussian = np.exp(-((xkernrot/sigmx_g)**2 + (ykernrot/sigmy_g)**2)) + kernel_gaussian /= np.sum(kernel_gaussian) + # Create and normalise the Lorenztian kernel + kernel_lorentzian = 1 / ((xkernrot/sigmx_l) ** 2 + (ykernrot/sigmy_l) ** 2 + 1) + kernel_lorentzian /= np.sum(kernel_lorentzian) + # Add the individual kernels into a single kernel. Arbitrarily scale the Gaussian kernel (either is fine). + # The point of this is to make it so either a lorentzian, gaussian, or something in-between can be + # used as the kernel, making it more flexible for different spectrographs. + kernel = kernel_lorentzian + kern_scale * kernel_gaussian + kernel /= np.sum(kernel) + # Convolve the input image (note: most of the time is spent here) # oaconvolve is the fastest option when the kernel is much smaller dimensions than the image - # scale_img = polyscale * signal.fftconvolve(img, kernel, mode='same') - scale_img = polyscale * signal.oaconvolve(img, kernel, mode='same') + scale_img = polyscale * signal.fftconvolve(img, kernel, mode='same') + # scale_img = polyscale * signal.oaconvolve(img, kernel, mode='same') spl = interpolate.RectBivariateSpline(specvec, spatvec, scale_img, kx=1, ky=1) return spl(zoom * (specvec + shft_spec), zoom * (spatvec + shft_spat)) -def scattlight_resid(param, wpix, img): +def evaluate(param, frame, detpad=300): + """ Evaluate the scattered light model, allowing for some image padding to minimise edge effects + + Parameters + ---------- + param : `numpy.ndarray`_ + Model parameters that determine the scattered light based on the input img. + See `scattered_light_model()`_ + img : `numpy.ndarray`_ + Raw image that you want to compute the scattered light model. + shape is (nspec, nspat) + + Returns + ------- + model : `numpy.ndarray`_ + Model of the scattered light for the input + """ + _frame = frame.copy() + _frame[0, :] = np.median(_frame[0:10, :], axis=0) + _frame[-1, :] = np.median(_frame[-10:, :], axis=0) + img = np.pad(_frame, detpad, mode='edge') # Model should be generated on padded data + return scattered_light_model(param, img)[detpad:-detpad, detpad:-detpad] + + +def scattlight_resid(param, wpix, img, modimg): """ Residual function used to optimize the model parameters Parameters @@ -100,7 +140,7 @@ def scattlight_resid(param, wpix, img): resid : `numpy.ndarray`_ A 1D vector of the residuals """ - model = scattered_light_model(param, img) + model = scattered_light_model(param, modimg) return img[wpix] - model[wpix] @@ -137,12 +177,7 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False success : :obj:`bool`_ True if the fit was successful, False otherwise """ - - # Grab a copy of the input frame, and do some pre-processing on it _frame = frame.copy() - - # First pad the edges to minimize edge effects - # Do a median filter near the edges _frame[0, :] = np.median(_frame[0:10, :], axis=0) _frame[-1, :] = np.median(_frame[-10:, :], axis=0) img = np.pad(_frame, detpad, mode='edge') # Model should be generated on padded data @@ -151,30 +186,49 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False # Grab the pixels to be included in the fit wpix = np.where(offslitmask_pad) - # Compute the best-fitting model parameters - msgs.info("Computing best-fitting model parameters of the scattered light") - res_lsq = least_squares(scattlight_resid, x0, bounds=bounds, args=(wpix, img), verbose=2, ftol=1.0E-4) - - # Store if this is a successful fit - success = res_lsq.success - if success: - msgs.info("Generating best-fitting scattered light model") - scatt_img = scattered_light_model(res_lsq.x, img)[detpad:-detpad, detpad:-detpad] - else: - msgs.warn("Scattered light model fitting failed") - scatt_img = np.zeros_like(_frame) + # Iterate on the scattered light + scatt_img = 0.0 + niter = 1 + for ii in range(niter): + # Grab a copy of the input frame, and do some pre-processing on it + _frame = frame.copy()-scatt_img + + # First pad the edges to minimize edge effects + # Do a median filter near the edges + _frame[0, :] = np.median(_frame[0:10, :], axis=0) + _frame[-1, :] = np.median(_frame[-10:, :], axis=0) + modimg = np.pad(_frame, detpad, mode='edge') # Model should be generated on padded data + + # Compute the best-fitting model parameters + msgs.info(f"ITERATION {ii+1}: Computing best-fitting model parameters of the scattered light") + res_lsq = least_squares(scattlight_resid, x0, bounds=bounds, args=(wpix, img, modimg), + verbose=2, ftol=1.0E-4) + + # Store if this is a successful fit + success = res_lsq.success + if success: + msgs.info("Generating best-fitting scattered light model") + scatt_img = scattered_light_model(res_lsq.x, modimg)[detpad:-detpad, detpad:-detpad] + else: + msgs.warn("Scattered light model fitting failed") + scatt_img = np.zeros_like(_frame) + break if debug: # Do some checks on the results embed() - from matplotlib import pyplot as plt scatt_img_alt = scattered_light_model(x0, img)[detpad:-detpad, detpad:-detpad] - vmin, vmax = 0, np.max(scatt_img_alt) + from matplotlib import pyplot as plt + vmin, vmax = 0, 40.0#np.max(scatt_img_alt) + plt.imshow(frame - scatt_img, vmin=-vmax/2, vmax=vmax/2) + plt.show() + print(res_lsq.x) + plt.subplot(231) plt.imshow(_frame, vmin=vmin, vmax=vmax) plt.subplot(232) plt.imshow(scatt_img, vmin=vmin, vmax=vmax) plt.subplot(233) - plt.imshow(_frame - scatt_img, vmin=-vmax/2, vmax=vmax/2) + plt.imshow(frame - scatt_img, vmin=-vmax/2, vmax=vmax/2) plt.subplot(234) plt.imshow(_frame, vmin=vmin, vmax=vmax) plt.subplot(235) From 2087f7c84e79776205a0b25509299d5e53796164 Mon Sep 17 00:00:00 2001 From: rcooke Date: Thu, 26 Oct 2023 22:03:33 +0100 Subject: [PATCH 33/67] update ESI scattlight params --- pypeit/spectrographs/keck_esi.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/pypeit/spectrographs/keck_esi.py b/pypeit/spectrographs/keck_esi.py index 7e400666c4..4bb0d61f75 100644 --- a/pypeit/spectrographs/keck_esi.py +++ b/pypeit/spectrographs/keck_esi.py @@ -131,6 +131,10 @@ def default_pypeit_par(cls): par['reduce']['findobj']['maxnumber_std'] = 1 # Slit is narrow so allow one object per order par['reduce']['extraction']['model_full_slit'] = True # local sky subtraction operates on entire slit + # Scattered light + par['calibrations']['pixelflatframe']['process']['subtract_scattlight'] = True + par['calibrations']['illumflatframe']['process']['subtract_scattlight'] = True + par['scienceframe']['process']['subtract_scattlight'] = True # Always flux calibrate, starting with default parameters # Do not correct for flexure @@ -332,14 +336,17 @@ def scattered_light_archive(self, binning, dispname): # and should be close to the final fitted values to reduce computational time) # Note :: These values need to be originally based on data that uses 1x1 binning, # and are now scaled here according to the binning of the current data to be analysed. - x0 = np.array([3.16544600e+02/specbin, 2.05443943e+02/spatbin, # kernel widths - -9.23121908e+01/specbin, 6.09000452e+01/spatbin, # pixel offsets - 9.94913292e-01, # Zoom factor - 2.23905249e-01, -1.86171132e-01, 8.55479705e-02, -1.26763813e-02]) # Polynomial terms + x0 = np.array([2.66062476e+02/specbin, 1.57687605e+02/spatbin, # Gaussian kernel widths + 2.65852665e+02/specbin, 1.77129333e+02/spatbin, # Lorentzian kernel widths + -1.38348682e+02/specbin, 7.70314399e+01/spatbin, # pixel offsets + 1.01701653e+00, # Zoom factor + 9.46809475e-01, # kernel angle + 5.24572902e-02, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + 2.98836062e-01, -2.48646829e-01, -1.31752297e-01, 2.25868369e-01]) # Polynomial terms # Now set the bounds of the fitted parameters - bounds = ([1, 1, -200/specbin, -200/spatbin, 0, -10, -10, -10, -10], - [600/specbin, 600/spatbin, 200/specbin, 200/spatbin, 2, 10, 10, 10, 10]) + bounds = ([1, 1, 1, 1, -200/specbin, -200/spatbin, 0, -2*np.pi, 0.0, -10, -10, -10, -10], + [600/specbin, 600/spatbin, 600/specbin, 600/spatbin, 200/specbin, 200/spatbin, 2, 2*np.pi, 1000.0, 10, 10, 10, 10]) # Return the best-fitting archival parameters and the bounds return x0, bounds From e84eb1274854171db35e45ab985d2fa0c8c4be14 Mon Sep 17 00:00:00 2001 From: rcooke Date: Thu, 26 Oct 2023 22:04:16 +0100 Subject: [PATCH 34/67] rm kernel --- pypeit/core/scattlight.py | 4 +--- pypeit/scattlight.py | 5 ++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index e43cf91af9..d1dd171365 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -26,9 +26,7 @@ def scattered_light_model(param, img): ---------- param : `numpy.ndarray`_ Model parameters that determine the scattered light based on the input img. - The first 5 parameters are the same for all spectrographs. The sixth and all - subsequent parameters in this list are polynomial corrections to the spectral - direction. Here are the individual parameters: + Here is a list of the individual parameter meanings: * param[0] = Gaussian kernel width in the spectral direction * param[1] = Gaussian kernel width in the spatial direction diff --git a/pypeit/scattlight.py b/pypeit/scattlight.py index 429cbe1d42..5fab7a9b55 100644 --- a/pypeit/scattlight.py +++ b/pypeit/scattlight.py @@ -50,7 +50,6 @@ class ScatteredLight(calibframe.CalibFrame): 'nspat': dict(otype=int, descr='Number of pixels in the image spatial direction.'), 'binning': dict(otype=str, descr='Binning in PypeIt orientation (not the original)'), 'pad': dict(otype=int, descr='Integer number of pixels to mask beyond the slit edges'), - 'kernel': dict(otype=str, descr='Kernel used to generate scattered light image'), 'scattlight_raw': dict(otype=np.ndarray, atype=np.floating, descr='Image used to construct the edge traces; see ' ':class:`~pypeit.images.buildimage.ScatteredLightImage` and ' @@ -65,7 +64,7 @@ class ScatteredLight(calibframe.CalibFrame): # TODO: May want nspat to be a required argument. # The INIT must contain every datamodel item or risk fail on I/O when it is a nested container def __init__(self, pypeline=None, detname=None, nspec=None, nspat=None, PYP_SPEC=None, binning=None, pad=0, - kernel=None, scattlight_raw=None, scattlight_model=None, scattlight_param=None): + scattlight_raw=None, scattlight_model=None, scattlight_param=None): # Instantiate the DataContainer args, _, _, values = inspect.getargvalues(inspect.currentframe()) @@ -106,7 +105,7 @@ def get_model(self, image): msgs.warn("No scattered light parameters are available") return np.zeros_like(image) # Return the model of the scattered light - return scattlight.scattered_light_model(self.scattlight_param, image, kernel=self.kernel) + return scattlight.scattered_light_model(self.scattlight_param, image) def show(self, image=None, slits=None, mask=False, wcs_match=True): """ Display the master scattered light frame, the model, and data-model. From 3773c58a4e3b6419ac87816c74018c5e81107841 Mon Sep 17 00:00:00 2001 From: rcooke Date: Thu, 26 Oct 2023 22:06:41 +0100 Subject: [PATCH 35/67] update scattlight --- pypeit/calibrations.py | 1 - pypeit/images/rawimage.py | 27 +++++++++++++++++++++++---- pypeit/par/pypeitpar.py | 2 +- pypeit/spectrographs/spectrograph.py | 18 +++++++++--------- 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index 9274835624..b1e055e04c 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -614,7 +614,6 @@ def get_scattlight(self): nspec=scattlightImage.shape[0], nspat=scattlightImage.shape[1], binning=scattlightImage.detector.binning, pad=self.par['scattlight']['pad'], - kernel=self.par['scattlight']['kernel'], scattlight_raw=scattlightImage.image, scattlight_model=model, scattlight_param=modelpar) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index a30c19c809..9d07521a4c 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -1140,18 +1140,37 @@ def subtract_scattlight(self, msscattlight, slits): # Obtain some information that is needed for the scattered light binning = self.detector[0]['binning'] dispname = self.spectrograph.get_meta_value(self.spectrograph.get_headarr(self.filename), 'dispname') + # Loop over the images for ii in range(self.nimg): + # Mask bad pixels + _frame = self.image[ii, ...] * np.logical_not(self.bpm[ii, ...]) + # Apply the requested method for the scattered light if self.par["scattlight_method"] == "model": # Use predefined model parameters - scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, self.image[ii, ...]) + scatt_img = scattlight.evaluate(msscattlight.scattlight_param, _frame) + debug = False # RJC requests to keep this here for debugging + if debug: + spatbin = parse.parse_binning(self.detector[0]['binning'])[1] + pad = msscattlight.pad // spatbin + offslitmask = slits.slit_img(pad=pad, initial=True, flexure=None) == -1 + from matplotlib import pyplot as plt + _frame = self.image[ii, ...] + vmin, vmax = 0, np.max(scatt_img) + plt.subplot(131) + plt.imshow(_frame*offslitmask, vmin=vmin, vmax=vmax) + plt.subplot(132) + plt.imshow(scatt_img, vmin=vmin, vmax=vmax) + plt.subplot(133) + plt.imshow((_frame - scatt_img)*offslitmask, vmin=-vmax / 2, vmax=vmax / 2) + plt.show() elif self.par["scattlight_method"] == "archive": # Use archival model parameters modpar, _ = self.spectrograph.scattered_light_archive(binning, dispname) if modpar is None: msgs.error(f"{self.spectrograph.name} does not have archival scattered light parameters. Please " f"set 'scattlight_method' to another option.") - scatt_img = scattlight.scattered_light_model(modpar, self.image[ii, ...]) + scatt_img = scattlight.scattered_light_model(modpar, _frame) elif self.par["scattlight_method"] == "frame": # Calculate a model specific for this frame spatbin = parse.parse_binning(self.detector[0]['binning'])[1] @@ -1166,12 +1185,12 @@ def subtract_scattlight(self, msscattlight, slits): if not success: if msscattlight is not None: msgs.warn("Scattered light model failed - using predefined model parameters") - scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, self.image[ii, ...]) + scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, _frame) else: msgs.warn("Scattered light model failed - using archival model parameters") # Use archival model parameters modpar, _ = self.spectrograph.scattered_light_archive(binning, dispname) - scatt_img = scattlight.scattered_light_model(modpar, self.image[ii, ...]) + scatt_img = scattlight.scattered_light_model(modpar, _frame) else: msgs.warn("Scattered light not performed") scatt_img = np.zeros(self.image[ii, ...].shape) diff --git a/pypeit/par/pypeitpar.py b/pypeit/par/pypeitpar.py index 6990c42d6d..f49143a212 100644 --- a/pypeit/par/pypeitpar.py +++ b/pypeit/par/pypeitpar.py @@ -478,7 +478,7 @@ def valid_overscan_methods(): @staticmethod def valid_scattlight_methods(): """ - Return the valid overscan methods. + Return the valid scattered light methods. """ return ['model', 'frame', 'archive'] diff --git a/pypeit/spectrographs/spectrograph.py b/pypeit/spectrographs/spectrograph.py index dbb9c4c46d..d973a5e1bb 100644 --- a/pypeit/spectrographs/spectrograph.py +++ b/pypeit/spectrographs/spectrograph.py @@ -1917,17 +1917,17 @@ def scattered_light_archive(self, binning, dispname): specbin, spatbin = parse.parse_binning(binning) msgs.warn(f"Initial scattered light model parameters have not been setup for grating {dispname} of {self.name}") - sigmx = 400.0 / specbin # This is the spectral direction - sigmy = 200.0 / spatbin # This is the spatial direction - shft_spec = 0.0 / specbin # Shift of the scattered light in the spectral direction - shft_spat = 0.0 / spatbin # Shift of the scattered light in the spatial direction - zoom = 1.0 # Zoom factor of the scattered light - term0, term1, term2, term3 = 0.1, -0.2, 0.3, -0.1 # Polynomial coefficients - x0 = [sigmx, sigmy, shft_spec, shft_spat, zoom, term0, term1, term2, term3] + x0 = np.array([200/specbin, 100/spatbin, # Gaussian kernel widths + 200/specbin, 100/spatbin, # Lorentzian kernel widths + 0.0/specbin, 0.0/spatbin, # pixel offsets + 1.0, # Zoom factor + 0.0, # kernel angle + 0.0, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + 0.1, 0.0, 0.0, 0.0]) # Polynomial terms # Now set the bounds of the fitted parameters - bounds = ([1, 1, -200/specbin, -200/spatbin, 0, -10, -10, -10, -10], - [600/specbin, 600/spatbin, 200/specbin, 200/spatbin, 2, 10, 10, 10, 10]) + bounds = ([1, 1, 1, 1, -200/specbin, -200/spatbin, 0, -2*np.pi, 0.0, -10, -10, -10, -10], + [600/specbin, 600/spatbin, 600/specbin, 600/spatbin, 200/specbin, 200/spatbin, 2, 2*np.pi, 1000.0, 10, 10, 10, 10]) # Return the best-fitting archival parameters and the bounds return x0, bounds From ea608a8ff6a4db9e33f864678067a7cfa40236cd Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 27 Oct 2023 21:58:32 +0100 Subject: [PATCH 36/67] update docs --- doc/calibrations/scattlight.rst | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/doc/calibrations/scattlight.rst b/doc/calibrations/scattlight.rst index 1fe0f6fb05..3fb4e3bf0b 100644 --- a/doc/calibrations/scattlight.rst +++ b/doc/calibrations/scattlight.rst @@ -50,17 +50,20 @@ example will pad the slits by 10 detector pixels, assuming 1x1 binning): Note: if your data are binned by 2 in the spatial direction, then setting ``pad=10`` would actually pad the slit edges by 5 pixels. -The current scattered light model involves a 9 parameter fit to the inter-slit regions. The model +The current scattered light model involves a 13 parameter fit to the inter-slit regions. The model utilises the observed 2D (trimmed+oriented+debiased) frame to estimate the scattered light. The -scattered light model is essentially a blurred, shifted, flux-scaled, and zoomed version of the -detector image. The amount of blurring and shifting in the spatial and spectral direction are done -separately (2 parameters each), and there is a single parameter to estimate the zoom factor. The -flux-scaling is a cubic polynomial (4 parameters) to the spectral direction. Once the best-fitting +scattered light model is essentially a blurred, shifted, flux-scaled, rotated, and zoomed version of the +detector image. The amount of blurring in the spatial and spectral direction include contributions from +a Gaussian and a Lorentzian kernel. The relative importance of these kernels is controlled by scaling +parameter (1 paramerer), and each kernel has two widths each (4 parameters total), and the joint kernel +is rotated (1 additional parameter). The scattered light image is than shifted in the spectral and spatial +directions (2 additional parameters), and there is a single parameter to estimate the zoom factor. Finally, +the scattered light flux is scaled by a low order 2D polynomial (4 parameters). Once the best-fitting model parameters are determined, these can be applied to any other frame to estimate the scattered light contribution of this frame. Alternatively, the scattered light can be determined for each frame independently (i.e. you can -derive a separate set of 9 model parameters for each frame that you wish to perform a scattered +derive a separate set of 13 model parameters for each frame that you wish to perform a scattered light correction). To set this option, you can add the following arguments to your pypeit file: .. code-block:: ini From b0692e1664c084aa1809ce76f242a54723ce2595 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 27 Oct 2023 21:59:16 +0100 Subject: [PATCH 37/67] tmp kcwi update --- pypeit/spectrographs/keck_kcwi.py | 62 ++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 22 deletions(-) diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index 4846f8550b..e2440d7fed 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -215,7 +215,7 @@ def compound_meta(self, headarr, meta_key): try: hdrstr = 'TARGRA' if meta_key == 'ra' else 'TARGDEC' except KeyError: - hdrstr = '' + msgs.error(f'Cannot determine the {meta_key} from the header') return headarr[0][hdrstr] elif meta_key == 'pressure': try: @@ -1064,33 +1064,51 @@ def scattered_light_archive(self, binning, dispname): # Note :: These values need to be originally based on data that uses 1x1 binning, # and are now scaled here according to the binning of the current data to be analysed. if dispname == 'BH2': - x0 = np.array([3.49128562e+02/specbin, 2.45833322e+02/spatbin, # kernel widths - -1.26958208e+02/specbin, 1.49033883e+01/spatbin, # pixel offsets - 1.00229122e+00, # Zoom factor - 1.87534428e-01, -2.75679127e-01, 4.08198109e-01, -1.87826458e-01]) # Polynomial terms + x0 = np.array([ 2.67186394e+02/specbin, 1.60743078e+02/spatbin, # Gaussian kernel widths + 2.98999820e+02/specbin, 1.45068103e+02/spatbin, # Lorentzian kernel widths + -1.37376475e+02/specbin, 6.07508615e+01/spatbin, # pixel offsets + 9.86766634e-01, # Zoom factor + 1.41130604e+00, # kernel angle + 4.19246820e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + 7.93912603e-02, -5.81933968e-02, -5.76201948e-03, -7.83543150e-04]) # Polynomial terms elif dispname == 'BM': - x0 = np.array([3.50037423e+02/specbin, 2.38662990e+02/spatbin, # kernel widths - -3.82935541e+01/specbin, -2.04645954e+01/spatbin, # pixel offsets - 1.01042546e+00, # Zoom factor - 1.15251491e-01, -1.59419953e-01, 1.30877795e-01, -1.84324642e-02]) # Polynomial terms + # This solution had Cost: 8.8951e+07 and was based on a 1x1 dataset using pixelflat as the scattlight frame, and assuming pad=10 + + # x0 = np.array([1.72694908e+02, 1.43224435e+01, + # 1.55856081e+02, 1.18366623e+02, + # -6.32142819e+01, 1.52454051e+01, 9.96530165e-01, 1.30756297e+00, + # 7.81666600e-02, 8.25778311e-02, -2.91919118e-02, -3.24661854e-03, + # 4.32022859e-03]) + x0 = np.array([ 60/specbin, 60/spatbin, # Gaussian kernel widths + 60/specbin, 60/spatbin, # Lorentzian kernel widths + 0/specbin, 0/spatbin, # pixel offsets + 9.86766634e-01, # Zoom factor + 1.41130604e+00, # kernel angle + 4.19246820e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + 7.93912603e-02, -5.81933968e-02, -5.76201948e-03, -7.83543150e-04]) # Polynomial terms elif dispname == 'BL': - x0 = np.array([3.47000453e+02/specbin, 2.12462524e+02/spatbin, # kernel widths - -4.35179357e+01/specbin, 8.21150855e+00/spatbin, # pixel offsets - 9.99651562e-01, # Zoom factor - 1.18828616e-01, -3.22338051e-01, 5.07102665e-01, -2.85286699e-01]) # Polynomial terms + # This solution had Cost: 1.0184e+07 and was based on a 2x2 dataset using pixelflat as the scattlight frame, and assuming pad=10 + x0 = np.array([1.45201474e+01/specbin, 1.34653515e+02/spatbin, # Gaussian kernel widths + 1.32198875e+02/specbin, 1.60178190e+02/spatbin, # Lorentzian kernel widths + 6.75891120e+01/specbin, 2.38622901e+01/spatbin, # pixel offsets + 9.94430899e-01, # Zoom factor + 2.02560248e-01, # kernel angle + 1.90164026e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + 7.00761436e-02, -3.67325245e-02, -2.55285293e-03, 2.41518440e-03]) # Polynomial terms else: msgs.warn(f"Initial scattered light model parameters have not been setup for grating {dispname}") - sigmx = 400.0 / specbin # This is the spectral direction - sigmy = 200.0 / spatbin # This is the spatial direction - shft_spec = 0.0 / specbin # Shift of the scattered light in the spectral direction - shft_spat = 0.0 / spatbin # Shift of the scattered light in the spatial direction - zoom = 1.0 # Zoom factor of the scattered light - term0, term1, term2, term3 = 0.1, -0.2, 0.3, -0.1 # Polynomial coefficients - x0 = [sigmx, sigmy, shft_spec, shft_spat, zoom, term0, term1, term2, term3] + x0 = np.array([200/specbin, 100/spatbin, # Gaussian kernel widths + 200/specbin, 100/spatbin, # Lorentzian kernel widths + 0.0/specbin, 0.0/spatbin, # pixel offsets + 1.0, # Zoom factor + 0.0, # kernel angle + 0.0, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + 0.1, 0.0, 0.0, 0.0]) # Polynomial terms # Now set the bounds of the fitted parameters - bounds = ([1, 1, -200/specbin, -200/spatbin, 0, -10, -10, -10, -10], - [600/specbin, 600/spatbin, 200/specbin, 200/spatbin, 2, 10, 10, 10, 10]) + bounds = ([1, 1, 1, 1, -200 / specbin, -200 / spatbin, 0, -2 * np.pi, 0.0, -10, -10, -10, -10], + [600 / specbin, 600 / spatbin, 600 / specbin, 600 / spatbin, 200 / specbin, 200 / spatbin, 2, + 2 * np.pi, 1000.0, 10, 10, 10, 10]) # Return the best-fitting archival parameters and the bounds return x0, bounds From cd8d26527d23d28ad806271e2eff13b73f84099c Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 27 Oct 2023 21:59:24 +0100 Subject: [PATCH 38/67] debug --- pypeit/images/rawimage.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index 9d07521a4c..73c3867770 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -1149,19 +1149,26 @@ def subtract_scattlight(self, msscattlight, slits): if self.par["scattlight_method"] == "model": # Use predefined model parameters scatt_img = scattlight.evaluate(msscattlight.scattlight_param, _frame) - debug = False # RJC requests to keep this here for debugging + debug = True # RJC requests to keep this here for debugging if debug: + embed() + tmp = msscattlight.scattlight_param.copy() + tmp[:6] *= 2 + print("\n\n\n2x2 BINNING ASSUMED!!!\n\n\n") + print(tmp) spatbin = parse.parse_binning(self.detector[0]['binning'])[1] pad = msscattlight.pad // spatbin offslitmask = slits.slit_img(pad=pad, initial=True, flexure=None) == -1 from matplotlib import pyplot as plt _frame = self.image[ii, ...] vmin, vmax = 0, np.max(scatt_img) - plt.subplot(131) + plt.subplot(221) + plt.imshow(_frame, vmin=vmin, vmax=2*np.median(_frame)) + plt.subplot(222) plt.imshow(_frame*offslitmask, vmin=vmin, vmax=vmax) - plt.subplot(132) + plt.subplot(223) plt.imshow(scatt_img, vmin=vmin, vmax=vmax) - plt.subplot(133) + plt.subplot(224) plt.imshow((_frame - scatt_img)*offslitmask, vmin=-vmax / 2, vmax=vmax / 2) plt.show() elif self.par["scattlight_method"] == "archive": From 2d6bd231de8b7ea2bbd6167b77b16d22a83325c6 Mon Sep 17 00:00:00 2001 From: rcooke Date: Sun, 29 Oct 2023 16:15:29 +0000 Subject: [PATCH 39/67] update scattlight docs --- doc/calibrations/scattlight.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/calibrations/scattlight.rst b/doc/calibrations/scattlight.rst index 3fb4e3bf0b..c7c82b00ff 100644 --- a/doc/calibrations/scattlight.rst +++ b/doc/calibrations/scattlight.rst @@ -50,6 +50,8 @@ example will pad the slits by 10 detector pixels, assuming 1x1 binning): Note: if your data are binned by 2 in the spatial direction, then setting ``pad=10`` would actually pad the slit edges by 5 pixels. +# TODO :: Make sure this description is up-to-date! + The current scattered light model involves a 13 parameter fit to the inter-slit regions. The model utilises the observed 2D (trimmed+oriented+debiased) frame to estimate the scattered light. The scattered light model is essentially a blurred, shifted, flux-scaled, rotated, and zoomed version of the From d504de05594c43b1fb2c9666096097624a9bdc60 Mon Sep 17 00:00:00 2001 From: rcooke Date: Sun, 29 Oct 2023 16:15:58 +0000 Subject: [PATCH 40/67] new scattlight model --- pypeit/core/scattlight.py | 113 +++++++++++------------------- pypeit/images/rawimage.py | 5 +- pypeit/spectrographs/keck_esi.py | 21 +++--- pypeit/spectrographs/keck_kcwi.py | 17 +++-- 4 files changed, 69 insertions(+), 87 deletions(-) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index d1dd171365..f25605219b 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -10,10 +10,10 @@ from IPython import embed -from pypeit import msgs +from pypeit import msgs, utils -def scattered_light_model(param, img): +def scattered_light_model(param, img, gpm): """ Model used to calculate the scattered light. The current model to generate the scattered light is a shifted, scaled, and blurred version of the @@ -46,6 +46,9 @@ def scattered_light_model(param, img): Model used to calculate the scattered light. This function is used to generate a model of the scattered light, based on a set of model parameters that have been optimized using self.scattered_light(). + gpm : `numpy.ndarray`_ + Mask containing good pixels that should be included in the fit + shape is (nspec, nspat) Returns ------- @@ -54,9 +57,9 @@ def scattered_light_model(param, img): """ # Extract the parameters into more conveniently named variables sigmx_g, sigmy_g, sigmx_l, sigmy_l = param[0], param[1], param[2], param[3] - shft_spec, shft_spat, zoom = param[4], param[5], param[6] - kern_angle, kern_scale = param[7], param[8] - polyterms = param[9:] + shft_spec, shft_spat, zoom_spec, zoom_spat = param[4], param[5], param[6], param[7] + kern_angle, kern_scale = param[8], param[9] + polyterms = param[10:] # Make a grid of coordinates specvec, spatvec = np.arange(img.shape[0]), np.arange(img.shape[1]) @@ -71,8 +74,8 @@ def scattered_light_model(param, img): # Generate a 2D smoothing kernel, composed of a 2D Gaussian and a 2D Lorentzian sigmx, sigmy = max(sigmx_g, sigmx_l), max(sigmy_g, sigmy_l), - xkern, ykern = np.meshgrid(np.arange(int(10 * sigmx)) - 5 * sigmx, - np.arange(int(10 * sigmy)) - 5 * sigmy) + xkern, ykern = np.meshgrid(np.arange(int(6 * sigmx)) - 3 * sigmx, + np.arange(int(6 * sigmy)) - 3 * sigmy) # Rotate the kernel xkernrot = (xkern * np.cos(kern_angle) - ykern * np.sin(kern_angle)) ykernrot = (xkern * np.sin(kern_angle) + ykern * np.cos(kern_angle)) @@ -88,39 +91,18 @@ def scattered_light_model(param, img): kernel = kernel_lorentzian + kern_scale * kernel_gaussian kernel /= np.sum(kernel) + # Convolve the GPM, and use this to reduce edge effects + gpm_weights = signal.oaconvolve(gpm, kernel, mode='same') + # gpm_weights = signal.fftconvolve(gpm, kernel, mode='same') # Convolve the input image (note: most of the time is spent here) # oaconvolve is the fastest option when the kernel is much smaller dimensions than the image - scale_img = polyscale * signal.fftconvolve(img, kernel, mode='same') - # scale_img = polyscale * signal.oaconvolve(img, kernel, mode='same') + # scale_img = polyscale * signal.fftconvolve(img*gpm, kernel, mode='same') * utils.inverse(gpm_weights) + scale_img = polyscale * signal.oaconvolve(img*gpm, kernel, mode='same') * utils.inverse(gpm_weights) spl = interpolate.RectBivariateSpline(specvec, spatvec, scale_img, kx=1, ky=1) - return spl(zoom * (specvec + shft_spec), zoom * (spatvec + shft_spat)) - - -def evaluate(param, frame, detpad=300): - """ Evaluate the scattered light model, allowing for some image padding to minimise edge effects - - Parameters - ---------- - param : `numpy.ndarray`_ - Model parameters that determine the scattered light based on the input img. - See `scattered_light_model()`_ - img : `numpy.ndarray`_ - Raw image that you want to compute the scattered light model. - shape is (nspec, nspat) - - Returns - ------- - model : `numpy.ndarray`_ - Model of the scattered light for the input - """ - _frame = frame.copy() - _frame[0, :] = np.median(_frame[0:10, :], axis=0) - _frame[-1, :] = np.median(_frame[-10:, :], axis=0) - img = np.pad(_frame, detpad, mode='edge') # Model should be generated on padded data - return scattered_light_model(param, img)[detpad:-detpad, detpad:-detpad] + return spl(zoom_spec * (specvec + shft_spec), zoom_spat * (spatvec + shft_spat)) -def scattlight_resid(param, wpix, img, modimg): +def scattlight_resid(param, wpix, img, gpm): """ Residual function used to optimize the model parameters Parameters @@ -132,13 +114,15 @@ def scattlight_resid(param, wpix, img, modimg): to be used for computing the residual. img : `numpy.ndarray`_ Data image to be used to compute the residual. Shape is (nspec, nspat) + gpm : `numpy.ndarray`_ + Good pixel mask to use for the fit. Shape is (nspec, nspat) Returns ------- resid : `numpy.ndarray`_ A 1D vector of the residuals """ - model = scattered_light_model(param, modimg) + model = scattered_light_model(param, img, gpm) return img[wpix] - model[wpix] @@ -159,8 +143,6 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False A tuple of two elements, containing two `np.ndarray`_ of the same length as x0. These two arrays contain the lower (first element of the tuple) and upper (second element of the tuple) bounds to consider on the scattered light model parameters. - detpad : :obj:`int`_, optional - Number of pixels to pad to each of the detector edges to reduce edge effects. debug : :obj:`bool`_, optional If True, debug the final model fit that's been output @@ -175,48 +157,37 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False success : :obj:`bool`_ True if the fit was successful, False otherwise """ - _frame = frame.copy() + gpm = np.logical_not(bpm) + _frame = frame * gpm _frame[0, :] = np.median(_frame[0:10, :], axis=0) _frame[-1, :] = np.median(_frame[-10:, :], axis=0) - img = np.pad(_frame, detpad, mode='edge') # Model should be generated on padded data - offslitmask_pad = np.pad(offslitmask * np.logical_not(bpm), detpad, mode='constant', - constant_values=0) # but don't include padded data in the fit + _frame_pad = np.pad(_frame, detpad, mode='edge') # Model should be generated on padded data + gpm_pad = np.pad(gpm, detpad, mode='constant', constant_values=0) # but don't include padded data in the fit + offslitmask_pad = np.pad(offslitmask * gpm, detpad, mode='constant', constant_values=0) # but don't include padded data in the fit # Grab the pixels to be included in the fit wpix = np.where(offslitmask_pad) - # Iterate on the scattered light - scatt_img = 0.0 - niter = 1 - for ii in range(niter): - # Grab a copy of the input frame, and do some pre-processing on it - _frame = frame.copy()-scatt_img - - # First pad the edges to minimize edge effects - # Do a median filter near the edges - _frame[0, :] = np.median(_frame[0:10, :], axis=0) - _frame[-1, :] = np.median(_frame[-10:, :], axis=0) - modimg = np.pad(_frame, detpad, mode='edge') # Model should be generated on padded data - - # Compute the best-fitting model parameters - msgs.info(f"ITERATION {ii+1}: Computing best-fitting model parameters of the scattered light") - res_lsq = least_squares(scattlight_resid, x0, bounds=bounds, args=(wpix, img, modimg), - verbose=2, ftol=1.0E-4) - - # Store if this is a successful fit - success = res_lsq.success - if success: - msgs.info("Generating best-fitting scattered light model") - scatt_img = scattered_light_model(res_lsq.x, modimg)[detpad:-detpad, detpad:-detpad] - else: - msgs.warn("Scattered light model fitting failed") - scatt_img = np.zeros_like(_frame) - break + # Compute the best-fitting model parameters + msgs.info("Performing a least-squares fit to the scattered light") + res_lsq = least_squares(scattlight_resid, x0, bounds=bounds, args=(wpix, _frame_pad, gpm_pad), + verbose=2, ftol=1.0E-3) + + # Store if this is a successful fit + success = res_lsq.success + if success: + msgs.info("Generating best-fitting scattered light model") + scatt_img = scattered_light_model(res_lsq.x, _frame_pad, gpm_pad)[detpad:-detpad, detpad:-detpad] + else: + msgs.warn("Scattered light model fitting failed") + scatt_img = np.zeros_like(frame) + + debug = True if debug: # Do some checks on the results embed() - scatt_img_alt = scattered_light_model(x0, img)[detpad:-detpad, detpad:-detpad] + scatt_img_alt = scattered_light_model(x0, _frame_pad, gpm_pad)[detpad:-detpad, detpad:-detpad] from matplotlib import pyplot as plt - vmin, vmax = 0, 40.0#np.max(scatt_img_alt) + vmin, vmax = 0, 40.0#np.max(scatt_img)#40 plt.imshow(frame - scatt_img, vmin=-vmax/2, vmax=vmax/2) plt.show() print(res_lsq.x) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index 73c3867770..2e7829a21c 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -1144,11 +1144,12 @@ def subtract_scattlight(self, msscattlight, slits): # Loop over the images for ii in range(self.nimg): # Mask bad pixels - _frame = self.image[ii, ...] * np.logical_not(self.bpm[ii, ...]) + # _frame = self.image[ii, ...] * np.logical_not(self.bpm[ii, ...]) # Apply the requested method for the scattered light if self.par["scattlight_method"] == "model": # Use predefined model parameters - scatt_img = scattlight.evaluate(msscattlight.scattlight_param, _frame) + scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, self.image[ii, ...], + np.logical_not(self.bpm[ii, ...])) debug = True # RJC requests to keep this here for debugging if debug: embed() diff --git a/pypeit/spectrographs/keck_esi.py b/pypeit/spectrographs/keck_esi.py index 4bb0d61f75..71f0e85052 100644 --- a/pypeit/spectrographs/keck_esi.py +++ b/pypeit/spectrographs/keck_esi.py @@ -19,6 +19,7 @@ from pypeit.spectrographs import spectrograph from pypeit.images import detector_container + class KeckESISpectrograph(spectrograph.Spectrograph): """ Child to handle Keck/ESI specific code @@ -71,7 +72,7 @@ def get_detector_par(self, det, hdu=None): mincounts = -1e10, numamplifiers = 2, gain = np.atleast_1d([1.3, 1.3]), - ronoise = np.atleast_1d([2.5,2.5]), + ronoise = np.atleast_1d([2.5, 2.5]), ) return detector_container.DetectorContainer(**detector_dict) @@ -336,17 +337,21 @@ def scattered_light_archive(self, binning, dispname): # and should be close to the final fitted values to reduce computational time) # Note :: These values need to be originally based on data that uses 1x1 binning, # and are now scaled here according to the binning of the current data to be analysed. + # x0 = np.array([ 2.99899335e+02, 2.01422930e+02, 2.18511169e+02, 1.95963738e+02, + # -4.96314134e+01, 5.64219402e+01, 9.68966612e-01, -1.79304303e+00, + # 5.24082933e-01, 3.73084496e-01, -2.93388226e-01, -3.00799508e-01, + # 2.86810088e-01]) x0 = np.array([2.66062476e+02/specbin, 1.57687605e+02/spatbin, # Gaussian kernel widths 2.65852665e+02/specbin, 1.77129333e+02/spatbin, # Lorentzian kernel widths - -1.38348682e+02/specbin, 7.70314399e+01/spatbin, # pixel offsets - 1.01701653e+00, # Zoom factor - 9.46809475e-01, # kernel angle - 5.24572902e-02, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + -50/specbin, 50.0/spatbin, # pixel offsets (spec, spat) + 1.0, 1.0, # Zoom factor (spec, spat) + 0.0, # kernel angle + 0.05, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) 2.98836062e-01, -2.48646829e-01, -1.31752297e-01, 2.25868369e-01]) # Polynomial terms # Now set the bounds of the fitted parameters - bounds = ([1, 1, 1, 1, -200/specbin, -200/spatbin, 0, -2*np.pi, 0.0, -10, -10, -10, -10], - [600/specbin, 600/spatbin, 600/specbin, 600/spatbin, 200/specbin, 200/spatbin, 2, 2*np.pi, 1000.0, 10, 10, 10, 10]) + bounds = ([1, 1, 1, 1, -200/specbin, -200/spatbin, 0, 0, -2*np.pi, 0.0, -10, -10, -10, -10], + [600/specbin, 600/spatbin, 600/specbin, 600/spatbin, 200/specbin, 200/spatbin, 2, 2, 2*np.pi, 1000.0, 10, 10, 10, 10]) # Return the best-fitting archival parameters and the bounds return x0, bounds @@ -354,7 +359,7 @@ def scattered_light_archive(self, binning, dispname): @property def norders(self): """ - Number of orders for this spectograph. Should only defined for + Number of orders for this spectrograph. Should only defined for echelle spectrographs, and it is undefined for the base class. """ return 10 # 15-6 diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index e2440d7fed..97d7a67270 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -1067,7 +1067,7 @@ def scattered_light_archive(self, binning, dispname): x0 = np.array([ 2.67186394e+02/specbin, 1.60743078e+02/spatbin, # Gaussian kernel widths 2.98999820e+02/specbin, 1.45068103e+02/spatbin, # Lorentzian kernel widths -1.37376475e+02/specbin, 6.07508615e+01/spatbin, # pixel offsets - 9.86766634e-01, # Zoom factor + 9.86766634e-01, 9.86766634e-01, # Zoom factor 1.41130604e+00, # kernel angle 4.19246820e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) 7.93912603e-02, -5.81933968e-02, -5.76201948e-03, -7.83543150e-04]) # Polynomial terms @@ -1088,12 +1088,17 @@ def scattered_light_archive(self, binning, dispname): 7.93912603e-02, -5.81933968e-02, -5.76201948e-03, -7.83543150e-04]) # Polynomial terms elif dispname == 'BL': # This solution had Cost: 1.0184e+07 and was based on a 2x2 dataset using pixelflat as the scattlight frame, and assuming pad=10 - x0 = np.array([1.45201474e+01/specbin, 1.34653515e+02/spatbin, # Gaussian kernel widths + #1.1357e+07 + # array([1.46747486e+01, 1.33657850e+02, 1.65940119e+02, 1.63479652e+02, + # 1.06998939e+02, -2.10911731e+01, 9.72422938e-01, 1.02567767e+00, + # 1.57990253e+00, 5.66603960e-03, 5.08362982e-02, 1.83209211e-03, + # -3.83980954e-03, -2.89908954e-02]) + x0 = np.array([1.05201474e+02/specbin, 1.34653515e+02/spatbin, # Gaussian kernel widths 1.32198875e+02/specbin, 1.60178190e+02/spatbin, # Lorentzian kernel widths 6.75891120e+01/specbin, 2.38622901e+01/spatbin, # pixel offsets - 9.94430899e-01, # Zoom factor + 9.94430899e-01, 9.94430899e-01, # Zoom factor 2.02560248e-01, # kernel angle - 1.90164026e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + 0.090164026e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) 7.00761436e-02, -3.67325245e-02, -2.55285293e-03, 2.41518440e-03]) # Polynomial terms else: msgs.warn(f"Initial scattered light model parameters have not been setup for grating {dispname}") @@ -1106,8 +1111,8 @@ def scattered_light_archive(self, binning, dispname): 0.1, 0.0, 0.0, 0.0]) # Polynomial terms # Now set the bounds of the fitted parameters - bounds = ([1, 1, 1, 1, -200 / specbin, -200 / spatbin, 0, -2 * np.pi, 0.0, -10, -10, -10, -10], - [600 / specbin, 600 / spatbin, 600 / specbin, 600 / spatbin, 200 / specbin, 200 / spatbin, 2, + bounds = ([1, 1, 1, 1, -200 / specbin, -200 / spatbin, 0, 0, -2 * np.pi, 0.0, -10, -10, -10, -10], + [600 / specbin, 600 / spatbin, 600 / specbin, 600 / spatbin, 200 / specbin, 200 / spatbin, 2, 2, 2 * np.pi, 1000.0, 10, 10, 10, 10]) # Return the best-fitting archival parameters and the bounds From 82d36afaf7ae2db778a077b5f08c6d927222da98 Mon Sep 17 00:00:00 2001 From: rcooke Date: Sun, 29 Oct 2023 20:37:02 +0000 Subject: [PATCH 41/67] ESI scattlight updates --- pypeit/core/scattlight.py | 44 +++++++++++++------------------- pypeit/images/rawimage.py | 5 ++-- pypeit/spectrographs/keck_esi.py | 19 ++++++-------- 3 files changed, 28 insertions(+), 40 deletions(-) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index f25605219b..780078532f 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -6,14 +6,13 @@ import numpy as np from scipy.optimize import least_squares -from scipy import signal, interpolate - +from scipy import signal, interpolate, ndimage from IPython import embed from pypeit import msgs, utils -def scattered_light_model(param, img, gpm): +def scattered_light_model(param, img): """ Model used to calculate the scattered light. The current model to generate the scattered light is a shifted, scaled, and blurred version of the @@ -46,9 +45,6 @@ def scattered_light_model(param, img, gpm): Model used to calculate the scattered light. This function is used to generate a model of the scattered light, based on a set of model parameters that have been optimized using self.scattered_light(). - gpm : `numpy.ndarray`_ - Mask containing good pixels that should be included in the fit - shape is (nspec, nspat) Returns ------- @@ -74,8 +70,8 @@ def scattered_light_model(param, img, gpm): # Generate a 2D smoothing kernel, composed of a 2D Gaussian and a 2D Lorentzian sigmx, sigmy = max(sigmx_g, sigmx_l), max(sigmy_g, sigmy_l), - xkern, ykern = np.meshgrid(np.arange(int(6 * sigmx)) - 3 * sigmx, - np.arange(int(6 * sigmy)) - 3 * sigmy) + xkern, ykern = np.meshgrid(np.arange(int(10 * sigmx)) - 5 * sigmx, + np.arange(int(10 * sigmy)) - 5 * sigmy) # Rotate the kernel xkernrot = (xkern * np.cos(kern_angle) - ykern * np.sin(kern_angle)) ykernrot = (xkern * np.sin(kern_angle) + ykern * np.cos(kern_angle)) @@ -91,18 +87,12 @@ def scattered_light_model(param, img, gpm): kernel = kernel_lorentzian + kern_scale * kernel_gaussian kernel /= np.sum(kernel) - # Convolve the GPM, and use this to reduce edge effects - gpm_weights = signal.oaconvolve(gpm, kernel, mode='same') - # gpm_weights = signal.fftconvolve(gpm, kernel, mode='same') - # Convolve the input image (note: most of the time is spent here) - # oaconvolve is the fastest option when the kernel is much smaller dimensions than the image - # scale_img = polyscale * signal.fftconvolve(img*gpm, kernel, mode='same') * utils.inverse(gpm_weights) - scale_img = polyscale * signal.oaconvolve(img*gpm, kernel, mode='same') * utils.inverse(gpm_weights) + scale_img = polyscale * signal.oaconvolve(img, kernel, mode='same') spl = interpolate.RectBivariateSpline(specvec, spatvec, scale_img, kx=1, ky=1) return spl(zoom_spec * (specvec + shft_spec), zoom_spat * (spatvec + shft_spat)) -def scattlight_resid(param, wpix, img, gpm): +def scattlight_resid(param, wpix, img): """ Residual function used to optimize the model parameters Parameters @@ -114,15 +104,13 @@ def scattlight_resid(param, wpix, img, gpm): to be used for computing the residual. img : `numpy.ndarray`_ Data image to be used to compute the residual. Shape is (nspec, nspat) - gpm : `numpy.ndarray`_ - Good pixel mask to use for the fit. Shape is (nspec, nspat) Returns ------- resid : `numpy.ndarray`_ A 1D vector of the residuals """ - model = scattered_light_model(param, img, gpm) + model = scattered_light_model(param, img) return img[wpix] - model[wpix] @@ -157,35 +145,39 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False success : :obj:`bool`_ True if the fit was successful, False otherwise """ + # Convert the BPM to a GPM for convenience gpm = np.logical_not(bpm) - _frame = frame * gpm + + # Replace bad pixels with the nearest (good) neighbour + ind = ndimage.distance_transform_edt(bpm, return_distances=False, return_indices=True) + _frame = frame[tuple(ind)] + + # Pad the edges of the data _frame[0, :] = np.median(_frame[0:10, :], axis=0) _frame[-1, :] = np.median(_frame[-10:, :], axis=0) _frame_pad = np.pad(_frame, detpad, mode='edge') # Model should be generated on padded data - gpm_pad = np.pad(gpm, detpad, mode='constant', constant_values=0) # but don't include padded data in the fit offslitmask_pad = np.pad(offslitmask * gpm, detpad, mode='constant', constant_values=0) # but don't include padded data in the fit # Grab the pixels to be included in the fit wpix = np.where(offslitmask_pad) # Compute the best-fitting model parameters msgs.info("Performing a least-squares fit to the scattered light") - res_lsq = least_squares(scattlight_resid, x0, bounds=bounds, args=(wpix, _frame_pad, gpm_pad), - verbose=2, ftol=1.0E-3) + res_lsq = least_squares(scattlight_resid, x0, bounds=bounds, args=(wpix, _frame_pad), + verbose=2, ftol=1.0E-4) # Store if this is a successful fit success = res_lsq.success if success: msgs.info("Generating best-fitting scattered light model") - scatt_img = scattered_light_model(res_lsq.x, _frame_pad, gpm_pad)[detpad:-detpad, detpad:-detpad] + scatt_img = scattered_light_model(res_lsq.x, _frame_pad)[detpad:-detpad, detpad:-detpad] else: msgs.warn("Scattered light model fitting failed") scatt_img = np.zeros_like(frame) - debug = True if debug: # Do some checks on the results embed() - scatt_img_alt = scattered_light_model(x0, _frame_pad, gpm_pad)[detpad:-detpad, detpad:-detpad] + scatt_img_alt = scattered_light_model(x0, _frame_pad)[detpad:-detpad, detpad:-detpad] from matplotlib import pyplot as plt vmin, vmax = 0, 40.0#np.max(scatt_img)#40 plt.imshow(frame - scatt_img, vmin=-vmax/2, vmax=vmax/2) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index 2e7829a21c..b167d31214 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -1148,9 +1148,8 @@ def subtract_scattlight(self, msscattlight, slits): # Apply the requested method for the scattered light if self.par["scattlight_method"] == "model": # Use predefined model parameters - scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, self.image[ii, ...], - np.logical_not(self.bpm[ii, ...])) - debug = True # RJC requests to keep this here for debugging + scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, self.image[ii, ...]) + debug = False # RJC requests to keep this here for debugging if debug: embed() tmp = msscattlight.scattlight_param.copy() diff --git a/pypeit/spectrographs/keck_esi.py b/pypeit/spectrographs/keck_esi.py index 71f0e85052..1b4e8e8f2b 100644 --- a/pypeit/spectrographs/keck_esi.py +++ b/pypeit/spectrographs/keck_esi.py @@ -337,17 +337,14 @@ def scattered_light_archive(self, binning, dispname): # and should be close to the final fitted values to reduce computational time) # Note :: These values need to be originally based on data that uses 1x1 binning, # and are now scaled here according to the binning of the current data to be analysed. - # x0 = np.array([ 2.99899335e+02, 2.01422930e+02, 2.18511169e+02, 1.95963738e+02, - # -4.96314134e+01, 5.64219402e+01, 9.68966612e-01, -1.79304303e+00, - # 5.24082933e-01, 3.73084496e-01, -2.93388226e-01, -3.00799508e-01, - # 2.86810088e-01]) - x0 = np.array([2.66062476e+02/specbin, 1.57687605e+02/spatbin, # Gaussian kernel widths - 2.65852665e+02/specbin, 1.77129333e+02/spatbin, # Lorentzian kernel widths - -50/specbin, 50.0/spatbin, # pixel offsets (spec, spat) - 1.0, 1.0, # Zoom factor (spec, spat) - 0.0, # kernel angle - 0.05, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) - 2.98836062e-01, -2.48646829e-01, -1.31752297e-01, 2.25868369e-01]) # Polynomial terms + # These parameters give a cost of 8.0833e+08 with the science frame used as scattlight (1x1 binning, pad=5) + x0 = np.array([2.63726939e+02/specbin, 1.57625683e+02/spatbin, # Gaussian kernel widths + 2.63911253e+02/specbin, 1.74452723e+02/spatbin, # Lorentzian kernel widths + -1.38026314e+02/specbin, 7.72883842e+01/spatbin, # pixel offsets + 9.59395069e-01, 1.04452747e+00, # Zoom factor (spec, spat) + 6.00977118e-01, # kernel angle + 7.70958895e-02, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + 3.41914530e-01, -3.15033809e-01, -1.15238092e-01, 1.80022435e-01]) # Polynomial terms # Now set the bounds of the fitted parameters bounds = ([1, 1, 1, 1, -200/specbin, -200/spatbin, 0, 0, -2*np.pi, 0.0, -10, -10, -10, -10], From 1d6ea850ecaceb99155ea59211781b5064e6b3bd Mon Sep 17 00:00:00 2001 From: rcooke Date: Tue, 31 Oct 2023 15:29:02 +0000 Subject: [PATCH 42/67] scattlight zoom updates --- pypeit/core/scattlight.py | 38 +++++++++--------- pypeit/images/rawimage.py | 1 + pypeit/spectrographs/keck_esi.py | 3 +- pypeit/spectrographs/keck_kcwi.py | 65 ++++++++++++++----------------- 4 files changed, 51 insertions(+), 56 deletions(-) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index 780078532f..9a36d16260 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -55,18 +55,17 @@ def scattered_light_model(param, img): sigmx_g, sigmy_g, sigmx_l, sigmy_l = param[0], param[1], param[2], param[3] shft_spec, shft_spat, zoom_spec, zoom_spat = param[4], param[5], param[6], param[7] kern_angle, kern_scale = param[8], param[9] - polyterms = param[10:] + polyterms_spat = param[10:12] + polyterms_spec = param[12:] # Make a grid of coordinates specvec, spatvec = np.arange(img.shape[0]), np.arange(img.shape[1]) spat, spec = np.meshgrid(spatvec/(spatvec.size-1), specvec/(specvec.size - 1)) - # Generate the polynomial efficiency scaling in the spectral direction - polyscale = polyterms[0] + polyterms[1]*spec + polyterms[2]*spat + polyterms[3]*spec*spat - # polyscale = np.zeros_like(img) - # for pp in range(polyterms_spec.size): - # polyscale += polyterms_spec[pp] * spec ** pp - # for pp in range(polyterms_spat.size): - # polyscale += polyterms_spat[pp] * spat ** pp + # Generate the polynomial efficiency scaling in the spatial direction + polyscale = spat*(polyterms_spat[0] + polyterms_spat[1]*spec) # linear term and a spectral cross-term + # Now include the spectral direction + for pp in range(polyterms_spec.size): + polyscale += polyterms_spec[pp] * spec**pp # Generate a 2D smoothing kernel, composed of a 2D Gaussian and a 2D Lorentzian sigmx, sigmy = max(sigmx_g, sigmx_l), max(sigmy_g, sigmy_l), @@ -149,6 +148,7 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False gpm = np.logical_not(bpm) # Replace bad pixels with the nearest (good) neighbour + msgs.info("Replacing bad pixels in the scattered light input") ind = ndimage.distance_transform_edt(bpm, return_distances=False, return_indices=True) _frame = frame[tuple(ind)] @@ -174,27 +174,27 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False msgs.warn("Scattered light model fitting failed") scatt_img = np.zeros_like(frame) - if debug: + if debug or True: # Do some checks on the results embed() scatt_img_alt = scattered_light_model(x0, _frame_pad)[detpad:-detpad, detpad:-detpad] from matplotlib import pyplot as plt - vmin, vmax = 0, 40.0#np.max(scatt_img)#40 + vmin, vmax = 0, np.max(scatt_img)#40 plt.imshow(frame - scatt_img, vmin=-vmax/2, vmax=vmax/2) plt.show() print(res_lsq.x) - plt.subplot(231) + plt.subplot(221) plt.imshow(_frame, vmin=vmin, vmax=vmax) - plt.subplot(232) + plt.subplot(222) plt.imshow(scatt_img, vmin=vmin, vmax=vmax) - plt.subplot(233) + plt.subplot(223) plt.imshow(frame - scatt_img, vmin=-vmax/2, vmax=vmax/2) - plt.subplot(234) - plt.imshow(_frame, vmin=vmin, vmax=vmax) - plt.subplot(235) - plt.imshow(scatt_img_alt, vmin=vmin, vmax=vmax) - plt.subplot(236) - plt.imshow(_frame - scatt_img_alt, vmin=vmin, vmax=vmax) + plt.subplot(224) + plt.imshow(_frame, vmin=-vmax/2, vmax=vmax/2) + # plt.subplot(235) + # plt.imshow(scatt_img_alt, vmin=vmin, vmax=vmax) + # plt.subplot(236) + # plt.imshow(_frame - scatt_img_alt, vmin=vmin, vmax=vmax) plt.show() return scatt_img, res_lsq.x, success diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index b167d31214..14cd06dc8f 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -1141,6 +1141,7 @@ def subtract_scattlight(self, msscattlight, slits): binning = self.detector[0]['binning'] dispname = self.spectrograph.get_meta_value(self.spectrograph.get_headarr(self.filename), 'dispname') + # TODO :: We really need to pass in the CR mask here... # Loop over the images for ii in range(self.nimg): # Mask bad pixels diff --git a/pypeit/spectrographs/keck_esi.py b/pypeit/spectrographs/keck_esi.py index 1b4e8e8f2b..0089a3780f 100644 --- a/pypeit/spectrographs/keck_esi.py +++ b/pypeit/spectrographs/keck_esi.py @@ -344,7 +344,8 @@ def scattered_light_archive(self, binning, dispname): 9.59395069e-01, 1.04452747e+00, # Zoom factor (spec, spat) 6.00977118e-01, # kernel angle 7.70958895e-02, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) - 3.41914530e-01, -3.15033809e-01, -1.15238092e-01, 1.80022435e-01]) # Polynomial terms + -1.15238092e-01, 1.80022435e-01, # Polynomial terms (coefficients of "spat" and "spat*spec") + 3.41914530e-01, -3.15033809e-01]) # Polynomial terms (coefficients of spec**index) # Now set the bounds of the fitted parameters bounds = ([1, 1, 1, 1, -200/specbin, -200/spatbin, 0, 0, -2*np.pi, 0.0, -10, -10, -10, -10], diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index 97d7a67270..51cada0b59 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -1064,42 +1064,35 @@ def scattered_light_archive(self, binning, dispname): # Note :: These values need to be originally based on data that uses 1x1 binning, # and are now scaled here according to the binning of the current data to be analysed. if dispname == 'BH2': - x0 = np.array([ 2.67186394e+02/specbin, 1.60743078e+02/spatbin, # Gaussian kernel widths - 2.98999820e+02/specbin, 1.45068103e+02/spatbin, # Lorentzian kernel widths - -1.37376475e+02/specbin, 6.07508615e+01/spatbin, # pixel offsets - 9.86766634e-01, 9.86766634e-01, # Zoom factor - 1.41130604e+00, # kernel angle - 4.19246820e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) - 7.93912603e-02, -5.81933968e-02, -5.76201948e-03, -7.83543150e-04]) # Polynomial terms + # This solution had Cost: 1.0626e+08 and was based on a 1x1 dataset using pixelflat as the scattlight frame, and assuming pad=6 + x0 = np.array([6.33925782e+01/specbin, 1.21677075e+02/spatbin, # Gaussian kernel widths + 1.62497815e+02/specbin, 1.08146499e+02/spatbin, # Lorentzian kernel widths + 1.25213594e+02/specbin, 1.01076028e+01/spatbin, # pixel offsets + 8.98169722e-01, 9.95797850e-01, # Zoom factor (spec, spat) + 1.11512749e-01, # kernel angle + 3.51216118e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + 5.00375324e-03, -7.01001263e-03, # Polynomial terms (coefficients of "spat" and "spat*spec") + 1.07201611e-01, -2.47435669e-04, -1.94130583e-02]) # Polynomial terms (coefficients of spec**index) elif dispname == 'BM': - # This solution had Cost: 8.8951e+07 and was based on a 1x1 dataset using pixelflat as the scattlight frame, and assuming pad=10 - - # x0 = np.array([1.72694908e+02, 1.43224435e+01, - # 1.55856081e+02, 1.18366623e+02, - # -6.32142819e+01, 1.52454051e+01, 9.96530165e-01, 1.30756297e+00, - # 7.81666600e-02, 8.25778311e-02, -2.91919118e-02, -3.24661854e-03, - # 4.32022859e-03]) - x0 = np.array([ 60/specbin, 60/spatbin, # Gaussian kernel widths - 60/specbin, 60/spatbin, # Lorentzian kernel widths - 0/specbin, 0/spatbin, # pixel offsets - 9.86766634e-01, # Zoom factor - 1.41130604e+00, # kernel angle - 4.19246820e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) - 7.93912603e-02, -5.81933968e-02, -5.76201948e-03, -7.83543150e-04]) # Polynomial terms + # This solution had Cost: 5.5975e+07 and was based on a 1x1 dataset using pixelflat as the scattlight frame, and assuming pad=6 + x0 = np.array([5.90102917e+01/specbin, 3.18121981e+01/spatbin, # Gaussian kernel widths + 1.67699475e+02/specbin, 1.76824113e+02/spatbin, # Lorentzian kernel widths + 8.57232912e+01/specbin, 1.61878670e+01/spatbin, # pixel offsets + 9.60669284e-01, 9.95367555e-01, # Zoom factor (spec, spat) + -8.54192838e-02, # kernel angle + 2.78138895e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + -2.09025586e-03, 2.95085274e-03, # Polynomial terms (coefficients of "spat" and "spat*spec") + 9.16987649e-02, -7.87655037e-02, 5.16153047e-02]) # Polynomial terms (coefficients of spec**index) elif dispname == 'BL': - # This solution had Cost: 1.0184e+07 and was based on a 2x2 dataset using pixelflat as the scattlight frame, and assuming pad=10 - #1.1357e+07 - # array([1.46747486e+01, 1.33657850e+02, 1.65940119e+02, 1.63479652e+02, - # 1.06998939e+02, -2.10911731e+01, 9.72422938e-01, 1.02567767e+00, - # 1.57990253e+00, 5.66603960e-03, 5.08362982e-02, 1.83209211e-03, - # -3.83980954e-03, -2.89908954e-02]) - x0 = np.array([1.05201474e+02/specbin, 1.34653515e+02/spatbin, # Gaussian kernel widths - 1.32198875e+02/specbin, 1.60178190e+02/spatbin, # Lorentzian kernel widths - 6.75891120e+01/specbin, 2.38622901e+01/spatbin, # pixel offsets - 9.94430899e-01, 9.94430899e-01, # Zoom factor - 2.02560248e-01, # kernel angle - 0.090164026e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) - 7.00761436e-02, -3.67325245e-02, -2.55285293e-03, 2.41518440e-03]) # Polynomial terms + # This solution had Cost: 7.2398e+06 and was based on a 2x2 dataset using pixelflat as the scattlight frame, and assuming pad=10 + x0 = np.array([4.72573727e+01/specbin, 1.88577219e+01/spatbin, # Gaussian kernel widths + 1.50198652e+02/specbin, 1.61086575e+02/spatbin, # Lorentzian kernel widths + 8.33889721e+01/specbin, 5.57126288e+00/spatbin, # pixel offsets + 9.76804617e-01, 9.99902593e-01, # Zoom factor (spec, spat) + 0.0, # kernel angle + 3.31643788e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + -4.60504065e-03, 3.78190619e-03, # Polynomial terms (coefficients of "spat" and "spat*spec") + 7.44547223e-02, -4.45899682e-02, 1.97057130e-03]) # Polynomial terms (coefficients of spec**index) else: msgs.warn(f"Initial scattered light model parameters have not been setup for grating {dispname}") x0 = np.array([200/specbin, 100/spatbin, # Gaussian kernel widths @@ -1111,9 +1104,9 @@ def scattered_light_archive(self, binning, dispname): 0.1, 0.0, 0.0, 0.0]) # Polynomial terms # Now set the bounds of the fitted parameters - bounds = ([1, 1, 1, 1, -200 / specbin, -200 / spatbin, 0, 0, -2 * np.pi, 0.0, -10, -10, -10, -10], + bounds = ([1, 1, 1, 1, -200 / specbin, -200 / spatbin, 0, 0, -(10 / 180) * np.pi, 0.0, -10, -10, -10, -10, -10], [600 / specbin, 600 / spatbin, 600 / specbin, 600 / spatbin, 200 / specbin, 200 / spatbin, 2, 2, - 2 * np.pi, 1000.0, 10, 10, 10, 10]) + (10 / 180) * np.pi, 1000.0, 10, 10, 10, 10, 10]) # Return the best-fitting archival parameters and the bounds return x0, bounds From c5590c9a07a67ff79b269c451012b7105e4568d1 Mon Sep 17 00:00:00 2001 From: rcooke Date: Tue, 31 Oct 2023 15:41:32 +0000 Subject: [PATCH 43/67] gpm scattlight --- pypeit/core/scattlight.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index 9a36d16260..4d0f079de2 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -174,7 +174,7 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False msgs.warn("Scattered light model fitting failed") scatt_img = np.zeros_like(frame) - if debug or True: + if debug: # Do some checks on the results embed() scatt_img_alt = scattered_light_model(x0, _frame_pad)[detpad:-detpad, detpad:-detpad] From 21f864690477c1ea1156c5aa137654be23b4e472 Mon Sep 17 00:00:00 2001 From: rcooke Date: Thu, 2 Nov 2023 09:07:07 +0000 Subject: [PATCH 44/67] use bias --- pypeit/spectrographs/keck_kcwi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index 51cada0b59..f2700db391 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -289,7 +289,7 @@ def default_pypeit_par(cls): par['scienceframe']['process']['use_illumflat'] = True # illumflat is applied when building the relative scale image in reduce.py, so should be applied to scienceframe too. par['scienceframe']['process']['use_specillum'] = True # apply relative spectral illumination par['scienceframe']['process']['spat_flexure_correct'] = False # don't correct for spatial flexure - varying spatial illumination profile could throw this correction off. Also, there's no way to do astrometric correction if we can't correct for spatial flexure of the contbars frames - par['scienceframe']['process']['use_biasimage'] = False + par['scienceframe']['process']['use_biasimage'] = True # Need to use bias frames for KCWI, because the bias level varies monotonically with spatial and spectral direction par['scienceframe']['process']['use_darkimage'] = False # Don't do 1D extraction for 3D data - it's meaningless because the DAR correction must be performed on the 3D data. From 0d6c09bff8bab4e0a4631e36d68d95dcb41a4445 Mon Sep 17 00:00:00 2001 From: rcooke Date: Thu, 2 Nov 2023 09:07:37 +0000 Subject: [PATCH 45/67] tmp edits --- pypeit/images/rawimage.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index 14cd06dc8f..387d146a94 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -1150,9 +1150,16 @@ def subtract_scattlight(self, msscattlight, slits): if self.par["scattlight_method"] == "model": # Use predefined model parameters scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, self.image[ii, ...]) - debug = False # RJC requests to keep this here for debugging + debug = True # RJC requests to keep this here for debugging if debug: embed() + # import astropy.io.fits as fits + # hdu = fits.PrimaryHDU([self.image[ii, ...]-scatt_img]) + # hdu.writeto(self.filename.replace(".fits.gz", "_proc_slsub.fits.gz")) + # assert False + # for ii in range(11): + # print("saving", ii) + # np.save("scattlight_test/slitmask_pad{0:02d}.npy".format(ii), slits.slit_img(pad=ii, initial=True, flexure=None) == -1) tmp = msscattlight.scattlight_param.copy() tmp[:6] *= 2 print("\n\n\n2x2 BINNING ASSUMED!!!\n\n\n") @@ -1166,9 +1173,9 @@ def subtract_scattlight(self, msscattlight, slits): plt.subplot(221) plt.imshow(_frame, vmin=vmin, vmax=2*np.median(_frame)) plt.subplot(222) - plt.imshow(_frame*offslitmask, vmin=vmin, vmax=vmax) + plt.imshow(_frame*offslitmask, vmin=vmin, vmax=3*vmax) plt.subplot(223) - plt.imshow(scatt_img, vmin=vmin, vmax=vmax) + plt.imshow(scatt_img, vmin=vmin, vmax=3*vmax) plt.subplot(224) plt.imshow((_frame - scatt_img)*offslitmask, vmin=-vmax / 2, vmax=vmax / 2) plt.show() From 23bad6b32e6ff1eacbc7f6a2fede2d60440348de Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 3 Nov 2023 09:50:23 +0000 Subject: [PATCH 46/67] change par --- pypeit/calibrations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index b1e055e04c..8fe1272583 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -592,7 +592,7 @@ def get_scattlight(self): setup=setup, calib_id=calib_id) spatbin = parse.parse_binning(binning)[1] - pad = self.par['scattlight']['pad'] // spatbin + pad = self.par['scattlight_pad'] // spatbin offslitmask = self.slits.slit_img(pad=pad, initial=True, flexure=None) == -1 # Get starting parameters for the scattered light model @@ -613,7 +613,7 @@ def get_scattlight(self): detname=scattlightImage.detector.name, nspec=scattlightImage.shape[0], nspat=scattlightImage.shape[1], binning=scattlightImage.detector.binning, - pad=self.par['scattlight']['pad'], + pad=self.par['scattlight_pad'], scattlight_raw=scattlightImage.image, scattlight_model=model, scattlight_param=modelpar) From af78f33189ed014ce5b1219319d623c4339f2133 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 3 Nov 2023 19:55:37 +0000 Subject: [PATCH 47/67] update scattlight params --- pypeit/par/pypeitpar.py | 79 ++++++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 32 deletions(-) diff --git a/pypeit/par/pypeitpar.py b/pypeit/par/pypeitpar.py index be8748a8c5..a219d05fe4 100644 --- a/pypeit/par/pypeitpar.py +++ b/pypeit/par/pypeitpar.py @@ -219,7 +219,7 @@ def __init__(self, trim=None, apply_gain=None, orient=None, dark_expscale=None, empirical_rn=None, shot_noise=None, noise_floor=None, use_pixelflat=None, use_illumflat=None, use_specillum=None, - use_pattern=None, subtract_scattlight=None, scattlight_method=None, subtract_continuum=None, + use_pattern=None, subtract_scattlight=None, scattlight=None, subtract_continuum=None, spat_flexure_correct=None): # Grab the parameter names and values from the function @@ -305,19 +305,9 @@ def __init__(self, trim=None, apply_gain=None, orient=None, 'be set to True for spectrographs that have dedicated methods to subtract ' \ 'scattered light. For all other cases, this parameter should be False.' - defaults['scattlight_method'] = 'model' - options['scattlight_method'] = ProcessImagesPar.valid_scattlight_methods() - dtypes['scattlight_method'] = str - descr['scattlight_method'] = 'Method used to fit the overscan. ' \ - 'Options are: {0}'.format(', '.join(options['scattlight_method'])) + '.' + \ - '\'model\' will the scattered light model parameters derived from a ' \ - 'user-specified frame during their reduction (note, you will need to make sure ' \ - 'that you set appropriate scattlight frames in your .pypeit file for this option). ' \ - '\'frame\' will use each individual frame to determine the scattered light ' \ - 'that affects this frame. ' \ - '\'archive\' will use an archival model parameter solution for the scattered ' \ - 'light (note that this option is not currently available for all spectrographs).' - + defaults['scattlight'] = ScatteredLightPar() + dtypes['scattlight'] = [ParSet, dict] + descr['scattlight'] = 'Scattered light subtraction parameters.' defaults['empirical_rn'] = False dtypes['empirical_rn'] = bool @@ -451,7 +441,7 @@ def __init__(self, trim=None, apply_gain=None, orient=None, def from_dict(cls, cfg): k = np.array([*cfg.keys()]) parkeys = ['trim', 'apply_gain', 'orient', 'use_biasimage', 'subtract_continuum', 'subtract_scattlight', - 'scattlight_method', 'use_pattern', 'use_overscan', 'overscan_method', 'overscan_par', + 'scattlight', 'use_pattern', 'use_overscan', 'overscan_method', 'overscan_par', 'use_darkimage', 'dark_expscale', 'spat_flexure_correct', 'use_illumflat', 'use_specillum', 'empirical_rn', 'shot_noise', 'noise_floor', 'use_pixelflat', 'combine', 'satpix', #'calib_setup_and_bit', @@ -475,13 +465,6 @@ def valid_overscan_methods(): """ return ['polynomial', 'savgol', 'median', 'odd_even'] - @staticmethod - def valid_scattlight_methods(): - """ - Return the valid scattered light methods. - """ - return ['model', 'frame', 'archive'] - @staticmethod def valid_combine_methods(): """ @@ -1022,7 +1005,7 @@ class ScatteredLightPar(ParSet): see :ref:`parameters`. """ - def __init__(self, pad=None): + def __init__(self, method=None, finecorr_pad=None, finecorr_order=None): # Grab the parameter names and values from the function # arguments @@ -1039,9 +1022,33 @@ def __init__(self, pad=None): # Fill out parameter specifications. Only the values that are # *not* None (i.e., the ones that are defined) need to be set - defaults['pad'] = 5 - dtypes['pad'] = int - descr['pad'] = 'Number of unbinned pixels to extend the slit edges by when masking the slits.' + defaults['method'] = 'model' + options['method'] = ScatteredLightPar.valid_scattlight_methods() + dtypes['method'] = str + descr['method'] = 'Method used to fit the overscan. ' \ + 'Options are: {0}'.format(', '.join(options['method'])) + '.' + \ + '\'model\' will the scattered light model parameters derived from a ' \ + 'user-specified frame during their reduction (note, you will need to make sure ' \ + 'that you set appropriate scattlight frames in your .pypeit file for this option). ' \ + '\'frame\' will use each individual frame to determine the scattered light ' \ + 'that affects this frame. ' \ + '\'archive\' will use an archival model parameter solution for the scattered ' \ + 'light (note that this option is not currently available for all spectrographs).' + + defaults['finecorr'] = True + dtypes['finecorr'] = bool + descr['finecorr'] = 'If True, a fine correction to the scattered light will be performed. However, the ' \ + 'fine correction will only be applied if the model/frame/archive correction is performed.' + + defaults['finecorr_pad'] = 5 + dtypes['finecorr_pad'] = int + descr['finecorr_pad'] = 'Number of unbinned pixels to extend the slit edges by when masking the slits for the' \ + 'fine correction to the scattered light.' + + defaults['finecorr_order'] = 2 + dtypes['finecorr_order'] = int + descr['finecorr_order'] = 'Polynomial order to use for the fine correction to the scattered light ' \ + 'subtraction. It should be a low value.' # Instantiate the parameter set super(ScatteredLightPar, self).__init__(list(pars.keys()), @@ -1055,7 +1062,7 @@ def __init__(self, pad=None): @classmethod def from_dict(cls, cfg): k = np.array([*cfg.keys()]) - parkeys = ['pad'] + parkeys = ['method', 'finecorr_pad', 'finecorr_order'] badkeys = np.array([pk not in parkeys for pk in k]) if np.any(badkeys): @@ -1072,6 +1079,13 @@ def validate(self): """ pass + @staticmethod + def valid_scattlight_methods(): + """ + Return the valid scattered light methods. + """ + return ['model', 'frame', 'archive'] + class Coadd1DPar(ParSet): """ @@ -4151,7 +4165,8 @@ def __init__(self, calib_dir=None, bpm_usebias=None, biasframe=None, darkframe=N arcframe=None, tiltframe=None, pixelflatframe=None, pinholeframe=None, alignframe=None, alignment=None, traceframe=None, illumflatframe=None, lampoffflatsframe=None, scattlightframe=None, skyframe=None, standardframe=None, - scattlight=None, flatfield=None, wavelengths=None, slitedges=None, tilts=None, raise_chk_error=None): + scattlight_pad=None, flatfield=None, wavelengths=None, slitedges=None, tilts=None, + raise_chk_error=None): # Grab the parameter names and values from the function @@ -4289,9 +4304,9 @@ def __init__(self, calib_dir=None, bpm_usebias=None, biasframe=None, darkframe=N dtypes['alignment'] = [ ParSet, dict ] descr['alignment'] = 'Define the procedure for the alignment of traces' - defaults['scattlight'] = ScatteredLightPar() - dtypes['scattlight'] = [ ParSet, dict ] - descr['scattlight'] = 'Define the procedure for modelling the scattered light' + defaults['scattlight_pad'] = 5 + dtypes['scattlight_pad'] = int + descr['scattlight_pad'] = 'Number of unbinned pixels to extend the slit edges by when masking the slits.' defaults['flatfield'] = FlatFieldPar() dtypes['flatfield'] = [ ParSet, dict ] @@ -4328,7 +4343,7 @@ def from_dict(cls, cfg): allkeys = parkeys + ['biasframe', 'darkframe', 'arcframe', 'tiltframe', 'pixelflatframe', 'illumflatframe', 'lampoffflatsframe', 'scattlightframe', 'pinholeframe', 'alignframe', 'alignment', 'traceframe', 'standardframe', 'skyframe', - 'scattlight', 'flatfield', 'wavelengths', 'slitedges', 'tilts'] + 'scattlight_pad', 'flatfield', 'wavelengths', 'slitedges', 'tilts'] badkeys = np.array([pk not in allkeys for pk in k]) if np.any(badkeys): raise ValueError('{0} not recognized key(s) for CalibrationsPar.'.format(k[badkeys])) From 6c41fdc1562a1f4ae7088af25797c0565f92a428 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 3 Nov 2023 20:01:40 +0000 Subject: [PATCH 48/67] replace_bad function added --- pypeit/utils.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pypeit/utils.py b/pypeit/utils.py index 1df736426e..98832f0dc2 100644 --- a/pypeit/utils.py +++ b/pypeit/utils.py @@ -1360,6 +1360,31 @@ def find_nearest(array, values): return idxs +def replace_bad(frame, bpm): + """ Find all bad pixels, and replace the bad pixels with the nearest good pixel + + Parameters + ---------- + frame : `numpy.ndarray`_ + A frame that contains bad pixels that need to be replaced by the nearest good pixel + bpm : `numpy.ndarray`_ + Boolean array (same shape as frame) indicating bad pixel values (bad=True) + that need to be replaced. + + Returns + ------- + _frame : `numpy.ndarray`_ + A direct copy of the input frame, with the bad pixels replaced by the nearest good pixels. + """ + # Do some checks on the inputs + if frame.shape != bpm.shape: + msgs.error("Input frame and BPM have different shapes") + # Replace bad pixels with the nearest (good) neighbour + msgs.info("Replacing bad pixels") + ind = scipy.ndimage.distance_transform_edt(bpm, return_distances=False, return_indices=True) + return frame[tuple(ind)] + + def yamlify(obj, debug=False): """ From bebec09df88d5493a7d5bd725d52a06736480d91 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 3 Nov 2023 20:33:40 +0000 Subject: [PATCH 49/67] add fine correction --- pypeit/core/scattlight.py | 49 +++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index 4d0f079de2..1ca4c4d327 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -147,10 +147,8 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False # Convert the BPM to a GPM for convenience gpm = np.logical_not(bpm) - # Replace bad pixels with the nearest (good) neighbour - msgs.info("Replacing bad pixels in the scattered light input") - ind = ndimage.distance_transform_edt(bpm, return_distances=False, return_indices=True) - _frame = frame[tuple(ind)] + # Replace bad pixels with the nearest good pixel + _frame = utils.replace_bad(frame, bpm) # Pad the edges of the data _frame[0, :] = np.median(_frame[0:10, :], axis=0) @@ -198,3 +196,46 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False # plt.imshow(_frame - scatt_img_alt, vmin=vmin, vmax=vmax) plt.show() return scatt_img, res_lsq.x, success + + +def fine_correction(frame, bpm, offslitmask, polyord=2, debug=False): + """ Calculate a fine correction to the residual scattered light of the input frame. + + Parameters + ---------- + frame : `numpy.ndarray`_ + Raw 2D data frame to be used to compute the fine correction of the scattered light. + This frame should be the raw frame, minus the first estimate of the scattered light + that has been derived from the `scattered_light_model()`_ function. + bpm : `numpy.ndarray`_ + 2D boolean array indicating the bad pixels (True=bad) + offslitmask : `numpy.ndarray`_ + A boolean mask indicating the pixels that are on/off the slit (True = off the slit) + polyord : :obj:`int`_, optional + Polynomial order to use for fitting the residual scattered light in the spatial direction. + debug : :obj:`bool`_, optional + If True, debug the final model fit that's been output + + Returns + ------- + scatt_img : `numpy.ndarray`_ + A 2D image of the fine correction to the scattered light determined from the input frame. + """ + # Convert the BPM to a GPM for convenience + gpm = np.logical_not(bpm) + # Define some useful variables + nspec, nspat = frame.shape + xspat = np.arange(nspat) + model = np.zeros_like(frame) + # Loop over the residual scattered light in the spectral direction and perform + # a low order polynomial fit to the scattered light in the spatial direction. + for yy in range(nspec): + ext = frame[yy, :] + gd = np.where(offslitmask[yy, :] & gpm[yy, :]) + coeff = np.polyfit(xspat[gd], ext[gd], polyord) + model[yy, :] = np.polyval(coeff, xspat) + # Median filter in the spectral direction to smooth out irregularities in the fine correction + model_med = ndimage.median_filter(model, size=(50, 1)) # Median filter to get rid of CRs + scatt_light_fine = ndimage.gaussian_filter(model_med, sigma=10) # Gaussian filter to smooth median filter + # Return the fine correction model of the scattered light + return scatt_light_fine \ No newline at end of file From ddb02a7522fc06d292bf0b9a2927802b0ea3d6a6 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 3 Nov 2023 21:29:41 +0000 Subject: [PATCH 50/67] mask inter-slit regions --- pypeit/core/scattlight.py | 57 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index 1ca4c4d327..69c23dd91f 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -198,6 +198,61 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False return scatt_img, res_lsq.x, success +def mask_slit_regions(offslitmask, centrace, mask_regions=None): + """ Exclude some user-specified inter-slit regions for the fine correction to the scattered light determination + + Parameters + ---------- + offslitmask : `numpy.ndarray`_ + A boolean mask indicating the pixels that are on/off the slit (True = off the slit) + centrace : `numpy.ndarray`_ + A 2D array, shape is (nspec, nslit), containing the central trace of each slit. + mask_regions : :obj:`int`, :obj:`list`, optional + A list of regions that should be excluded in the fine correction to the scattered light. A zero + value indicates that all pixels left of the first slit will be masked. A value of one indicates + that all pixels between the first and second slit will be masked, and so forth. A list of these + integers can be supplied. If None, no inter-slit regions will be excluded. If an integer is + specified, just one region will be excluded. + + Returns + ------- + good_mask : `numpy.ndarray`_ + A 2D boolean array indicating the pixels that are suitable to use for the fine scattered light correction. + """ + # Check if there are regions to be masked + if mask_regions is None: + msgs.warn("There are no inter-slit regions specified that need to be masked") + return offslitmask + elif isinstance(mask_regions, int): + # Convert this to a list + _mask_regions = [mask_regions] + else: + _mask_regions = mask_regions + + # Grab the dimensions + nspec, nspat = offslitmask.shape + nslit = centrace.shape[1] + + # Setup the pixel coordinates + spat = np.arange(nspat) + + # Find the pixels in each slit, limited by the minimum and + # maximum spectral position. + good_mask = offslitmask.copy() + for ii in _mask_regions: + if ii == 0: # All pixels to the left of the first slit + indx = spat[None, :] < centrace[:, ii, None] + elif ii == nslit: # All pixels to the right of the last slit + indx = spat[None, :] > centrace[:, ii-1, None] + else: # Everything else in between + indx = (spat[None, :] > centrace[:, ii-1, None]) \ + & (spat[None, :] < centrace[:, ii, None]) + # Exclude these pixels + good_mask[indx] = False + # Return the mask of good inter-slit pixels + return good_mask + + def fine_correction(frame, bpm, offslitmask, polyord=2, debug=False): """ Calculate a fine correction to the residual scattered light of the input frame. @@ -223,10 +278,12 @@ def fine_correction(frame, bpm, offslitmask, polyord=2, debug=False): """ # Convert the BPM to a GPM for convenience gpm = np.logical_not(bpm) + # Define some useful variables nspec, nspat = frame.shape xspat = np.arange(nspat) model = np.zeros_like(frame) + # Loop over the residual scattered light in the spectral direction and perform # a low order polynomial fit to the scattered light in the spatial direction. for yy in range(nspec): From 2a04dcb713715a0adc4662a94fbeae6c9a3eb633 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 3 Nov 2023 21:40:37 +0000 Subject: [PATCH 51/67] cleanup --- pypeit/core/scattlight.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index 69c23dd91f..cf70abb249 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -276,12 +276,13 @@ def fine_correction(frame, bpm, offslitmask, polyord=2, debug=False): scatt_img : `numpy.ndarray`_ A 2D image of the fine correction to the scattered light determined from the input frame. """ + msgs.info("Performing a fine correction to the scattered light") # Convert the BPM to a GPM for convenience gpm = np.logical_not(bpm) # Define some useful variables nspec, nspat = frame.shape - xspat = np.arange(nspat) + xspat = np.linspace(0, 1, nspat) model = np.zeros_like(frame) # Loop over the residual scattered light in the spectral direction and perform @@ -294,5 +295,14 @@ def fine_correction(frame, bpm, offslitmask, polyord=2, debug=False): # Median filter in the spectral direction to smooth out irregularities in the fine correction model_med = ndimage.median_filter(model, size=(50, 1)) # Median filter to get rid of CRs scatt_light_fine = ndimage.gaussian_filter(model_med, sigma=10) # Gaussian filter to smooth median filter + if debug: + embed() + from matplotlib import pyplot as plt + vmin, vmax = -np.max(scatt_light_fine), np.max(scatt_light_fine) + plt.subplot(121) + plt.imshow(frame, vmin=vmin, vmax=vmax) + plt.subplot(122) + plt.imshow(frame-scatt_light_fine, vmin=vmin, vmax=vmax) + plt.show() # Return the fine correction model of the scattered light - return scatt_light_fine \ No newline at end of file + return scatt_light_fine From fae7db52d77f4fea0675cfffd851cfec99cccf3b Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 3 Nov 2023 21:43:11 +0000 Subject: [PATCH 52/67] add finecorr mask --- pypeit/par/pypeitpar.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/pypeit/par/pypeitpar.py b/pypeit/par/pypeitpar.py index a219d05fe4..c31e508ddc 100644 --- a/pypeit/par/pypeitpar.py +++ b/pypeit/par/pypeitpar.py @@ -1005,7 +1005,7 @@ class ScatteredLightPar(ParSet): see :ref:`parameters`. """ - def __init__(self, method=None, finecorr_pad=None, finecorr_order=None): + def __init__(self, method=None, finecorr=None, finecorr_pad=None, finecorr_order=None, finecorr_mask=None): # Grab the parameter names and values from the function # arguments @@ -1040,7 +1040,7 @@ def __init__(self, method=None, finecorr_pad=None, finecorr_order=None): descr['finecorr'] = 'If True, a fine correction to the scattered light will be performed. However, the ' \ 'fine correction will only be applied if the model/frame/archive correction is performed.' - defaults['finecorr_pad'] = 5 + defaults['finecorr_pad'] = 2 dtypes['finecorr_pad'] = int descr['finecorr_pad'] = 'Number of unbinned pixels to extend the slit edges by when masking the slits for the' \ 'fine correction to the scattered light.' @@ -1050,6 +1050,15 @@ def __init__(self, method=None, finecorr_pad=None, finecorr_order=None): descr['finecorr_order'] = 'Polynomial order to use for the fine correction to the scattered light ' \ 'subtraction. It should be a low value.' + defaults['finecorr_mask'] = None + dtypes['finecorr_mask'] = [int, list] + descr['finecorr_mask'] = 'A list containing the inter-slit regions that the user wishes to mask during ' \ + 'the fine correction to the scattered light. Each integer corresponds to an ' \ + 'inter-slit region. For example, "0" corresponds to all pixels left of the leftmost ' \ + 'slit, while a value of "1" corresponds to all pixels between the first and second ' \ + 'slit (counting from the left). It should be either a single integer value, or a ' \ + 'list of integer values.' + # Instantiate the parameter set super(ScatteredLightPar, self).__init__(list(pars.keys()), values=list(pars.values()), @@ -1062,7 +1071,7 @@ def __init__(self, method=None, finecorr_pad=None, finecorr_order=None): @classmethod def from_dict(cls, cfg): k = np.array([*cfg.keys()]) - parkeys = ['method', 'finecorr_pad', 'finecorr_order'] + parkeys = ['method', 'finecorr', 'finecorr_pad', 'finecorr_order', 'finecorr_mask'] badkeys = np.array([pk not in parkeys for pk in k]) if np.any(badkeys): From fe319234f43fa498659bc504e47b655dea377c1c Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 3 Nov 2023 21:43:29 +0000 Subject: [PATCH 53/67] update default params --- pypeit/spectrographs/keck_kcwi.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index f2700db391..11cb698cbc 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -900,9 +900,13 @@ def default_pypeit_par(cls): par['scienceframe']['process']['use_pattern'] = True # Subtract scattered light, but only for the pixel and illum flats, # as well as and science/standard star data. + par['calibrations']['scattlight_pad'] = 6 # This is the unbinned number of pixels to pad par['calibrations']['pixelflatframe']['process']['subtract_scattlight'] = True par['calibrations']['illumflatframe']['process']['subtract_scattlight'] = True par['scienceframe']['process']['subtract_scattlight'] = True + par['scienceframe']['process']['scattlight']['finecorr_pad'] = 2 + par['scienceframe']['process']['scattlight']['finecorr_order'] = 2 + par['scienceframe']['process']['scattlight']['finecorr_mask'] = 12 # Mask the middle inter-slit region. It contains a strange scattered light feature that doesn't appear to affect any other inter-slit regions # Correct the illumflat for pixel-to-pixel sensitivity variations par['calibrations']['illumflatframe']['process']['use_pixelflat'] = True From a37dd888700abf2acd375a7587ae98a739f9cdd5 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 3 Nov 2023 21:44:13 +0000 Subject: [PATCH 54/67] refactor scattered light --- pypeit/images/rawimage.py | 64 +++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 16 deletions(-) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index 4bb75013d8..26547f9a69 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -1120,13 +1120,22 @@ def subtract_continuum(self, force=False): #cont = ndimage.median_filter(self.image, size=(1,101,3), mode='reflect') self.steps[step] = True - def subtract_scattlight(self, msscattlight, slits): + def subtract_scattlight(self, msscattlight, slits, debug=False): """ Analyze and subtract the scattered light from the image. This is primarily a wrapper for - :func:`~pypeit.core.scattered_light`. + :func:`~pypeit.core.scattered_light_model`. + + Parameters + ---------- + msscattlight : :class:`~pypeit.scattlight.ScatteredLight` + Scattered light calibration frame + slits : :class:`~pypeit.slittrace.SlitTraceSet` + Slit edge information + debug : :obj:`bool`_, optional + If True, debug the computed scattered light image """ step = inspect.stack()[0][3] if self.steps[step]: @@ -1134,7 +1143,7 @@ def subtract_scattlight(self, msscattlight, slits): msgs.warn("The scattered light has already been subtracted from the image!") return - if self.par["scattlight_method"] == "model" and msscattlight.scattlight_param is None: + if self.par["scattlight"]["method"] == "model" and msscattlight.scattlight_param is None: msgs.warn("Scattered light parameters are not set. Cannot perform scattered light subtraction.") return @@ -1142,16 +1151,24 @@ def subtract_scattlight(self, msscattlight, slits): binning = self.detector[0]['binning'] dispname = self.spectrograph.get_meta_value(self.spectrograph.get_headarr(self.filename), 'dispname') - # TODO :: We really need to pass in the CR mask here... # Loop over the images + var = utils.inverse(self.build_ivar()) # Build a temporary variance frame to be used for the CR mask + spatbin = parse.parse_binning(self.detector[0]['binning'])[1] for ii in range(self.nimg): - # Mask bad pixels - # _frame = self.image[ii, ...] * np.logical_not(self.bpm[ii, ...]) + # Mask pixels affected by CR + crmask = procimg.lacosmic(self.image[ii, ...],# saturation=saturation, nonlinear=nonlinear, + bpm=self.bpm[ii, ...], varframe=var[ii, ...], maxiter=self.par['lamaxiter'], + grow=self.par['grow'], remove_compact_obj=self.par['rmcompact'], + sigclip=self.par['sigclip'], sigfrac=self.par['sigfrac'], + objlim=self.par['objlim']) + # Replace all bad pixels with the nearest good pixel + full_bpm = self.bpm[ii, ...] | crmask + _img = utils.replace_bad(self.image[ii, ...], full_bpm) # Apply the requested method for the scattered light - if self.par["scattlight_method"] == "model": + do_finecorr = self.par["scattlight"]["finecorr"] + if self.par["scattlight"]["method"] == "model": # Use predefined model parameters - scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, self.image[ii, ...]) - debug = True # RJC requests to keep this here for debugging + scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, _img) if debug: embed() # import astropy.io.fits as fits @@ -1180,36 +1197,51 @@ def subtract_scattlight(self, msscattlight, slits): plt.subplot(224) plt.imshow((_frame - scatt_img)*offslitmask, vmin=-vmax / 2, vmax=vmax / 2) plt.show() - elif self.par["scattlight_method"] == "archive": + elif self.par["scattlight"]["method"] == "archive": # Use archival model parameters modpar, _ = self.spectrograph.scattered_light_archive(binning, dispname) if modpar is None: msgs.error(f"{self.spectrograph.name} does not have archival scattered light parameters. Please " f"set 'scattlight_method' to another option.") - scatt_img = scattlight.scattered_light_model(modpar, _frame) - elif self.par["scattlight_method"] == "frame": + scatt_img = scattlight.scattered_light_model(modpar, _img) + elif self.par["scattlight"]["method"] == "frame": # Calculate a model specific for this frame - spatbin = parse.parse_binning(self.detector[0]['binning'])[1] pad = msscattlight.pad // spatbin offslitmask = slits.slit_img(pad=pad, initial=True, flexure=None) == -1 # Get starting parameters for the scattered light model x0, bounds = self.spectrograph.scattered_light_archive(binning, dispname) # Perform a fit to the scattered light - scatt_img, _, success = scattlight.scattered_light(self.image[ii, ...], self.bpm, offslitmask, + scatt_img, _, success = scattlight.scattered_light(self.image[ii, ...], full_bpm, offslitmask, x0, bounds) # If failure, revert back to the Scattered Light calibration frame model parameters if not success: if msscattlight is not None: msgs.warn("Scattered light model failed - using predefined model parameters") - scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, _frame) + scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, _img) else: msgs.warn("Scattered light model failed - using archival model parameters") # Use archival model parameters modpar, _ = self.spectrograph.scattered_light_archive(binning, dispname) - scatt_img = scattlight.scattered_light_model(modpar, _frame) + scatt_img = scattlight.scattered_light_model(modpar, _img) else: msgs.warn("Scattered light not performed") scatt_img = np.zeros(self.image[ii, ...].shape) + do_finecorr = False + # Check if a fine correction to the scattered light should be applied + if do_finecorr: + pad = self.par['scattlight']['finecorr_pad'] // spatbin + offslitmask = slits.slit_img(pad=pad, initial=True, flexure=None) == -1 + # Check if the user wishes to mask some inter-slit regions + if self.par['scattlight']['finecorr_mask'] is not None: + # Get the central trace of each slit + left, right, _ = slits.select_edges(initial=True, flexure=None) + centrace = 0.5*(left+right) + # Now mask user-defined inter-slit regions + offslitmask = scattlight.mask_slit_regions(offslitmask, centrace, + mask_regions=self.par['scattlight']['finecorr_mask']) + # Calculate the fine correction to the scattered light image, and add it to the full model + scatt_img += scattlight.fine_correction(_img-scatt_img, full_bpm, offslitmask, + polyord=self.par['scattlight']['finecorr_order']) # Subtract the scattered light model from the image self.image[ii, ...] -= scatt_img self.steps[step] = True From 1e4548f049ad6650b1f9e2419c48d80bcff3fbb8 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 10 Nov 2023 10:53:24 +0000 Subject: [PATCH 55/67] updated scattlight params --- pypeit/spectrographs/keck_kcwi.py | 90 ++++++++++++++++++------------- 1 file changed, 53 insertions(+), 37 deletions(-) diff --git a/pypeit/spectrographs/keck_kcwi.py b/pypeit/spectrographs/keck_kcwi.py index 11cb698cbc..b3157e055d 100644 --- a/pypeit/spectrographs/keck_kcwi.py +++ b/pypeit/spectrographs/keck_kcwi.py @@ -1068,49 +1068,65 @@ def scattered_light_archive(self, binning, dispname): # Note :: These values need to be originally based on data that uses 1x1 binning, # and are now scaled here according to the binning of the current data to be analysed. if dispname == 'BH2': - # This solution had Cost: 1.0626e+08 and was based on a 1x1 dataset using pixelflat as the scattlight frame, and assuming pad=6 - x0 = np.array([6.33925782e+01/specbin, 1.21677075e+02/spatbin, # Gaussian kernel widths - 1.62497815e+02/specbin, 1.08146499e+02/spatbin, # Lorentzian kernel widths - 1.25213594e+02/specbin, 1.01076028e+01/spatbin, # pixel offsets - 8.98169722e-01, 9.95797850e-01, # Zoom factor (spec, spat) - 1.11512749e-01, # kernel angle - 3.51216118e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) - 5.00375324e-03, -7.01001263e-03, # Polynomial terms (coefficients of "spat" and "spat*spec") - 1.07201611e-01, -2.47435669e-04, -1.94130583e-02]) # Polynomial terms (coefficients of spec**index) + # This solution had Cost: 1.0393e+08 and was based on a 1x1 dataset using pixelflat as the scattlight frame, and assuming pad=6 + x0 = np.array([67.15200530737414 / specbin, 157.1074288810557 / spatbin, # Gaussian kernel widths + 179.2999412601927 / specbin, 139.76705167365654 / spatbin, # Lorentzian kernel widths + 4.562250837489429 / specbin, 5.054084609129999 / spatbin, # pixel offsets + 0.9551212825380554, 0.9982713953567679, # Zoom factor (spec, spat) + 24.967114476694526, # constant flux offset + 0.09655699215523728, # kernel angle + 0.5524841628998713, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + 0.0035617904638365447, -0.004572414005692468, # Polynomial terms (coefficients of "spat" and "spat*spec") + 0.10339051745377138, -0.011285432228341519, -0.007042406129643602]) # Polynomial terms (coefficients of spec**index) elif dispname == 'BM': - # This solution had Cost: 5.5975e+07 and was based on a 1x1 dataset using pixelflat as the scattlight frame, and assuming pad=6 - x0 = np.array([5.90102917e+01/specbin, 3.18121981e+01/spatbin, # Gaussian kernel widths - 1.67699475e+02/specbin, 1.76824113e+02/spatbin, # Lorentzian kernel widths - 8.57232912e+01/specbin, 1.61878670e+01/spatbin, # pixel offsets - 9.60669284e-01, 9.95367555e-01, # Zoom factor (spec, spat) - -8.54192838e-02, # kernel angle - 2.78138895e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) - -2.09025586e-03, 2.95085274e-03, # Polynomial terms (coefficients of "spat" and "spat*spec") - 9.16987649e-02, -7.87655037e-02, 5.16153047e-02]) # Polynomial terms (coefficients of spec**index) + # This solution had Cost: 4.8690e+07 and was based on a 1x1 dataset using pixelflat as the scattlight frame, and assuming pad=6 + x0 = np.array([57.52686698670778 / specbin, 44.22645738529251 / spatbin, # Gaussian kernel widths + 177.49996713255973 / specbin, 157.85206762558929 / spatbin, # Lorentzian kernel widths + 1.5547056520696672 / specbin, 5.1916115942048915 / spatbin, # pixel offsets + 0.9969235709861033, 0.9988876925628252, # Zoom factor (spec, spat) + 5.117391743273053, # constant flux offset + 0.1073126011932528, # kernel angle + 0.37915677855016305, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + -0.0023288032996881753, 0.002167786497577728, # Polynomial terms (coefficients of "spat" and "spat*spec") + 0.08981952806519802, -0.07364263035160445, 0.04799106653657783]) # Polynomial terms (coefficients of spec**index) elif dispname == 'BL': - # This solution had Cost: 7.2398e+06 and was based on a 2x2 dataset using pixelflat as the scattlight frame, and assuming pad=10 - x0 = np.array([4.72573727e+01/specbin, 1.88577219e+01/spatbin, # Gaussian kernel widths - 1.50198652e+02/specbin, 1.61086575e+02/spatbin, # Lorentzian kernel widths - 8.33889721e+01/specbin, 5.57126288e+00/spatbin, # pixel offsets - 9.76804617e-01, 9.99902593e-01, # Zoom factor (spec, spat) - 0.0, # kernel angle - 3.31643788e-01, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) - -4.60504065e-03, 3.78190619e-03, # Polynomial terms (coefficients of "spat" and "spat*spec") - 7.44547223e-02, -4.45899682e-02, 1.97057130e-03]) # Polynomial terms (coefficients of spec**index) + # This solution had Cost: 7.0172e+06 and was based on a 2x2 dataset using pixelflat as the scattlight frame, and assuming pad=10 + x0 = np.array([54.843502304988725 / specbin, 71.36603219575882 / spatbin, # Gaussian kernel widths + 166.5990017834228 / specbin, 164.45188033168876 / spatbin, # Lorentzian kernel widths + -5.759623374637964 / specbin, 5.01392929142184 / spatbin, # pixel offsets + 1.0017829374409521, 1.000312421855213, # Zoom factor (spec, spat) + 4.429458755393496, # constant flux offset + -0.11853206385621386, # kernel angle + 0.4961668294341919, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + -0.004790394657721825, 0.0032481886185675036, # Polynomial terms (coefficients of "spat" and "spat*spec") + 0.07823077510724392, -0.0644638013233617, 0.01819438897935518]) # Polynomial terms (coefficients of spec**index) else: msgs.warn(f"Initial scattered light model parameters have not been setup for grating {dispname}") - x0 = np.array([200/specbin, 100/spatbin, # Gaussian kernel widths - 200/specbin, 100/spatbin, # Lorentzian kernel widths - 0.0/specbin, 0.0/spatbin, # pixel offsets - 1.0, # Zoom factor - 0.0, # kernel angle - 0.0, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) - 0.1, 0.0, 0.0, 0.0]) # Polynomial terms + x0 = np.array([54.843502304988725 / specbin, 71.36603219575882 / spatbin, # Gaussian kernel widths + 166.5990017834228 / specbin, 164.45188033168876 / spatbin, # Lorentzian kernel widths + -5.759623374637964 / specbin, 5.01392929142184 / spatbin, # pixel offsets + 1.0017829374409521, 1.000312421855213, # Zoom factor (spec, spat) + 4.429458755393496, # constant flux offset + -0.11853206385621386, # kernel angle + 0.4961668294341919, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + -0.004790394657721825, 0.0032481886185675036, # Polynomial terms (coefficients of "spat" and "spat*spec") + 0.07823077510724392, -0.0644638013233617, 0.01819438897935518]) # Polynomial terms (coefficients of spec**index) # Now set the bounds of the fitted parameters - bounds = ([1, 1, 1, 1, -200 / specbin, -200 / spatbin, 0, 0, -(10 / 180) * np.pi, 0.0, -10, -10, -10, -10, -10], - [600 / specbin, 600 / spatbin, 600 / specbin, 600 / spatbin, 200 / specbin, 200 / spatbin, 2, 2, - (10 / 180) * np.pi, 1000.0, 10, 10, 10, 10, 10]) + bounds = ([# Lower bounds: + 1, 1, # Gaussian kernel widths + 1, 1, # Lorentzian kernel widths + -10 / specbin, -10 / spatbin, # pixel offsets + 0, 0, # Zoom factor (spec, spat) + -1000, -(10 / 180) * np.pi, 0.0, # constant flux offset, kernel angle, relative kernel scale + -10, -10, -10, -10, -10], # Polynomial terms + # Upper bounds + [600 / specbin, 600 / spatbin, # Gaussian kernel widths + 600 / specbin, 600 / spatbin, # Lorentzian kernel widths + 10 / specbin, 10 / spatbin, # pixel offsets + 2, 2, # Zoom factor (spec, spat) + 1000.0, +(10 / 180) * np.pi, 1000.0, # constant flux offset, kernel angle, relative kernel scale + 10, 10, 10, 10, 10]) # Polynomial terms # Return the best-fitting archival parameters and the bounds return x0, bounds From 345214b729488c9d28149131530896fc73c789f0 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 10 Nov 2023 10:53:47 +0000 Subject: [PATCH 56/67] add constant term --- pypeit/core/scattlight.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index cf70abb249..e7aab05667 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -54,9 +54,9 @@ def scattered_light_model(param, img): # Extract the parameters into more conveniently named variables sigmx_g, sigmy_g, sigmx_l, sigmy_l = param[0], param[1], param[2], param[3] shft_spec, shft_spat, zoom_spec, zoom_spat = param[4], param[5], param[6], param[7] - kern_angle, kern_scale = param[8], param[9] - polyterms_spat = param[10:12] - polyterms_spec = param[12:] + constant, kern_angle, kern_scale = param[8], param[9], param[10] + polyterms_spat = param[11:13] + polyterms_spec = param[13:] # Make a grid of coordinates specvec, spatvec = np.arange(img.shape[0]), np.arange(img.shape[1]) @@ -88,7 +88,7 @@ def scattered_light_model(param, img): scale_img = polyscale * signal.oaconvolve(img, kernel, mode='same') spl = interpolate.RectBivariateSpline(specvec, spatvec, scale_img, kx=1, ky=1) - return spl(zoom_spec * (specvec + shft_spec), zoom_spat * (spatvec + shft_spat)) + return constant + spl(zoom_spec * (specvec + shft_spec), zoom_spat * (spatvec + shft_spat)) def scattlight_resid(param, wpix, img): From 930bd96a8371135f5be4c6841bc8f16aa02b09bc Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 10 Nov 2023 10:55:12 +0000 Subject: [PATCH 57/67] add scattlight debugging --- pypeit/images/rawimage.py | 44 ++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index 26547f9a69..d4f029a044 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -1127,7 +1127,6 @@ def subtract_scattlight(self, msscattlight, slits, debug=False): This is primarily a wrapper for :func:`~pypeit.core.scattered_light_model`. - Parameters ---------- msscattlight : :class:`~pypeit.scattlight.ScatteredLight` @@ -1164,11 +1163,14 @@ def subtract_scattlight(self, msscattlight, slits, debug=False): # Replace all bad pixels with the nearest good pixel full_bpm = self.bpm[ii, ...] | crmask _img = utils.replace_bad(self.image[ii, ...], full_bpm) + # Get a copy of the best-fitting model parameters + this_modpar = msscattlight.scattlight_param.copy() + this_modpar[8] = 0.0 # This is the zero-level of the scattlight frame. The zero-level is determined by the finecorr # Apply the requested method for the scattered light do_finecorr = self.par["scattlight"]["finecorr"] if self.par["scattlight"]["method"] == "model": # Use predefined model parameters - scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, _img) + scatt_img = scattlight.scattered_light_model(this_modpar, _img) if debug: embed() # import astropy.io.fits as fits @@ -1178,11 +1180,20 @@ def subtract_scattlight(self, msscattlight, slits, debug=False): # for ii in range(11): # print("saving", ii) # np.save("scattlight_test/slitmask_pad{0:02d}.npy".format(ii), slits.slit_img(pad=ii, initial=True, flexure=None) == -1) + specbin, spatbin = parse.parse_binning(self.detector[0]['binning']) tmp = msscattlight.scattlight_param.copy() - tmp[:6] *= 2 - print("\n\n\n2x2 BINNING ASSUMED!!!\n\n\n") - print(tmp) - spatbin = parse.parse_binning(self.detector[0]['binning'])[1] + print("\n\n\n2x2 BINNING ASSUMED AS INPUT!!!\n\n\n") + # Find a pretty way to print out the archive variables + strprint = f"x0 = np.array([{tmp[0]*specbin} / specbin, {tmp[1]*spatbin} / spatbin, # Gaussian kernel widths\n" + \ + f" {tmp[2]*specbin} / specbin, {tmp[3]*spatbin} / spatbin, # Lorentzian kernel widths\n" + \ + f" {tmp[4]*specbin} / specbin, {tmp[5]*spatbin} / spatbin, # pixel offsets\n" + \ + f" {tmp[6]}, {tmp[7]}, # Zoom factor (spec, spat)\n" + \ + f" {tmp[8]}, # constant flux offset\n" + \ + f" {tmp[9]}, # kernel angle\n" + \ + f" {tmp[10]}, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian)\n" + \ + f" {tmp[11]}, {tmp[12]}, # Polynomial terms (coefficients of \"spat\" and \"spat*spec\")\n" + \ + f" {tmp[13]}, {tmp[14]}, {tmp[15]}]) # Polynomial terms (coefficients of spec**index)\n" + print(strprint) pad = msscattlight.pad // spatbin offslitmask = slits.slit_img(pad=pad, initial=True, flexure=None) == -1 from matplotlib import pyplot as plt @@ -1191,19 +1202,21 @@ def subtract_scattlight(self, msscattlight, slits, debug=False): plt.subplot(221) plt.imshow(_frame, vmin=vmin, vmax=2*np.median(_frame)) plt.subplot(222) - plt.imshow(_frame*offslitmask, vmin=vmin, vmax=3*vmax) + plt.imshow(_frame*offslitmask, vmin=-2*vmax, vmax=2*vmax) plt.subplot(223) - plt.imshow(scatt_img, vmin=vmin, vmax=3*vmax) + plt.imshow(scatt_img*offslitmask, vmin=-2*vmax, vmax=2*vmax) plt.subplot(224) - plt.imshow((_frame - scatt_img)*offslitmask, vmin=-vmax / 2, vmax=vmax / 2) + plt.imshow((_frame - scatt_img)*offslitmask, vmin=-2*vmax, vmax=2*vmax) + # plt.imshow((_frame - scatt_img)*offslitmask, vmin=-vmax/5, vmax=vmax/5) plt.show() elif self.par["scattlight"]["method"] == "archive": # Use archival model parameters - modpar, _ = self.spectrograph.scattered_light_archive(binning, dispname) - if modpar is None: + arx_modpar, _ = self.spectrograph.scattered_light_archive(binning, dispname) + arx_modpar[8] = 0.0 + if arx_modpar is None: msgs.error(f"{self.spectrograph.name} does not have archival scattered light parameters. Please " f"set 'scattlight_method' to another option.") - scatt_img = scattlight.scattered_light_model(modpar, _img) + scatt_img = scattlight.scattered_light_model(arx_modpar, _img) elif self.par["scattlight"]["method"] == "frame": # Calculate a model specific for this frame pad = msscattlight.pad // spatbin @@ -1217,12 +1230,13 @@ def subtract_scattlight(self, msscattlight, slits, debug=False): if not success: if msscattlight is not None: msgs.warn("Scattered light model failed - using predefined model parameters") - scatt_img = scattlight.scattered_light_model(msscattlight.scattlight_param, _img) + scatt_img = scattlight.scattered_light_model(this_modpar, _img) else: msgs.warn("Scattered light model failed - using archival model parameters") # Use archival model parameters - modpar, _ = self.spectrograph.scattered_light_archive(binning, dispname) - scatt_img = scattlight.scattered_light_model(modpar, _img) + arx_modpar, _ = self.spectrograph.scattered_light_archive(binning, dispname) + arx_modpar[8] = 0.0 + scatt_img = scattlight.scattered_light_model(arx_modpar, _img) else: msgs.warn("Scattered light not performed") scatt_img = np.zeros(self.image[ii, ...].shape) From d33dbf35bc743afac5a2ba4c98c46be9ca77bd9d Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 10 Nov 2023 13:15:40 +0000 Subject: [PATCH 58/67] update ESI scattlight params --- pypeit/spectrographs/keck_esi.py | 35 ++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/pypeit/spectrographs/keck_esi.py b/pypeit/spectrographs/keck_esi.py index 0089a3780f..2cb933f313 100644 --- a/pypeit/spectrographs/keck_esi.py +++ b/pypeit/spectrographs/keck_esi.py @@ -337,19 +337,32 @@ def scattered_light_archive(self, binning, dispname): # and should be close to the final fitted values to reduce computational time) # Note :: These values need to be originally based on data that uses 1x1 binning, # and are now scaled here according to the binning of the current data to be analysed. - # These parameters give a cost of 8.0833e+08 with the science frame used as scattlight (1x1 binning, pad=5) - x0 = np.array([2.63726939e+02/specbin, 1.57625683e+02/spatbin, # Gaussian kernel widths - 2.63911253e+02/specbin, 1.74452723e+02/spatbin, # Lorentzian kernel widths - -1.38026314e+02/specbin, 7.72883842e+01/spatbin, # pixel offsets - 9.59395069e-01, 1.04452747e+00, # Zoom factor (spec, spat) - 6.00977118e-01, # kernel angle - 7.70958895e-02, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) - -1.15238092e-01, 1.80022435e-01, # Polynomial terms (coefficients of "spat" and "spat*spec") - 3.41914530e-01, -3.15033809e-01]) # Polynomial terms (coefficients of spec**index) + # These parameters give a cost of 8.0517e+08 with the science frame used as scattlight (1x1 binning, pad=5) + x0 = np.array([272.33958742493064 / specbin, 115.501464689107 / spatbin, # Gaussian kernel widths + 272.3418000034377 / specbin, 168.0591427733949 / spatbin, # Lorentzian kernel widths + -141.2552517318941 / specbin, 79.25936221285629 / spatbin, # pixel offsets + 1.0877734248786808, 1.0562808322123667, # Zoom factor (spec, spat) + 5.876311151022701, # constant flux offset + 0.0444248025888341, # kernel angle + 0.6090358292193677, # Relative kernel scale (>1 means the kernel is more Gaussian, >0 but <1 makes the profile more lorentzian) + 0.135392229831296, -0.16167521454188258, # Polynomial terms (coefficients of "spat" and "spat*spec") + 0.06148093592863097, 0.10305719952486242]) # Polynomial terms (coefficients of spec**index) # Now set the bounds of the fitted parameters - bounds = ([1, 1, 1, 1, -200/specbin, -200/spatbin, 0, 0, -2*np.pi, 0.0, -10, -10, -10, -10], - [600/specbin, 600/spatbin, 600/specbin, 600/spatbin, 200/specbin, 200/spatbin, 2, 2, 2*np.pi, 1000.0, 10, 10, 10, 10]) + bounds = ([# Lower bounds: + 1, 1, # Gaussian kernel widths + 1, 1, # Lorentzian kernel widths + -200 / specbin, -200 / spatbin, # pixel offsets + 0, 0, # Zoom factor (spec, spat) + -1000, -(10 / 180) * np.pi, 0.0, # constant flux offset, kernel angle, relative kernel scale + -10, -10, -10, -10], # Polynomial terms + # Upper bounds + [600 / specbin, 600 / spatbin, # Gaussian kernel widths + 600 / specbin, 600 / spatbin, # Lorentzian kernel widths + 200 / specbin, 200 / spatbin, # pixel offsets + 2, 2, # Zoom factor (spec, spat) + 1000.0, +(10 / 180) * np.pi, 1000.0, # constant flux offset, kernel angle, relative kernel scale + 10, 10, 10, 10]) # Polynomial terms # Return the best-fitting archival parameters and the bounds return x0, bounds From 939c1380920f875447684b379de1e540bde69258 Mon Sep 17 00:00:00 2001 From: rcooke Date: Fri, 10 Nov 2023 13:15:59 +0000 Subject: [PATCH 59/67] illumflat scattlight --- pypeit/calibrations.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pypeit/calibrations.py b/pypeit/calibrations.py index 8fe1272583..e24e9b07c0 100644 --- a/pypeit/calibrations.py +++ b/pypeit/calibrations.py @@ -754,7 +754,7 @@ def get_flats(self): illum_flat = buildimage.buildimage_fromlist(self.spectrograph, self.det, self.par['illumflatframe'], raw_illum_files, dark=self.msdark, bias=self.msbias, scattlight=self.msscattlight, - flatimages=self.flatimages, bpm=self.msbpm) + slits=self.slits, flatimages=self.flatimages, bpm=self.msbpm) if len(raw_lampoff_files) > 0: msgs.info('Subtracting lamp off flats using files: ') for f in raw_lampoff_files: @@ -765,11 +765,12 @@ def get_flats(self): raw_lampoff_files, dark=self.msdark, bias=self.msbias, + slits=self.slits, scattlight=self.msscattlight, bpm=self.msbpm) illum_flat = illum_flat.sub(lampoff_flat) - # Initialise the pixel flat + # Initialise the illum flat illumFlatField = flatfield.FlatField(illum_flat, self.spectrograph, self.par['flatfield'], self.slits, self.wavetilts, self.wv_calib, spat_illum_only=True, From e29b2da9f7398cd163aee9c22ade5080a6dc4891 Mon Sep 17 00:00:00 2001 From: rcooke Date: Mon, 20 Nov 2023 11:59:33 +0000 Subject: [PATCH 60/67] add doc files --- doc/api/pypeit.coadd3d.rst | 8 ++++++++ doc/api/pypeit.core.ref_index.rst | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 doc/api/pypeit.coadd3d.rst create mode 100644 doc/api/pypeit.core.ref_index.rst diff --git a/doc/api/pypeit.coadd3d.rst b/doc/api/pypeit.coadd3d.rst new file mode 100644 index 0000000000..f6d6dbc5ac --- /dev/null +++ b/doc/api/pypeit.coadd3d.rst @@ -0,0 +1,8 @@ +pypeit.coadd3d module +===================== + +.. automodule:: pypeit.coadd3d + :members: + :private-members: + :undoc-members: + :show-inheritance: diff --git a/doc/api/pypeit.core.ref_index.rst b/doc/api/pypeit.core.ref_index.rst new file mode 100644 index 0000000000..8d1b6d7856 --- /dev/null +++ b/doc/api/pypeit.core.ref_index.rst @@ -0,0 +1,8 @@ +pypeit.core.ref\_index module +============================= + +.. automodule:: pypeit.core.ref_index + :members: + :private-members: + :undoc-members: + :show-inheritance: From 405afadaebfe0667f376f762bd76494ab88f4823 Mon Sep 17 00:00:00 2001 From: rcooke Date: Tue, 21 Nov 2023 21:22:26 +0000 Subject: [PATCH 61/67] add finecorr docs --- pypeit/par/pypeitpar.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pypeit/par/pypeitpar.py b/pypeit/par/pypeitpar.py index d911052193..ab0ef44c87 100644 --- a/pypeit/par/pypeitpar.py +++ b/pypeit/par/pypeitpar.py @@ -1068,7 +1068,8 @@ def __init__(self, method=None, finecorr=None, finecorr_pad=None, finecorr_order 'inter-slit region. For example, "0" corresponds to all pixels left of the leftmost ' \ 'slit, while a value of "1" corresponds to all pixels between the first and second ' \ 'slit (counting from the left). It should be either a single integer value, or a ' \ - 'list of integer values.' + 'list of integer values. The default (None) means that no inter-slit regions will ' \ + 'be masked.' # Instantiate the parameter set super(ScatteredLightPar, self).__init__(list(pars.keys()), From b659bf1177ccf1e32e0d24a371833cf35886de61 Mon Sep 17 00:00:00 2001 From: rcooke Date: Tue, 21 Nov 2023 21:22:37 +0000 Subject: [PATCH 62/67] add debug notes --- pypeit/images/rawimage.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/pypeit/images/rawimage.py b/pypeit/images/rawimage.py index d4f029a044..98d36f5ec3 100644 --- a/pypeit/images/rawimage.py +++ b/pypeit/images/rawimage.py @@ -1172,18 +1172,11 @@ def subtract_scattlight(self, msscattlight, slits, debug=False): # Use predefined model parameters scatt_img = scattlight.scattered_light_model(this_modpar, _img) if debug: - embed() - # import astropy.io.fits as fits - # hdu = fits.PrimaryHDU([self.image[ii, ...]-scatt_img]) - # hdu.writeto(self.filename.replace(".fits.gz", "_proc_slsub.fits.gz")) - # assert False - # for ii in range(11): - # print("saving", ii) - # np.save("scattlight_test/slitmask_pad{0:02d}.npy".format(ii), slits.slit_img(pad=ii, initial=True, flexure=None) == -1) specbin, spatbin = parse.parse_binning(self.detector[0]['binning']) tmp = msscattlight.scattlight_param.copy() - print("\n\n\n2x2 BINNING ASSUMED AS INPUT!!!\n\n\n") - # Find a pretty way to print out the archive variables + # The following printout is the same format that is used in the spectrgraph files for archiving a good set + # of starting parameter values for future reductions. The following printout is only useful for developers + # that want to store a solution in a spectrograph file. strprint = f"x0 = np.array([{tmp[0]*specbin} / specbin, {tmp[1]*spatbin} / spatbin, # Gaussian kernel widths\n" + \ f" {tmp[2]*specbin} / specbin, {tmp[3]*spatbin} / spatbin, # Lorentzian kernel widths\n" + \ f" {tmp[4]*specbin} / specbin, {tmp[5]*spatbin} / spatbin, # pixel offsets\n" + \ From daee90f48eb435a9db021bf59517f8563e65f616 Mon Sep 17 00:00:00 2001 From: rcooke Date: Tue, 21 Nov 2023 21:26:23 +0000 Subject: [PATCH 63/67] cleanup scattered light --- pypeit/core/scattlight.py | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/pypeit/core/scattlight.py b/pypeit/core/scattlight.py index e7aab05667..e04ee2e5ad 100644 --- a/pypeit/core/scattlight.py +++ b/pypeit/core/scattlight.py @@ -119,11 +119,11 @@ def scattered_light(frame, bpm, offslitmask, x0, bounds, detpad=300, debug=False Parameters ---------- frame : `numpy.ndarray`_ - Raw 2D data frame to be used to compute the scattered light. + Raw 2D data frame (nspec, nspat) to be used to compute the scattered light. bpm : `numpy.ndarray`_ - 2D boolean array indicating the bad pixels (True=bad) + 2D boolean array indicating the bad pixels (True=bad), same shape as frame offslitmask : `numpy.ndarray`_ - A boolean mask indicating the pixels that are on/off the slit (True = off the slit) + A boolean mask indicating the pixels that are on/off the slit (True = off the slit), same shape as frame x0 : `numpy.ndarray`_ A 1D array containing the best-fitting model parameters bounds : :obj:`tuple`_ @@ -236,21 +236,20 @@ def mask_slit_regions(offslitmask, centrace, mask_regions=None): # Setup the pixel coordinates spat = np.arange(nspat) - # Find the pixels in each slit, limited by the minimum and - # maximum spectral position. - good_mask = offslitmask.copy() + # Loop through all user-specified inter-slit regions to mask + bad_mask = np.zeros_like(offslitmask) for ii in _mask_regions: if ii == 0: # All pixels to the left of the first slit - indx = spat[None, :] < centrace[:, ii, None] + mask_pix = spat[None, :] < centrace[:, ii, None] elif ii == nslit: # All pixels to the right of the last slit - indx = spat[None, :] > centrace[:, ii-1, None] + mask_pix = spat[None, :] > centrace[:, ii-1, None] else: # Everything else in between - indx = (spat[None, :] > centrace[:, ii-1, None]) \ + mask_pix = (spat[None, :] > centrace[:, ii-1, None]) \ & (spat[None, :] < centrace[:, ii, None]) # Exclude these pixels - good_mask[indx] = False + bad_mask[mask_pix] = True # Return the mask of good inter-slit pixels - return good_mask + return offslitmask & np.logical_not(bad_mask) def fine_correction(frame, bpm, offslitmask, polyord=2, debug=False): @@ -259,13 +258,13 @@ def fine_correction(frame, bpm, offslitmask, polyord=2, debug=False): Parameters ---------- frame : `numpy.ndarray`_ - Raw 2D data frame to be used to compute the fine correction of the scattered light. + Raw 2D data frame (nspec, nspat) to be used to compute the fine correction of the scattered light. This frame should be the raw frame, minus the first estimate of the scattered light that has been derived from the `scattered_light_model()`_ function. bpm : `numpy.ndarray`_ - 2D boolean array indicating the bad pixels (True=bad) + 2D boolean array indicating the bad pixels (True=bad), same shape as frame offslitmask : `numpy.ndarray`_ - A boolean mask indicating the pixels that are on/off the slit (True = off the slit) + A boolean mask indicating the pixels that are on/off the slit (True = off the slit), same shape as frame polyord : :obj:`int`_, optional Polynomial order to use for fitting the residual scattered light in the spatial direction. debug : :obj:`bool`_, optional @@ -274,7 +273,7 @@ def fine_correction(frame, bpm, offslitmask, polyord=2, debug=False): Returns ------- scatt_img : `numpy.ndarray`_ - A 2D image of the fine correction to the scattered light determined from the input frame. + A 2D image (nspec, nspat) of the fine correction to the scattered light determined from the input frame. """ msgs.info("Performing a fine correction to the scattered light") # Convert the BPM to a GPM for convenience @@ -296,7 +295,6 @@ def fine_correction(frame, bpm, offslitmask, polyord=2, debug=False): model_med = ndimage.median_filter(model, size=(50, 1)) # Median filter to get rid of CRs scatt_light_fine = ndimage.gaussian_filter(model_med, sigma=10) # Gaussian filter to smooth median filter if debug: - embed() from matplotlib import pyplot as plt vmin, vmax = -np.max(scatt_light_fine), np.max(scatt_light_fine) plt.subplot(121) From 3b379aca21c30b4b15e7d7a098e9291cbc47a030 Mon Sep 17 00:00:00 2001 From: rcooke Date: Tue, 21 Nov 2023 21:48:48 +0000 Subject: [PATCH 64/67] update docs --- doc/calibrations/scattlight.rst | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/doc/calibrations/scattlight.rst b/doc/calibrations/scattlight.rst index c7c82b00ff..c691b5fa64 100644 --- a/doc/calibrations/scattlight.rst +++ b/doc/calibrations/scattlight.rst @@ -50,22 +50,26 @@ example will pad the slits by 10 detector pixels, assuming 1x1 binning): Note: if your data are binned by 2 in the spatial direction, then setting ``pad=10`` would actually pad the slit edges by 5 pixels. -# TODO :: Make sure this description is up-to-date! - -The current scattered light model involves a 13 parameter fit to the inter-slit regions. The model +The current scattered light model involves a 14+ parameter fit to the inter-slit regions. The model utilises the observed 2D (trimmed+oriented+debiased) frame to estimate the scattered light. The scattered light model is essentially a blurred, shifted, flux-scaled, rotated, and zoomed version of the detector image. The amount of blurring in the spatial and spectral direction include contributions from -a Gaussian and a Lorentzian kernel. The relative importance of these kernels is controlled by scaling -parameter (1 paramerer), and each kernel has two widths each (4 parameters total), and the joint kernel -is rotated (1 additional parameter). The scattered light image is than shifted in the spectral and spatial -directions (2 additional parameters), and there is a single parameter to estimate the zoom factor. Finally, -the scattered light flux is scaled by a low order 2D polynomial (4 parameters). Once the best-fitting -model parameters are determined, these can be applied to any other frame to estimate the scattered -light contribution of this frame. - +a Gaussian and a Lorentzian kernel. +The relative importance of these kernels is controlled by scaling parameter (1 paramerer), +and each kernel has two widths each (one for each direction on the detector; 4 parameters total), +and the joint kernel is rotated (1 additional parameter). +The scattered light image is than shifted in the spectral and spatial directions (2 additional parameters), +and there is a parameter to estimate the zoom factor in the spectral and spatial directions (2 parameters). +Finally, the scattered light flux is scaled by a low order 2D polynomial, including: +(i) 2 parameters in the spatial direction (a linear term and a cross-term) +``par1 * spatial + par2 * spatial*spectral``; and +(ii) N (where N>=1) parameters for the spectral dependence. +``par3 + par4 * spectral + par5 * spectral^2 + ...``. + +Once the best-fitting model parameters are determined, these can be applied to any +other frame to estimate the scattered light contribution of this frame. Alternatively, the scattered light can be determined for each frame independently (i.e. you can -derive a separate set of 13 model parameters for each frame that you wish to perform a scattered +derive a separate set of 14+ model parameters for each frame that you wish to perform a scattered light correction). To set this option, you can add the following arguments to your pypeit file: .. code-block:: ini From dc80ca0052b438a9fb08cb4eaef48774d0d6768f Mon Sep 17 00:00:00 2001 From: rcooke Date: Tue, 21 Nov 2023 22:00:56 +0000 Subject: [PATCH 65/67] update docs --- doc/calibrations/scattlight.rst | 8 ++++++-- doc/figures/scatteredlight_image.png | Bin 0 -> 1609787 bytes 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 doc/figures/scatteredlight_image.png diff --git a/doc/calibrations/scattlight.rst b/doc/calibrations/scattlight.rst index c691b5fa64..361d7b4dd4 100644 --- a/doc/calibrations/scattlight.rst +++ b/doc/calibrations/scattlight.rst @@ -100,8 +100,12 @@ A three panel ginga window will be opened that shows: All panels are re-oriented so that vertical is the spectral dimension with blue at the bottom, following the PypeIt :ref:`pypeit-orientation` convention. -Here is an screen shot of a ``ginga`` view for an example from -the ``keck_kcwi`` spectrograph. +Here is an screen shot of a ``ginga`` view of an example from +the ``keck_kcwi`` spectrograph (BL grating). +The left image shows the raw data, +the middle image shows the estimated scattered light, based on a model fit, and +the right image shows the raw frame with the scattered light subtracted off. +All images are shown on the same color scale. .. image:: ../figures/scatteredlight_image.png diff --git a/doc/figures/scatteredlight_image.png b/doc/figures/scatteredlight_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c2491469f2bab567465a011245e7fbef0ac97d5f GIT binary patch literal 1609787 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

PW+{uPFf3Cx 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

`r$w1IhC}p4((kh2g;AJn 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Ò`bOI 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%0D~Rhvve;gR6E#C4SXA;rehDw+?L5? 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≷XJoTqca%1An1iu1u}?@(joo^Fu+Fsm#vs9B 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 {(cwNmJnAOz4-wtr(JGaw?4m}GF{G5B%o$xnD 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

fh?mx=IA92pG+33_mdTf%xv;W&k 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 z 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�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
V9^+RXpQ}*P4RPV0 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