Example #1
0
import outGraphs as out
import distort
import importData as io
from Reconstruction import prepareSpecSet, Reconstructor, getDenseReconstructor
from functions import reduceSpecsToNWavenumbers
from globals import SPECLENGTH

os.chdir(os.path.dirname(os.getcwd()))

noiseLevel: float = 0.15
fracValid: float = 0.2
specTypesTotal: int = 100
numVariations: int = 100

t0 = time.time()
specNames, spectra = io.load_specCSVs_from_directory("ATR Spectra", maxSpectra=specTypesTotal)
wavenums = spectra[:, 0].copy()
spectra = reduceSpecsToNWavenumbers(spectra, SPECLENGTH)
specs: np.ndarray = spectra[:, 1:]
print(f'loading and remapping spectra took {round(time.time()-t0)} seconds')

randomShuffle = False
if randomShuffle:
    specs = np.tile(specs, (1, numVariations))
    numSpecs = specs.shape[1]
    valIndices = random.sample(range(numSpecs), int(round(numSpecs * fracValid)))
    trainIndices = [i for i in range(numSpecs) if i not in valIndices]
    trainSpectra: np.ndarray = specs[:, trainIndices]
    testSpectra: np.ndarray = specs[:, valIndices]
    allSpecNames = specNames*numVariations
    testNames: List[str] = [allSpecNames[i] for i in valIndices]
Example #2
0
import distort
import importData as io
from functions import reduceSpecsToNWavenumbers
from globals import SPECLENGTH
from Reconstruction import normalizeSpecSet

os.chdir(os.path.dirname(os.getcwd()))

noiseLevel: float = 0.4
numTrainSpectra, numTestSpectra = 90, 20
numVariationsTrain, numVariationsTest = 500, 200

experimentTitle = f"Savitzky-Golay-Benchmarking"
print(experimentTitle)

specNames, spectra = io.load_specCSVs_from_directory(
    "ATR Spectra", maxSpectra=numTestSpectra + numTrainSpectra)
wavenums = spectra[:, 0].copy()
spectra = reduceSpecsToNWavenumbers(spectra, SPECLENGTH)

specs: np.ndarray = spectra[:, 1:]
trainSpectra: np.ndarray = np.tile(specs[:, :numTrainSpectra],
                                   (1, numVariationsTrain))
testSpectra = np.tile(specs[:, numTrainSpectra:], (1, numVariationsTest))

cleanSpectra: np.ndarray = testSpectra.transpose()
noisySpectra = distort.add_noise(cleanSpectra, level=noiseLevel, seed=42)

cleanSpectra = normalizeSpecSet(cleanSpectra)
noisySpectra = normalizeSpecSet(noisySpectra)

lengths: np.ndarray = np.arange(7, 53, 4)
Example #3
0
import outGraphs as out
from Reconstruction import prepareSpecSet, getDenseReconstructor
from functions import reduceSpecsToNWavenumbers, remapSpecArrayToWavenumbers
from globals import SPECLENGTH

os.chdir(os.path.dirname(os.getcwd()))

noiseLevel = 0.2
t0 = time.time()
numDifferentSpectra = 150
numVariations = 100

experimentTitle = 'Trained on ATR spectra, applied to µFTIR spectra'
print(experimentTitle)

specNames, spectra = io.load_specCSVs_from_directory(
    "ATR Spectra", maxSpectra=numDifferentSpectra)
wavenums = spectra[:, 0].copy()
spectra = reduceSpecsToNWavenumbers(spectra, SPECLENGTH)
print(
    f'loading and remapping ATR spectra took {round(time.time()-t0)} seconds')

t0 = time.time()
noisySpecs, cleanSpecs, specNames, wavenumbers = io.load_microFTIR_spectra(
    SPECLENGTH, maxCorr=0.5)
print(
    f'loading and remapping µFTIR spectra took {round(time.time()-t0)} seconds'
)

specs = remapSpecArrayToWavenumbers(spectra, wavenumbers)
specs: np.ndarray = spectra[:, 1:]
trainSpectra = np.tile(specs, (1, numVariations))