def extractedTar(quadsceneID):
    sceneID=quadsceneID[:-2]
    # guarantee that level 1 product tar file for sceneID now exists in /lsfdata/eros_data/extractedTars
    tar(sceneID)
    # if /lsfdata/extractedTars/sceneID doesn't contain the level 1 product band files, extract them from the tar file
    #
    if not(re.search(sceneID, ' '.join(glob.glob(os.path.join(LSF.tiffsStorage, '*'))))):
        # make sure that the existing tar is valid
        existingTar=os.path.join(LSF.tarStorage, sceneID+".tar.gz")
        err=localLib.validTar(existingTar)
        if err:
            raise Exception(err)
        # for now use checkExisting. change to use tarHandling class when completed
        extractedPath = landsatFactTools_GDAL.checkExisting(existingTar, LSF.tiffsStorage)
        rasterAnalysis_GDAL.runFmask(extractedPath,LSF.fmaskShellCall)
        # get DN min number from each band in the scene and write to database
        dnminExists = landsatFactTools_GDAL.checkForDNminExist(extractedPath) # May not be needed in final design, used during testing
        if dnminExists == False:
            dnMinDict = rasterAnalysis_GDAL.getDNmin(extractedPath)
            # fix bug introduced by me in commit de5df07c4ca3ff71ae4d7da27b6018fe1bc2df04
            landsatFactTools_GDAL.writeDNminToDB(dnMinDict,extractedPath)
 # sets full path for the tarfile to be analyzed
 inNewSceneTar = os.path.join(tarStorage, tar)
 # check to see if the tar file has been extracted, if not extract the files
 print "Checking for: "+tar
 extractedPath = landsatFactTools_GDAL.checkExisting(inNewSceneTar, tiffsStorage)
 # run Fmask
 # jdm 4/22/15: after spending a couple of days trying to get FMASK installed on cloud4
 # I have not been able to get it to work.  Therefore, for now I am commenting this out
 # rasterAnalysis_GDAL.runFmask(extractedPath,Fmaskexe) #BM's original
 print extractedPath
 runFmaskBool = rasterAnalysis_GDAL.runFmask(extractedPath,fmaskShellCall)
 #print "Fmask Boolean: "+runFmaskBool
 if (runFmaskBool == True):
     # get DN min number from each band in the scene and write to database
     wrs2Name=tar[3:9]
     dnminExists = landsatFactTools_GDAL.checkForDNminExist(extractedPath) # May not be needed in final design, used during testing
     if dnminExists == False:
         dnMinDict = rasterAnalysis_GDAL.getDNmin(extractedPath)
         landsatFactTools_GDAL.writeDNminToDB(dnMinDict,extractedPath)
     # create quads from the input scene
     quadPaths = rasterAnalysis_GDAL.cropToQuad(extractedPath,projectStorage,quadsFolder)
     landsatFactTools_GDAL.writeQuadToDB(quadPaths)
     # get cloud cover percentage for each quad
     # write input scene quads cloud cover percentage to the landsat_metadata table in the database
     quadCCDict=landsatFactTools_GDAL.readAndWriteQuadCC(quadPaths, extractedPath)
     # for each quad this finds the closest scene that passes the cloud cover threshold for processing
     quadTiffList2Process = landsatFactTools_GDAL.getNextBestQuad(quadCCDict,cloudCoverThreshold)
     # =========================================================================
     #jdm: Need to make sure the next best quads we are going to be comparing to are actually extracted
     #and pre-processed to a level appropriate for differencing.
     print "quadTiffList2Process: ", quadTiffList2Process