discretize_model#
- astropy.convolution.discretize_model(model, x_range, y_range=None, mode='center', factor=10)[source]#
Evaluate an analytical model function on a pixel grid.
- Parameters:
- model
Model
or callable. Analytical model function to be discretized. A callable that is not a
Model
instance is converted to a model usingcustom_model
.- x_range2-tuple
Lower and upper bounds of x pixel values at which the model is evaluated. The upper bound is non-inclusive. A
x_range
of(0, 3)
means the model will be evaluated at x pixels 0, 1, and 2. The difference between the upper and lower bound must be a whole number so that the output array size is well defined.- y_range2-tuple or
None
, optional Lower and upper bounds of y pixel values at which the model is evaluated. The upper bound is non-inclusive. A
y_range
of(0, 3)
means the model will be evaluated at y pixels of 0, 1, and 2. The difference between the upper and lower bound must be a whole number so that the output array size is well defined.y_range
is necessary only for 2D models.- mode{‘center’, ‘linear_interp’, ‘oversample’, ‘integrate’}, optional
- One of the following modes:
'center'
(default)Discretize model by taking the value at the center of the pixel bins.
'linear_interp'
Discretize model by linearly interpolating between the values at the edges (1D) or corners (2D) of the pixel bins. For 2D models, the interpolation is bilinear.
'oversample'
Discretize model by taking the average of model values in the pixel bins on an oversampled grid. Use the
factor
keyword to set the integer oversampling factor.
'integrate'
Discretize model by integrating the model over the pixel bins using
scipy.integrate.quad
. This mode conserves the model integral on a subpixel scale, but is very slow.
- factor
int
, optional The integer oversampling factor used when
mode='oversample'
. Ignored otherwise.
- model
- Returns:
- array
numpy.ndarray
The discretized model array.
- array
Examples
In this example, we define a
Gaussian1D
model that has been normalized so that it sums to 1.0. We then discretize this model using the'center'
,'linear_interp'
, and'oversample'
(withfactor=10
) modes.(
Source code
,png
,svg
,pdf
)