in pathology/transformation_pipeline/ingestion_lib/dicom_gen/wsi_to_dicom/wsi_pyramid_gen_config.py [0:0]
def get_downsample(self, pixel_spacing: float) -> Optional[Set[int]]:
"""Returns set of image downsampling factors to generate for an image.
Args:
pixel_spacing: Pixel spacing of image.
Returns:
Set of downsampling factors.
"""
if self._downsample_config is None:
return None
found_spacing = -1
smallest_spacing = None
downsample = []
for spacing, value in self._downsample_config.items():
spacing = float(spacing)
if (spacing <= pixel_spacing) and (spacing >= found_spacing):
downsample = value
found_spacing = spacing
elif found_spacing == -1 and (
smallest_spacing is None or smallest_spacing > spacing
):
smallest_spacing = spacing
downsample = value
if isinstance(downsample, set):
return downsample
if isinstance(downsample, list):
return set(downsample)
return {downsample}