photutils.datasets.make_noise_image(shape, distribution='gaussian', mean=None, stddev=None, seed=None)[source]

Make a noise image containing Gaussian or Poisson noise.

shape2-tuple of int

The shape of the output 2D image.

distribution{‘gaussian’, ‘poisson’}

The distribution used to generate the random noise:

  • 'gaussian': Gaussian distributed noise.

  • 'poisson': Poisson distributed noise.


The mean of the random distribution. Required for both Gaussian and Poisson noise. The default is 0.

stddevfloat, optional

The standard deviation of the Gaussian noise to add to the output image. Required for Gaussian noise and ignored for Poisson noise (the variance of the Poisson distribution is equal to its mean).

seedint, optional

A seed to initialize the numpy.random.BitGenerator. If None, then fresh, unpredictable entropy will be pulled from the OS.

image2D ndarray

Image containing random noise.


import matplotlib.pyplot as plt
from photutils.datasets import make_noise_image

# make Gaussian and Poisson noise images
shape = (100, 100)
image1 = make_noise_image(shape, distribution='gaussian', mean=0.,
image2 = make_noise_image(shape, distribution='poisson', mean=5.)

# plot the images
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4))
ax1.imshow(image1, origin='lower', interpolation='nearest')
ax1.set_title(r'Gaussian noise ($\mu=0$, $\sigma=5.$)')
ax2.imshow(image2, origin='lower', interpolation='nearest')
ax2.set_title(r'Poisson noise ($\mu=5$)')

(Source code, png, hires.png, pdf, svg)