fake
- sherpa.astro.ui.fake(id: IdType | None = None, method=<function poisson_noise>) None
Simulate a data set.
Take a data set, evaluate the model for each bin, and then use this value to create a data value from each bin. The default behavior is to use a Poisson distribution, with the model value as the expectation value of the distribution.
- Parameters:
id (int, str, or None, optional) – The identifier for the data set to use. If not given then the default identifier is used, as returned by
get_default_id.method (callable or None, optional) – If None (the default) then the data is simulated using the
sherpa.utils.poisson_noiseroutine. If set, it must be a callable that takes an ndarray of the predicted values and an optional rng argument that takes a NumPy random generator, and returns an ndarray of the same size with the simulated data.
See also
dataspace1dCreate the independent axis for a 1D data set.
dataspace2dCreate the independent axis for a 2D data set.
get_depReturn the dependent axis of a data set.
load_arraysCreate a data set from array values.
set_modelSet the source model expression for a data set.
Notes
The function for the
methodargument accepts a single argument, the data values, and should return an array of the same shape as the input, with the data values to use.The function can be called on any data set, it does not need to have been created with
dataspace1dordataspace2d.Specific data set types may have their own, specialized, version of this function.
Examples
Create a random realisation of the model - a constant plus gaussian line - for the range x=-5 to 5.
>>> dataspace1d(-5, 5, 0.5, dstype=Data1D) >>> set_source(gauss1d.gline + const1d.bgnd) >>> bgnd.c0 = 2 >>> gline.fwhm = 4 >>> gline.ampl = 5 >>> gline.pos = 1 >>> fake() >>> plot_data() >>> plot_model(overplot=True)
For a 2D data set, display the simulated data, model, and residuals:
>>> dataspace2d([150, 80], id='fakeimg') >>> set_source('fakeimg', beta2d.src + polynom2d.bg) >>> src.xpos, src.ypos = 75, 40 >>> src.r0, src.alpha = 15, 2.3 >>> src.ellip, src.theta = 0.4, 1.32 >>> src.ampl = 100 >>> bg.c, bg.cx1, bg.cy1 = 3, 0.4, 0.3 >>> fake('fakeimg') >>> image_fit('fakeimg')