code: def generate_poisson_noise(image, exposure_time_map, seed=-1):
      
      setup_random_seed(seed)
      image_counts = np.multiply(image, exposure_time_map)
      return image - np.divide(np.random.poisson(image_counts, image.shape), exposure_time_map)
docs: Generate a two-dimensional poisson noise_maps-mappers from an image.
  
      Values are computed from a Poisson distribution using the image's input values in units of counts.
  
      Parameters
      ----------
      image : ndarray
          The 2D image, whose values in counts are used to draw Poisson noise_maps values.
      exposure_time_map : Union(ndarray, int)
          2D array of the exposure time in each pixel used to convert to / from counts and electrons per second.
      seed : int
          The seed of the random number generator, used for the random noise_maps maps.
  
      Returns
      -------
      poisson_noise_map: ndarray
          An array describing simulated poisson noise_maps