def run_pa(self, input_image, psf, outwave, boxwidth, nspec, fibers=None, fibermap=None, dumpfile=None, maskFile=None, usesigma=False, quick_resolution=False): from desispec.boxcar import do_boxcar import desispec.psf if fibermap['OBJTYPE'][0] == 'ARC': psf = desispec.psf.PSF(psf) flux, ivar, Rdata = do_boxcar(input_image, psf, outwave, boxwidth=boxwidth, nspec=nspec, maskFile=maskFile, usesigma=usesigma, quick_resolution=quick_resolution) #- write to a frame object qndiag = 21 wsigma = None if quick_resolution: if hasattr(psf, 'wcoeff'): wsigma = np.empty(flux.shape) if isinstance(nspec, (tuple, list, np.ndarray)): for i, s in enumerate(nspec): #- GD: Need confirmation, but this appears to be missing. wsigma[i] = psf.wdisp( s, outwave) / psf.angstroms_per_pixel(s, outwave) else: for i in range(nspec): wsigma[i] = psf.wdisp( i, outwave) / psf.angstroms_per_pixel(i, outwave) elif hasattr(psf, 'xsigma_boot'): wsigma = np.tile(psf.xsigma_boot, (outwave.shape[0], 1)) frame = fr(outwave, flux, ivar, resolution_data=Rdata, fibers=fibers, meta=input_image.meta, fibermap=fibermap, wsigma=wsigma, ndiag=qndiag) if dumpfile is not None: night = frame.meta['NIGHT'] expid = frame.meta['EXPID'] io.write_frame(dumpfile, frame) log.debug("Wrote intermediate file %s after %s" % (dumpfile, self.name)) return frame
def run_pa(self, input_image, psf, specmin, nspec, wave, regularize=None, ndecorr=True, bundlesize=25, wavesize=50, outfile=None, fibers=None, fibermap=None): import specter from specter.extract import ex2d from desispec.frame import Frame as fr flux, ivar, Rdata = ex2d(input_image.pix, input_image.ivar * (input_image.mask == 0), psf, specmin, nspec, wave, regularize=regularize, ndecorr=ndecorr, bundlesize=bundlesize, wavesize=wavesize) #- Augment input image header for output input_image.meta['NSPEC'] = (nspec, 'Number of spectra') input_image.meta['WAVEMIN'] = (wave[0], 'First wavelength [Angstroms]') input_image.meta['WAVEMAX'] = (wave[-1], 'Last wavelength [Angstroms]') input_image.meta['WAVESTEP'] = (wave[1] - wave[0], 'Wavelength step size [Angstroms]') input_image.meta['SPECTER'] = (specter.__version__, 'https://github.com/desihub/specter') #input_image.meta['IN_PSF'] = (_trim(psf_file), 'Input spectral PSF') #input_image.meta['IN_IMG'] = (_trim(input_file), 'Input image') frame = fr(wave, flux, ivar, resolution_data=Rdata, fibers=fibers, meta=input_image.meta, fibermap=fibermap) if outfile is not None: #- writing to a frame file if needed. from desispec import io io.write_frame(outfile, frame) log.info("wrote frame output file %s" % outfile) return frame
def run_pa(self, input_image, psf, outwave, boxwidth, nspec,fibers=None, fibermap=None,outfile=None): from desispec.boxcar import do_boxcar from desispec.frame import Frame as fr flux,ivar,Rdata=do_boxcar(input_image, psf, outwave, boxwidth=boxwidth, nspec=nspec) #- write to a frame object frame = fr(outwave, flux, ivar, resolution_data=Rdata,fibers=fibers, meta=input_image.meta, fibermap=fibermap) if outfile is not None: #- writing to a frame file if needed. from desispec import io io.write_frame(outfile,frame) log.info("wrote frame output file %s"%outfile) return frame
def run_pa(self, input_image, psf, outwave, boxwidth, nspec,fibers=None, fibermap=None,dump=False,dumpfile=None): from desispec.boxcar import do_boxcar from desispec.frame import Frame as fr flux,ivar,Rdata=do_boxcar(input_image, psf, outwave, boxwidth=boxwidth, nspec=nspec) #- write to a frame object frame = fr(outwave, flux, ivar, resolution_data=Rdata,fibers=fibers, meta=input_image.meta, fibermap=fibermap) if dump and dumpfile is not None: from desispec import io night = frame.meta['NIGHT'] expid = frame.meta['EXPID'] io.write_frame(dumpfile, frame) log.info("Wrote intermediate file %s after %s"%(dumpfile,self.name)) return frame
def run_pa(self, input_image, psf, outwave, boxwidth, nspec, fibers=None, fibermap=None,dump=False,dumpfile=None, maskFile=None): from desispec.boxcar import do_boxcar from desispec.frame import Frame as fr flux,ivar,Rdata=do_boxcar(input_image, psf, outwave, boxwidth=boxwidth, nspec=nspec,maskFile=maskFile) #- write to a frame object frame = fr(outwave, flux, ivar, resolution_data=Rdata,fibers=fibers, meta=input_image.meta, fibermap=fibermap) if dump and dumpfile is not None: from desispec import io night = frame.meta['NIGHT'] expid = frame.meta['EXPID'] io.write_frame(dumpfile, frame) log.info("Wrote intermediate file %s after %s"%(dumpfile,self.name)) return frame
def run_pa(self,input_image,psf,specmin,nspec,wave,regularize=None,ndecorr=True,bundlesize=25,wavesize=50, outfile=None,fibers=None,fibermap=None): import specter from specter.extract import ex2d from desispec.frame import Frame as fr flux,ivar,Rdata=ex2d(input_image.pix,input_image.ivar*(input_image.mask==0),psf,specmin,nspec,wave,regularize=regularize,ndecorr=ndecorr,bundlesize=bundlesize,wavesize=wavesize) #- Augment input image header for output input_image.meta['NSPEC'] = (nspec, 'Number of spectra') input_image.meta['WAVEMIN'] = (wave[0], 'First wavelength [Angstroms]') input_image.meta['WAVEMAX'] = (wave[-1], 'Last wavelength [Angstroms]') input_image.meta['WAVESTEP']= (wave[1]-wave[0], 'Wavelength step size [Angstroms]') input_image.meta['SPECTER'] = (specter.__version__, 'https://github.com/desihub/specter') #input_image.meta['IN_PSF'] = (_trim(psf_file), 'Input spectral PSF') #input_image.meta['IN_IMG'] = (_trim(input_file), 'Input image') frame = fr(wave, flux, ivar, resolution_data=Rdata,fibers=fibers, meta=input_image.meta, fibermap=fibermap) if outfile is not None: #- writing to a frame file if needed. from desispec import io io.write_frame(outfile,frame) log.info("wrote frame output file %s"%outfile) return frame