Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions httomo/ui_layer.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from typing import Any, Dict, List, Optional, TypeAlias, Union
from importlib import import_module
from pathlib import Path
import os
import math
import re

import h5py
Expand Down Expand Up @@ -172,24 +172,26 @@ def _setup_loader(self) -> LoaderInterface:
def fix_preview_y_if_smaller_than_padding(
loader: LoaderInterface, methods_list: List[MethodWrapper]
) -> None:
vertical_preview_length = (
loader.preview.detector_y.stop - loader.preview.detector_y.start
) // loader.comm.size
max_pad_value = 0
for _, m in enumerate(methods_list):
if m.padding:
max_pad_value = max(sum(m.calculate_padding()), max_pad_value)
if max_pad_value >= vertical_preview_length:
max_pad_value = int(max(sum(m.calculate_padding()), max_pad_value))
required_preview_padding_size = max_pad_value*loader.comm.size + loader.comm.size
current_preview_size = loader.preview.detector_y.stop - loader.preview.detector_y.start
extend_preview_value = required_preview_padding_size - current_preview_size

if extend_preview_value > 0:
# extend the preview to the required_preview_padding_size
extend_preview_value_half_ceil = int(math.ceil(extend_preview_value / 2.0))
loader.preview = PreviewConfig(
angles=loader.preview.angles,
detector_y=PreviewDimConfig(
start=loader.preview.detector_y.start - max_pad_value // 2,
stop=loader.preview.detector_y.stop + max_pad_value // 2,
start=loader.preview.detector_y.start - extend_preview_value_half_ceil,
stop=loader.preview.detector_y.stop + extend_preview_value_half_ceil,
),
detector_x=loader.preview.detector_x,
)


def get_valid_ref_str(parameters: Dict[str, Any]) -> Dict[str, str]:
"""Find valid reference strings inside dictionary

Expand Down
11 changes: 8 additions & 3 deletions tests/test_ui_layer.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from httomo import ui_layer
import pytest
import numpy as np
import math

from httomo.preview import PreviewConfig, PreviewDimConfig
from httomo.runner.auxiliary_data import AuxiliaryData
Expand Down Expand Up @@ -433,12 +434,16 @@ def mock_make_data_source(padding) -> DataSetSource:
fix_preview_y_if_smaller_than_padding(loader, [wrp])
padding = wrp.calculate_padding()

if slices_total <= sum(padding):
required_preview_padding_size = sum(padding) + loader.comm.size
extend_preview_value = required_preview_padding_size - slices_total

if extend_preview_value > 0:
extend_preview_value_half_ceil = int(math.ceil(extend_preview_value / 2.0))
EXPECTED_PREVIEW_CONFIG = PreviewConfig(
angles=preview.angles,
detector_y=PreviewDimConfig(
start=detY_preview_start - padding[0],
stop=detY_preview_stop + padding[1],
start=detY_preview_start - extend_preview_value_half_ceil,
stop=detY_preview_stop + extend_preview_value_half_ceil,
),
detector_x=preview.detector_x,
)
Expand Down
Loading