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
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()
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()
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))
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