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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions