Skip to content

error closing when writing metadata MicroscopeDataWriter - Handle with no metadata situation #83

Description

@Itamar-Lev

To reproduce:
from imutils import MicroscopeDataReader, MicroscopeDataWriter
input_video_path = "/lisc/data/scratch/neurobiology/zimmer/ItamarLev/pepita/ASH_done_raw/2025_12_16_01_40_pos_control_1per_worm1_Pepita/2025_12_16_01_40_pos_control_1per_worm1_Pepita_Ch0_MMStack.btf"
output_folder_path = r"/lisc/data/scratch/neurobiology/zimmer/ItamarLev/pepita/ASH_done_raw/2025_12_16_01_40_pos_control_1per_worm1_Pepita/ndtiff_test"

data_reader = MicroscopeDataReader(input_video_path, as_raw_tiff=True, raw_tiff_num_slices=1)
total_frame_number = data_reader.get_number_of_timepoints()
start_frame, end_frame = 0, total_frame_number
data_writer = MicroscopeDataWriter(dataset_path=output_folder_path, dataset_name="test_btf_2_ndtiff", add_date_time= False)
for frame_number in range(start_frame, end_frame):
if frame_number % 100 == 0:
print(f"Processing frame {frame_number} / {total_frame_number}")
frame = data_reader.get_frame(time=frame_number)
data_writer.put_image(frame, time=frame_number)

data_writer.close()
data_reader.close()

IMPORTANT: the error appears only when doing data_writer.close()!

error:
Traceback (most recent call last):
File "/lisc/data/scratch/neurobiology/zimmer/ItamarLev/pepita/code_temp/adapt_oas2_to_oas1.py", line 108, in
process_one_folder(recording_folder)
File "/lisc/data/scratch/neurobiology/zimmer/ItamarLev/pepita/code_temp/adapt_oas2_to_oas1.py", line 61, in process_one_folder
convert_btf_to_ndtiff(recording_folder)
File "/lisc/data/scratch/neurobiology/zimmer/ItamarLev/pepita/code_temp/adapt_oas2_to_oas1.py", line 40, in convert_btf_to_ndtiff
ometiff2ndtiff.main([
File "/lisc/data/scratch/neurobiology/zimmer/autoscope/code/video_conversions/python/video_conversions/ndtiff/ometiff2ndtiff.py", line 174, in main
convert_ome_tiff_to_ndtiff(
File "/lisc/data/scratch/neurobiology/zimmer/autoscope/code/video_conversions/python/video_conversions/ndtiff/ometiff2ndtiff.py", line 148, in convert_ome_tiff_to_ndtiff
data_writer.close()
File "/lisc/data/scratch/neurobiology/zimmer/autoscope/code/imutils/imutils/scopedatamanager/microscope_data_writer.py", line 71, in close
self.finish()
File "/lisc/data/scratch/neurobiology/zimmer/autoscope/code/imutils/imutils/scopedatamanager/microscope_data_writer.py", line 81, in finish
self._write_metadata_file()
File "/lisc/data/scratch/neurobiology/zimmer/autoscope/code/imutils/imutils/scopedatamanager/microscope_data_writer.py", line 87, in _write_metadata_file
metadata = self._create_complete_metadata()
File "/lisc/data/scratch/neurobiology/zimmer/autoscope/code/imutils/imutils/scopedatamanager/microscope_data_writer.py", line 108, in _create_complete_metadata
metadata[key] = self._data_store.read_metadata(channel=coordinates['channel'], z=coordinates['z'], time=coordinates['time'], position=coordinates['position'])
File "/lisc/data/scratch/neurobiology/zimmer/.conda/envs/autoscope_behaviour_shared/lib/python3.8/site-packages/ndstorage/ndtiff_dataset.py", line 166, in read_metadata
return self._do_read_metadata(axes)
File "/lisc/data/scratch/neurobiology/zimmer/.conda/envs/autoscope_behaviour_shared/lib/python3.8/site-packages/ndstorage/ndtiff_dataset.py", line 365, in _do_read_metadata
return reader.read_metadata(index)
File "/lisc/data/scratch/neurobiology/zimmer/.conda/envs/autoscope_behaviour_shared/lib/python3.8/site-packages/ndstorage/ndtiff_file.py", line 371, in read_metadata
return json.loads(
File "/lisc/data/scratch/neurobiology/zimmer/.conda/envs/autoscope_behaviour_shared/lib/python3.8/json/init.py", line 343, in loads
s = s.decode(detect_encoding(s), 'surrogatepass')
File "/lisc/data/scratch/neurobiology/zimmer/.conda/envs/autoscope_behaviour_shared/lib/python3.8/encodings/utf_32_be.py", line 11, in decode
return codecs.utf_32_be_decode(input, errors, True)
UnicodeDecodeError: 'utf-32-be' codec can't decode byte 0x00 in position 84: truncated data

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions