code: def _generate_random_lines(imshape, slant, drop_length, rain_type):
      drops = []
      area = imshape[0] * imshape[1]
      num_drops = area // 600
  
      if rain_type.lower() == "drizzle":
          num_drops = area // 770
          drop_length = 10
  
      elif rain_type.lower() == "heavy":
          drop_length = 30
  
      elif rain_type.lower() == "torrential":
          num_drops = area // 500
          drop_length = 60
  
      for i in range(
          num_drops
      ):  ## If you need heavier rain, try increasing this
          if slant < 0:
              x = np.random.randint(slant, imshape[1])
          else:
              x = np.random.randint(0, imshape[1] - slant)
  
          y = np.random.randint(0, imshape[0] - drop_length)
          drops.append((x, y))
  
      return drops, drop_length
  
imports: import cv2
  import random
  import math
  import numpy
  from ..coreten import Tensor, to_tensor
  from ..annotations import Tuple, Union
  from ..color import to_hls, to_rgb, to_bgr, to_hsv, to_gray, to_lab
label_desc: Use image node_id 12 for calling a global function with example usage: _generate_random_lines(imshape, slant, drop_length, rain_type) and returns: drops,  drop_length