class_docstr: Add falling snowflakes to images.
  
  This is a wrapper around
  :class:`~imgaug.augmenters.weather.RainLayer`. It executes 1 to 3
  layers per image.
  
  .. note::
  
      This augmenter currently seems to work best for medium-sized images
      around ``192x256``. For smaller images, you may want to increase the
      `speed` value to e.g. ``(0.1, 0.3)``, otherwise the drops tend to
      look like snowflakes. For larger images, you may want to increase
      the `drop_size` to e.g. ``(0.10, 0.20)``.
  
  Added in 0.4.0.
  
  **Supported dtypes**:
  
      * ``uint8``: yes; tested
      * ``uint16``: no (1)
      * ``uint32``: no (1)
      * ``uint64``: no (1)
      * ``int8``: no (1)
      * ``int16``: no (1)
      * ``int32``: no (1)
      * ``int64``: no (1)
      * ``float16``: no (1)
      * ``float32``: no (1)
      * ``float64``: no (1)
      * ``float128``: no (1)
      * ``bool``: no (1)
  
      - (1) Parameters of this augmenter are optimized for the value range
            of ``uint8``. While other dtypes may be accepted, they will lead
            to images augmented in ways inappropriate for the respective
            dtype.
  
  Parameters
  ----------
  drop_size : number or tuple of number or list of number or imgaug.parameters.StochasticParameter
      See :class:`~imgaug.augmenters.weather.RainLayer`.
  
  speed : number or tuple of number or list of number or imgaug.parameters.StochasticParameter
      See :class:`~imgaug.augmenters.weather.RainLayer`.
  
  seed : None or int or imgaug.random.RNG or numpy.random.Generator or numpy.random.BitGenerator or numpy.random.SeedSequence or numpy.random.RandomState, optional
      See :func:`~imgaug.augmenters.meta.Augmenter.__init__`.
  
  name : None or str, optional
      See :func:`~imgaug.augmenters.meta.Augmenter.__init__`.
  
  random_state : None or int or imgaug.random.RNG or numpy.random.Generator or numpy.random.BitGenerator or numpy.random.SeedSequence or numpy.random.RandomState, optional
      Old name for parameter `seed`.
      Its usage will not yet cause a deprecation warning,
      but it is still recommended to use `seed` now.
      Outdated since 0.4.0.
  
  deterministic : bool, optional
      Deprecated since 0.4.0.
      See method ``to_deterministic()`` for an alternative and for
      details about what the "deterministic mode" actually does.
  
  Examples
  --------
  >>> import imgaug.augmenters as iaa
  >>> aug = iaa.Rain(speed=(0.1, 0.3))
  
  Add rain to small images (around ``96x128``).
  
  >>> aug = iaa.Rain()
  
  Add rain to medium sized images (around ``192x256``).
  
  >>> aug = iaa.Rain(drop_size=(0.10, 0.20))
  
  Add rain to large images (around ``960x1280``).
code: def __init__(
      self,
      nb_iterations=(1, 3),
      drop_size=(0.01, 0.02),
      speed=(0.04, 0.20),
      seed=None,
      name=None,
      random_state="deprecated",
      deterministic="deprecated",
  ):
      layer = RainLayer(
          density=(0.03, 0.14),
          density_uniformity=(0.8, 1.0),
          drop_size=drop_size,
          drop_size_uniformity=(0.2, 0.5),
          angle=(-15, 15),
          speed=speed,
          blur_sigma_fraction=(0.001, 0.001),
          seed=seed,
          random_state=random_state,
          deterministic=deterministic,
      )
  
      super(Rain, self).__init__(
          nb_iterations,
          children=[layer.deepcopy() for _ in range(3)],
          random_order=False,
          seed=seed,
          name=name,
          random_state=random_state,
          deterministic=deterministic,
      )
  
imports: from __future__ import print_function, division, absolute_import
  import numpy
  import imgaug
  from .None import meta, arithmetic, blur, contrast, color
  from ..None import parameters
  from ..None import dtypes
label_desc: Use image node_id 1 to create a new Rain object from inherited base classes: meta with example: obj = Rain(nb_iterations, drop_size, speed, seed, name, random_state, deterministic)