Example #1
0
 def sub_darks(self,data):
     for exp in data.keys():
         inputlist = data[exp]['raw']
         outputlist = [s[s.rfind('/')+1:s.find('.FIT')]+\
                           '_ds.fits'\
                           for s in inputlist]
         
         if self.darks[exp]['combined'] == None: self.gen_dark(exp)
         if len(inputlist) > 10:
             while len(inputlist) > 0:
                 inputstring = ','.join(inputlist[:10])
                 outputstring = ','.join(outputlist[:10])
                 iraf.nhedit(inputstring,'FIBERPOS','"(ORIGIN)"','Fiber input position',add=True,addonly=True)
                 iraf.imarith(inputstring,'-',\
                                  self.darks[exp]['combined'],\
                                  outputstring)
                 data[exp]['ds'] += outputlist[:10]
                 inputlist = inputlist[10:]
                 outputlist = outputlist[10:]
             
         else:
             iraf.nhedit(','.join(inputlist),'FIBERPOS','"(ORIGIN)"','Fiber input position',add=True,addonly=True)
             iraf.imarith(','.join(inputlist),\
                              '-',\
                              self.darks[exp]['combined'],\
                              ','.join([s[s.rfind('/')+1:s.find('.FIT')]+\
                                            '_ds.fits' for s in inputlist]))
             data[exp]['ds'] += outputlist
Example #2
0
 def uphead(self,mapping):
     
     if mapping == False: 
         print "Warning: Input to output mapping not loaded correctly.\n"+\
             "FITS headers will NOT be updated"
         return
     
     for fiber_pos in self.ratios.keys():
         for filt in self.ratios[fiber_pos]['data'].keys():
             outpos = mapping[fiber_pos]
             iraf.nhedit(self.ratios[fiber_pos]['data'][filt]['fiber']['final'],\
                             "OUTPOS",outpos,'Fiber output position',\
                             add=True,addonly=False,after='FIBERPOS')
             self.ratios[fiber_pos]['outpos'] = outpos
Example #3
0
 def uphead(self,mapping):
     
     if mapping == False: 
         print "Warning: Input to output mapping not loaded correctly.\n"
     
     for fiber_pos in self.ratios.keys():
         for filt in self.ratios[fiber_pos]['data'].keys():
             try:
                 outpos = mapping[fiber_pos]
             except TypeError:
                 outpos = 'NA'
             iraf.nhedit(self.ratios[fiber_pos]['data'][filt]['fiber']['final'],\
                             "OUTPOS",outpos,'Fiber output position',\
                             add=True,addonly=False,after='FIBERPOS')
             self.ratios[fiber_pos]['outpos'] = outpos
Example #4
0
    def combine(self):
        iraf.imcombine.combine = self.datacombine
        iraf.imcombine.reject = self.datareject
        iraf.imcombine.lsigma = self.rejectpar

        for fiber_pos in self.ratios.keys():
            for filt in self.ratios[fiber_pos]['data'].keys():
                for ftype in self.ratios[fiber_pos]['data'][filt].keys():
                    name = self.ratios[fiber_pos]['data'][filt][ftype]['raw'][0]
                    name = name[:name.rfind('.0')]+'.fits'
                    mintime = min(self.ratios[fiber_pos]['data'][filt][ftype]['obstimes'])
                    maxtime = max(self.ratios[fiber_pos]['data'][filt][ftype]['obstimes'])
                    maxtime += float(self.ratios[fiber_pos]['data'][filt][ftype]['exptime'])

                    iraf.imcombine(\
                        ','.join(self.ratios\
                                     [fiber_pos]['data'][filt][ftype]['raw']),\
                            name)
                    self.ratios[fiber_pos]['data'][filt][ftype]['final'] = name
                    iraf.nhedit(name,'STARTIME',mintime,'Start time of first combined image',addonly=True)
                    iraf.nhedit(name,'ENDTIME',maxtime,'End time of last combined image',addonly=True)