summaryrefslogtreecommitdiff
path: root/lib/stwcs/wcsutil/instruments.py
diff options
context:
space:
mode:
authorNadia Dencheva <nadia.astropy@gmail.com>2016-08-07 12:23:24 -0400
committerGitHub <noreply@github.com>2016-08-07 12:23:24 -0400
commita2e16e39b0eb8ac0251a6473c60fee0d437c3a5f (patch)
tree7b6771e9c1974852eb8a283507677651078ce32a /lib/stwcs/wcsutil/instruments.py
parent86d1bc5a77491770d45b86e5cf18b79ded68fb9b (diff)
parent2dc0676bc00f66a87737e78484876051633b731a (diff)
downloadstwcs_hcf-a2e16e39b0eb8ac0251a6473c60fee0d437c3a5f.tar.gz
Merge pull request #9 from nden/refactor-and-tests
restructure and add stwcs tests
Diffstat (limited to 'lib/stwcs/wcsutil/instruments.py')
-rw-r--r--lib/stwcs/wcsutil/instruments.py320
1 files changed, 0 insertions, 320 deletions
diff --git a/lib/stwcs/wcsutil/instruments.py b/lib/stwcs/wcsutil/instruments.py
deleted file mode 100644
index f662513..0000000
--- a/lib/stwcs/wcsutil/instruments.py
+++ /dev/null
@@ -1,320 +0,0 @@
-from __future__ import absolute_import, division, print_function # confidence high
-
-from .mappings import ins_spec_kw
-
-class InstrWCS(object):
- """
- A base class for instrument specific keyword definition.
- It prvides a default implementation (modeled by ACS) for
- all set_kw methods.
- """
- def __init__(self, hdr0=None, hdr=None):
- self.exthdr = hdr
- self.primhdr = hdr0
- self.set_ins_spec_kw()
-
- def set_ins_spec_kw(self):
- """
- This method MUST call all set_kw methods.
- There should be a set_kw method for all kw listed in
- mappings.ins_spec_kw. TypeError handles the case when
- fobj='DEFAULT'.
- """
- self.set_idctab()
- self.set_offtab()
- self.set_date_obs()
- self.set_ra_targ()
- self.set_dec_targ()
- self.set_pav3()
- self.set_detector()
- self.set_filter1()
- self.set_filter2()
- self.set_vafactor()
- self.set_naxis1()
- self.set_naxis2()
- self.set_ltv1()
- self.set_ltv2()
- self.set_binned()
- self.set_chip()
- self.set_parity()
-
- def set_idctab(self):
- try:
- self.idctab = self.primhdr['IDCTAB']
- except (KeyError, TypeError):
- self.idctab = None
-
- def set_offtab(self):
- try:
- self.offtab = self.primhdr['OFFTAB']
- except (KeyError, TypeError):
- self.offtab = None
-
- def set_date_obs(self):
- try:
- self.date_obs = self.primhdr['DATE-OBS']
- except (KeyError, TypeError):
- self.date_obs = None
-
- def set_ra_targ(self):
- try:
- self.ra_targ = self.primhdr['RA-TARG']
- except (KeyError, TypeError):
- self.ra_targ = None
-
- def set_dec_targ(self):
- try:
- self.dec_targ = self.primhdr['DEC-TARG']
- except (KeyError, TypeError):
- self.dec_targ = None
-
- def set_pav3(self):
- try:
- self.pav3 = self.primhdr['PA_V3']
- except (KeyError, TypeError):
- self.pav3 = None
-
- def set_filter1(self):
- try:
- self.filter1 = self.primhdr['FILTER1']
- except (KeyError, TypeError):
- self.filter1 = None
-
- def set_filter2(self):
- try:
- self.filter2 = self.primhdr['FILTER2']
- except (KeyError, TypeError):
- self.filter2 = None
-
- def set_vafactor(self):
- try:
- self.vafactor = self.exthdr['VAFACTOR']
- except (KeyError, TypeError):
- self.vafactor = 1
-
- def set_naxis1(self):
- try:
- self.naxis1 = self.exthdr['naxis1']
- except (KeyError, TypeError):
- try:
- self.naxis1 = self.exthdr['npix1']
- except (KeyError, TypeError):
- self.naxis1 = None
-
- def set_naxis2(self):
- try:
- self.naxis2 = self.exthdr['naxis2']
- except (KeyError, TypeError):
- try:
- self.naxis2 = self.exthdr['npix2']
- except (KeyError, TypeError):
- self.naxis2 = None
-
- def set_ltv1(self):
- try:
- self.ltv1 = self.exthdr['LTV1']
- except (KeyError, TypeError):
- self.ltv1 = 0.0
-
- def set_ltv2(self):
- try:
- self.ltv2 = self.exthdr['LTV2']
- except (KeyError, TypeError):
- self.ltv2 = 0.0
-
- def set_binned(self):
- try:
- self.binned = self.exthdr['BINAXIS1']
- except (KeyError, TypeError):
- self.binned = 1
-
- def set_chip(self):
- try:
- self.chip = self.exthdr['CCDCHIP']
- except (KeyError, TypeError):
- self.chip = 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
- self.detector = 'DEFAULT'
-
-class ACSWCS(InstrWCS):
- """
- get instrument specific kw
- """
-
- def __init__(self, hdr0, hdr):
- self.primhdr = hdr0
- self.exthdr = hdr
- InstrWCS.__init__(self,hdr0, hdr)
- self.set_ins_spec_kw()
-
- def set_detector(self):
- try:
- self.detector = self.primhdr['DETECTOR']
- except KeyError:
- print('ERROR: Detector kw not found.\n')
- raise
-
- def set_parity(self):
- parity = {'WFC':[[1.0,0.0],[0.0,-1.0]],
- 'HRC':[[-1.0,0.0],[0.0,1.0]],
- 'SBC':[[-1.0,0.0],[0.0,1.0]]}
-
- if self.detector not in list(parity.keys()):
- parity = InstrWCS.set_parity(self)
- else:
- self.parity = parity[self.detector]
-
-
-class WFPC2WCS(InstrWCS):
-
-
- def __init__(self, hdr0, hdr):
- self.primhdr = hdr0
- self.exthdr = hdr
- InstrWCS.__init__(self,hdr0, hdr)
- self.set_ins_spec_kw()
-
- def set_filter1(self):
- self.filter1 = self.primhdr.get('FILTNAM1', None)
- if self.filter1 == " " or self.filter1 == None:
- self.filter1 = 'CLEAR1'
-
- def set_filter2(self):
- self.filter2 = self.primhdr.get('FILTNAM2', None)
- if self.filter2 == " " or self.filter2 == None:
- self.filter2 = 'CLEAR2'
-
-
- def set_binned(self):
- mode = self.primhdr.get('MODE', 1)
- if mode == 'FULL':
- self.binned = 1
- elif mode == 'AREA':
- self.binned = 2
-
- def set_chip(self):
- self.chip = self.exthdr.get('DETECTOR', 1)
-
- def set_parity(self):
- self.parity = [[-1.0,0.],[0.,1.0]]
-
- def set_detector(self):
- try:
- self.detector = self.exthdr['DETECTOR']
- except KeyError:
- print('ERROR: Detector kw not found.\n')
- raise
-
-
-class WFC3WCS(InstrWCS):
- """
- Create a WFC3 detector specific class
- """
-
- def __init__(self, hdr0, hdr):
- self.primhdr = hdr0
- self.exthdr = hdr
- InstrWCS.__init__(self,hdr0, hdr)
- self.set_ins_spec_kw()
-
- def set_detector(self):
- try:
- self.detector = self.primhdr['DETECTOR']
- except KeyError:
- print('ERROR: Detector kw not found.\n')
- raise
-
- def set_filter1(self):
- self.filter1 = self.primhdr.get('FILTER', None)
- if self.filter1 == " " or self.filter1 == None:
- self.filter1 = 'CLEAR'
-
- def set_filter2(self):
- #Nicmos idc tables do not allow 2 filters.
- self.filter2 = 'CLEAR'
-
- def set_parity(self):
- parity = {'UVIS':[[-1.0,0.0],[0.0,1.0]],
- 'IR':[[-1.0,0.0],[0.0,1.0]]}
-
- if self.detector not in list(parity.keys()):
- parity = InstrWCS.set_parity(self)
- else:
- self.parity = parity[self.detector]
-
-class NICMOSWCS(InstrWCS):
- """
- Create a NICMOS specific class
- """
-
- def __init__(self, hdr0, hdr):
- self.primhdr = hdr0
- self.exthdr = hdr
- InstrWCS.__init__(self,hdr0, hdr)
- self.set_ins_spec_kw()
-
- def set_parity(self):
- self.parity = [[-1.0,0.],[0.,1.0]]
-
- def set_filter1(self):
- self.filter1 = self.primhdr.get('FILTER', None)
- if self.filter1 == " " or self.filter1 == None:
- self.filter1 = 'CLEAR'
-
- def set_filter2(self):
- #Nicmos idc tables do not allow 2 filters.
- self.filter2 = 'CLEAR'
-
- def set_chip(self):
- self.chip = self.detector
-
- def set_detector(self):
- try:
- self.detector = self.primhdr['CAMERA']
- except KeyError:
- print('ERROR: Detector kw not found.\n')
- raise
-
-class STISWCS(InstrWCS):
- """
- A STIS specific class
- """
-
- def __init__(self, hdr0, hdr):
- self.primhdr = hdr0
- self.exthdr = hdr
- InstrWCS.__init__(self,hdr0, hdr)
- self.set_ins_spec_kw()
-
- def set_parity(self):
- self.parity = [[-1.0,0.],[0.,1.0]]
-
- def set_filter1(self):
- self.filter1 = self.exthdr.get('OPT_ELEM', None)
- if self.filter1 == " " or self.filter1 == None:
- self.filter1 = 'CLEAR1'
-
- def set_filter2(self):
- self.filter2 = self.exthdr.get('FILTER', None)
- if self.filter2 == " " or self.filter2 == None:
- self.filter2 = 'CLEAR2'
-
- def set_detector(self):
- try:
- self.detector = self.primhdr['DETECTOR']
- except KeyError:
- print('ERROR: Detector kw not found.\n')
- raise
-
- def set_date_obs(self):
- try:
- self.date_obs = self.exthdr['DATE-OBS']
- except (KeyError, TypeError):
- self.date_obs = None
-