Note

You are not reading the most up to date version of Gammapy documentation.
Access the latest stable version v1.3 or the list of Gammapy releases.

MapFit

class gammapy.cube.MapFit(model, counts, exposure, background=None, mask=None, psf=None, edisp=None)[source]

Bases: gammapy.utils.fitting.Fit

Perform sky model likelihood fit on maps.

This is the first go at such a class. It’s geared to the SpectrumFit class which does the 1D spectrum fit.

Parameters:

model : SkyModel

Fit model

counts : WcsNDMap

Counts cube

exposure : WcsNDMap

Exposure cube

background : WcsNDMap

Background Cube

mask : WcsNDMap

Mask to apply for the fit. All the pixels that contain 1 or True are included in the fit, all others are ignored.

psf : PSFKernel

PSF kernel

edisp : EnergyDispersion

Energy dispersion

Attributes Summary

stat Likelihood per bin given the current model parameters

Methods Summary

likelihood_profile(model, parameter[, …]) Compute likelihood profile for a single parameter of the model.
likelihood_profiles(model[, parameters]) Compute likelihood profiles for multiple parameters.
optimize([backend]) Run the optimization
run([steps, optimize_opts, profile_opts]) Run all fitting steps.
total_stat(parameters) Total likelihood given the current model parameters

Attributes Documentation

stat

Likelihood per bin given the current model parameters

Methods Documentation

likelihood_profile(model, parameter, values=None, bounds=2, nvalues=11)

Compute likelihood profile for a single parameter of the model.

Parameters:

model : SpectralModel

Model to compute the likelihood profile for.

parameter : str

Parameter to calculate profile for

values : Quantity (optional)

Parameter values to evaluate the likelihood for.

bounds : int or tuple of float

When an int is passed the bounds are computed from bounds * sigma from the best fit value of the parameter, where sigma corresponds to the one sigma error on the parameter. If a tuple of floats is given those are taken as the min and max values and nvalues are linearly spaced between those.

nvalues : int

Number of parameter grid points to use.

Returns:

likelihood_profile : dict

Dict of parameter values and likelihood values.

likelihood_profiles(model, parameters='all')

Compute likelihood profiles for multiple parameters.

Parameters:

model : SpectralModel or SkyModel

Model to compute the likelihood profile for.

parameters : list of str or “all”

For which parameters to compute likelihood profiles.

optimize(backend='minuit', **kwargs)

Run the optimization

Parameters:

backend : {“minuit”, “sherpa”}

Which fitting backend to use.

**kwargs : dict

Keyword arguments passed to the optimizer. For the "minuit" backend see https://iminuit.readthedocs.io/en/latest/api.html#iminuit.Minuit for a detailed description of the available options. For the "sherpa" backend you can from the options method = {"simplex",  "levmar", "moncar", "gridsearch"} Those methods are described and compared in detail on http://cxc.cfa.harvard.edu/sherpa/methods/index.html. The available options of the optimization methods are described on the following pages in detail:

Returns:

fit_result : dict

Optimize info dict with the best fit model and additional information.

run(steps='all', optimize_opts=None, profile_opts=None)

Run all fitting steps.

Parameters:

steps : {“all”, “optimize”, “errors”, “profiles”}

Which fitting steps to run.

optimize_opts : dict

Options passed to Fit.optimize.

profile_opts : dict

Options passed to Fit.likelihood_profiles.

Returns:

fit_result : FitResult

Fit result object with the best fit model and additional information.

total_stat(parameters)[source]

Total likelihood given the current model parameters