diff options
Diffstat (limited to 'lib/__init__.py')
-rw-r--r-- | lib/__init__.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/__init__.py b/lib/__init__.py new file mode 100644 index 0000000..08e421b --- /dev/null +++ b/lib/__init__.py @@ -0,0 +1,47 @@ +import wcsutil +from wcsutil import HSTWCS +from pytools import fileutil, parseinput +import pyfits + +#to avoid relative imports +import mappings +from mappings import basic_wcs +import distortion +import pywcs + +def restoreWCS(fnames): + """ + Given a list of fits file names restore the original basic WCS kw + and write out the files. This overwrites the original files. + """ + files = parseinput.parseinput(fnames)[0] + for f in files: + isfits, ftype = fileutil.isFits(f) + if not isfits or (isfits and ftype == 'waiver'): + print "RestoreWCS works only on multiextension fits files." + return + else: + fobj = pyfits.open(f, mode='update') + hdr0 = fobj[0].header + for ext in fobj: + try: + extname = ext.header['EXTNAME'].lower() + except KeyError: + continue + if extname in ['sci', 'err', 'sdq']: + hdr = ext.header + owcs = HSTWCS(hdr0, hdr) + #Changed restore to update the attributes ??? + # this may need to be changed + backup = owcs.restore() + if not backup: + print '\No archived keywords found.\n' + continue + else: + for kw in basic_wcs: + nkw = ('O'+kw)[:7] + if backup.has_key(kw): + hdr.update(kw, hdr[nkw]) + fobj.close() + + |