Source code for galfitools.sim.MakeSim
#! /usr/bin/env python3
import numpy as np
from astropy.io import fits
from galfitools.galin.std import GetAxis
[docs]
def makeSim(image, GAIN, skymean, skystd, newimage) -> None:
"""Simulates a observed galaxy from a GALFIT model
Makes a simple artificial galaxy model. It adds Poisson
noise and sky noise to the GALFIT model.
Parameters
----------
image : str
name of the FITS image that contains the galaxy model
GAIN : float
CCD's gain e-/ADU
skymean : float
value of the mean of sky background
skystd : float
value of standard deviation of sky background
newimage : str
name of the new simulated image
Returns
-------
None
"""
sizex, sizey = GetAxis(image)
hdu = fits.open(image)
img = hdu[0].data
eimg = GAIN * img
noisyimg = np.random.poisson(eimg)
pimg = noisyimg / GAIN
hdu[0].data = pimg
hdu.writeto("poissonimg.fits", overwrite=True)
sky = np.random.normal(skymean, skystd, (sizex, sizey))
hdusky = fits.PrimaryHDU()
hdusky.data = sky
hdusky.writeto("skynoise.fits", overwrite=True)
# adds the two images:
imgsim = pimg + sky
hdu[0].data = imgsim
hdu.writeto(newimage, overwrite=True)
hdu.close()