Example #1
0
    def __init__(self, configFile: str = "") -> None:
        """Initialise with default configuration options
        
        Parameters
        ----------
        configFile : str
            Path to the configuration file
        """

        self.configFile: str = configFile
        self.configParams = loadConfig(self.configFile)
        # options dictionary
        self.flags: Dict[str, bool] = {}
        self.configure()
Example #2
0
    def __init__(self, decParams: DecimationParams) -> None:
        """Initialise with decParams and default window parameters

        Parameters
        ----------
        decParams : int
            Decimation level
        """

        self.decParams = decParams
        config = loadConfig()
        self.minSize = config["Window"]["minwindowsize"]
        self.minOlap = config["Window"]["minoverlapsize"]
        self.windowFactor = config["Window"]["windowfactor"]
        self.overlapFraction = config["Window"]["overlapfraction"]
        self.calcParameters(self.windowFactor, self.overlapFraction)
Example #3
0
 def __init__(self, refTime: datetime, timeData: TimeData, winSize: int,
              winOlap: int):
     self.timeData: TimeData = timeData
     self.numSamples: int = timeData.numSamples
     self.sampleFreq: float = timeData.sampleFreq
     self.winSize: int = winSize
     self.winDuration: float = (winSize - 1) / timeData.sampleFreq
     self.winOlap: int = winOlap
     self.chans: List[str] = timeData.chans
     # refTime and dataTime are already datetime objects
     self.refTime: datetime = refTime
     self.dataTime: datetime = timeData.startTime
     # min window warning setting
     config = loadConfig()
     self.minWindows: int = config["Window"]["minwindows"]
     # initialise
     self.initialiseWindows()
     self.calcWindowTimes()
Example #4
0
    def __init__(self, calDirectory: str) -> None:
        """Set the calibration directory and initialise

        Calibrator will automatically find calibration files in the provided directory
    
        Parameters
        ----------
        calDirectory : str
            Path of directory containing calibration files
        """

        self.calExt, self.calFormats = getKnownCalibrationFormats()
        self.calFiles: List[str] = []
        self.numCalFiles = 0
        self.calDir: str = calDirectory
        self.findCalFiles()
        # set whether to use theoretical calibration functions
        conf = loadConfig()
        self.extend: bool = conf["Calibration"]["extend"]
        self.useTheoretical: bool = conf["Calibration"]["usetheoretical"]
Example #5
0
    def __init__(self, sampleFreq: float, winSamples: int) -> None:
        """Initialise 
    
        Parameters
        ----------
        sampleFreq : float
            Sampling frequency of time data
        winSamples : int
            Number of samples in a window 
        """

        self.sampleFreq: float = sampleFreq
        self.numSamples: int = winSamples
        config = loadConfig()
        self.window: bool = config["Spectra"]["applywindow"]
        self.windowFunc: np.ndarray = signal.get_window(
            config["Spectra"]["windowfunc"], winSamples)
        # create an pyfftw plan
        self.dataArray: np.ndarray = pyfftw.empty_aligned(self.numSamples,
                                                          dtype="float64")
        self.fftObj: pyfftw.FFTW = pyfftw.builders.rfft(self.dataArray)
Example #6
0
    def __init__(self, timeData: TimeData,
                 decParams: DecimationParams) -> None:
        """Initialise with timeData and decimation parameters
    
        Parameters
        ----------
        timeData : TimeData
            The time data to decimate
        decParams : DecimationParams
            Decimation parameters for performing the decimation
        """

        self.timeData: TimeData = timeData
        self.sampleFreq: float = timeData.sampleFreq * 1.0
        self.chans: List = timeData.chans
        self.numSamples: int = timeData.numSamples
        self.decParams: DecimationParams = decParams
        config = loadConfig()
        self.minSamples: int = config["Decimation"]["minsamples"]
        self.level: int = -1
        self.maxDownsampleFactor: int = 8
    def __init__(self, sampleFreq: float):
        """Initialise decimation parameters with sampling frequency

        Calculates decimation factors and evaluation frequencies based on defaults

        Parameters
        ----------
        sampleFreq : float
            Sampling frequency
        """

        self.sampleFreq = sampleFreq
        config = loadConfig()
        self.divFactor: int = 2
        self.numLevels: int = config["Decimation"]["numlevels"]
        self.freqPerLevel: int = config["Frequencies"]["perlevel"]
        self.decFactors: np.ndarray
        self.decFrequencies: np.ndarray
        self.evalFreq: np.ndarray
        self.evalFreqPerLevel: np.ndarray

        # calculate some initial values decimation parameters based on defaults
        self.calcFrequencyParams(self.numLevels, self.freqPerLevel)