@@ -61,11 +61,12 @@ def register_sxt_data_collection(
6161 "source" : str (self ._basepath ),
6262 "tag" : tilt_series ,
6363 "pixel_size_on_image" : str (
64- data_collection_parameters .get ("pixel_size" , 100 )
64+ data_collection_parameters .get ("pixel_size" , 100 ) * 1e-10
6565 ),
6666 "image_size_x" : data_collection_parameters .get ("image_size_x" , 0 ),
6767 "image_size_y" : data_collection_parameters .get ("image_size_y" , 0 ),
6868 "magnification" : data_collection_parameters .get ("magnification" , 0 ),
69+ "energy" : data_collection_parameters .get ("energy" , 0 ),
6970 "voltage" : 0 ,
7071 }
7172 capture_post (
@@ -177,16 +178,43 @@ def post_transfer(
177178 ).tolist ()
178179 metadata ["tilt_series_length" ] = tilt_count_txrm [0 ]
179180
181+ if txrm_ole .exists ("PositionInfo/AxisNames" ) and txrm_ole .exists (
182+ "PositionInfo/MotorPositions"
183+ ):
184+ # The ImageInfo/Energy field is empty
185+ # Instead it needs extracting from the PositionInfo list
186+ axis_names = [
187+ i
188+ for i in txrm_ole .openstream ("PositionInfo/AxisNames" )
189+ .read ()
190+ .decode ("ascii" )
191+ .split ("\x00 " )
192+ if i
193+ ]
194+ axis_values = np .frombuffer (
195+ txrm_ole .openstream ("PositionInfo/MotorPositions" ).getvalue (),
196+ np .float32 ,
197+ )
198+ if "Energy" in axis_names :
199+ energy_index = list (np .array (axis_names ) == "Energy" ).index (
200+ True
201+ )
202+ metadata ["energy" ] = int (round (axis_values [energy_index ]))
203+
180204 if not metadata .get ("has_reference" , False ):
181205 logger .debug (f"Reference image { transferred_file } not processed" )
182206 return True
183207
208+ visit_index = transferred_file .parent .parts .index (environment .visit )
209+ destination_search_dir = "/" .join (
210+ transferred_file .parent .parts [: visit_index + 2 ]
211+ )
184212 self .register_sxt_data_collection (
185213 tilt_series = transferred_file .stem ,
186214 data_collection_parameters = metadata ,
187215 file_extension = transferred_file .suffix ,
188216 image_directory = environment .default_destinations .get (
189- transferred_file . parent , transferred_file . parent
217+ Path ( destination_search_dir ), destination_search_dir
190218 ),
191219 environment = environment ,
192220 )
0 commit comments