Ejemplo n.º 1
0
conn.execute(cmd)
conn.commit()

# fill table
cmd = "INSERT INTO defect VALUES (NULL, ?, ?, ?, ?, ?, ?)"
numEntries = 0
os.chdir(registryDir)
for filePath in glob.glob(os.path.join("rev_*", "defects*.fits")):
    m = re.search(r'rev_(\d+)/defects(\d+)[AB]*\.fits', filePath)
    if not m:
        sys.stderr.write("Skipping file with invalid name: %r\n" % (filePath,))
        continue
    print("Processing %r" % (filePath,))

    fitsTable = pyfits.open(filePath)
    ccd = fitsTable[1].header["NAME"]
    serial = LsstSimMapper.getShortCcdName(ccd)+"_"+phosimVersion
    conn.execute(cmd, (
        filePath,
        int(m.group(1)),
        ccd,
        serial,
        "1970-01-01",
        "2037-12-31",
    ))
    numEntries += 1
conn.commit()
print("Added %d entries" % (numEntries))

conn.close()
conn.execute(cmd)
conn.commit()

# fill table
cmd = "INSERT INTO defect VALUES (NULL, ?, ?, ?, ?, ?, ?)"
numEntries = 0
os.chdir(registryDir)
for filePath in glob.glob(os.path.join("rev_*", "defects*.fits")):
    m = re.search(r'rev_(\d+)/defects(\d+)[AB]*\.fits', filePath)
    if not m:
        sys.stderr.write("Skipping file with invalid name: %r\n" % (filePath,))
        continue
    print "Processing %r" % (filePath,)

    fitsTable = pyfits.open(filePath)
    ccd = fitsTable[1].header["NAME"]
    serial = LsstSimMapper.getShortCcdName(ccd)+"_"+phosimVersion
    conn.execute(cmd, (
        filePath,
        int(m.group(1)),
        ccd,
        serial,
        "1970-01-01",
        "2037-12-31",
    ))
    numEntries += 1
conn.commit()
print "Added %d entries" % (numEntries)

conn.close()
    camConfig.transformDict = tmc

    def makeDir(dirPath, doClobber=False):
        """Make a directory; if it exists then clobber or fail, depending on doClobber

        @param[in] dirPath: path of directory to create
        @param[in] doClobber: what to do if dirPath already exists:
            if True and dirPath is a dir, then delete it and recreate it, else raise an exception
        @throw RuntimeError if dirPath exists and doClobber False
        """
        if os.path.exists(dirPath):
            if doClobber and os.path.isdir(dirPath):
                print "Clobbering directory %r" % (dirPath,)
                shutil.rmtree(dirPath)
            else:
                raise RuntimeError("Directory %r exists" % (dirPath,))
        print "Creating directory %r" % (dirPath,)
        os.makedirs(dirPath)

    # write data products
    outDir = args.OutputDir
    makeDir(dirPath=outDir, doClobber=args.clobber)

    camConfigPath = os.path.join(outDir, "camera.py")
    camConfig.save(camConfigPath)

    for detectorName, ampTable in ampTableDict.iteritems():
        shortDetectorName = LsstSimMapper.getShortCcdName(detectorName)
        ampInfoPath = os.path.join(outDir, shortDetectorName + ".fits")
        ampTable.writeFits(ampInfoPath)
    camConfig.transformDict = tmc

    def makeDir(dirPath, doClobber=False):
        """Make a directory; if it exists then clobber or fail, depending on doClobber

        @param[in] dirPath: path of directory to create
        @param[in] doClobber: what to do if dirPath already exists:
            if True and dirPath is a dir, then delete it and recreate it, else raise an exception
        @throw RuntimeError if dirPath exists and doClobber False
        """
        if os.path.exists(dirPath):
            if doClobber and os.path.isdir(dirPath):
                print("Clobbering directory %r" % (dirPath, ))
                shutil.rmtree(dirPath)
            else:
                raise RuntimeError("Directory %r exists" % (dirPath, ))
        print("Creating directory %r" % (dirPath, ))
        os.makedirs(dirPath)

    # write data products
    outDir = args.OutputDir
    makeDir(dirPath=outDir, doClobber=args.clobber)

    camConfigPath = os.path.join(outDir, "camera.py")
    camConfig.save(camConfigPath)

    for detectorName, ampTable in ampTableDict.items():
        shortDetectorName = LsstSimMapper.getShortCcdName(detectorName)
        ampInfoPath = os.path.join(outDir, shortDetectorName + ".fits")
        ampTable.writeFits(ampInfoPath)