AOT-biomaps 2.9.370__py3-none-any.whl → 2.9.372__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -93,6 +93,8 @@ class AcousticField(ABC):
93
93
  'num_elements': params.acoustic['num_elements'],
94
94
  'element_width': params.acoustic['element_width'],
95
95
  'element_height': params.acoustic['element_height'],
96
+ 'height_phantom': params.acoustic['phantom']['height'] if 'phantom' in params.acoustic and 'height' in params.acoustic['phantom'] else None,
97
+ 'width_phantom': params.acoustic['phantom']['width'] if 'phantom' in params.acoustic and 'width' in params.acoustic['phantom'] else None,
96
98
  'Xrange': params.general['Xrange'],
97
99
  'Yrange': params.general['Yrange'],
98
100
  'Zrange': params.general['Zrange'],
@@ -104,6 +106,7 @@ class AcousticField(ABC):
104
106
  'Nx': int(np.round((params.general['Xrange'][1] - params.general['Xrange'][0])/params.general['dx'])),
105
107
  'Ny': int(np.round((params.general['Yrange'][1] - params.general['Yrange'][0])/params.general['dy'])) if params.general['Yrange'] is not None else 1,
106
108
  'Nz': int(np.round((params.general['Zrange'][1] - params.general['Zrange'][0])/params.general['dz'])),
109
+ 'Nt': params.general['Nt'] if 'Nt' in params.general else None,
107
110
  'probeWidth': params.acoustic['num_elements'] * params.acoustic['element_width'],
108
111
  'IsAbsorbingMedium': params.acoustic['isAbsorbingMedium'],
109
112
  }
@@ -114,8 +117,11 @@ class AcousticField(ABC):
114
117
 
115
118
  self.params['f_AQ'] = int(1/self.kgrid.dt)
116
119
  else:
117
- Nt = ceil((self.params['Zrange'][1] - self.params['Zrange'][0])*float(params.acoustic['f_AQ']) / self.params['c0'])
118
-
120
+ if self.params['Nt'] is None:
121
+ Nt = ceil((self.params['Zrange'][1] - self.params['Zrange'][0])*float(params.acoustic['f_AQ']) / self.params['c0'])
122
+ self.params['Nt'] = Nt
123
+ else:
124
+ Nt = self.params['Nt']
119
125
  self.kgrid.setTime(Nt,1/float(params.acoustic['f_AQ']))
120
126
  self.params['f_AQ'] = int(float(params.acoustic['f_AQ']))
121
127
 
@@ -505,13 +511,25 @@ class AcousticField(ABC):
505
511
  try:
506
512
  # --- 1. Grid setup ---
507
513
  dx = self.params['dx']
508
- if dx >= self.params['element_width']*2:
514
+ if dx >= self.params['element_width']:
509
515
  dx = self.params['element_width'] / 2
510
- Nx = int(round((self.params['Xrange'][1] - self.params['Xrange'][0]) / dx))
511
- Nz = int(round((self.params['Zrange'][1] - self.params['Zrange'][0]) / dx))
516
+ if self.params['width_phantom'] is not None:
517
+ Nx = int(np.round((self.params['width_phantom'])/dx))
518
+ else:
519
+ Nx = int(round((self.params['Xrange'][1] - self.params['Xrange'][0]) / dx))
520
+ if self.params['height_phantom'] is not None:
521
+ Nz = int(np.round((self.params['height_phantom'])/dx))
522
+ else:
523
+ Nz = int(round((self.params['Zrange'][1] - self.params['Zrange'][0]) / dx))
512
524
  else:
513
- Nx = self.params['Nx']
514
- Nz = self.params['Nz']
525
+ if self.params['width_phantom'] is not None:
526
+ Nx = int(np.round((self.params['width_phantom'])/self.params['dx']))
527
+ else:
528
+ Nx = int(round((self.params['Xrange'][1] - self.params['Xrange'][0]) / self.params['dx']))
529
+ if self.params['height_phantom'] is not None:
530
+ Nz = int(np.round((self.params['height_phantom'])/self.params['dz']))
531
+ else:
532
+ Nz = int(round((self.params['Zrange'][1] - self.params['Zrange'][0]) / self.params['dz']))
515
533
 
516
534
  # --- 2. Time and space factors ---
517
535
  self.factorT = int(np.ceil(self.params['f_AQ'] / self.params['f_saving']))
