Esempio n. 1
0
    def configOptStateEstiData(self,
                               wavelengthTable="effWaveLength.txt",
                               intrincZkFileName="intrinsic_zn",
                               y2CorrectionFileName="y2.txt"):
        """Do the configuration of OptStateEstiDataDecorator class.

        Parameters
        ----------
        wavelengthTable : str, optional
            File name of effective wavelength for each filter in um. (the
            default is "effWaveLength.txt".)
        intrincZkFileName : str, optional
            Intric zk file name. (the default is "intrinsic_zn".)
        y2CorrectionFileName : str, optional
            y2 correction file name. (the default is "y2.txt".)
        """

        wavelengthTablePath = os.path.join(self.getConfigDir(),
                                           wavelengthTable)
        self._wavelengthTable = ParamReader(filePath=wavelengthTablePath)

        y2CorrectionFilePath = os.path.join(self.getInstDir(),
                                            y2CorrectionFileName)
        self._y2CorrectionFile = ParamReader(filePath=y2CorrectionFilePath)

        self._intrincZkFileName = intrincZkFileName
Esempio n. 2
0
    def config(self,
               configDir,
               instName=InstName.LSST,
               zkAndDofIdxArraySetFileName="zkAndDofIdxArraySet.txt",
               mappingFileName="sensorNameToFieldIdx.txt",
               idxDofFileName="idxDOF.txt",
               sensorIdToNameFileName="sensorIdToName.txt"):
        """Do the configuration of DataShare class.

        zk: Annular Zernike polynomial.
        DOF: Degree of Freedom.

        Parameters
        ----------
        configDir : str
            Configuration directory.
        instName : enum 'InstName', optional
            Instrument name. (the default is InstName.LSST.)
        zkAndDofIdxArraySetFileName : str, optional
            File name of zk and DOF index array set. (the default is
            "zkAndDofIdxArraySet.txt".)
        mappingFileName : str, optional
            File name of mapping abbreviated sensor name to index of optical
            field.  (the default is "sensorNameToFieldIdx.txt".)
        idxDofFileName : str, optional
            Index of DOF file name. (the default is "idxDOF.txt".)
        sensorIdToNameFileName : str, optional
            Configuration file name to map sensor Id to name. (the default
            is "sensorIdToName.txt".)
        """

        self.configDir = configDir
        self.instName = instName

        zkAndDofIdxArraySetFilePath = os.path.join(
            configDir, zkAndDofIdxArraySetFileName)
        self._zkAndDofIdxArraySetFile = ParamReader(
            filePath=zkAndDofIdxArraySetFilePath)

        mappingFilePath = os.path.join(self.getInstDir(), mappingFileName)
        self._mappingFile = ParamReader(filePath=mappingFilePath)

        idxDofFilePath = os.path.join(configDir, idxDofFileName)
        self._idxDofFile = ParamReader(filePath=idxDofFilePath)

        sensorIdToNameFilePath = os.path.join(configDir,
                                              sensorIdToNameFileName)
        self._sensorIdToNameFile = ParamReader(filePath=sensorIdToNameFilePath)

        senMfilePath = self._getSenMfilePath(reMatchStr=r"\AsenM\S+")
        self._senMfile = ParamReader(filePath=senMfilePath)

        self._readZn3AndDofIdxArray()
Esempio n. 3
0
    def __init__(self):
        """Initialization of data share class."""

        self.configDir = ""
        self.instName = InstName.LSST

        self.zn3Idx = np.array([], dtype=int)
        self.dofIdx = np.array([], dtype=int)

        self._zkAndDofIdxArraySetFile = ParamReader()
        self._senMfile = ParamReader()
        self._mappingFile = ParamReader()
        self._idxDofFile = ParamReader()
        self._sensorIdToNameFile = ParamReader()
Esempio n. 4
0
    def __init__(self, decoratedObj):
        """Initialization of optical state estimator data decorator class.

        Parameters
        ----------
        decoratedObj : obj
            Decorated object.
        """

        super(OptStateEstiDataDecorator, self).__init__(decoratedObj)

        self._intrincZkFileName = ""
        self._intrincZkFile = ParamReader()
        self._wavelengthTable = ParamReader()
        self._y2CorrectionFile = ParamReader()
    def setUp(self):

        self.configDir = os.path.join(getModulePath(), "tests", "testData")
        self.fileName = "zkAndDofIdxArraySet.txt"

        filePath = os.path.join(self.configDir, self.fileName)
        self.paramReader = ParamReader(filePath=filePath)
    def testConstructor(self):

        paramReader = ParamReader()
        self.assertEqual(paramReader.getFilePath(), "")
        self.assertEqual(paramReader.getTxtContent(), "")

        matContent = paramReader.getMatContent()
        self.assertEqual(len(matContent), 0)
        self.assertTrue(isinstance(matContent, np.ndarray))
Esempio n. 7
0
    def getIntrinsicZk(self, filterType, fieldIdx):
        """Get the intrinsic zk of specific filter based on the array of
        field index.

        Parameters
        ----------
        filterType : enum 'FilterType'
            Active filter type.
        fieldIdx : numpy.ndarray[int] or list[int]
            Field index array.

        Returns
        -------
        numpy.ndarray
            Instrinsic zk of specific effective wavelength in um.
        """

        # Get the intrinsicZk file path
        reMatchStrTail = ""
        if (filterType != FilterType.REF):
            reMatchStrTail = "_" + filterType.name

        reMatchStr = r"\A%s%s[.]\S+" % (self._intrincZkFileName,
                                        reMatchStrTail)
        filePaths = getDirFiles(self.getInstDir())
        zkFilePath = getMatchFilePath(reMatchStr, filePaths)

        # Remap the zk index for z0-z2
        zkIdx = self.getZn3Idx() + 3

        # Get the intrinsicZk with the consideration of effective wavelength
        self._intrincZkFile = ParamReader(filePath=zkFilePath)
        intrinsicZk = self._intrincZkFile.getMatContent()
        intrinsicZk = intrinsicZk[np.ix_(fieldIdx, zkIdx)]
        intrinsicZk = intrinsicZk * self.getEffWave(filterType)

        return intrinsicZk