code: def sim_snow(
      tens: Tensor, snow_coeff: Union[float, int] = -1
  ) -> Tensor:
      r"""
          Simulate snowy conditions on an image.
  
      Args:
          tens (Tensor) : Any regular ``caer.Tensor``.
          snow_coeff (int): Coefficient value.
  
      Returns:
          Tensor of shape ``(height, width, channels)``.
  
      Examples::
  
          >> tens = caer.data.sunrise
          >> filtered = caer.filters.sim_snow(tens, snow_coeff=-1)
          >> filtered
          (427, 640, 3)
  
      """
      if snow_coeff != -1:
          if snow_coeff < 0.0 or snow_coeff > 1.0:
              raise ValueError(
                  "Snow coeff must only be between 0 and 1"
              )
      else:
          snow_coeff = random.uniform(0, 1)
  
      snow_coeff *= 255 / 2
      snow_coeff += 255 / 3
  
      return _snow_process(tens, snow_coeff)
  
file_path: caer/caer/transforms/simulate.py
imports: import numpy
  import cv2
  import random
  import math
  from ..coreten import Tensor, is_tensor
  from ..annotations import Tuple, Optional, Union
  from .functional import is_numeric, is_numeric_list_or_tuple, is_tuple, _rgb, _snow_process, _generate_random_lines, _rain_process, _generate_random_blur_coordinates, _add_blur, _gravel_process, _add_sun_flare_line, _add_sun_process, _apply_motion_blur, _autumn_process, _shadow_process
label_desc: Use image node_id 1 for calling a global function with example usage: sim_snow(tens, snow_coeff) and returns: _snow_process