@@ -530,17 +548,15 @@ class AcousticField(ABC):
530
548
  sensor.mask = np.ones((Nx, Nz))
531
549
 
532
550
  # --- 5. PML setup ---
533
- total_size_x = next_power_of_2(Nx)
534
551
  total_size_z = next_power_of_2(Nz)
535
- pml_x_size = (total_size_x - Nx) // 2
536
552
  pml_z_size = (total_size_z - Nz) // 2
537
- pml_x_size = max(pml_x_size, 50) # Ensure a minimum PML size of 50 grid points to avoid parasitic reflections
538
553
  pml_z_size = max(pml_z_size, 50) # Ensure a minimum PML size of 50 grid points to avoid parasitic reflections
539
554
 
540
555
  # --- 6. Simulation options ---
541
556
  simulation_options = SimulationOptions(
542
557
  pml_inside=False,
543
- pml_size=[pml_x_size, pml_z_size],
558
+ pml_size=[0, pml_z_size],
559
+ pml_header=True,
544
560
  use_sg=False,
545
561
  save_to_disk=True,
546
562
  input_filename=os.path.join(gettempdir(), "KwaveIN.h5"),
@@ -583,11 +599,23 @@ class AcousticField(ABC):
583
599
  dx = self.params['dx']
584
600
  if dx >= self.params['element_width']:
585
601
  dx = self.params['element_width'] / 2
586
- Nx = int(round((self.params['Xrange'][1] - self.params['Xrange'][0]) / dx))
587
- Nz = int(round((self.params['Zrange'][1] - self.params['Zrange'][0]) / dx))
602
+ if self.params['width_phantom'] is not None:
603
+ Nx = int(np.round((self.params['width_phantom'])/dx))
604
+ else:
605
+ Nx = int(round((self.params['Xrange'][1] - self.params['Xrange'][0]) / dx))
606
+ if self.params['height_phantom'] is not None:
607
+ Nz = int(np.round((self.params['height_phantom'])/dx))
608
+ else:
609
+ Nz = int(round((self.params['Zrange'][1] - self.params['Zrange'][0]) / dx))
588
610
  else:
589
- Nx = self.params['Nx']
590
- Nz = self.params['Nz']
611
+ if self.params['width_phantom'] is not None:
612
+ Nx = int(np.round((self.params['width_phantom'])/self.params['dx']))
613
+ else:
614
+ Nx = int(round((self.params['Xrange'][1] - self.params['Xrange'][0]) / self.params['dx']))
615
+ if self.params['height_phantom'] is not None:
616
+ Nz = int(np.round((self.params['height_phantom'])/self.params['dz']))
617
+ else:
618
+ Nz = int(round((self.params['Zrange'][1] - self.params['Zrange'][0]) / self.params['dz']))
591
619
 
592
620
  # --- 2. Time and space factors (common) ---
593
621
  factorT = int(np.ceil(self.params['f_AQ'] / self.params['f_saving']))
AOT_biomaps/__init__.py CHANGED
@@ -85,7 +85,7 @@ from .AOT_Recon.AOT_PotentialFunctions.RelativeDifferences import *
85
85
  from .Config import config
86
86
  from .Settings import *
87
87
 
88
- __version__ = '2.9.370'
88
+ __version__ = '2.9.372'
89
89
  __process__ = config.get_process()
90
90
 
91
91
  def initialize(process=None):
@@ -231,6 +231,8 @@ def initialize(process=None):
231
231
 
232
232
 
233
233
 
234
+
235
+
234
236
 
235
237
 
236
238
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: AOT_biomaps
3
- Version: 2.9.370
3
+ Version: 2.9.372
4
4
  Summary: Acousto-Optic Tomography
5
5
  Home-page: https://github.com/LucasDuclos/AcoustoOpticTomography
6
6
  Author: Lucas Duclos
@@ -1,6 +1,6 @@
1
1
  AOT_biomaps/Config.py,sha256=ghEOP1n8aO1pR-su13wMeAZAxZRfry5hH67NbtZ8SqI,3614
2
2
  AOT_biomaps/Settings.py,sha256=v8fPhnvvcfBJP29m1RLOTEr3jndGLGwbUiORXmsj2Bo,2853
3
- AOT_biomaps/__init__.py,sha256=Zm2g5BaW_0Ai5njolsGHMC-7d92ILbQbYSINrhPC-yM,4402
3
+ AOT_biomaps/__init__.py,sha256=kQwtDEc16hDG55-_3fja8dSj4Rht8ze0DBNbXxO9lXs,4406
4
4
  AOT_biomaps/AOT_Acoustic/AcousticEnums.py,sha256=s5kXa6jKzbS4btwbubrVcynLOr0yg5tth5vL_FGfbMk,1802
5
5
  AOT_biomaps/AOT_Acoustic/AcousticTools.py,sha256=7kuWIIGyzZPQrzRI0zVvdwNUp7qKUE67yCYOMzSb0Ug,8283
6
6
  AOT_biomaps/AOT_Acoustic/FocusedWave.py,sha256=3kGKKDx_3Msy5COYqIwzROPORGWvNjw8UsDanBfkMXE,11037
@@ -8,7 +8,7 @@ AOT_biomaps/AOT_Acoustic/IrregularWave.py,sha256=yZhtxkR6zlciRcEpdTR0BAhvgQl40XH
8
8
  AOT_biomaps/AOT_Acoustic/PlaneWave.py,sha256=xza-rj5AUWDecLkGDxRcULrwZVWeBvGnEP2d51TyR04,1447
9
9
  AOT_biomaps/AOT_Acoustic/StructuredWave.py,sha256=DRTjD-zrmX12FHrvwOeEo-Rk1fHYm9gfCcebz4WhtXc,18930
10
10
  AOT_biomaps/AOT_Acoustic/__init__.py,sha256=t9M2rRqa_L9pk7W2FeELTkHEMuP4DBr4gBRldMqsQbg,491
11
- AOT_biomaps/AOT_Acoustic/_mainAcoustic.py,sha256=RdmhRF1i0KAlpsP7_wnZ7F4J27br3eUc4XR91Qq7C64,44158
11
+ AOT_biomaps/AOT_Acoustic/_mainAcoustic.py,sha256=z_fnwPXixDt-fO-TR-AXXrjGhgxJhjC8l9YkBWX3aME,46162
12
12
  AOT_biomaps/AOT_Experiment/ExperimentTools.py,sha256=aFvJw6J_jfFVTDFnG7J3a61SHEgORdZKZS0UI82VMaY,2637
13
13
  AOT_biomaps/AOT_Experiment/Focus.py,sha256=B2nBawmv-NG2AWJx9zgQ8GlN6aFB9FwTSqX-M-phKXg,3193
14
14
  AOT_biomaps/AOT_Experiment/Tomography.py,sha256=9mJDwV9WVphoX8drL7MgN3WhS6fjYwS6HWQD3x1CrVs,37625
@@ -42,7 +42,7 @@ AOT_biomaps/AOT_Recon/AOT_PotentialFunctions/__init__.py,sha256=RwrJdLOFbAFBFnRx
42
42
  AOT_biomaps/AOT_Recon/AOT_SparseSMatrix/SparseSMatrix_CSR.py,sha256=RACc2P5oxmp0uPLAGnNj9mEtAxa_OlepNgCawKij3jI,12062
43
43
  AOT_biomaps/AOT_Recon/AOT_SparseSMatrix/SparseSMatrix_SELL.py,sha256=ti3dZQsb_Uu62C7Bn65Z-yf-R5NKCFsmnBT5GlLd_HY,15138
44
44
  AOT_biomaps/AOT_Recon/AOT_SparseSMatrix/__init__.py,sha256=8nou-hqjQjuCTLhoL5qv4EM_lMPFviAZAZKSPhi84jE,67
45
- aot_biomaps-2.9.370.dist-info/METADATA,sha256=rLuQ3BEnaedh8dUlK226kHbiG_y0GEHl3IEamse4Q3M,700
46
- aot_biomaps-2.9.370.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
47
- aot_biomaps-2.9.370.dist-info/top_level.txt,sha256=6STF-lT4kaAnBHJYCripmN5mZABoHjMuY689JdiDphk,12
48
- aot_biomaps-2.9.370.dist-info/RECORD,,
45
+ aot_biomaps-2.9.372.dist-info/METADATA,sha256=LCSOt-pw_o2CG-ehSjE0G70PZHMCzs8eBIh1sVT5sNY,700
46
+ aot_biomaps-2.9.372.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
47
+ aot_biomaps-2.9.372.dist-info/top_level.txt,sha256=6STF-lT4kaAnBHJYCripmN5mZABoHjMuY689JdiDphk,12
48
+ aot_biomaps-2.9.372.dist-info/RECORD,,