%pylab inline import numpy as np import matplotlib.pyplot as plt import scipy.ndimage as ndimage import scipy.stats as stats from scipy.stats import multivariate_normal # a blank image isize = 100 image_0 = np.zeros((isize,isize)) plt.imshow(image_0, cmap='gray', vmin=-0.1, vmax=0.1) # a gaussian galaxy def gal2d(grid, m=None, c=None): var = multivariate_normal(mean=m, cov=cov) return var.pdf(grid) x = np.arange(0, isize, 1) y0, x0 = np.meshgrid(x, x) grid = np.dstack((y0, x0)) mean = [30,30] cov = [[20, 20], [20, 100]] image_gal = gal2d(grid,m=mean,c=cov) image_gal *= 100 plt.imshow(image_gal, cmap='gray',vmin=-0.1, vmax=0.1) # useful functions for filtering ndimage.gaussian_filter(image, sigma=(sig, sig), order=0)