GeneralizedGaussianSpatialModel#

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

Bases: SpatialModel

Two-dimensional Generalized Gaussian model.

For more information see Generalized gaussian spatial model.

Parameters:
lon_0, lat_0Angle

Center position. Default is “0 deg”, “0 deg”.

r_0Angle

Length of the major semiaxis, in angular units. Default is 1 deg.

etafloat

Shape parameter within (0, 1). Special cases for disk: ->0, Gaussian: 0.5, Laplace:1 Default is 0.5.

efloat

Eccentricity (\(0< e< 1\)). Default is 0.

phiAngle

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

frame{“icrs”, “galactic”}

Center position coordinate frame.

Attributes Summary

covariance

default_parameters

e

A model parameter.

eta

A model parameter.

evaluation_bin_size_min

Minimal evaluation bin size as an Angle.

evaluation_radius

Evaluation radius as an Angle.

evaluation_region

Evaluation region consistent with evaluation radius.

frozen

Frozen status of a model, True if all parameters are frozen.

is_energy_dependent

lat_0

A model parameter.

lon_0

A model parameter.

parameters

Parameters as a Parameters object.

parameters_unique_names

phi

A model parameter.

phi_0

position

Spatial model center position as a SkyCoord.

position_error

Get 95% containment position error as EllipseSkyRegion.

position_lonlat

Spatial model center position (lon, lat) in radians and frame of the model.

r_0

A model parameter.

tag

type

Methods Summary

__call__(lon, lat[, energy])

Call evaluate method.

copy(**kwargs)

Deep copy.

evaluate(lon, lat, lon_0, lat_0, r_0, eta, ...)

evaluate_geom(geom)

Evaluate model on Geom.

freeze()

Freeze all parameters.

from_dict(data, **kwargs)

Create a spatial model from a dictionary.

from_parameters(parameters, **kwargs)

Create model from parameter list.

from_position(position, **kwargs)

Define the position of the model using a SkyCoord.

integrate_geom(geom[, oversampling_factor])

Integrate model on Geom or RegionGeom.

plot([ax, geom])

Plot spatial model.

plot_error([ax, which, kwargs_position, ...])

Plot the errors of the spatial model.

plot_grid([geom])

Plot spatial model energy slices in a grid.

plot_interactive([ax, geom])

Plot spatial model.

plot_position_error([ax])

Plot position error.

reassign(datasets_names, new_datasets_names)

Reassign a model from one dataset to another.

to_dict([full_output])

Create dictionary for YAML serilisation.

to_region([x_r_0])

Model outline at a given number of \(r_0\).

unfreeze()

Restore parameters frozen status to default.

Attributes Documentation

covariance#
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.

valuefloat or Quantity

Value.

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).

errorfloat

Parameter error.

scan_minfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_maxfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_n_values: int

Number of values to be used for the parameter scan.

scan_n_sigmaint

Number of sigmas to scan.

scan_values: `numpy.array`

Scan values. Overwrites all the scan keywords before.

scale_method{‘scale10’, ‘factor1’, None}

Method used to set factor and scale.

interp{“lin”, “sqrt”, “log”}

Parameter scaling to use for the scan.

priorPrior

Prior set on the parameter.

eta#

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.

valuefloat or Quantity

Value.

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).

errorfloat

Parameter error.

scan_minfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_maxfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_n_values: int

Number of values to be used for the parameter scan.

scan_n_sigmaint

Number of sigmas to scan.

scan_values: `numpy.array`

Scan values. Overwrites all the scan keywords before.

scale_method{‘scale10’, ‘factor1’, None}

Method used to set factor and scale.

interp{“lin”, “sqrt”, “log”}

Parameter scaling to use for the scan.

priorPrior

Prior set on the parameter.

evaluation_bin_size_min#

Minimal evaluation bin size as an Angle.

The bin min size is defined as r_0/(3+8*eta)/(e+1).

evaluation_radius#

Evaluation radius as an Angle.

The evaluation radius is defined as r_eval = r_0*(1+8*eta) so it verifies: r_eval -> r_0 if eta -> 0 r_eval = 5*r_0 > 5*sigma_gauss = 5*r_0/sqrt(2) ~ 3.5*r_0 if eta=0.5 r_eval = 9*r_0 > 5*sigma_laplace = 5*sqrt(2)*r_0 ~ 7*r_0 if eta = 1 r_eval -> inf if eta -> inf

evaluation_region#

Evaluation region consistent with evaluation radius.

frozen#

Frozen status of a model, True if all parameters are frozen.

is_energy_dependent#
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.

valuefloat or Quantity

Value.

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).

errorfloat

Parameter error.

scan_minfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_maxfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_n_values: int

Number of values to be used for the parameter scan.

scan_n_sigmaint

Number of sigmas to scan.

scan_values: `numpy.array`

Scan values. Overwrites all the scan keywords before.

scale_method{‘scale10’, ‘factor1’, None}

Method used to set factor and scale.

interp{“lin”, “sqrt”, “log”}

Parameter scaling to use for the scan.

priorPrior

Prior set on the parameter.

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.

valuefloat or Quantity

Value.

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).

errorfloat

Parameter error.

scan_minfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_maxfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_n_values: int

Number of values to be used for the parameter scan.

scan_n_sigmaint

Number of sigmas to scan.

scan_values: `numpy.array`

Scan values. Overwrites all the scan keywords before.

scale_method{‘scale10’, ‘factor1’, None}

Method used to set factor and scale.

interp{“lin”, “sqrt”, “log”}

Parameter scaling to use for the scan.

priorPrior

Prior set on the parameter.

parameters#

Parameters as a Parameters object.

parameters_unique_names#
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.

valuefloat or Quantity

Value.

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).

