diff options
Diffstat (limited to 'wcsutil/convertwcs.py')
-rw-r--r-- | wcsutil/convertwcs.py | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/wcsutil/convertwcs.py b/wcsutil/convertwcs.py deleted file mode 100644 index 2a53d57..0000000 --- a/wcsutil/convertwcs.py +++ /dev/null @@ -1,118 +0,0 @@ -import pyfits -try: - import stwcs - from stwcs import wcsutil -except: - stwcs = None - -from pytools import fileutil - -OPUS_WCSKEYS = ['OCRVAL1','OCRVAL2','OCRPIX1','OCRPIX2', - 'OCD1_1','OCD1_2','OCD2_1','OCD2_2', - 'OCTYPE1','OCTYPE2'] - - -def archive_prefix_OPUS_WCS(fobj,extname='SCI'): - """ Identifies WCS keywords which were generated by OPUS and archived - using a prefix of 'O' for all 'SCI' extensions in the file - - Parameters - ---------- - fobj: string or pyfits.HDUList - Filename or pyfits object of a file - - """ - if stwcs is None: - print '=====================' - print 'The STWCS package is needed to convert an old-style OPUS WCS to an alternate WCS' - print '=====================' - raise ImportError - - - closefits = False - if isinstance(fobj,str): - # A filename was provided as input - fobj = pyfits.open(fobj,mode='update') - closefits=True - - # Define the header - ext = ('sci',1) - hdr = fobj[ext].header - - numextn = fileutil.countExtn(fobj) - extlist = [] - for e in xrange(1,numextn+1): - extlist.append(('sci',e)) - - # Insure that the 'O' alternate WCS is present - if 'O' not in wcsutil.wcskeys(hdr): - # if not, archive the Primary WCS as the default OPUS WCS - wcsutil.archiveWCS(fobj,extlist, wcskey='O', wcsname='OPUS') - - # find out how many SCI extensions are in the image - numextn = fileutil.countExtn(fobj,extname=extname) - if numextn == 0: - extname = 'PRIMARY' - - # create HSTWCS object from PRIMARY WCS - wcsobj = wcsutil.HSTWCS(fobj,ext=ext,wcskey='O') - # get list of WCS keywords - wcskeys = wcsobj.wcs2header().keys() - - # For each SCI extension... - for e in xrange(1,numextn+1): - # Now, look for any WCS keywords with a prefix of 'O' - for key in wcskeys: - okey = 'O'+key[:7] - hdr = fobj[(extname,e)].header - if hdr.has_key(okey): - # Update alternate WCS keyword with prefix-O OPUS keyword value - hdr[key] = hdr[okey] - - if closefits: - fobj.close() - -def create_prefix_OPUS_WCS(fobj,extname='SCI'): - """ Creates alternate WCS with a prefix of 'O' for OPUS generated WCS values - to work with old MultiDrizzle. - - Parameters - ---------- - fobj: string or pyfits.HDUList - Filename or pyfits object of a file - - Raises - ------ - IOError: - if input PyFITS object was not opened in 'update' mode - - """ - # List of O-prefix keywords to create - owcskeys = OPUS_WCSKEYS - - closefits = False - if isinstance(fobj,str): - # A filename was provided as input - fobj = pyfits.open(fobj,mode='update') - closefits=True - else: - # check to make sure this FITS obj has been opened in update mode - if fobj.fileinfo(0)['filemode'] != 'update': - print 'File not opened with "mode=update". Quitting...' - raise IOError - - # check for existance of O-prefix WCS - if not fobj['sci',1].header.has_key(owcskeys[0]): - - # find out how many SCI extensions are in the image - numextn = fileutil.countExtn(fobj,extname=extname) - if numextn == 0: - extname = '' - for extn in xrange(1,numextn+1): - hdr = fobj[(extname,extn)].header - for okey in owcskeys: - hdr.update(okey,hdr[okey[1:]+'O']) - - # Close FITS image if we had to open it... - if closefits: - fobj.close() |