Пример #1
0
def removeAllAltWCS(hdulist,extlist):
    """
    Removes all alternate WCS solutions from the header
    """
    original_logging_level = log.level
    log.setLevel(logutil.logging.WARNING)

    try:
        hdr = hdulist[extlist[0]].header
        wkeys = altwcs.wcskeys(hdr)
        if ' ' in wkeys:
            wkeys.remove(' ')
        for extn in extlist:
            for wkey in wkeys:
                if wkey == 'O':
                    continue
                altwcs.deleteWCS(hdulist,extn,wkey)

            # Forcibly remove OPUS WCS Keywords, since deleteWCS will not do it
            hwcs = readAltWCS(hdulist,extn,wcskey='O')

            if hwcs is None:
                continue

            for k in hwcs.keys():
                if k not in ['DATE-OBS','MJD-OBS'] and k in hdr:
                    try:
                        del hdr[k]
                    except KeyError:
                        pass
    except:
        raise

    finally:
        log.setLevel(original_logging_level) # restore original logging level
Пример #2
0
def removeAllAltWCS(hdulist,extlist):
    """
    Removes all alternate WCS solutions from the header
    """
    original_logging_level = log.level
    log.setLevel(logutil.logging.WARNING)

    try:
        hdr = hdulist[extlist[0]].header
        wkeys = altwcs.wcskeys(hdr)
        if ' ' in wkeys:
            wkeys.remove(' ')
        for extn in extlist:
            for wkey in wkeys:
                if wkey == 'O':
                    continue
                altwcs.deleteWCS(hdulist,extn,wkey)

            # Forcibly remove OPUS WCS Keywords, since deleteWCS will not do it
            hwcs = readAltWCS(hdulist,extn,wcskey='O')

            if hwcs is None:
                continue

            for k in hwcs.keys():
                if k not in ['DATE-OBS','MJD-OBS'] and k in hdr:
                    try:
                        del hdr[k]
                    except KeyError:
                        pass
    except:
        raise

    finally:
        log.setLevel(original_logging_level) # restore original logging level
Пример #3
0
def updatehdr(fname, wcsobj, wkey, wcsname, ext=1, clobber=False):
    hdr = fits.getheader(fname, ext=ext)
    all_keys = list(string.ascii_uppercase)
    if wkey.upper() not in all_keys:
        raise KeyError("wkey must be one character: A-Z")
    if wkey not in altwcs.available_wcskeys(hdr):
        if not clobber:
            raise ValueError("wkey %s is already in use. Use clobber=True to overwrite it or specify a different key." %wkey)
        else:
            altwcs.deleteWCS(fname, ext=ext, wcskey='V')
    f = fits.open(fname, mode='update')

    hwcs = wcs2header(wcsobj)
    wcsnamekey = 'WCSNAME' + wkey
    f[ext].header[wcsnamekey] = wcsname
    for k in hwcs:
        f[ext].header[k[:7]+wkey] = hwcs[k]

    f.close()
Пример #4
0
def restoreWCSdrz(img, ext):
    wcs = HSTWCS(img, ext=ext, wcskey='A')
    print 'Removing any previous alternative WCS for image %s[%s]' % (img, ext)
    names = wcsnames(img, ext)
    for k, n in names.iteritems():
        if k not in [' ', 'O']:
            deleteWCS(img, ext, wcskey=k, wcsname=n)

    with fits.open(img, mode='update') as hdu:
        hdu[ext].header['CD1_1'] = wcs.wcs.cd[0][0]
        hdu[ext].header['CD1_2'] = wcs.wcs.cd[0][1]
        hdu[ext].header['CD2_1'] = wcs.wcs.cd[1][0]
        hdu[ext].header['CD2_2'] = wcs.wcs.cd[1][1]
        hdu[ext].header['CRVAL1'] = wcs.wcs.crval[0]
        hdu[ext].header['CRVAL2'] = wcs.wcs.crval[1]
        hdu[ext].header['CRPIX1'] = wcs.wcs.crpix[0]
        hdu[ext].header['CRPIX2'] = wcs.wcs.crpix[1]
        hdu[ext].header['ORIENTAT'] = 0.0
        hdu[ext].header['WCSNAME'] = 'DRZWCS'
        del hdu[ext].header['LATPOLE']
        del hdu[ext].header['LONPOLE']
Пример #5
0
def removeAllAltWCS(hdulist,extlist):
    """
    Removes all alternate WCS solutions from the header
    """
    hdr = hdulist[extlist[0]].header
    wkeys = altwcs.wcskeys(hdr)
    if ' ' in wkeys:
        wkeys.remove(' ')
    for extn in extlist:
        for wkey in wkeys:
            altwcs.deleteWCS(hdulist,extn,wkey)

        # Forcibly remove OPUS WCS Keywords, since deleteWCS will not do it
        hwcs = altwcs.readAltWCS(hdulist,extn,wcskey='O')
        if hwcs is None:
            continue
        for k in hwcs.keys():
            if k not in ['DATE-OBS','MJD-OBS'] and k in hdr:
                try:
                    del hdr[k]
                except KeyError:
                    pass
Пример #6
0
def restoreWCSdrz(img, ext):
    wcs = HSTWCS(img, ext=ext, wcskey='A')
    print('Removing any previous alternative WCS for image %s[%s]' %
          (img, ext))
    names = wcsnames(img, ext)
    for k, n in names.items():
        if k not in [' ', 'O']:
            deleteWCS(img, ext, wcskey=k, wcsname=n)

    with fits.open(img, mode='update') as hdu:
        hdu[ext].header['CD1_1'] = wcs.wcs.cd[0][0]
        hdu[ext].header['CD1_2'] = wcs.wcs.cd[0][1]
        hdu[ext].header['CD2_1'] = wcs.wcs.cd[1][0]
        hdu[ext].header['CD2_2'] = wcs.wcs.cd[1][1]
        hdu[ext].header['CRVAL1'] = wcs.wcs.crval[0]
        hdu[ext].header['CRVAL2'] = wcs.wcs.crval[1]
        hdu[ext].header['CRPIX1'] = wcs.wcs.crpix[0]
        hdu[ext].header['CRPIX2'] = wcs.wcs.crpix[1]
        hdu[ext].header['ORIENTAT'] = 0.0
        hdu[ext].header['WCSNAME'] = 'DRZWCS'
        del hdu[ext].header['LATPOLE']
        del hdu[ext].header['LONPOLE']