diff --git a/iohub/ngff/utils.py b/iohub/ngff/utils.py index 973b01d9..099ec9bc 100644 --- a/iohub/ngff/utils.py +++ b/iohub/ngff/utils.py @@ -407,9 +407,8 @@ def apply_transform_to_tczyx_and_save( Additional arguments to pass to the function. """ input_time_indices = _slice_to_list(input_time_indices) - output_time_indices = _slice_to_list(output_time_indices) results = {} - for input_time_index in input_time_indices: + for i, input_time_index in enumerate(input_time_indices): result = _apply_transform_to_czyx( func, input_position_path=input_position_path, @@ -418,19 +417,28 @@ def apply_transform_to_tczyx_and_save( **kwargs, ) if result is not None: - results[input_time_index] = result + results[i] = result else: _echo_finished( input_time=input_time_index, output_channel=output_channel_indices, skipped=True, ) - _save_transformed( - transformed=list(results.values()), - output_position_path=output_position_path, - output_channel_indices=output_channel_indices, - output_time_indices=list(results.keys()), - ) + if results: + output_time_indices = _slice_to_list(output_time_indices) + output_time_indices = [output_time_indices[i] for i in results.keys()] + _save_transformed( + transformed=list(results.values()), + output_position_path=output_position_path, + output_channel_indices=output_channel_indices, + output_time_indices=output_time_indices, + ) + else: + click.echo( + f"No valid time points to write for channel indices " + f"{output_channel_indices}, output time indices " + f"{output_time_indices}" + ) del results _echo_finished(input_time_indices, output_channel_indices, skipped=False)