Fri 16 May 23:06:54 CEST 2025
This commit is contained in:
		
							parent
							
								
									9feb0110d5
								
							
						
					
					
						commit
						eab3d82653
					
				|  | @ -12,15 +12,21 @@ import math | ||||||
| class SnapShots: | class SnapShots: | ||||||
|     def __init__(self, Enable=False, Extension='.png', Step=200, Filename=None, File_path = None, dB=60, Color=0,  |     def __init__(self, Enable=False, Extension='.png', Step=200, Filename=None, File_path = None, dB=60, Color=0,  | ||||||
|                        Field = 0, |                        Field = 0, | ||||||
|  |                        Material = 0, | ||||||
|                        enableFields=False, |                        enableFields=False, | ||||||
|                        enableSignals=False, |                        enableSignals=False, | ||||||
|                        enableImages=False, |                        enableImages=False, | ||||||
|  |                        enableMaterial=False, | ||||||
|                        enableNumPy=False, |                        enableNumPy=False, | ||||||
|                        enableVolume=False, |                        enableVolume=False, | ||||||
|                        enableView=False, |                        enableView=False, | ||||||
|                        sensorShape = [], |                        sensorShape = [], | ||||||
|                        sensorPlacement = [], |                        sensorPlacement = [], | ||||||
|                        sensorSize = 0): |                        sensorSize = 0): | ||||||
|  |         if Material is 0: | ||||||
|  |           Material = "Im" | ||||||
|  |         if type(Field) == str or type(Field) == unicode: | ||||||
|  |           Field = ["Vx","Vy","[Vx,Vy]","Txx","Txy","Tyy","[Txx:Txy:Tyy]","Dx","Dy","[Dx,Dy]","SV"].index(Field) | ||||||
| 
 | 
 | ||||||
|         self.IsEnable = Enable |         self.IsEnable = Enable | ||||||
|         self.Extension = Extension |         self.Extension = Extension | ||||||
|  | @ -30,9 +36,11 @@ class SnapShots: | ||||||
|         self.DB = dB |         self.DB = dB | ||||||
|         self.Color = Color |         self.Color = Color | ||||||
|         self.Field = Field |         self.Field = Field | ||||||
|  |         self.Material = Material | ||||||
|         self.enableFields   = enableFields |         self.enableFields   = enableFields | ||||||
|         self.enableSignals  = enableSignals |         self.enableSignals  = enableSignals | ||||||
|         self.enableImages   = enableImages |         self.enableImages   = enableImages | ||||||
|  |         self.enableMaterial = enableMaterial | ||||||
|         self.enableNumPy    = enableNumPy |         self.enableNumPy    = enableNumPy | ||||||
|         self.enableVolume   = enableVolume |         self.enableVolume   = enableVolume | ||||||
|         self.enableView     = enableView |         self.enableView     = enableView | ||||||
|  | @ -43,7 +51,7 @@ class SnapShots: | ||||||
|         self.volS = [] |         self.volS = [] | ||||||
|         self.volP = [] |         self.volP = [] | ||||||
| 
 | 
 | ||||||
|         print("SnapShots Field="+str(Field)+" enableNumPy="+str(enableNumPy)+" enableVolume="+str(enableVolume)+ " enableSignals="+str(enableSignals)) |         print("SnapShots Field="+str(Field)+" enableNumPy="+str(enableNumPy)+" enableVolume="+str(enableVolume)+ " enableSignals="+str(enableSignals)+ " enableMaterial="+str(enableMaterial)) | ||||||
|         # if self.File_path does not exist, create it |         # if self.File_path does not exist, create it | ||||||
|         if not os.path.exists(self.File_path): |         if not os.path.exists(self.File_path): | ||||||
|             os.makedirs(self.File_path) |             os.makedirs(self.File_path) | ||||||
|  | @ -69,6 +77,54 @@ class SnapShots: | ||||||
|           savemat(FILE, dict) |           savemat(FILE, dict) | ||||||
| 
 | 
 | ||||||
|     # @blab+ |     # @blab+ | ||||||
|  |     # save material distribution matrix | ||||||
|  |     def save_material(self,SimPack,Material): | ||||||
|  |         if Material == 'I': | ||||||
|  |           FILE = self.Filename + "-materials-I" | ||||||
|  |           FILE_PATH = os.path.join(self.File_path, FILE) | ||||||
|  |           print('Saving scenario material label distribution matrix I ('+FILE+') ['+str(SimPack.Scenario.I.shape[0])+','+str(SimPack.Scenario.I.shape[1])+']') | ||||||
|  |           np.save(FILE_PATH,SimPack.Scenario.I) | ||||||
|  |         if Material == 'Iabs': | ||||||
|  |           FILE = self.Filename + "-materials-Iabs" | ||||||
|  |           FILE_PATH = os.path.join(self.File_path, FILE) | ||||||
|  |           print('Saving scenario material label distribution matrix Iabs ('+FILE+') ['+str(SimPack.Scenario.Iabs.shape[0])+','+str(SimPack.Scenario.Iabs.shape[1])+']') | ||||||
|  |           np.save(FILE_PATH,SimPack.Scenario.Iabs) | ||||||
|  |         if Material == 'Im': | ||||||
|  |           FILE = self.Filename + "-materials-Im" | ||||||
|  |           FILE_PATH = os.path.join(self.File_path, FILE) | ||||||
|  |           print('Saving simulation material label distribution matrix Im ('+FILE+') ['+str(SimPack.Simulation.Im.shape[0])+','+str(SimPack.Simulation.Im.shape[1])+']') | ||||||
|  |           np.save(FILE_PATH,SimPack.Simulation.Im) | ||||||
|  |         if Material == 'RV': | ||||||
|  |           # Must be recreated from Im, efit2d replaces rho<2 with very large rho value > 1e24 | ||||||
|  |           MRI, NRI = np.shape(SimPack.Simulation.Im) | ||||||
|  |           Rho = np.zeros((MRI, NRI), dtype=np.float32) | ||||||
|  |           VL  = np.zeros((MRI, NRI), dtype=np.float32) | ||||||
|  |           VT  = np.zeros((MRI, NRI), dtype=np.float32) | ||||||
|  |           for n in range(len(SimPack.Materials)): | ||||||
|  |             ind = np.nonzero(SimPack.Simulation.Im == SimPack.Materials[n].Label) | ||||||
|  |             Rho[ind] = SimPack.Materials[n].Rho | ||||||
|  |             VL[ind] = SimPack.Materials[n].VL | ||||||
|  |             VT[ind] = SimPack.Materials[n].VT | ||||||
|  |           # 'air', (1.24, 344, 1e-30), but handled in efit2d as vaccum, i.e. 0 | ||||||
|  |           #  | ||||||
|  |           ind = np.nonzero(SimPack.Simulation.Im == 255) | ||||||
|  |           Rho[ind] = 1.24 | ||||||
|  |           VL[ind] = 344 | ||||||
|  |           VT[ind] = 1e-30 | ||||||
|  |           FILE = self.Filename + "-materials-Rho" | ||||||
|  |           FILE_PATH = os.path.join(self.File_path, FILE) | ||||||
|  |           print('Saving simulation material distribution  matrix ('+FILE+') ['+str(Rho.min())+','+str(Rho.max())+']') | ||||||
|  |           np.save(FILE_PATH,Rho) | ||||||
|  |           FILE = self.Filename + "-materials-VL" | ||||||
|  |           FILE_PATH = os.path.join(self.File_path, FILE) | ||||||
|  |           print('Saving simulation material distribution matrix ('+FILE+') ['+str(VL.min())+','+str(VL.max())+']') | ||||||
|  |           np.save(FILE_PATH,VL) | ||||||
|  |           FILE = self.Filename + "-materials-VT" | ||||||
|  |           FILE_PATH = os.path.join(self.File_path, FILE) | ||||||
|  |           print('Saving simulation material distribution  matrix ('+FILE+') ['+str(VT.min())+','+str(VT.max())+']') | ||||||
|  |           np.save(FILE_PATH,VT) | ||||||
|  | 
 | ||||||
|  |          | ||||||
|     def save_signal(self, D , n, Label): |     def save_signal(self, D , n, Label): | ||||||
|      |      | ||||||
|         self.Label = Label        |         self.Label = Label        | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user