def buildObjectList(self): self.logger.info("Building Object List") frames = findFrames(self.folder) frameTypes = getFrameLists(frames) #get frame types self.objects = splitByHeader(frameTypes['object'], 'filter') #save a cache of the frame info to speed up future uses of the ZeroDarkProcessor with open(path.join(self.folder, 'filterLists.json'), 'w') as f: json.dump(self.objects, f) return self
def buildObjectList(self): self.logger.info("Building Object List") frames = findFrames(self.folder) frameTypes = getFrameLists(frames) # get frame types self.objects = splitByHeader(frameTypes["object"], "filter") # save a cache of the frame info to speed up future uses of the ZeroDarkProcessor with open(path.join(self.folder, "filterLists.json"), "w") as f: json.dump(self.objects, f) return self
def makeFlats(self): self.logger.info('Making Flats') self.ensure_frameTypes() self.ensure_zero() self.ensure_dark() flatBase = path.join(self.processedFolder,'Flat') flats = splitByHeader(self.frameTypes['flat'],'filter') for filter in flats: outName = "{0}_{1}.fits".format(flatBase,filter) #name is the base flat name plus the filter type process.makeFlat(*flats[filter],zero=self.zeroFrame,dark=self.darkFrame,output=outName) self.flatFrames[filter] = outName #TODO should we copy the flats to calibration folder? return self
def zero_and_dark_subtract(self): '''subtract zeros and darks from image files and save in the processed folder''' self.logger.info("Subtracting zeros and darks") #ensure we have everything we need self.ensure_frameTypes() self.ensure_zero() self.ensure_dark() for (obj,flist) in self.objects.items(): #iterate over each object for (filt, frames) in splitByHeader(flist,'filter').items(): baseName = "{0}/{1}{2}-".format(self.processedFolder, obj.replace(' ','_'),filt) with process.ImageList(*frames) as imlist: imlist.subZero(self.zeroFrame) imlist.subDark(self.darkFrame) imlist.updateHeaders(ccdproc='{0} CCD Processing done'.format(getTimeString("%x %X"))) imlist.saveIndexed(baseName) #save the processed images