Coverage for soxspipe/commonutils/detector_lookup.py : 97%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1#!/usr/bin/env python
2# encoding: utf-8
3"""
4*return a dictionary of detector characteristics and parameters*
6:Author:
7 David Young & Marco Landoni
9:Date Created:
10 August 13, 2020
11"""
12################# GLOBAL IMPORTS ####################
13from builtins import object
14import sys
15import os
16os.environ['TERM'] = 'vt100'
17from fundamentals import tools
20class detector_lookup(object):
21 """
22 *return a dictionary of detector characteristics and parameters*
24 **Key Arguments:**
25 - ``log`` -- logger
26 - ``settings`` -- the settings dictionary
28 **Usage:**
30 To initiate a detector_lookup object, use the following:
32 ```python
33 from soxspipe.commonutils import detector_lookup
34 detector = detector_lookup(
35 log=log,
36 settings=settings
37 ).get("NIR")
38 print(detector["science-pixels"])
39 ```
41 """
43 def __init__(
44 self,
45 log,
46 settings=False,
47 ):
48 self.log = log
49 log.debug("instansiating a new 'detector_lookup' object")
50 self.settings = settings
52 # SELECT THE INSTRUMENT AND READ THE KEYWORD DICTIONARY IN RESOURCES
53 # FOLDER
54 if "instrument" in settings:
55 self.instrument = settings["instrument"]
56 else:
57 self.instrument = "soxs"
58 self.dectDict = self._select_dictionary()
60 return None
62 def get(self,
63 arm):
64 """
65 *return a dictionary of detector characteristics and parameters*
67 **Key Arguments:**
68 - ``arm`` -- the detector parameters to return
69 """
70 self.log.debug('starting the ``get`` method')
72 arm = arm.upper()
74 if arm not in self.dectDict:
75 raise LookupError(f"the detector '{arm}' cannot be found in the detector parameters lookup file")
77 self.log.debug('completed the ``get`` method')
78 return self.dectDict[arm]
80 def _select_dictionary(
81 self):
82 """*select the detector parameter dictionary based on the instrument passed via the settings*
84 **Return:**
85 - ``dectDict`` -- the python dictionary of detector parameters
87 **Usage**
89 ```python
90 from soxspipe.commonutils import detector_lookup
91 detector = detector_lookup(
92 log=log,
93 settings=settings
94 )
95 dectDict = detector._select_dictionary()
96 ```
97 """
98 self.log.debug('starting the ``_select_dictionary`` method')
100 # GENERATE PATH TO YAML DICTIONARY
101 yamlFilePath = os.path.dirname(os.path.dirname(
102 __file__)) + "/resources/" + self.instrument + "_detector_parameters.yaml"
104 # YAML CONTENT TO DICTIONARY
105 import yaml
106 with open(yamlFilePath, 'r') as stream:
107 dectDict = yaml.load(stream)
109 self.log.debug('completed the ``_select_dictionary`` method')
110 return dectDict