def getProperName(obj): cleansed = gb.cleanse(obj,toUpper=True) if cleansed.endswith("AUR"): useObj = string.replace(cleansed,"AUR","Aur") elif cleansed.endswith("TAU"): useObj = string.replace(cleansed,"TAU","Tau") elif cleansed.startswith("KOI"): useObj = "K"+gb.strPad(cleansed[3:],False,5,padChar="0",padSide="left") elif cleansed.startswith("K"): ### We assume these are all KOIs useObj = "K"+gb.strPad(cleansed[1:],False,5,padChar="0",padSide="left") elif cleansed.startswith("HATP"): useObj = "HAT-P-"+cleansed[4:len(cleansed)-1]+string.lower(cleansed[-1]) elif cleansed.startswith("COROT"): useObj = "CoRoT-"+cleansed[5:len(cleansed)-1]+string.lower(cleansed[-1]) elif cleansed.startswith("TRES"): useObj = "TrES-"+cleansed[4:len(cleansed)-1]+string.lower(cleansed[-1]) elif cleansed.startswith("WASP"): useObj = "WASP-"+cleansed[4:len(cleansed)-1]+string.lower(cleansed[-1]) elif cleansed.startswith("XO"): useObj = "XO-"+cleansed[2:len(cleansed)-1]+string.lower(cleansed[-1]) elif cleansed.startswith("HD"): useObj = cleansed[:len(cleansed)-1]+string.lower(cleansed[-1]) else: useObj = obj finalPass = string.replace(useObj,"--","-") return finalPass
def getStuffFromHeader(fitsfile,keyword,verbose=False): hdulist = pyfits.open(fitsfile) hdulist.close() hdulist.verify('silentfix') ff = hdulist[0].header.ascardlist() bar = hdulist[0].header.keys() value = "NA" for nn,item in enumerate(ff): #print "\nxx",bar[nn] if str(bar[nn]).startswith(keyword): value=gb.cleanse(str(item).rstrip().split("=")[1], charList=["\'"," "]) if verbose: print "Reading header of",fitsfile,keyword,value return value
allFiles = os.listdir(nightPath) print "\n Running through all ", len(allFiles), " files to find data..." allObjDict = {} allSkiesByExp = {} allDarkDict = {} allDarkTimes = [] allSkyDict = {} nightAndFilterDict = {} for ff in allFiles: ##### First check to make sure we don't include reduced fits files if (ff[-5:] == ".fits") & (ff[-7:] != ".d.fits") & (ff[-9:] != ".red.fits") & (ff[-9:] != ".sub.fits"): ##### A. Target data (all starts with 'q') if ff[0] == "q": exp = gb.cleanse(ao.getStuffFromHeader(nightPath + ff, "EXPTIME")) filt = gb.cleanse(string.replace(ao.getStuffFromHeader(nightPath + ff, "FILTER"), "band", "")) obj = aries.getProperName(ao.getStuffFromHeader(nightPath + ff, "OBJECT")) ## Create dictionary of objects by object, filter if (obj, filt) not in allObjDict.keys(): # print "New object, filter:",obj, filt allObjDict[obj, filt] = [ff] else: allObjDict[obj, filt].append(ff) ## Finally, make list of all frames by filter for each night start = len(base) + 1 end = start + 4 num = int(ff[start:end]) for nn in frameNumbers: if aries.framesForNights[nn][0] <= num <= aries.framesForNights[nn][1]: if (nn, filt) not in nightAndFilterDict.keys():