def get_downsample()

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}