Source code for gunz_cm.resolution_enhancements.transforms.rand_downsample

"""
Module.

Examples
--------
"""
__author__ = "Yeremia Gunawan Adhisantoso"
__email__ = "adhisant@tnt.uni-hannover.de"
__license__ = "Clear BSD"
__version__ = "1.0.0"
import numpy as np
from ...preprocs import rand_downsample

[docs] class RandomDownsampleCM(): """ Class RandomDownsampleCM. Parameters ---------- Returns ------- Examples -------- Notes ----- """ def __init__( self, min_rate=1.0, max_rate=1.0, ): """ Initializes the RandomDownsampleCM transform. Parameters ---------- min_rate : float, optional Minimum downsampling rate (default is 1.0). max_rate : float, optional Maximum downsampling rate (default is 1.0). Raises ------ ValueError If min_rate is greater than max_rate. If min_rate or max_rate is not between 0 and 1.0. Examples -------- """ if min_rate > max_rate: raise ValueError("min_rate must be less than or equal to max_rate") if not (0 <= min_rate <= 1.0): raise ValueError("min_rate must be between 0 and 1.0") if not (0 <= max_rate <= 1.0): raise ValueError("max_rate must be between 0 and 1.0") self.min_rate = min_rate self.max_rate = max_rate self.val_range = self.max_rate - self.min_rate def __call__( self, data, ): """ Function __call__. Parameters ---------- Returns ------- Examples -------- Notes ----- """ target_ds_rate = self.val_range * np.random.rand() + self.min_rate cm = data['input'] cm = rand_downsample( cm, target_ds_rate, ) data['input'] = cm return data