diff options
-rw-r--r-- | lib/stwcs/distortion/mutil.py | 12 | ||||
-rw-r--r-- | lib/stwcs/updatewcs/corrections.py | 18 | ||||
-rw-r--r-- | lib/stwcs/wcsutil/altwcs.py | 5 |
3 files changed, 28 insertions, 7 deletions
diff --git a/lib/stwcs/distortion/mutil.py b/lib/stwcs/distortion/mutil.py index 07ec9b4..80fd6bf 100644 --- a/lib/stwcs/distortion/mutil.py +++ b/lib/stwcs/distortion/mutil.py @@ -263,17 +263,29 @@ def read_tdd_coeffs(phdr, chip=1): skew_coeffs['TDD_B'] = None skew_coeffs['TDD_CY_BETA'] = None skew_coeffs['TDD_CY_ALPHA'] = None + skew_coeffs['TDD_CX_BETA'] = None + skew_coeffs['TDD_CX_ALPHA'] = None if "TDD_CYB1" in phdr: # We have 2014-calibrated TDD correction to apply, not J.A.-derived values print "Using 2014-calibrated TDD correction..." skew_coeffs['TDD_DATE'] = phdr['TDD_DATE'] + # Read coefficients for TDD Y coefficient cyb_kw = 'TDD_CYB{0}'.format(int(chip)) skew_coeffs['TDD_CY_BETA'] = phdr.get(cyb_kw,None) cya_kw = 'TDD_CYA{0}'.format(int(chip)) tdd_cya = phdr.get(cya_kw,None) if tdd_cya == 0 or tdd_cya == 'N/A': tdd_cya = None skew_coeffs['TDD_CY_ALPHA'] = tdd_cya + + # Read coefficients for TDD X coefficient + cxb_kw = 'TDD_CXB{0}'.format(int(chip)) + skew_coeffs['TDD_CX_BETA'] = phdr.get(cxb_kw,None) + cxa_kw = 'TDD_CXA{0}'.format(int(chip)) + tdd_cxa = phdr.get(cxa_kw,None) + if tdd_cxa == 0 or tdd_cxa == 'N/A': tdd_cxa = None + skew_coeffs['TDD_CX_ALPHA'] = tdd_cxa + else: if "TDDORDER" in phdr: n = int(phdr["TDDORDER"]) diff --git a/lib/stwcs/updatewcs/corrections.py b/lib/stwcs/updatewcs/corrections.py index d6d2954..5a51868 100644 --- a/lib/stwcs/updatewcs/corrections.py +++ b/lib/stwcs/updatewcs/corrections.py @@ -75,7 +75,9 @@ class TDDCorr(object): 'OCX11':ext_wcs.idcmodel.cx[1,1],'OCY10':ext_wcs.idcmodel.cy[1,0], 'OCY11':ext_wcs.idcmodel.cy[1,1], 'TDD_CYA':ext_wcs.idcmodel.refpix['skew_coeffs']['TDD_CY_ALPHA'], - 'TDD_CYB':ext_wcs.idcmodel.refpix['skew_coeffs']['TDD_CY_BETA']} + 'TDD_CYB':ext_wcs.idcmodel.refpix['skew_coeffs']['TDD_CY_BETA'], + 'TDD_CXA':ext_wcs.idcmodel.refpix['skew_coeffs']['TDD_CX_ALPHA'], + 'TDD_CXB':ext_wcs.idcmodel.refpix['skew_coeffs']['TDD_CX_BETA']} else: alpha, beta = cls.compute_alpha_beta(ext_wcs) @@ -89,7 +91,7 @@ class TDDCorr(object): newkw = {'TDDALPHA': alpha, 'TDDBETA':beta, 'OCX10':ext_wcs.idcmodel.cx[1,0], 'OCX11':ext_wcs.idcmodel.cx[1,1],'OCY10':ext_wcs.idcmodel.cy[1,0], 'OCY11':ext_wcs.idcmodel.cy[1,1], - 'TDD_CYA':None, 'TDD_CYB':None} + 'TDD_CYA':None, 'TDD_CYB':None, 'TDD_CXA':None, 'TDD_CXB':None} return newkw updateWCS = classmethod(updateWCS) @@ -108,10 +110,18 @@ class TDDCorr(object): skew_coeffs = hwcs.idcmodel.refpix['skew_coeffs'] cy_beta = skew_coeffs['TDD_CY_BETA'] cy_alpha = skew_coeffs['TDD_CY_ALPHA'] + delta_date = rday - skew_coeffs['TDD_DATE'] if cy_alpha is None: - hwcs.idcmodel.cy[1,1] += cy_beta*(rday - skew_coeffs['TDD_DATE']) + hwcs.idcmodel.cy[1,1] += cy_beta*delta_date else: - hwcs.idcmodel.cy[1,1] = cy_alpha + cy_beta*(rday - skew_coeffs['TDD_DATE']) + new_beta = cy_alpha + cy_beta*delta_date + hwcs.idcmodel.cy[1,1] = new_beta + + cx_beta = skew_coeffs['TDD_CX_BETA'] + cx_alpha = skew_coeffs['TDD_CX_ALPHA'] + if cx_alpha is not None: + new_beta = cx_alpha + cx_beta*delta_date + hwcs.idcmodel.cx[1,1] = new_beta apply_tdd2idc2 = classmethod(apply_tdd2idc2) diff --git a/lib/stwcs/wcsutil/altwcs.py b/lib/stwcs/wcsutil/altwcs.py index bdb9b3b..6a2ddbd 100644 --- a/lib/stwcs/wcsutil/altwcs.py +++ b/lib/stwcs/wcsutil/altwcs.py @@ -350,8 +350,7 @@ def deleteWCS(fname, ext, wcskey=" ", wcsname=" "): if hwcs is None: continue for k in hwcs.keys(): - if k in hdr: - del hdr[k] + del hdr[k] #del hdr['ORIENT'+wkey] prexts.append(i) if prexts != []: @@ -434,7 +433,7 @@ def _restore(fobj, ukey, fromextnum, norient = np.rad2deg(np.arctan2(hwcs['CD1_2'+'%s' %ukey], hwcs['CD2_2'+'%s' %ukey])) fobj[toextension].header['ORIENTAT'] = norient # Reset 2014 TDD keywords prior to computing new values (if any are computed) - for kw in ['TDD_CYA','TDD_CYB']: + for kw in ['TDD_CYA','TDD_CYB','TDD_CXA','TDD_CXB']: if kw in fobj[toextension].header: fobj[toextension].header[kw] = 0.0 |