예제 #1
0
def main():

    # a 31x31 postage stamp image
    nx, ny = 31, 31
    # move xy0 to simulate it being a shallow bbox'd sub-image
    xorig, yorig = 100, 300
    xy0 = afwGeom.Point2I(xorig, yorig)

    psfSigma = 3.0
    x0, y0 = xorig + nx / 2, yorig + ny / 2
    p0 = afwGeom.Point2D(x0, y0)

    img = afwImage.ImageF(nx, ny, 0)
    img.setXY0(xy0)
    for i in range(ny):
        for j in range(nx):
            ic = i - (y0 - yorig)
            jc = j - (x0 - xorig)
            r = math.sqrt(ic * ic + jc * jc)
            img.set(j, i, 1.0 * math.exp(-r**2 / (2.0 * psfSigma**2)))

    # now warp it about the centroid using a linear transform

    linTran = afwGeom.LinearTransform().makeScaling(
        1.2)  # a simple scale-by-20%
    # extent a bit along x-dir
    linTran[0] *= 1.2

    wimg = afwImage.ImageF(nx, ny, 0)  # output 'warped' image
    wimg.setXY0(xy0)
    kernel = afwMath.LanczosWarpingKernel(5)  # warping kernel
    afwMath.warpCenteredImage(wimg, img, kernel, linTran, p0)

    img.writeFits("img.fits")
    wimg.writeFits("wimg.fits")
            blurredMaskedImage = blurredExposure.getMaskedImage()
            sigmaSq = coaddComponent.getSigmaSq()
            if saveImages:
                blurredExposure.writeFits("blurred%s" % (fileName, ))
            blurredMaskedImage /= sigmaSq
            if saveImages:
                blurredExposure.writeFits("scaledBlurred%s" % (fileName, ))

            print "  Remap blurred exposure to match coadd WCS"
            remappedBlurredMaskedImage = afwImage.MaskedImageD(
                coaddExposure.getWidth(), coaddExposure.getHeight())
            remappedBlurredExposure = afwImage.ExposureD(
                remappedBlurredMaskedImage, coaddWcs)
            if saveImages:
                remappedBlurredExposure.writeFits("remappedBlurred%s" %
                                                  (fileName, ))
            nGoodPix = afwMath.warpExposure(remappedBlurredExposure,
                                            blurredExposure,
                                            afwMath.LanczosWarpingKernel(3))
            nPix = coaddExposure.getWidth() * coaddExposure.getHeight()
            print "  Remapped image has %d good pixels (%0.0f %%)" % (
                nGoodPix, 100 * nGoodPix / float(nPix))

            print "  Add remapped blurred exposure to coadd and save updated coadd exposure"
            coaddUtils.addToCoadd(coaddMaskedImage, depthMap,
                                  remappedBlurredExposure.getMaskedImage(),
                                  coaddMask)
            coaddExposure.writeFits(outName)
            depthMap.writeFits(depthOutName)
    coaddUtils.setCoaddEdgeBits(coaddMaskedImage.getMask(), depthMap)
    coaddExposure.writeFits(outName)