Beispiel #1
0
def getFlats(root, imgName):
    logger = logging.getLogger(__name__)
    hdr = fs.getHeader(root + imgName)
    dateObs = hdr["DATE-OBS"].split("T")
    flatList = []

    logger.debug("Looking for flats from date: " + dateObs[0])
    flats = fs.readFileToArray(root + ".flats")
    flatsList = []
    for flat in flats:
        flatHdr = fs.getHeader(root + flat)
        match = True
        if dateObs[0] not in flatHdr["DATE-OBS"]:
            match = False
        if match:
            #logger.debug("Found flat, matches with  " + flat)
            flatsList.append(flat)
    return flatsList
Beispiel #2
0
def getBiass(root, imgName):
    logger = logging.getLogger(__name__)
    hdr = fs.getHeader(root + imgName)
    dateObs = hdr["DATE-OBS"].split("T")
    biasList = []

    logger.debug("Looking for biass from date: " + dateObs[0])
    biass = fs.readFileToArray(root + ".biass")
    biassList = []
    for bias in biass:
        biasHdr = fs.getHeader(root + bias)
        match = True
        if dateObs[0] not in biasHdr["DATE-OBS"]:
            match = False
        if match:
            #logger.debug("Found bias, matches with  " + bias)
            biasList.append(bias)
    return biasList
Beispiel #3
0
def indexFiles(root):
    logger = logging.getLogger(__name__)
    logger.debug("Looking for all *.fit* in " + root)
    fitsFiles = [os.path.relpath(os.path.join(dirpath, f), root)
            for dirpath, dirnames, files in os.walk(root)
            for f in fnmatch.filter(files, "*.fit")]
    fitsFiles.sort()
    #print(fitsFiles)
 
    listDarks = fs.readFileToArray(root + ".darks")
    listBiass = fs.readFileToArray(root + ".biass")
    listFlats = fs.readFileToArray(root + ".flats")
    listLights = fs.readFileToArray(root + ".lights")
    listUnknowns = fs.readFileToArray(root + ".unknowns")
    listErrors = fs.readFileToArray(root + ".errors")
    index = fs.readFileToArray(root + ".index")

    for f in fitsFiles:
        if f in index:
            continue
        if "b.fit" in f or "d.fit" in f or "atlas_" in f:
            continue
        logger.debug("Indexing "+f)
        hdr = fs.getHeader(root + f)
        imgType = hdr["PICTTYPE"]
        outFile = "None"
        date = hdr["DATE-OBS"].split("T")[0]
        if isFlat(imgType):
            #logger.debug(f + " is a flat.")
            listFlats.append(f)
        elif isDark(imgType):
            #logger.debug(f + " is a dark")
            listDarks.append(f)
        elif isBias(imgType):
            #logger.debug(f + " is a bias")
            listBiass.append(f)
        elif isLight(imgType):
            #logger.debug(f + " is a light frame!")
            listLights.append(f + ":" + date)
        elif isUnknown(imgType):
            logger.warning(f + " is of unknown type?")
            listUnknowns.append(f)
        else:
            logger.error("ImgType not unknown or anything else??")
            listErrors.append(f)
        #TODO only open file once in w+ mode
        index.append(f)
    fs.writeListToFile(root+".flats", listFlats)
    fs.writeListToFile(root+".darks", listDarks)
    fs.writeListToFile(root+".biass", listBiass)
    fs.writeListToFile(root+".lights", listLights)
    fs.writeListToFile(root+".unknowns", listUnknowns)
    fs.writeListToFile(root+".errors", listErrors)
    fs.writeListToFile(root+".index", index)
    return
Beispiel #4
0
def getDarks(root, imgName):
    logger = logging.getLogger(__name__)
    #hdu_list = pyfits.open(root + imgName)
    #hdr = hdu_list[0].header
    hdr = fs.getHeader(root + imgName)
    #expTime = hdr["EXPTIME"]
    dateObs = hdr["DATE-OBS"].split("T")
    darkList = []

    logger.debug("Looking for darks from date: " + dateObs[0]) 
    darks = fs.readFileToArray(root + ".darks")
    darkList = []
    for dark in darks:
        darkHdr = fs.getHeader(root + dark)
        match = True
        #if darkHdr["EXPTIME"] != expTime:
            #match = False
        if dateObs[0] not in darkHdr["DATE-OBS"]:
            match = False
        if match:
            #logger.debug("Found dark, matches with  " + dark)
            darkList.append(dark)

    return darkList
Beispiel #5
0
    logger.info("Getting unprocessed images")
    unprocImgNames = getUnprocessedImageNames(root)
    if not unprocImgNames or len(unprocImgNames) == 0:
        logger.info("No unprocessed images.")
        #TODO stop the program?
    unprocImgNames.sort()

    logger.info("Processing " + str(len(unprocImgNames)) + " images")
    biassFiles = {}
    darksFiles = {}
    flatsFiles = {}
    procFiles = fs.readFileToArray(root + ".proc")

    for img in unprocImgNames:
        logger.debug("Getting calibration images for " + img)
        hdr = fs.getHeader(root + img)
        exptime = hdr['EXPTIME']
        date = hdr['DATE-OBS'].split('T')
        date = date[0]
        datexp = date + ":" + str(exptime)
        #Darks
        if date in darksFiles:
            darksFiles[date].append(img)
        else:
            darks = getDarks(root, img)
            darksFiles[date] = [img]
            if len(darks) > 0:
                fs.writeListToFile(root + outputDir + ".darks:" + date, darks)
        #Biass
        if date in biassFiles:
            biassFiles[date].append(img)
Beispiel #6
0
    logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)s %(levelname)s: %(message)s')
    logger = logging.getLogger(__name__)
    exoStarList = getExoplanetList()
    runs = {}
    runBfns = {}
    runOOI = {}
    #get all .corr
    root = sys.argv[1]
    baseFnList = [os.path.splitext(os.path.relpath(os.path.join(dirpath, f), root))[0]
                        for dirpath, dirnames, files in os.walk(root)
                                    for f in fnmatch.filter(files, "*.solved")]
    baseFnList.sort()

    for bfn in baseFnList:
        #logger.debug("opening " + bfn)
        hdr = fs.getHeader(root + bfn + ".fits")
        date = hdr["DATE-OBS"].split("T")[0]

        #Find out what we're looking at
        ooi = {}
        starNotFound = True
        for exostar in exoStarList:
            if isInField(root + bfn, exostar["ra"], exostar["dec"]):
                starNotFound = False
                ooi = exostar
                logger.debug("the star for " + bfn + " is: " + ooi["name"])
        if starNotFound:
            logger.info("404 - STAR NOT FOUND: " + bfn)
            logger.debug(runBfns)
            continue