GaussianSpatialModel

class gammapy.modeling.models.GaussianSpatialModel(**kwargs)[source]

Bases: gammapy.modeling.models.SpatialModel

Two-dimensional Gaussian model.

By default, the Gaussian is symmetric:

\[\phi(\text{lon}, \text{lat}) = N \times \exp\left\{-\frac{1}{2} \frac{1-\cos \theta}{1-\cos \sigma}\right\}\,,\]

where \(\theta\) is the sky separation to the model center. In this case, the Gaussian is normalized to 1 on the sphere:

\[N = \frac{1}{4\pi a\left[1-\exp(-1/a)\right]}\,,\,\,\,\, a = 1-\cos \sigma\,.\]

In the limit of small \(\theta\) and \(\sigma\), this definition reduces to the usual form:

\[\phi(\text{lon}, \text{lat}) = \frac{1}{2\pi\sigma^2} \exp{\left(-\frac{1}{2} \frac{\theta^2}{\sigma^2}\right)}\,.\]

In case an eccentricity (\(e\)) and rotation angle (\(\phi\)) are passed, then the model is an elongated Gaussian, whose evaluation is performed as in the symmetric case but using the effective radius of the Gaussian:

\[\sigma_{eff}(\text{lon}, \text{lat}) = \sqrt{ (\sigma_M \sin(\Delta \phi))^2 + (\sigma_m \cos(\Delta \phi))^2 }.\]

Here, \(\sigma_M\) (\(\sigma_m\)) is the major (minor) semiaxis of the Gaussian, and \(\Delta \phi\) is the difference between phi, the position angle of the Gaussian, and the position angle of the evaluation point.

Caveat: For the asymmetric Gaussian, the model is normalized to 1 on the plane, i.e. in small angle approximation: \(N = 1/(2 \pi \sigma_M \sigma_m)\). This means that for huge elongated Gaussians on the sky this model is not correctly normalized. However, this approximation is perfectly acceptable for the more common case of models with modest dimensions: indeed, the error introduced by normalizing on the plane rather than on the sphere is below 0.1% for Gaussians with radii smaller than ~ 5 deg.

Parameters
lon_0, lat_0Angle

Center position

sigmaAngle

Length of the major semiaxis of the Gaussian, in angular units.

efloat

Eccentricity of the Gaussian (\(0< e< 1\)).

phiAngle

Rotation angle \(\phi\): of the major semiaxis. Increases counter-clockwise from the North direction.

frame{“icrs”, “galactic”}

Center position coordinate frame

Attributes Summary

default_parameters

e

A model parameter.

evaluation_radius

Evaluation radius (Angle).

lat_0

A model parameter.

lon_0

A model parameter.

parameters

Parameters (Parameters)

phi

A model parameter.

phi_0

position

Spatial model center position

position_error

Get 95% containment position error as (EllipseSkyRegion)

sigma

A model parameter.

tag

Methods Summary

__call__(self, lon, lat)

Call evaluate method

copy(self)

A deep copy.

create(tag, \*args, \*\*kwargs)

Create a model instance.

evaluate(lon, lat, lon_0, lat_0, sigma, e, phi)

Evaluate model.

evaluate_geom(self, geom)

Evaluate model on Geom.

from_dict(data)

to_dict(self)

Create dict for YAML serilisation

to_region(self, \*\*kwargs)

Model outline (EllipseSkyRegion).

Attributes Documentation

default_parameters = <gammapy.modeling.parameter.Parameters object>
e

A model parameter.

Note that the parameter value has been split into a factor and scale like this:

value = factor x scale

Users should interact with the value, quantity or min and max properties and consider the fact that there is a factor` and scale an implementation detail.

That was introduced for numerical stability in parameter and error estimation methods, only in the Gammapy optimiser interface do we interact with the factor, factor_min and factor_max properties, i.e. the optimiser “sees” the well-scaled problem.

Parameters
namestr

Name

factorfloat or Quantity

Factor

scalefloat, optional

Scale (sometimes used in fitting)

unitUnit or str, optional

Unit

minfloat, optional

Minimum (sometimes used in fitting)

maxfloat, optional

Maximum (sometimes used in fitting)

frozenbool, optional

Frozen? (used in fitting)

evaluation_radius

Evaluation radius (Angle).

Set as \(5\sigma\).

lat_0

A model parameter.

Note that the parameter value has been split into a factor and scale like this:

value = factor x scale

Users should interact with the value, quantity or min and max properties and consider the fact that there is a factor` and scale an implementation detail.

