Loading analysis/analysisplots.py +2 −29 Original line number Diff line number Diff line Loading @@ -23,10 +23,6 @@ from PyQt5 import QtWidgets, QtGui, QtCore from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.figure import Figure from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar import os import numpy as np from analysis import importSpectra class ParticleIndicator(QtWidgets.QPushButton): Loading Loading @@ -132,31 +128,8 @@ class SpectraPlot(QtWidgets.QGroupBox): self.setLayout(layout) def loadSpectraAndInitializeSpecPlot(self): #formerly updateData(self).... # def tryLoadingNumpySpecFile(): # specPath = self.dataset.getSpectraFileName() # if os.path.exists(specPath): # return np.load(specPath) # else: # raise ImportError # try: # self.spectra = tryLoadingNumpySpecFile() # except ImportError: # # fname = QtWidgets.QFileDialog.getOpenFileName(QtWidgets.QWidget(), 'Select Spectra File', self.dataset.path, 'text file (*.txt)')[0] # # try: # self.spectra, spectraNames = importSpectra.importWITecSpectra(fname) # except ImportError: # try: # self.spectra, spectraNames = importSpectra.importRenishawSpectra(fname) # except ImportError: # self.spectra, spectraNames = importSpectra.importPerkinElmerSpectra(fname) # # if self.spectra is None: # raise ImportError # else: # np.save(self.dataset.getSpectraFileName(), self.spectra) self.spectra = self.dataset.particleContainer.spectra assert self.spectra is not None self.canvas.draw() def updateParticleSpectrum(self, specIndex, particleSize, hqi): Loading analysis/analysisview.py +2 −3 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as Navigatio from .analysiswidgets import ExpExcelDialog from .analysisplots import TypeHistogramView, SpectraPlot from .loadresults import LoadTrueMatchResults from .particleeditor import ParticleEditor from .database import DataBaseWindow from .colorlegend import getColorFromNameWithSeed Loading @@ -56,7 +55,6 @@ class ParticleAnalysis(QtWidgets.QMainWindow): self.viewparent = viewparent self.dataset = dataset self.particleContainer = dataset.particleContainer self.editor = ParticleEditor(self.particleContainer, self) # self.additivePlot = None self.importWindow = None Loading Loading @@ -221,6 +219,7 @@ class ParticleAnalysis(QtWidgets.QMainWindow): self.createMenus() self.applyHQIThresholdToResults() self.createHistogramData() self.particleContainer.loadSpectra() self.initializeSpecPlot() self.setTypeSelector() self.updateHistogramsAndContours() Loading Loading @@ -556,7 +555,7 @@ class ParticleAnalysis(QtWidgets.QMainWindow): self.currentParticleIndex = particleIndex partIndices = self.particleContainer.getIndicesOfParticleType(assignment) self.particleSelector.setMaximum(len(partIndices)) self.particleNumberLabel.setText(f'of {len(partIndices)} particles; ') self.particleSelector.setValue(partIndices.index(particleIndex)+1) Loading analysis/particleAndMeasurement.py +7 −19 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ along with this program, see COPYING. If not, see <https://www.gnu.org/licenses/>. """ import numpy as np from viewitems import SegmentationContour, RamanScanIndicator class Particle(object): def __init__(self): Loading @@ -35,23 +35,9 @@ class Particle(object): self.viewItem = None def addMeasurement(self, refToMeasurement): refToMeasurement.assignedParticle = self self.measurements.append(refToMeasurement) # def addExistingMeasurement(self, meas): # self.measurements.append(meas) # # def addEmptyMeasurement(self): # self.measurements.append(Measurement()) # indexOfNewMeasurment = len(self.measurements)-1 # return indexOfNewMeasurment # def setMeasurementScanIndex(self, indexOfMeasurment, scanIndex): # self.measurements[indexOfMeasurment].ramanScanIndex = scanIndex # # def setMeasurementPixelCoords(self, indexOfMeasurment, x, y): # self.measurements[indexOfMeasurment].pixelcoord_x= x # self.measurements[indexOfMeasurment].pixelcoord_y = y # def setAllSpectraToNewAssignment(self, newAssignment): for meas in self.measurements: meas.setAssignment(newAssignment) Loading Loading @@ -127,8 +113,8 @@ class Particle(object): for measurement in self.measurements: measurement.applyHQIThreshold(minHQI) # def recreateViewItem(self): # pass def recreateViewItem(self): self.viewItem = SegmentationContour() class Measurement(object): Loading @@ -142,6 +128,8 @@ class Measurement(object): self.assignment_afterHQI = None self.hqi = None self.assignedParticle = None def setAssignment(self, assignment): self.assignment_orig = assignment self.applyHQIThreshold() Loading analysis/particleInfo.py→analysis/particleContainer.py +5 −4 Original line number Diff line number Diff line Loading @@ -178,9 +178,10 @@ class ParticleContainer(object): def getMeasurementPixelCoords(self): coords = [] for particle in self.particles: for measurement in particle.getMeasurements(): coords.append([measurement.pixelcoord_x, measurement.pixelcoord_y]) # for particle in self.particles: # for measurement in particle.getMeasurements(): for meas in self.measurements: coords.append([meas.pixelcoord_x, meas.pixelcoord_y]) return coords def getNumberOfParticlesOfAssignment(self, assignment): Loading Loading @@ -269,7 +270,7 @@ class ParticleContainer(object): if newAssignment is not None: meas.setAssignment(newAssignment) meas.setHQI(100) newParticle.addExistingMeasurement(meas) newParticle.addMeasurement(meas) #set Particle Stats long, short, longellipse, shortellipse, area = newStats Loading dataset.py +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import numpy as np import cv2 from helperfunctions import cv2imread_fix, cv2imwrite_fix from copy import copy from analysis.particleInfo import ParticleContainer from analysis.particleContainer import ParticleContainer currentversion = 3 Loading Loading
analysis/analysisplots.py +2 −29 Original line number Diff line number Diff line Loading @@ -23,10 +23,6 @@ from PyQt5 import QtWidgets, QtGui, QtCore from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.figure import Figure from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar import os import numpy as np from analysis import importSpectra class ParticleIndicator(QtWidgets.QPushButton): Loading Loading @@ -132,31 +128,8 @@ class SpectraPlot(QtWidgets.QGroupBox): self.setLayout(layout) def loadSpectraAndInitializeSpecPlot(self): #formerly updateData(self).... # def tryLoadingNumpySpecFile(): # specPath = self.dataset.getSpectraFileName() # if os.path.exists(specPath): # return np.load(specPath) # else: # raise ImportError # try: # self.spectra = tryLoadingNumpySpecFile() # except ImportError: # # fname = QtWidgets.QFileDialog.getOpenFileName(QtWidgets.QWidget(), 'Select Spectra File', self.dataset.path, 'text file (*.txt)')[0] # # try: # self.spectra, spectraNames = importSpectra.importWITecSpectra(fname) # except ImportError: # try: # self.spectra, spectraNames = importSpectra.importRenishawSpectra(fname) # except ImportError: # self.spectra, spectraNames = importSpectra.importPerkinElmerSpectra(fname) # # if self.spectra is None: # raise ImportError # else: # np.save(self.dataset.getSpectraFileName(), self.spectra) self.spectra = self.dataset.particleContainer.spectra assert self.spectra is not None self.canvas.draw() def updateParticleSpectrum(self, specIndex, particleSize, hqi): Loading
analysis/analysisview.py +2 −3 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as Navigatio from .analysiswidgets import ExpExcelDialog from .analysisplots import TypeHistogramView, SpectraPlot from .loadresults import LoadTrueMatchResults from .particleeditor import ParticleEditor from .database import DataBaseWindow from .colorlegend import getColorFromNameWithSeed Loading @@ -56,7 +55,6 @@ class ParticleAnalysis(QtWidgets.QMainWindow): self.viewparent = viewparent self.dataset = dataset self.particleContainer = dataset.particleContainer self.editor = ParticleEditor(self.particleContainer, self) # self.additivePlot = None self.importWindow = None Loading Loading @@ -221,6 +219,7 @@ class ParticleAnalysis(QtWidgets.QMainWindow): self.createMenus() self.applyHQIThresholdToResults() self.createHistogramData() self.particleContainer.loadSpectra() self.initializeSpecPlot() self.setTypeSelector() self.updateHistogramsAndContours() Loading Loading @@ -556,7 +555,7 @@ class ParticleAnalysis(QtWidgets.QMainWindow): self.currentParticleIndex = particleIndex partIndices = self.particleContainer.getIndicesOfParticleType(assignment) self.particleSelector.setMaximum(len(partIndices)) self.particleNumberLabel.setText(f'of {len(partIndices)} particles; ') self.particleSelector.setValue(partIndices.index(particleIndex)+1) Loading
analysis/particleAndMeasurement.py +7 −19 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ along with this program, see COPYING. If not, see <https://www.gnu.org/licenses/>. """ import numpy as np from viewitems import SegmentationContour, RamanScanIndicator class Particle(object): def __init__(self): Loading @@ -35,23 +35,9 @@ class Particle(object): self.viewItem = None def addMeasurement(self, refToMeasurement): refToMeasurement.assignedParticle = self self.measurements.append(refToMeasurement) # def addExistingMeasurement(self, meas): # self.measurements.append(meas) # # def addEmptyMeasurement(self): # self.measurements.append(Measurement()) # indexOfNewMeasurment = len(self.measurements)-1 # return indexOfNewMeasurment # def setMeasurementScanIndex(self, indexOfMeasurment, scanIndex): # self.measurements[indexOfMeasurment].ramanScanIndex = scanIndex # # def setMeasurementPixelCoords(self, indexOfMeasurment, x, y): # self.measurements[indexOfMeasurment].pixelcoord_x= x # self.measurements[indexOfMeasurment].pixelcoord_y = y # def setAllSpectraToNewAssignment(self, newAssignment): for meas in self.measurements: meas.setAssignment(newAssignment) Loading Loading @@ -127,8 +113,8 @@ class Particle(object): for measurement in self.measurements: measurement.applyHQIThreshold(minHQI) # def recreateViewItem(self): # pass def recreateViewItem(self): self.viewItem = SegmentationContour() class Measurement(object): Loading @@ -142,6 +128,8 @@ class Measurement(object): self.assignment_afterHQI = None self.hqi = None self.assignedParticle = None def setAssignment(self, assignment): self.assignment_orig = assignment self.applyHQIThreshold() Loading
analysis/particleInfo.py→analysis/particleContainer.py +5 −4 Original line number Diff line number Diff line Loading @@ -178,9 +178,10 @@ class ParticleContainer(object): def getMeasurementPixelCoords(self): coords = [] for particle in self.particles: for measurement in particle.getMeasurements(): coords.append([measurement.pixelcoord_x, measurement.pixelcoord_y]) # for particle in self.particles: # for measurement in particle.getMeasurements(): for meas in self.measurements: coords.append([meas.pixelcoord_x, meas.pixelcoord_y]) return coords def getNumberOfParticlesOfAssignment(self, assignment): Loading Loading @@ -269,7 +270,7 @@ class ParticleContainer(object): if newAssignment is not None: meas.setAssignment(newAssignment) meas.setHQI(100) newParticle.addExistingMeasurement(meas) newParticle.addMeasurement(meas) #set Particle Stats long, short, longellipse, shortellipse, area = newStats Loading
dataset.py +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import numpy as np import cv2 from helperfunctions import cv2imread_fix, cv2imwrite_fix from copy import copy from analysis.particleInfo import ParticleContainer from analysis.particleContainer import ParticleContainer currentversion = 3 Loading