errorfloat

Parameter error.

scan_minfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_maxfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_n_values: int

Number of values to be used for the parameter scan.

scan_n_sigmaint

Number of sigmas to scan.

scan_values: `numpy.array`

Scan values. Overwrites all the scan keywords before.

scale_method{‘scale10’, ‘factor1’, None}

Method used to set factor and scale.

interp{“lin”, “sqrt”, “log”}

Parameter scaling to use for the scan.

priorPrior

Prior set on the parameter.

phi_0#
position#

Spatial model center position as a SkyCoord.

position_error#

Get 95% containment position error as EllipseSkyRegion.

position_lonlat#

Spatial model center position (lon, lat) in radians and frame of the model.

r_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.

valuefloat or Quantity

Value.

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).

errorfloat

Parameter error.

scan_minfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_maxfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_n_values: int

Number of values to be used for the parameter scan.

scan_n_sigmaint

Number of sigmas to scan.

scan_values: `numpy.array`

Scan values. Overwrites all the scan keywords before.

scale_method{‘scale10’, ‘factor1’, None}

Method used to set factor and scale.

interp{“lin”, “sqrt”, “log”}

Parameter scaling to use for the scan.

priorPrior

Prior set on the parameter.

tag = ['GeneralizedGaussianSpatialModel', 'gauss-general']#
type#

Methods Documentation

__call__(lon, lat, energy=None)#

Call evaluate method.

copy(**kwargs)#

Deep copy.

static evaluate(lon, lat, lon_0, lat_0, r_0, eta, e, phi)[source]#
evaluate_geom(geom)#

Evaluate model on Geom.

Parameters:
geomWcsGeom

Map geometry.

Returns:
mapMap

Map containing the value in each spatial bin.

freeze()#

Freeze all parameters.

classmethod from_dict(data, **kwargs)#

Create a spatial model from a dictionary.

Parameters:
datadict

Dictionary containing model parameters.

kwargsdict

Keyword arguments passed to from_parameters.

classmethod from_parameters(parameters, **kwargs)#

Create model from parameter list.

Parameters:
parametersParameters

Parameters for init.

Returns:
modelModel

Model instance.

classmethod from_position(position, **kwargs)#

Define the position of the model using a SkyCoord.

The model will be created in the frame of the SkyCoord.

Parameters:
positionSkyCoord

Position.

Returns:
modelSpatialModel

Spatial model.

integrate_geom(geom, oversampling_factor=None)#

Integrate model on Geom or RegionGeom.

Integration is performed by simple rectangle approximation, the pixel center model value is multiplied by the pixel solid angle. An oversampling factor can be used for precision. By default, this parameter is set to None and an oversampling factor is automatically estimated based on the model estimation maximal bin width.

For a RegionGeom, the model is integrated on a tangent WCS projection in the region.

Parameters:
geomWcsGeom or RegionGeom

The geom on which the integration is performed.

oversampling_factorint or None

The oversampling factor to use for integration. Default is None: the factor is estimated from the model minimal bin size.

Returns:
mapMap or gammapy.maps.RegionNDMap

Map containing the integral value in each spatial bin.

plot(ax=None, geom=None, **kwargs)#

Plot spatial model.

Parameters:
axAxes, optional

Matplotlib axes. Default is None.

geomWcsGeom, optional

Geometry to use for plotting. Default is None.

**kwargsdict

Keyword arguments passed to plot().

Returns:
axAxes, optional

Matplotlib axes.

plot_error(ax=None, which='position', kwargs_position=None, kwargs_extension=None)#

Plot the errors of the spatial model.

Parameters:
axAxes, optional

Matplotlib axes to plot the errors on. Default is None.

which: list of str

Which errors to plot. Available options are:

  • “all”: all the optional steps are plotted

  • “position”: plot the position error of the spatial model

  • “extension”: plot the extension error of the spatial model

kwargs_positiondict, optional

Keyword arguments passed to plot_position_error. Default is None.

kwargs_extensiondict, optional

Keyword arguments passed to plot_extension_error. Default is None.

Returns:
axAxes, optional

Matplotlib axes.

plot_grid(geom=None, **kwargs)#

Plot spatial model energy slices in a grid.

Parameters:
geomWcsGeom, optional

Geometry to use for plotting. Default is None.

**kwargsdict

Keyword arguments passed to plot().

Returns:
axAxes, optional

Matplotlib axes.

plot_interactive(ax=None, geom=None, **kwargs)#

Plot spatial model.

Parameters:
axAxes, optional

Matplotlib axes. Default is None.

geomWcsGeom, optional

Geom to use for plotting. Default is None.

**kwargsdict

Keyword arguments passed to plot().

Returns:
axAxes, optional

Matplotlib axes.

plot_position_error(ax=None, **kwargs)#

Plot position error.

Parameters:
axAxes, optional

Matplotlib axes to plot the position error on. Default is None.

**kwargsdict

Keyword arguments passed to plot().

Returns:
axAxes, optional

Matplotlib axes.

reassign(datasets_names, new_datasets_names)#

Reassign a model from one dataset to another.

Parameters:
datasets_namesstr or list

Name of the datasets where the model is currently defined.

new_datasets_namesstr or list

Name of the datasets where the model should be defined instead. If multiple names are given the two list must have the save length, as the reassignment is element-wise.

Returns:
modelModel

Reassigned model.

to_dict(full_output=False)#

Create dictionary for YAML serilisation.

to_region(x_r_0=1, **kwargs)[source]#

Model outline at a given number of \(r_0\).

Parameters:
x_r_0float, optional

Number of \(r_0\). Default is 1.

Returns:
regionEllipseSkyRegion

Model outline.

unfreeze()#

Restore parameters frozen status to default.