# NormGauss2D

class sherpa.models.basic.NormGauss2D(name='normgauss2d')[source] [edit on github]

Two-dimensional normalised gaussian function.

fwhm

The Full-Width Half Maximum of the gaussian along the major axis. It is related to the sigma value by: FWHM = sqrt(8 * log(2)) * sigma.

xpos

The center of the gaussian on the x0 axis.

ypos

The center of the gaussian on the x1 axis.

ellip

The ellipticity of the gaussian.

theta

The angle of the major axis. It is in radians, measured counter-clockwise from the X0 axis (i.e. the line X1=0).

ampl

The amplitude refers to the integral of the model over the range -infinity to infinity for both axes.

Notes

The functional form of the model for points is:

```f(x0,x1) = 4 * log(2) * ampl * exp(-4 * log(2) * r(x0,x1)^2)
-------------------------------------------------
pi * fwhm * fwhm * sqrt(1 - ellip * ellip)

r(x0,x1)^2 = xoff(x0,x1)^2 * (1-ellip)^2 + yoff(x0,x1)^2
-------------------------------------------
fwhm^2 * (1-ellip)^2

xoff(x0,x1) = (x0 - xpos) * cos(theta) + (x1 - ypos) * sin(theta)

yoff(x0,x1) = (x1 - ypos) * cos(theta) - (x0 - xpos) * sin(theta)
```

The grid version is evaluated by adaptive multidimensional integration scheme on hypercubes using cubature rules, based on code from HIntLib ([1]) and GSL ([2]).

References

Attributes Summary

 `cache` The maximum size of the cache. `lpars` Return any linked parameters. `ndim` A two-dimensional model. `pars` Return the parameters of the model. `thawedparhardmaxes` The hard maximum values for the thawed parameters. `thawedparhardmins` The hard minimum values for the thawed parameters. `thawedparmaxes` The maximum limits of the thawed parameters. `thawedparmins` The minimum limits of the thawed parameters. `thawedpars` The thawed parameters of the model.

Methods Summary

 `apply`(outer, *otherargs, **otherkwargs) Clear the cache. Display the cache status. `calc`(p, *args, **kwargs) Evaluate the model on a grid. Freeze any thawed parameters of the model. Return the thawed parameter objects. `guess`(dep, *args, **kwargs) Set an initial guess for the parameter values. `regrid`(*args, **kwargs) Allow a model to be evaluated on a different grid than requested. Reset the parameter values. `set_center`(xpos, ypos, *args, **kwargs) `startup`([cache]) Called before a model may be evaluated multiple times. Called after a model may be evaluated multiple times. Thaw any frozen parameters of the model.

Attributes Documentation

cache = 5

The maximum size of the cache.

lpars

This only returns linked parameters that are not related to the model, and each parameter is not repeated.

Examples

By default there are no linked parameters:

```>>> from sherpa.models.basic import Gauss2D
>>> mdl = Gauss2D("mdl")
>>> len(mdl.pars)
6
>>> mdl.lpars
()
```

Force the model to have identical xpos and ypos parameters. Since the linked parameter value (mdl.xpos) is part of the model it is not included in `lpars`:

```>>> mdl.ypos = mdl.xpos
>>> len(mdl.pars)
6
>>> mdl.lpars
()
```

Add a link to allow the sigma term to be fit rather than FWHM. Since the linked parameter - here from the Const1D model - is not a part of the model it is included in `lpars`:

```>>> import numpy as np
>>> from sherpa.models.basic import Const1D
>>> sigma = Const1D("sigma")
>>> mdl.fwhm = 2 * np.sqrt(2 * np.log(2)) * sigma.c0
>>> len(mdl.pars)
6
>>> mdl.lpars
(<Parameter 'c0' of model 'sigma'>,)
```
ndim: int | None = 2

A two-dimensional model.

pars

Return the parameters of the model.

This does not include any linked parameters.

Changed in version 4.16.1: The pars field can no-longer be set directly. Individual elements can still be changed.

thawedparhardmaxes

The hard maximum values for the thawed parameters.

The minimum and maximum range of the parameters can be changed with thawedparmins and thawedparmaxes but only within the range given by thawedparhardmins to thawparhardmaxes.

thawedparhardmins

The hard minimum values for the thawed parameters.

The minimum and maximum range of the parameters can be changed with thawedparmins and thawedparmaxes but only within the range given by thawedparhardmins to thawparhardmaxes.

thawedparmaxes

The maximum limits of the thawed parameters.

Get or set the maximum limits of the thawed parameters of the model as a list of numbers. If there are no thawed parameters then [] is used. The ordering matches that of the pars attribute.

`thawedpars`, `thawedarhardmaxes`, `thawedparmins`

thawedparmins

The minimum limits of the thawed parameters.

Get or set the minimum limits of the thawed parameters of the model as a list of numbers. If there are no thawed parameters then [] is used. The ordering matches that of the pars attribute.

`thawedpars`, `thawedarhardmins`, `thawedparmaxes`

thawedpars

The thawed parameters of the model.

Get or set the thawed parameters of the model as a list of numbers. If there are no thawed parameters then [] is used. The ordering matches that of the pars attribute.

Methods Documentation

apply(outer, *otherargs, **otherkwargs) [edit on github]
cache_clear() None [edit on github]

Clear the cache.

cache_status() None [edit on github]

Display the cache status.

Information on the cache - the number of “hits”, “misses”, and “requests” - is displayed at the INFO logging level.

Example

```>>> pl.cache_status()
powlaw1d.pl                size:    5  hits:   633  misses:   240  check=  873
```
calc(p, *args, **kwargs)[source] [edit on github]

Evaluate the model on a grid.

Parameters:
• p (sequence of numbers) – The parameter values to use. The order matches the `pars` field.

• *args – The model grid. The values can be scalar or arrays, and the number depends on the dimensionality of the model and whether it is being evaluated over an integrated grid or at a point (or points).

• **kwargs – Any model-specific values that are not parameters.

freeze() None [edit on github]

Freeze any thawed parameters of the model.

get_center()[source] [edit on github]
get_thawed_pars()  [edit on github]

Return the thawed parameter objects.

This includes linked parameters, which complicates the min/max settings, since the range on the components of a linked parameter does not match that of the original parameter, which is an issue when the limits are exceeded.

guess(dep, *args, **kwargs)[source] [edit on github]

Set an initial guess for the parameter values.

Attempt to set the parameter values, and ranges, for the model to match the data values. This is intended as a rough guess, so it is expected that the model is only evaluated a small number of times, if at all.

regrid(*args, **kwargs) [edit on github]

Allow a model to be evaluated on a different grid than requested.

The return value is a new instance of the model, set up to evaluate the model on the supplied axes which will be regridded onto the requested grid.

reset() None [edit on github]

Reset the parameter values.

Restores each parameter to the last value it was set to. This allows the parameters to be easily reset after a fit.

set_center(xpos, ypos, *args, **kwargs)[source] [edit on github]
startup(cache: bool = False) None [edit on github]

Called before a model may be evaluated multiple times.

Parameters:

cache (bool, optional) – Should a cache be used when evaluating the models.

teardown() None [edit on github]

Called after a model may be evaluated multiple times.

thaw() None [edit on github]

Thaw any frozen parameters of the model.

Those parameters that are marked as “always frozen” are skipped.