SpectrumDataset¶
-
class
gammapy.datasets.SpectrumDataset(models=None, counts=None, exposure=None, background=None, edisp=None, mask_safe=None, mask_fit=None, name=None, gti=None, meta_table=None)[source]¶ Bases:
gammapy.datasets.MapDatasetSpectrum dataset for likelihood fitting.
The spectrum dataset bundles reduced counts data, with a spectral model, background model and instrument response function to compute the fit-statistic given the current model and data.
- Parameters
- models
Models Fit model
- counts
RegionNDMap Counts spectrum
- exposure
RegionNDMap Effective area
- edisp
EDispKernelMap Energy dispersion kernel.
- mask_safe
RegionNDMap Mask defining the safe data range.
- mask_fit
RegionNDMap Mask to apply to the likelihood for fitting.
- namestr
Dataset name.
- gti
GTI GTI of the observation or union of GTI if it is a stacked observation
- meta_table
Table Table listing informations on observations used to create the dataset. One line per observation for stacked datasets.
- models
See also
Attributes Summary
A lazy FITS data descriptor.
A lazy FITS data descriptor.
Shape of the counts or background data (tuple)
A lazy FITS data descriptor.
Energy range defined by the safe mask
Model evaluators
Excess
A lazy FITS data descriptor.
Map geometries
Combined fit and safe mask
A lazy FITS data descriptor.
A lazy FITS data descriptor.
Mask safe for edisp maps
Reduced mask safe
Mask safe for psf maps
Models (
Models).A lazy FITS data descriptor.
Methods Summary
Apply mask safe to the dataset
copy([name])A deep copy.
create(e_reco[, e_true, region, …])Creates empty spectrum dataset.
cutout(*args, **kwargs)Returns self
downsample(factor[, axis_name, name])Downsample map dataset.
fake([random_state])Simulate fake counts for the current model and reduced IRFs.
Create from dicts and models list generated from YAML serialization.
from_geoms(geom, geom_exposure, geom_psf, …)Create a MapDataset object with zero filled maps according to the specified geometries
Create map dataset from list of HDUs.
info_dict([in_safe_data_range])Info dict with summary statistics, summed over energy
npred()Predicted source and background counts
Predicted background counts
npred_signal([model])“Model predicted signal counts.
pad(*args, **kwargs)Returns self
peek([fig])Quick-look summary plots.
plot_counts([ax, kwargs_counts, …])Plot counts and background.
plot_excess([ax, kwargs_excess, …])Plot excess and predicted signal.
plot_fit([ax_spectrum, ax_residuals, …])Plot spectrum and residuals in two panels.
plot_residuals([ax, method])Plot spectrum residuals.
plot_residuals_spatial([ax, method, …])Plot spatial residuals.
plot_residuals_spectral([ax, method, region])Plot spectral residuals.
read()Read map dataset from file.
resample_energy_axis(energy_axis[, name])Resample MapDataset over new reco energy axis.
Reset data cache to free memory space
residuals([method])Compute the spectral residuals.
slice_by_energy(energy_min, energy_max[, name])Select and slice datasets in energy range
slice_by_idx(slices[, name])Slice sub dataset.
stack(other)Stack another dataset in place.
Likelihood per bin given the current model parameters
stat_sum()Total statistic given the current model parameters.
to_dict([filename])Convert to dict for YAML serialization.
Convert map dataset to list of HDUs.
to_image([name])Create images by summing over the reconstructed energy axis.
to_spectrum_dataset(*args, **kwargs)Returns self
write()Write map dataset to file.
Attributes Documentation
-
background¶ A lazy FITS data descriptor.
- Parameters
- cachebool
Whether to cache the data.
-
background_model¶
-
counts¶ A lazy FITS data descriptor.
- Parameters
- cachebool
Whether to cache the data.
-
data_shape¶ Shape of the counts or background data (tuple)
-
edisp¶ A lazy FITS data descriptor.
- Parameters
- cachebool
Whether to cache the data.
-
energy_range¶ Energy range defined by the safe mask
-
evaluators¶ Model evaluators
-
excess¶ Excess
-
exposure¶ A lazy FITS data descriptor.
- Parameters
- cachebool
Whether to cache the data.
-
geoms¶ Map geometries
- Returns
- geomsdict
Dict of map geometries involved in the dataset.
-
mask¶ Combined fit and safe mask
-
mask_fit¶ A lazy FITS data descriptor.
- Parameters
- cachebool
Whether to cache the data.
-
mask_safe¶ A lazy FITS data descriptor.
- Parameters
- cachebool
Whether to cache the data.
-
mask_safe_edisp¶ Mask safe for edisp maps
-
mask_safe_image¶ Reduced mask safe
-
mask_safe_psf¶ Mask safe for psf maps
-
name¶
-
psf¶ A lazy FITS data descriptor.
- Parameters
- cachebool
Whether to cache the data.
-
stat_type= 'cash'¶
-
tag= 'SpectrumDataset'¶
Methods Documentation
-
apply_mask_safe()¶ Apply mask safe to the dataset
-
copy(name=None)¶ A deep copy.
-
classmethod
create(e_reco, e_true=None, region=None, reference_time='2000-01-01', name=None, meta_table=None)[source]¶ Creates empty spectrum dataset.
Empty containers are created with the correct geometry. counts, background and aeff are zero and edisp is diagonal.
The safe_mask is set to False in every bin.
- Parameters
- e_reco
MapAxis counts energy axis. Its name must be “energy”.
- e_true
MapAxis effective area table energy axis. Its name must be “energy-true”. If not set use reco energy values. Default : None
- region
SkyRegion Region to define the dataset for.
- reference_time
Time reference time of the dataset, Default is “2000-01-01”
- meta_table
Table Table listing informations on observations used to create the dataset. One line per observation for stacked datasets.
- e_reco
-
downsample(factor, axis_name=None, name=None)¶ Downsample map dataset.
The PSFMap and EDispKernelMap are not downsampled, except if a corresponding axis is given.
- Parameters
- factorint
Downsampling factor.
- axis_namestr
Which non-spatial axis to downsample. By default only spatial axes are downsampled.
- namestr
Name of the downsampled dataset.
- Returns
- dataset
MapDatasetorSpectrumDataset Downsampled map dataset.
- dataset
-
fake(random_state='random-seed')¶ Simulate fake counts for the current model and reduced IRFs.
This method overwrites the counts defined on the dataset object.
- Parameters
- random_state{int, ‘random-seed’, ‘global-rng’,
RandomState} Defines random number generator initialisation. Passed to
get_random_state.
- random_state{int, ‘random-seed’, ‘global-rng’,
-
classmethod
from_geoms(geom, geom_exposure, geom_psf, geom_edisp, reference_time='2000-01-01', name=None, **kwargs)¶ Create a MapDataset object with zero filled maps according to the specified geometries
- Parameters
- geom
Geom geometry for the counts and background maps
- geom_exposure
Geom geometry for the exposure map
- geom_psf
Geom geometry for the psf map
- geom_edisp
Geom geometry for the energy dispersion kernel map. If geom_edisp has a migra axis, this wil create an EDispMap instead.
- reference_time
Time the reference time to use in GTI definition
- namestr
Name of the returned dataset.
- geom
- Returns
- dataset
MapDatasetorSpectrumDataset A dataset containing zero filled maps
- dataset
-
from_hdulist()[source]¶ Create map dataset from list of HDUs.
- Parameters
- hdulist
HDUList List of HDUs.
- namestr
Name of the new dataset.
- hdulist
- Returns
- dataset
MapDataset Map dataset.
- dataset
-
info_dict(in_safe_data_range=True)¶ Info dict with summary statistics, summed over energy
- Parameters
- in_safe_data_rangebool
Whether to sum only in the safe energy range
- Returns
- info_dictdict
Dictionary with summary info.
-
npred()¶ Predicted source and background counts
- Returns
- npred
Map Total predicted counts
- npred
-
npred_background()¶ Predicted background counts
The predicted background counts depend on the parameters of the
FoVBackgroundModeldefined in the dataset.- Returns
- npred_background
Map Predicted counts from the background.
- npred_background
-
npred_signal(model=None)¶ “Model predicted signal counts.
If a model is passed, predicted counts from that component is returned. Else, the total signal counts are returned.
- Parameters
- model: `~gammapy.modeling.models.SkyModel`, optional
Sky model to compute the npred for. If none, the sum of all components (minus the background model) is returned
- Returns
- npred_sig:
gammapy.maps.Map Map of the predicted signal counts
- npred_sig:
-
peek(fig=None)[source]¶ Quick-look summary plots.
- Parameters
- fig
Figure Figure to add AxesSubplot on.
- fig
- Returns
- ax1, ax2, ax3
AxesSubplot Counts, effective area and energy dispersion subplots.
- ax1, ax2, ax3
-
plot_counts(ax=None, kwargs_counts=None, kwargs_background=None, **kwargs)[source]¶ Plot counts and background.
-
plot_excess(ax=None, kwargs_excess=None, kwargs_npred_signal=None, **kwargs)[source]¶ Plot excess and predicted signal.
-
plot_fit(ax_spectrum=None, ax_residuals=None, kwargs_spectrum=None, kwargs_residuals=None)[source]¶ Plot spectrum and residuals in two panels.
Calls
plot_excessandplot_residuals.- Parameters
- ax_spectrum
Axes Axes to plot spectrum on.
- ax_residuals
Axes Axes to plot residuals on.
- kwargs_spectrumdict
Keyword arguments passed to
plot_excess.- kwargs_residualsdict
Keyword arguments passed to
plot_residuals.
- ax_spectrum
- Returns
- ax_spectrum, ax_residuals
Axes Spectrum and residuals plots.
- ax_spectrum, ax_residuals
-
plot_residuals(ax=None, method='diff', **kwargs)[source]¶ Plot spectrum residuals.
- Parameters
- ax
Axes Axes to plot on.
- method{“diff”, “diff/model”, “diff/sqrt(model)”}
Normalization used to compute the residuals, see
SpectrumDataset.residuals.- **kwargsdict
Keyword arguments passed to
errorbar.
- ax
- Returns
- ax
Axes Axes object.
- ax
-
plot_residuals_spatial(ax=None, method='diff', smooth_kernel='gauss', smooth_radius='0.1 deg', **kwargs)¶ Plot spatial residuals.
The normalization used for the residuals computation can be controlled using the method parameter.
- Parameters
- ax
WCSAxes Axes to plot on.
- method{“diff”, “diff/model”, “diff/sqrt(model)”}
Normalization used to compute the residuals, see
MapDataset.residuals.- smooth_kernel{“gauss”, “box”}
Kernel shape.
- smooth_radius: `~astropy.units.Quantity`, str or float
Smoothing width given as quantity or float. If a float is given, it is interpreted as smoothing width in pixels.
- **kwargsdict
Keyword arguments passed to
imshow.
- ax
- Returns
- ax
WCSAxes WCSAxes object.
- ax
-
plot_residuals_spectral(ax=None, method='diff', region=None, **kwargs)¶ Plot spectral residuals.
The residuals are extracted from the provided region, and the normalization used for its computation can be controlled using the method parameter.
- Parameters
- ax
Axes Axes to plot on.
- method{“diff”, “diff/model”, “diff/sqrt(model)”}
Normalization used to compute the residuals, see
SpectrumDataset.residuals.- region: `~regions.SkyRegion` (required)
Target sky region.
- **kwargsdict
Keyword arguments passed to
errorbar.
- ax
- Returns
- ax
Axes Axes object.
- ax
-
read()[source]¶ Read map dataset from file.
- Parameters
- filenamestr
Filename to read from.
- namestr
Name of the new dataset.
- lazybool
Whether to lazy load data into memory
- cachebool
Whether to cache the data after loading.
- Returns
- dataset
MapDataset Map dataset.
- dataset
-
resample_energy_axis(energy_axis, name=None)¶ Resample MapDataset over new reco energy axis.
Counts are summed taking into account safe mask.
- Parameters
- energy_axis
MapAxis New reconstructed energy axis.
- name: str
Name of the new dataset.
- energy_axis
- Returns
- dataset:
MapDatasetorSpectrumDataset Resampled dataset .
- dataset:
-
reset_data_cache()¶ Reset data cache to free memory space
-
residuals(method='diff')[source]¶ Compute the spectral residuals.
- Parameters
- method{“diff”, “diff/model”, “diff/sqrt(model)”}
- Method used to compute the residuals. Available options are:
diff(default): data - modeldiff/model: (data - model) / modeldiff/sqrt(model): (data - model) / sqrt(model)
- Returns
- residuals
RegionNDMap Residual spectrum
- residuals
-
slice_by_energy(energy_min, energy_max, name=None)¶ Select and slice datasets in energy range
- Parameters
- energy_min, energy_max
Quantity Energy bounds to compute the flux point for.
- namestr
Name of the sliced dataset.
- energy_min, energy_max
- Returns
- dataset
MapDataset Sliced Dataset
- dataset
-
slice_by_idx(slices, name=None)¶ Slice sub dataset.
The slicing only applies to the maps that define the corresponding axes.
- Parameters
- slicesdict
Dict of axes names and integers or
sliceobject pairs. Contains one element for each non-spatial dimension. For integer indexing the corresponding axes is dropped from the map. Axes not specified in the dict are kept unchanged.- namestr
Name of the sliced dataset.
- Returns
- dataset
MapDatasetorSpectrumDataset Sliced dataset
- dataset
-
stack(other)¶ Stack another dataset in place.
Safe mask is applied to compute the stacked counts data. Counts outside each dataset safe mask are lost.
The stacking of 2 datasets is implemented as follows. Here, \(k\) denotes a bin in reconstructed energy and \(j = {1,2}\) is the dataset number
The
mask_safeof each dataset is defined as:\[\begin{split}\epsilon_{jk} =\left\{\begin{array}{cl} 1, & \mbox{if bin k is inside the thresholds}\\ 0, & \mbox{otherwise} \end{array}\right.\end{split}\]Then the total
countsand model backgroundbkgare computed according to:\[ \begin{align}\begin{aligned}\overline{\mathrm{n_{on}}}_k = \mathrm{n_{on}}_{1k} \cdot \epsilon_{1k} + \mathrm{n_{on}}_{2k} \cdot \epsilon_{2k}\\\overline{bkg}_k = bkg_{1k} \cdot \epsilon_{1k} + bkg_{2k} \cdot \epsilon_{2k}\end{aligned}\end{align} \]The stacked
safe_maskis then:\[\overline{\epsilon_k} = \epsilon_{1k} OR \epsilon_{2k}\]- Parameters
- other: `~gammapy.datasets.MapDataset` or `~gammapy.datasets.MapDatasetOnOff`
Map dataset to be stacked with this one. If other is an on-off dataset alpha * counts_off is used as a background model.
-
to_dict(filename='')¶ Convert to dict for YAML serialization.
-
to_hdulist()[source]¶ Convert map dataset to list of HDUs.
- Returns
- hdulist
HDUList Map dataset list of HDUs.
- hdulist
-
to_image(name=None)¶ Create images by summing over the reconstructed energy axis.
- Parameters
- namestr
Name of the new dataset.
- Returns
- dataset
MapDatasetorSpectrumDataset Dataset integrated over non-spatial axes.
- dataset