That was introduced for numerical stability in parameter and error estimation methods, only in the Gammapy optimiser interface do we interact with the factor, factor_min and factor_max properties, i.e. the optimiser “sees” the well-scaled problem.

Parameters
namestr

Name

factorfloat or Quantity

Factor

scalefloat, optional

Scale (sometimes used in fitting)

unitUnit or str, optional

Unit

minfloat, optional

Minimum (sometimes used in fitting)

maxfloat, optional

Maximum (sometimes used in fitting)

frozenbool, optional

Frozen? (used in fitting)

lon_0

A model parameter.

Note that the parameter value has been split into a factor and scale like this:

value = factor x scale

Users should interact with the value, quantity or min and max properties and consider the fact that there is a factor` and scale an implementation detail.

That was introduced for numerical stability in parameter and error estimation methods, only in the Gammapy optimiser interface do we interact with the factor, factor_min and factor_max properties, i.e. the optimiser “sees” the well-scaled problem.

Parameters
namestr

Name

factorfloat or Quantity

Factor

scalefloat, optional

Scale (sometimes used in fitting)

unitUnit or str, optional

Unit

minfloat, optional

Minimum (sometimes used in fitting)

maxfloat, optional

Maximum (sometimes used in fitting)

frozenbool, optional

Frozen? (used in fitting)

parameters

Parameters (Parameters)

phi

A model parameter.

Note that the parameter value has been split into a factor and scale like this:

value = factor x scale

Users should interact with the value, quantity or min and max properties and consider the fact that there is a factor` and scale an implementation detail.

That was introduced for numerical stability in parameter and error estimation methods, only in the Gammapy optimiser interface do we interact with the factor, factor_min and factor_max properties, i.e. the optimiser “sees” the well-scaled problem.

Parameters
namestr

Name

factorfloat or Quantity

Factor

scalefloat, optional

Scale (sometimes used in fitting)

unitUnit or str, optional

Unit

minfloat, optional

Minimum (sometimes used in fitting)

maxfloat, optional

Maximum (sometimes used in fitting)

frozenbool, optional

Frozen? (used in fitting)

phi_0
position

Spatial model center position

position_error

Get 95% containment position error as (EllipseSkyRegion)

sigma

A model parameter.

Note that the parameter value has been split into a factor and scale like this:

value = factor x scale

Users should interact with the value, quantity or min and max properties and consider the fact that there is a factor` and scale an implementation detail.

That was introduced for numerical stability in parameter and error estimation methods, only in the Gammapy optimiser interface do we interact with the factor, factor_min and factor_max properties, i.e. the optimiser “sees” the well-scaled problem.

Parameters
namestr

Name

factorfloat or Quantity

Factor

scalefloat, optional

Scale (sometimes used in fitting)

unitUnit or str, optional

Unit

minfloat, optional

Minimum (sometimes used in fitting)

maxfloat, optional

Maximum (sometimes used in fitting)

frozenbool, optional

Frozen? (used in fitting)

tag = 'GaussianSpatialModel'

Methods Documentation

__call__(self, lon, lat)

Call evaluate method

copy(self)

A deep copy.

static create(tag, *args, **kwargs)

Create a model instance.

Examples

>>> from gammapy.modeling import Model
>>> spectral_model = Model.create("PowerLaw2SpectralModel", amplitude="1e-10 cm-2 s-1", index=3)
>>> type(spectral_model)
gammapy.modeling.models.spectral.PowerLaw2SpectralModel
static evaluate(lon, lat, lon_0, lat_0, sigma, e, phi)[source]

Evaluate model.

evaluate_geom(self, geom)

Evaluate model on Geom.

classmethod from_dict(data)
to_dict(self)

Create dict for YAML serilisation

to_region(self, **kwargs)[source]

Model outline (EllipseSkyRegion).