summaryrefslogtreecommitdiff
path: root/lib/stwcs/updatewcs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stwcs/updatewcs')
-rw-r--r--lib/stwcs/updatewcs/__init__.py2
-rw-r--r--lib/stwcs/updatewcs/makewcs.py13
-rw-r--r--lib/stwcs/updatewcs/utils.py53
3 files changed, 55 insertions, 13 deletions
diff --git a/lib/stwcs/updatewcs/__init__.py b/lib/stwcs/updatewcs/__init__.py
index 9ab8ade..179612d 100644
--- a/lib/stwcs/updatewcs/__init__.py
+++ b/lib/stwcs/updatewcs/__init__.py
@@ -100,6 +100,7 @@ def updatewcs(input, vacorr=True, tddcorr=True, npolcorr=True, d2imcorr=True,
cleanWCS(f)
makecorr(f, acorr)
+
return files
def makecorr(fname, allowed_corr):
@@ -359,4 +360,3 @@ def getCorrections(instrument):
print "The following corrections will be performed for instrument %s\n" % instrument
for c in acorr: print c,': ' , apply_corrections.cnames[c]
-
diff --git a/lib/stwcs/updatewcs/makewcs.py b/lib/stwcs/updatewcs/makewcs.py
index e422a4a..c2e709d 100644
--- a/lib/stwcs/updatewcs/makewcs.py
+++ b/lib/stwcs/updatewcs/makewcs.py
@@ -1,6 +1,5 @@
from __future__ import division # confidence high
-from stwcs import DEGTORAD, RADTODEG
import numpy as np
from math import sin, sqrt, pow, cos, asin, atan2,pi
import utils
@@ -149,7 +148,7 @@ class MakeWCS(object):
ref_wcs.idcmodel.shift(offsetx,offsety)
rfx, rfy = ref_wcs.idcmodel.cx, ref_wcs.idcmodel.cy
-
+
ref_wcs.setPscale()
offshift = offsh
dec = ref_wcs.wcs.crval[1]
@@ -244,10 +243,10 @@ def troll(roll, dec, v2, v3):
Generic Conversion at STScI.
"""
# Convert all angles to radians
- _roll = DEGTORAD(roll)
- _dec = DEGTORAD(dec)
- _v2 = DEGTORAD(v2 / 3600.)
- _v3 = DEGTORAD(v3 / 3600.)
+ _roll = np.deg2rad(roll)
+ _dec = np.deg2rad(dec)
+ _v2 = np.deg2rad(v2 / 3600.)
+ _v3 = np.deg2rad(v3 / 3600.)
# compute components
sin_rho = sqrt((pow(sin(_v2),2)+pow(sin(_v3),2)) - (pow(sin(_v2),2)*pow(sin(_v3),2)))
@@ -260,7 +259,7 @@ def troll(roll, dec, v2, v3):
B = atan2( sin(A)*cos(_dec), (sin(_dec)*sin_rho - cos(_dec)*cos(rho)*cos(A)))
# compute final value
- troll = RADTODEG(pi - (gamma+B))
+ troll = np.rad2deg(pi - (gamma+B))
return troll
diff --git a/lib/stwcs/updatewcs/utils.py b/lib/stwcs/updatewcs/utils.py
index b7fe7c4..b761efc 100644
--- a/lib/stwcs/updatewcs/utils.py
+++ b/lib/stwcs/updatewcs/utils.py
@@ -57,7 +57,7 @@ def extract_rootname(kwvalue):
else:
rootname = fname
- return rootname
+ return rootname.strip()
def construct_distname(fobj,wcsobj):
"""
@@ -73,15 +73,24 @@ def construct_distname(fobj,wcsobj):
if idcname is None and wcsobj.sip is not None:
idcname = 'UNKNOWN'
- npolname = extract_rootname(fobj[0].header.get('NPOLFILE', "NONE"))
+ npolname = build_npolname(fobj)
if npolname is None and wcsobj.cpdis1 is not None:
npolname = 'UNKNOWN'
- d2imname = extract_rootname(fobj[0].header.get('D2IMFILE', "NONE"))
+ d2imname = build_d2imname(fobj)
if d2imname is None and wcsobj.det2im is not None:
d2imname = 'UNKNOWN'
- sipname = '%s_%s'%(fobj[0].header.get('rootname',""),idcname)
+ sipname = build_sipname(fobj)
+
+ distname = build_distname(sipname,npolname,d2imname)
+ return {'DISTNAME':distname,'SIPNAME':sipname}
+
+def build_distname(sipname,npolname,d2imname):
+ """
+ Core function to build DISTNAME keyword value without the HSTWCS input.
+ """
+
distname = sipname.strip()
if npolname != 'NONE' or d2imname != 'NONE':
if d2imname != 'NONE':
@@ -89,4 +98,38 @@ def construct_distname(fobj,wcsobj):
else:
distname+='-'+npolname.strip()
- return {'DISTNAME':distname,'SIPNAME':sipname} \ No newline at end of file
+ return distname
+
+def build_sipname(fobj):
+ try:
+ sipname = fobj[0].header["SIPNAME"]
+ except KeyError:
+ try:
+ sipname = fobj[0].header['rootname']+'_'+ \
+ extract_rootname(fobj[0].header["IDCTAB"])
+ except KeyError:
+ if 'A_ORDER' in fobj[1].header or 'B_ORDER' in fobj[1].header:
+ sipname = 'UNKNOWN'
+ else:
+ sipname = 'NOMODEL'
+ return sipname
+
+def build_npolname(fobj):
+ try:
+ npolfile = extract_rootname(fobj[0].header["NPOLFILE"])
+ except KeyError:
+ if countExtn(f, 'WCSDVARR'):
+ npolfile = 'UNKNOWN'
+ else:
+ npolfile = 'NOMODEL'
+ return npolfile
+
+def build_d2imname(fobj):
+ try:
+ d2imfile = extract_rootname(fobj[0].header["D2IMFILE"])
+ except KeyError:
+ if countExtn(f, 'D2IMARR'):
+ d2imfile = 'UNKNOWN'
+ else:
+ d2imfile = 'NOMODEL'
+ return d2imfile \ No newline at end of file