Wed 28 Aug 21:38:52 CEST 2024
This commit is contained in:
		
							parent
							
								
									b85ee407c4
								
							
						
					
					
						commit
						3329765caa
					
				
							
								
								
									
										111
									
								
								src/SimNDT/gui/managerPlotsController.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								src/SimNDT/gui/managerPlotsController.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,111 @@ | ||||||
|  | __author__ = 'Miguel Molero' | ||||||
|  | 
 | ||||||
|  | from SimNDT.graphics.mplWidget import PlotDialog | ||||||
|  | import numpy as np | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class ManagerPlots(object): | ||||||
|  |     def plotSingleLaunch(self): | ||||||
|  | 
 | ||||||
|  |         plot = PlotDialog(self) | ||||||
|  |         sig = self.SimNDT_Receivers.getReceivers() | ||||||
|  |         Name = self.SimNDT_Inspection.Name | ||||||
|  | 
 | ||||||
|  |         if Name == "Transmission" or Name == "PulseEcho": | ||||||
|  |             lenght = np.size(sig) | ||||||
|  |             self.SimNDT_Simulation.SimulationTime | ||||||
|  |             time = np.linspace(0, self.SimNDT_Simulation.SimulationTime, lenght) * 1e6 | ||||||
|  | 
 | ||||||
|  |             plot.mpl.ax.plot(time, sig) | ||||||
|  |             plot.mpl.ax.grid(True, color='gray') | ||||||
|  |             plot.mpl.ax.set_title("Time Signal", fontsize=10) | ||||||
|  |             plot.mpl.ax.set_xlabel("Time ($\mu$s)") | ||||||
|  |             plot.mpl.ax.set_ylabel("Amplitude") | ||||||
|  |             plot.show() | ||||||
|  | 
 | ||||||
|  |     def plotLinearScan(self): | ||||||
|  | 
 | ||||||
|  |         plot = PlotDialog(self) | ||||||
|  |         sig = self.SimNDT_Receivers.getReceivers() | ||||||
|  |         Name = self.SimNDT_Inspection.Name | ||||||
|  | 
 | ||||||
|  |         if Name == "LinearScan": | ||||||
|  |             lenght, N = np.shape(sig) | ||||||
|  |             self.SimNDT_Simulation.SimulationTime | ||||||
|  |             time = self.SimNDT_Simulation.SimulationTime * 1e6 | ||||||
|  | 
 | ||||||
|  |             plot.mpl.ax.imshow(sig, extent=[0, N, time, 0], aspect='auto', interpolation=None) | ||||||
|  |             plot.mpl.ax.grid(True, color='gray') | ||||||
|  |             plot.mpl.ax.set_title("Linear Scan", fontsize=10) | ||||||
|  |             plot.mpl.ax.set_ylabel("Time ($\mu$s)") | ||||||
|  |             plot.mpl.ax.set_xlabel("# Signals") | ||||||
|  |             plot.show() | ||||||
|  | 
 | ||||||
|  |     def plotTomoSignals(self): | ||||||
|  | 
 | ||||||
|  |         plot = PlotDialog(self) | ||||||
|  |         sig = self.SimNDT_Receivers.getReceivers() | ||||||
|  |         t = self.SimNDT_Simulation.t | ||||||
|  |         Name = self.SimNDT_Inspection.Name | ||||||
|  |         if Name == "Tomography": | ||||||
|  | 
 | ||||||
|  |             if self.SimNDT_Inspection.OneProjection: | ||||||
|  | 
 | ||||||
|  |                 M, N = np.shape(sig) | ||||||
|  |                 ind = 0 | ||||||
|  |                 delta = 2.0 / float(N) | ||||||
|  |                 ascan = [] | ||||||
|  |                 for i in range(0, N): | ||||||
|  |                     ascan = sig[:, i] / np.max(np.abs(sig)) | ||||||
|  |                     plot.mpl.ax.plot(t * 1e6, ascan + ind) | ||||||
|  |                     plot.mpl.ax.hold(True) | ||||||
|  |                     ind += delta | ||||||
|  |                     plot.mpl.ax.grid(True, color='gray') | ||||||
|  |                     plot.mpl.ax.set_title("Tomography Signals (One Projection)", fontsize=10) | ||||||
|  |                     plot.mpl.ax.set_xlabel("Time ($\mu$s)") | ||||||
|  |                     plot.mpl.ax.set_ylabel("# Signals") | ||||||
|  |                     plot.mpl.ax.set_yticks([]) | ||||||
|  |                     plot.mpl.ax.tick_params(axis='y', which='both', left='off', right='off') | ||||||
|  |             else: | ||||||
|  |                 lenght, R, E = np.shape(sig) | ||||||
|  |                 print(lenght, R, E) | ||||||
|  |                 ind = 0 | ||||||
|  |                 delta = 2.0 / float(R) | ||||||
|  |                 ascan = [] | ||||||
|  |                 for i in range(0, R): | ||||||
|  |                     ascan = sig[:, i] / np.max(np.abs(sig)) | ||||||
|  |                     plot.mpl.ax.plot(t * 1e6, ascan + ind) | ||||||
|  |                     plot.mpl.ax.hold(True) | ||||||
|  |                     ind += delta | ||||||
|  |                     plot.mpl.ax.grid(True, color='gray') | ||||||
|  |                     plot.mpl.ax.set_title("Tomography Signals", fontsize=10) | ||||||
|  |                     plot.mpl.ax.set_xlabel("Time ($\mu$s)") | ||||||
|  |                     plot.mpl.ax.set_ylabel("# Signals") | ||||||
|  |                     plot.mpl.ax.set_yticks([]) | ||||||
|  |                     plot.mpl.ax.tick_params(axis='y', which='both', left='off', right='off') | ||||||
|  | 
 | ||||||
|  |             plot.show() | ||||||
|  | 
 | ||||||
|  |     def spectraSingleLaunch(self): | ||||||
|  | 
 | ||||||
|  |         plot = PlotDialog(self) | ||||||
|  | 
 | ||||||
|  |         sig = self.SimNDT_Receivers.getReceivers() | ||||||
|  |         Name = self.SimNDT_Inspection.Name | ||||||
|  | 
 | ||||||
|  |         if Name == "Transmission" or Name == "PulseEcho": | ||||||
|  |             spectraComplete = np.fft.fft(sig.flatten()) | ||||||
|  |             N2 = np.size(spectraComplete) / 2.0 | ||||||
|  |             spectra = np.abs(spectraComplete[0:N2]) | ||||||
|  |             spectra /= np.max(spectra) | ||||||
|  |             fs = 1.0 / self.SimNDT_Simulation.dt | ||||||
|  |             frequency = np.linspace(0, fs / 2.0, N2) * 1e-6 | ||||||
|  | 
 | ||||||
|  |             plot.mpl.ax.plot(frequency, spectra) | ||||||
|  |             plot.mpl.ax.grid(True, color='gray') | ||||||
|  |             plot.mpl.ax.set_title("Spectra", fontsize=10) | ||||||
|  |             plot.mpl.ax.set_ylim([0, 1.2]) | ||||||
|  |             plot.mpl.ax.set_xlim([0, fs * 1e-6 / 4.0]) | ||||||
|  |             plot.mpl.ax.set_xlabel("Frequency (MHz)") | ||||||
|  |             plot.mpl.ax.set_ylabel("Normalized Magnitude") | ||||||
|  |             plot.show() | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user