Exemplo n.º 1
0
def _resample_one(args):
    (itim,tim,mod,blobmod,lanczos,targetwcs,sbscale) = args
    if lanczos:
        from astrometry.util.miscutils import patch_image
        patched = tim.getImage().copy()
        assert(np.all(np.isfinite(tim.getInvError())))
        okpix = (tim.getInvError() > 0)
        patch_image(patched, okpix)
        del okpix
        imgs = [patched]
        if mod is not None:
            imgs.append(mod)
        if blobmod is not None:
            imgs.append(blobmod)
    else:
        imgs = []

    try:
        Yo,Xo,Yi,Xi,rimgs = resample_with_wcs(
            targetwcs, tim.subwcs, imgs, 3, intType=np.int16)
    except OverlapError:
        return None
    if len(Yo) == 0:
        return None
    mo = None
    bmo = None
    if lanczos:
        im = rimgs[0]
        inext = 1
        if mod is not None:
            mo = rimgs[inext]
            inext += 1
        if blobmod is not None:
            bmo = rimgs[inext]
            inext += 1
        del patched,imgs,rimgs
    else:
        im = tim.getImage ()[Yi,Xi]
        if mod is not None:
            mo = mod[Yi,Xi]
        if blobmod is not None:
            bmo = blobmod[Yi,Xi]
    iv = tim.getInvvar()[Yi,Xi]
    if sbscale:
        fscale = tim.sbscale
        debug('Applying surface-brightness scaling of %.3f to' % fscale, tim.name)
        im *=  fscale
        iv /= (fscale**2)
        if mod is not None:
            mo *= fscale
        if blobmod is not None:
            bmo *= fscale
    if tim.dq is None:
        dq = None
    else:
        dq = tim.dq[Yi,Xi]
    return itim,Yo,Xo,iv,im,mo,bmo,dq
Exemplo n.º 2
0
def _resample_one(args):
    (itim, tim, mod, lanczos, targetwcs) = args
    from astrometry.util.resample import resample_with_wcs, OverlapError
    if lanczos:
        from astrometry.util.miscutils import patch_image
        patched = tim.getImage().copy()
        okpix = (tim.getInvError() > 0)
        patch_image(patched, okpix)
        del okpix
        imgs = [patched]
        if mod is not None:
            imgs.append(mod)
    else:
        imgs = []

    try:
        Yo, Xo, Yi, Xi, rimgs = resample_with_wcs(targetwcs, tim.subwcs, imgs,
                                                  3)
    except OverlapError:
        return None
    if len(Yo) == 0:
        return None
    mo = None
    if lanczos:
        im = rimgs[0]
        if mod is not None:
            mo = rimgs[1]
        del patched, imgs, rimgs
    else:
        im = tim.getImage()[Yi, Xi]
        if mod is not None:
            mo = mods[itim][Yi, Xi]
    iv = tim.getInvvar()[Yi, Xi]
    fscale = tim.sbscale
    print('Applying surface-brightness scaling of %.3f to' % fscale, tim.name)
    im *= fscale
    iv /= (fscale**2)
    if mod is not None:
        mo *= fscale
    if tim.dq is None:
        dq = None
    else:
        dq = tim.dq[Yi, Xi]
    return itim, Yo, Xo, iv, im, mo, dq
Exemplo n.º 3
0
def _resample_one((itim,tim,mod,lanczos,targetwcs)):
    from astrometry.util.resample import resample_with_wcs, OverlapError
    if lanczos:
        from astrometry.util.miscutils import patch_image
        patched = tim.getImage().copy()
        okpix = (tim.getInvError() > 0)
        patch_image(patched, okpix)
        del okpix
        imgs = [patched]
        if mod is not None:
            imgs.append(mod)
    else:
        imgs = []

    try:
        Yo,Xo,Yi,Xi,rimgs = resample_with_wcs(
            targetwcs, tim.subwcs, imgs, 3)
    except OverlapError:
        return None
    if len(Yo) == 0:
        return None
    mo = None
    if lanczos:
        im = rimgs[0]
        if mod is not None:
            mo = rimgs[1]
        del patched,imgs,rimgs
    else:
        im = tim.getImage ()[Yi,Xi]
        if mod is not None:
            mo = mods[itim][Yi,Xi]
    iv = tim.getInvvar()[Yi,Xi]
    fscale = tim.sbscale
    print('Applying surface-brightness scaling of %.3f to' % fscale, tim.name)
    im *=  fscale
    iv /= (fscale**2)
    if mod is not None:
        mo *= fscale
    if tim.dq is None:
        dq = None
    else:
        dq = tim.dq[Yi,Xi]
    return itim,Yo,Xo,iv,im,mo,dq