@@ -70,6 +70,127 @@ def mock_EmissionLightPath(
7070 return emission_light_path
7171
7272
73+ def mock_ImagingModality (
74+ * ,
75+ name : Optional [str ] = None ,
76+ description : str = "A mock instance of an ImagingModality type to be used for rapid testing." ,
77+ ) -> ndx_microscopy .ImagingModality :
78+ """Base class for describing microscopy imaging modalities."""
79+ imaging_modality = ndx_microscopy .ImagingModality (
80+ name = name or name_generator ("ImagingModality" ),
81+ description = description ,
82+ )
83+ return imaging_modality
84+
85+
86+ def mock_LineScanning (
87+ * ,
88+ name : Optional [str ] = None ,
89+ description : str = "A mock instance of a LineScanning type to be used for rapid testing." ,
90+ scan_direction : Optional [str ] = "horizontal" ,
91+ line_rate : Optional [float ] = 500.0 ,
92+ dwell_time : Optional [float ] = 0.001 ,
93+ ) -> ndx_microscopy .LineScanning :
94+ """Line scanning method used in microscopy, particularly common in two-photon imaging."""
95+ line_scanning = ndx_microscopy .LineScanning (
96+ name = name or name_generator ("LineScanning" ),
97+ description = description ,
98+ scan_direction = scan_direction ,
99+ line_rate = line_rate ,
100+ dwell_time = dwell_time ,
101+ )
102+ return line_scanning
103+
104+
105+ def mock_RasterScanning (
106+ * ,
107+ name : Optional [str ] = None ,
108+ description : str = "A mock instance of a RasterScanning type to be used for rapid testing." ,
109+ scan_pattern : Optional [str ] = "bidirectional" ,
110+ dwell_time : Optional [float ] = 0.0005 ,
111+ ) -> ndx_microscopy .RasterScanning :
112+ """Raster scanning method with grid-like point-by-point or line-by-line acquisition."""
113+ raster_scanning = ndx_microscopy .RasterScanning (
114+ name = name or name_generator ("RasterScanning" ),
115+ description = description ,
116+ scan_pattern = scan_pattern ,
117+ dwell_time = dwell_time ,
118+ )
119+ return raster_scanning
120+
121+
122+ def mock_ResonantScanning (
123+ * ,
124+ name : Optional [str ] = None ,
125+ description : str = "A mock instance of a ResonantScanning type to be used for rapid testing." ,
126+ resonant_frequency : Optional [float ] = 8000.0 ,
127+ resonant_amplitude : Optional [float ] = 1.5 ,
128+ ) -> ndx_microscopy .ResonantScanning :
129+ """Resonant scanning method using a rapidly oscillating mirror for high-speed imaging."""
130+ resonant_scanning = ndx_microscopy .ResonantScanning (
131+ name = name or name_generator ("ResonantScanning" ),
132+ description = description ,
133+ resonant_frequency = resonant_frequency ,
134+ resonant_amplitude = resonant_amplitude ,
135+ )
136+ return resonant_scanning
137+
138+
139+ def mock_TemporalFocusing (
140+ * ,
141+ name : Optional [str ] = None ,
142+ description : str = "A mock instance of a TemporalFocusing type to be used for rapid testing." ,
143+ lateral_point_spread_function_in_um : str = "0.5 ± 0.1" ,
144+ axial_point_spread_function_in_um : str = "2.0 ± 0.3" ,
145+ pulse_duration : Optional [float ] = 0.0000001 , # 100 nanoseconds
146+ ) -> ndx_microscopy .TemporalFocusing :
147+ """Temporal focusing scanning method for depth-resolved imaging."""
148+ temporal_focusing = ndx_microscopy .TemporalFocusing (
149+ name = name or name_generator ("TemporalFocusing" ),
150+ description = description ,
151+ lateral_point_spread_function_in_um = lateral_point_spread_function_in_um ,
152+ axial_point_spread_function_in_um = axial_point_spread_function_in_um ,
153+ pulse_duration = pulse_duration ,
154+ )
155+ return temporal_focusing
156+
157+
158+ def mock_LightSheet (
159+ * ,
160+ name : Optional [str ] = None ,
161+ description : str = "A mock instance of a LightSheet type to be used for rapid testing." ,
162+ sheet_thickness_in_um : Optional [float ] = 5.0 ,
163+ illumination_angle : Optional [float ] = 45.0 ,
164+ ) -> ndx_microscopy .LightSheet :
165+ """Light sheet method."""
166+ light_sheet = ndx_microscopy .LightSheet (
167+ name = name or name_generator ("LightSheet" ),
168+ description = description ,
169+ sheet_thickness_in_um = sheet_thickness_in_um ,
170+ illumination_angle = illumination_angle ,
171+ )
172+ return light_sheet
173+
174+
175+ def mock_RandomAccessScanning (
176+ * ,
177+ name : Optional [str ] = None ,
178+ description : str = "A mock instance of a RandomAccessScanning type to be used for rapid testing." ,
179+ max_scan_points : Optional [int ] = 1000 ,
180+ dwell_time : Optional [float ] = 0.0001 ,
181+ scanning_pattern : Optional [str ] = "spiral" ,
182+ ) -> ndx_microscopy .RandomAccessScanning :
183+ """Random access scanning method for targeted, high-speed imaging of specific regions."""
184+ random_access_scanning = ndx_microscopy .RandomAccessScanning (
185+ name = name or name_generator ("RandomAccessScanning" ),
186+ description = description ,
187+ max_scan_points = max_scan_points ,
188+ dwell_time = dwell_time ,
189+ scanning_pattern = scanning_pattern ,
190+ )
191+ return random_access_scanning
192+
193+
73194def mock_PlanarImagingSpace (
74195 * ,
75196 name : Optional [str ] = None ,
@@ -79,6 +200,7 @@ def mock_PlanarImagingSpace(
79200 location : str = "The location targeted by the mock imaging space." ,
80201 reference_frame : str = "The reference frame of the mock planar imaging space." ,
81202 orientation : str = "The orientation of the mock planar imaging space." ,
203+ imaging_modality : ndx_microscopy .ImagingModality = None ,
82204) -> ndx_microscopy .PlanarImagingSpace :
83205 planar_imaging_space = ndx_microscopy .PlanarImagingSpace (
84206 name = name or name_generator ("PlanarImagingSpace" ),
@@ -88,6 +210,7 @@ def mock_PlanarImagingSpace(
88210 location = location ,
89211 reference_frame = reference_frame ,
90212 orientation = orientation ,
213+ imaging_modality = imaging_modality or mock_ImagingModality (),
91214 )
92215 return planar_imaging_space
93216
@@ -101,6 +224,7 @@ def mock_VolumetricImagingSpace(
101224 location : str = "The location targeted by the mock imaging space." ,
102225 reference_frame : str = "The reference frame of the mock volumetric imaging space." ,
103226 orientation : str = "The orientation of the mock planar imaging space." ,
227+ imaging_modality : ndx_microscopy .ImagingModality = None ,
104228) -> ndx_microscopy .VolumetricImagingSpace :
105229 volumetric_imaging_space = ndx_microscopy .VolumetricImagingSpace (
106230 name = name or name_generator ("VolumetricImagingSpace" ),
@@ -110,6 +234,7 @@ def mock_VolumetricImagingSpace(
110234 location = location ,
111235 reference_frame = reference_frame ,
112236 orientation = orientation ,
237+ imaging_modality = imaging_modality or mock_ImagingModality (),
113238 )
114239 return volumetric_imaging_space
115240
0 commit comments