diff --git a/pypeit/find_objects.py b/pypeit/find_objects.py index 3bb531a651..caab3ff64a 100644 --- a/pypeit/find_objects.py +++ b/pypeit/find_objects.py @@ -334,12 +334,9 @@ def run(self, std_trace=None, show_peaks=False, show_skysub_fit=False): initial_sky0 = self.global_skysub(skymask=self.initial_skymask, update_crmask=False, objs_not_masked=True, show_fit=show_skysub_fit) # First pass object finding - save_objfindQA = self.par['reduce']['findobj']['skip_second_find'] or self.std_redux \ - or self.initial_skymask is not None sobjs_obj, self.nobj = \ self.find_objects(self.sciImg.image-initial_sky0, self.sciImg.ivar, std_trace=std_trace, - show_peaks=show_peaks, show=self.findobj_show and not self.std_redux, - save_objfindQA=save_objfindQA) + show_peaks=show_peaks, show=self.findobj_show and not self.std_redux) if self.nobj == 0 or self.initial_skymask is not None: # Either no objects were found, or the initial sky mask was provided by the user. diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 66ee52d34c..9822bc5f1d 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -599,14 +599,20 @@ def get_maskdef_slitedges(self, ccdnum=None, filename=None, debug=None, # Trim down by detector # TODO -- Deal with Mark4 - max_spat = 2048//bin_spat + if self.name == 'keck_lris_red_mark4': + max_spat = 4112//bin_spat + else: + max_spat = 2048//bin_spat if ccdnum == 1: if self.name == 'keck_lris_red': good = centers < 0. xstart = max_spat + 160//bin_spat # The 160 is for the chip gap elif self.name == 'keck_lris_blue': good = centers < 0. - xstart = max_spat + 30//bin_spat + xstart = max_spat + 30//bin_spat + elif self.name == 'keck_lris_red_mark4': + xstart = 2073//bin_spat + good = centers < max_spat # No chip gap else: msgs.error(f'Not ready to use slitmasks for {self.name}. Develop it!') else: @@ -1401,8 +1407,8 @@ def get_detector_par(self, det, hdu=None): dataext=0, specaxis=0, specflip=True, - spatflip=False, - platescale=0.123, # From the web page + spatflip=True, + platescale=0.135, # From the web page darkcurr=0.0, saturation=65535., nonlinear=0.76, diff --git a/pypeit/wavetilts.py b/pypeit/wavetilts.py index 85cd92c5a3..73509ac121 100644 --- a/pypeit/wavetilts.py +++ b/pypeit/wavetilts.py @@ -188,27 +188,32 @@ def show(self, waveimg=None, wcs_match=True, in_ginga=True, show_traces=False): If True, show the traces of the tilts on the image. """ + # get tilt_img_dict + if (Path(self.calib_dir).resolve() / self.tiltimg_filename).exists(): + tilt_img_dict = buildimage.TiltImage.from_file(Path(self.calib_dir).resolve() / self.tiltimg_filename) + else: + msgs.error(f'Tilt image {str((Path(self.calib_dir).resolve() / self.tiltimg_filename))} NOT FOUND.') + # get slits + slitmask = None if (Path(self.calib_dir).resolve() / self.slits_filename).exists(): slits = slittrace.SlitTraceSet.from_file(Path(self.calib_dir).resolve() / self.slits_filename) - slitmask = slits.slit_img(initial=True, flexure=self.spat_flexure) - left, right, mask = slits.select_edges(flexure=self.spat_flexure) - gpm = mask == 0 + _slitmask = slits.slit_img(initial=True, flexure=self.spat_flexure) + _left, _right, _mask = slits.select_edges(flexure=self.spat_flexure) + gpm = _mask == 0 + # resize + slitmask = arc.resize_mask2arc(tilt_img_dict.image.shape, _slitmask) + left = arc.resize_slits2arc(tilt_img_dict.image.shape, _slitmask.shape, _left) + right = arc.resize_slits2arc(tilt_img_dict.image.shape, _slitmask.shape, _right) else: slits = None msgs.warn('Could not load slits to show with tilts image.') - # get tiltimg - if (Path(self.calib_dir).resolve() / self.tiltimg_filename).exists(): - tilt_img_dict = buildimage.TiltImage.from_file(Path(self.calib_dir).resolve() / self.tiltimg_filename) - tilt_img = tilt_img_dict.image * (slitmask > -1) if slits is not None else tilt_img_dict.image - else: - msgs.error('Tilt image not found.') - # get waveimg - if waveimg is None and in_ginga: + same_size = (slits.nspec, slits.nspat) == tilt_img_dict.image.shape + if waveimg is None and slits is not None and same_size and in_ginga: wv_calib_name = wavecalib.WaveCalib.construct_file_name(self.calib_key, calib_dir=self.calib_dir) - if Path(wv_calib_name).resolve().exists() and slits is not None: + if Path(wv_calib_name).resolve().exists(): wv_calib = wavecalib.WaveCalib.from_file(wv_calib_name) tilts = self.fit2tiltimg(slitmask, flexure=self.spat_flexure) waveimg = wv_calib.build_waveimg(tilts, slits, spat_flexure=self.spat_flexure) @@ -216,6 +221,8 @@ def show(self, waveimg=None, wcs_match=True, in_ginga=True, show_traces=False): msgs.warn('Could not load Wave image to show with tilts image.') # Show + # tilt image + tilt_img = tilt_img_dict.image * (slitmask > -1) if slitmask is not None else tilt_img_dict.image # set cuts zmax = stats.sigma_clip(tilt_img, sigma=10, return_bounds=True)[2] zmin = stats.sigma_clip(tilt_img, sigma=5, return_bounds=True)[1] * 2