XSConvolutionModel

class sherpa.astro.xspec.XSConvolutionModel(model, wrapper)[source] [edit on github]

Bases: CompositeModel, XSModel

Evaluate a model and pass it to an XSPEC convolution model.

Calculate the convolved data - that is evaluate the model and then pass it to the wrapper model which applies the convolution model.

New in version 4.12.2.

Parameters:

Examples

The following evaluates two models (creating the y1 and y2 arrays), where y1 applies the XScflux convolution model to the combined absorption times powerlaw model, and y2 applies the convolution model to only the power-law model, and then multiples this by the absorption model. In the following mdl1 and mdl2 are instances of XSConvolutionModel:

>>> import numpy as np
>>> from sherpa.astro import xspec
>>> cmdl = xspec.XScflux()
>>> gal = xspec.XSphabs()
>>> pl = xspec.XSpowerlaw()
>>> pl.norm.freeze()
>>> mdl1 = cmdl(gal * pl)
>>> mdl2 = gal * cmdl(pl)
>>> cmdl.emin = 0.5
>>> cmdl.emax = 7.0
>>> cmdl.lg10flux = -12.1
>>> egrid = np.arange(0.1, 10, 0.01)
>>> elo, ehi = egrid[:-1], egrid[1:]
>>> y1 = mdl1(elo, ehi)
>>> y2 = mdl2(elo, ehi)

Display the combined model:

>>> print(mdl1)
xscflux((phabs * powerlaw))
   Param        Type          Value          Min          Max      Units
   -----        ----          -----          ---          ---      -----
   xscflux.Emin frozen          0.5            0        1e+06        keV
   xscflux.Emax frozen           10            0        1e+06        keV
   xscflux.lg10Flux thawed          -12         -100          100        cgs
   phabs.nH     thawed            1            0       100000 10^22 atoms / cm^2
   powerlaw.PhoIndex thawed            1           -2            9
   powerlaw.norm frozen            1            0        1e+24
>>> print(mdl2)
(phabs * xscflux(powerlaw))
   Param        Type          Value          Min          Max      Units
   -----        ----          -----          ---          ---      -----
   phabs.nH     thawed            1            0       100000 10^22 atoms / cm^2
   xscflux.Emin frozen          0.5            0        1e+06        keV
   xscflux.Emax frozen           10            0        1e+06        keV
   xscflux.lg10Flux thawed          -12         -100          100        cgs
   powerlaw.PhoIndex thawed            1           -2            9
   powerlaw.norm frozen            1            0        1e+24

Attributes Summary

cache

The maximum size of the cache.

ndim

A one-dimensional 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.

version_enabled

Methods Summary

apply(outer, *otherargs, **otherkwargs)

cache_clear()

Clear the cache for each component.

cache_status()

Display the cache status of each component.

calc(p, *args, **kwargs)

Evaluate the convolved model on a grid.

freeze()

Freeze any thawed parameters of the model.

get_center()

guess(dep, *args, **kwargs)

Set an initial guess for the parameter values.

regrid(*args, **kwargs)

The class RegriddableModel1D allows the user to evaluate in the requested space then interpolate onto the data space.

reset()

Reset the parameter values.

set_center(*args, **kwargs)

startup([cache])

Called before a model may be evaluated multiple times.

teardown()

Called after a model may be evaluated multiple times.

thaw()

Thaw any frozen parameters of the model.

wrapobj(obj)

Attributes Documentation

cache = 5

The maximum size of the cache.

ndim = 1

A one-dimensional model.

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.

See also

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.

See also

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.

version_enabled = True

Methods Documentation

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

Clear the cache for each component.

cache_status() [edit on github]

Display the cache status of each component.

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

Example

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

Evaluate the convolved model on a grid.

Parameters:
  • p (sequence of numbers) – The parameters of the model, matching the pars field. This will start with the convolution model parameters (if any) and then the model.

  • *args – The model grid. There should be two arrays (the low and high edges of the bin) to make sure the wrapped model is evaluated correctly.

  • **kwargs – Additional keyword arguments.

freeze() [edit on github]

Freeze any thawed parameters of the model.

get_center() [edit on github]
guess(dep, *args, **kwargs) [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]

The class RegriddableModel1D allows the user to evaluate in the requested space then interpolate onto the data space. An optional argument ‘interp’ enables the user to change the interpolation method.

Examples

>>> import numpy as np
>>> from sherpa.models.basic import Box1D
>>> mybox = Box1D()
>>> request_space = np.arange(1, 10, 0.1)
>>> regrid_model = mybox.regrid(request_space, interp=linear_interp)
reset() [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(*args, **kwargs) [edit on github]
startup(cache=False) [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.

See also

teardown

teardown() [edit on github]

Called after a model may be evaluated multiple times.

See also

startup

thaw() [edit on github]

Thaw any frozen parameters of the model.

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

static wrapobj(obj)[source] [edit on github]