summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wcsutil/__init__.py25
-rw-r--r--wcsutil/instruments.py62
-rw-r--r--wcsutil/mappings.py3
3 files changed, 43 insertions, 47 deletions
diff --git a/wcsutil/__init__.py b/wcsutil/__init__.py
index a275a18..a7045c2 100644
--- a/wcsutil/__init__.py
+++ b/wcsutil/__init__.py
@@ -61,7 +61,7 @@ class HSTWCS(WCS):
if not isinstance(fobj, pyfits.HDUList):
phdu.close()
-
+ self.instrument ='DEFAULT'
self.setInstrSpecKw(hdr0, ehdr)
self.setPscale()
self.setOrient()
@@ -82,20 +82,27 @@ class HSTWCS(WCS):
if ext != None:
filename = f
- extnum = ext
+ if isinstance(ext,tuple):
+ if ext[0] == '':
+ extnum = ext[1] # handle ext=('',1)
+ else:
+ extnum = ext
+ else:
+ extnum = int(ext)
elif ext == None:
- filename, extname = fileutil.parseFilename(f)
- if extname == None:
- #data may be in the primary array
- extnum = 0
+ filename, ext = fileutil.parseFilename(f)
+ ext = fileutil.parseExtn(ext)
+ if ext[0] == '':
+ extnum = int(ext[1]) #handle ext=('',extnum)
else:
- extnum = fileutil.parseExtn(extname)
+ extnum = ext
phdu = pyfits.open(filename)
hdr0 = pyfits.getheader(filename)
try:
ehdr = pyfits.getheader(filename, ext=extnum)
- except IndexError:
- print 'Unable to get extension %d. /n' % ext
+ except (IndexError,KeyError):
+ print 'Unable to get extension.', extnum
+ raise
elif isinstance(f, pyfits.HDUList):
phdu = f
diff --git a/wcsutil/instruments.py b/wcsutil/instruments.py
index 7ac18f4..ac7982f 100644
--- a/wcsutil/instruments.py
+++ b/wcsutil/instruments.py
@@ -11,6 +11,7 @@ class InstrWCS(object):
def __init__(self, hdr0=None, hdr=None):
self.exthdr = hdr
self.primhdr = hdr0
+ self.set_ins_spec_kw()
def set_ins_spec_kw(self):
"""
@@ -32,62 +33,49 @@ class InstrWCS(object):
def set_filter1(self):
- try:
- self.filter1 = self.primhdr.get('FILTER1', None)
- except:
- self.filter1 = None
+ self.filter1 = self.primhdr.get('FILTER1', None)
+
def set_filter2(self):
- try:
- self.filter2 = self.primhdr.get('FILTER2', None)
- except:
- self.filter2 = None
+ self.filter2 = self.primhdr.get('FILTER2', None)
+
def set_vafactor(self):
- try:
- self.vafactor = self.exthdr.get('vafactor', 1)
- except:
- self.vafactor = 1.
+ self.vafactor = self.exthdr.get('vafactor', 1)
+
def set_naxis1(self):
try:
- self.naxis1 = self.exthdr.get('naxis1', None)
+ self.naxis1 = self.exthdr['naxis1']
except:
- self.naxis1 = None
+ try:
+ self.naxis1 = self.exthdr['npix1']
+ except:
+ self.naxis1 = None
def set_naxis2(self):
try:
- self.naxis2 = self.exthdr.get('naxis2', None)
+ self.naxis2 = self.exthdr['naxis2']
except:
- self.naxis2 = None
+ try:
+ self.naxis2 = self.exthdr['npix2']
+ except:
+ self.naxis2 = None
def set_ltv1(self):
- try:
- self.ltv1 = self.exthdr.get('ltv1', 0.0)
- except:
- self.ltv1 = 0.0
+ self.ltv1 = self.exthdr.get('ltv1', 0.0)
def set_ltv2(self):
- try:
- self.ltv2 = self.exthdr.get('ltv2', 0.0)
- except:
- self.ltv2 = 0.0
-
+ self.ltv2 = self.exthdr.get('ltv2', 0.0)
+
def set_binned(self):
- try:
- self.binned = self.exthdr.get('BINAXIS1', 1)
- except:
- self.binned = 1
+ self.binned = self.exthdr.get('BINAXIS1', 1)
+
def set_chip(self):
- try:
- self.chip = self.exthdr.get('CCDCHIP', 1)
- except:
- self.chip = 1
-
+ self.chip = self.exthdr.get('CCDCHIP', 1)
+
def set_parity(self):
self.parity = [[1.0,0.0],[0.0,-1.0]]
def set_detector(self):
# each instrument has a different kw for detector and it can be
# in a different header, so this is to be handled by the instrument classes
- pass
-
-
+ self.detector = 'DEFAULT'
class ACSWCS(InstrWCS):
"""
diff --git a/wcsutil/mappings.py b/wcsutil/mappings.py
index 48f687f..72059a3 100644
--- a/wcsutil/mappings.py
+++ b/wcsutil/mappings.py
@@ -7,7 +7,8 @@ inst_mappings={'WFPC2': 'WFPC2WCS',
'ACS': 'ACSWCS',
'NICMOS': 'NICMOSWCS',
'STIS': 'STISWCS',
- 'WFC3': 'WFC3WCS'
+ 'WFC3': 'WFC3WCS',
+ 'DEFAULT': 'InstrWCS'
}