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.
Added in version 4.12.2.
- Parameters:
model (
sherpa.models.model.ArithmeticModel
) – The model whose results, when evaluated, are passed to the convolution model.wrapper (
sherpa.astro.xspec.XSConvolutionKernel
) – The XSPEC convolution model.
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
The maximum size of the cache.
Return any linked parameters.
A one-dimensional model.
Return the parameters of the model.
The hard maximum values for the thawed parameters.
The hard minimum values for the thawed parameters.
The maximum limits of the thawed parameters.
The minimum limits of the thawed parameters.
The thawed parameters of the model.
Methods Summary
apply
(outer, *otherargs, **otherkwargs)Clear the cache for each component.
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.
Return the thawed parameter objects.
guess
(dep, *args, **kwargs)Call guess on each component.
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.
- lpars
Return any linked parameters.
This only returns linked parameters that are not related to the model, and each parameter is not repeated.
Added in version 4.16.1.
See also
Examples
By default there are no linked parameters:
>>> from sherpa.models.basic import Gauss2D >>> mdl = Gauss2D("mdl") >>> len(mdl.pars) 6 >>> mdl.lpars ()
Force the model to have identical xpos and ypos parameters. Since the linked parameter value (mdl.xpos) is part of the model it is not included in
lpars
:>>> mdl.ypos = mdl.xpos >>> len(mdl.pars) 6 >>> mdl.lpars ()
Add a link to allow the sigma term to be fit rather than FWHM. Since the linked parameter - here from the Const1D model - is not a part of the model it is included in
lpars
:>>> import numpy as np >>> from sherpa.models.basic import Const1D >>> sigma = Const1D("sigma") >>> mdl.fwhm = 2 * np.sqrt(2 * np.log(2)) * sigma.c0 >>> len(mdl.pars) 6 >>> mdl.lpars (<Parameter 'c0' of model 'sigma'>,)
- pars
Return the parameters of the model.
This does not include any linked parameters.
Changed in version 4.16.1: The pars field can no-longer be set directly. Individual elements can still be changed.
See also
- 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.
See also
- 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.
See also
- 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.
See also
- version_enabled = True
Methods Documentation
- apply(outer, *otherargs, **otherkwargs) [edit on github]
- cache_clear() None [edit on github]
Clear the cache for each component.
- cache_status() None [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.
Examples
>>> 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() None [edit on github]
Freeze any thawed parameters of the model.
- get_center() [edit on github]
- get_thawed_pars() list[Parameter] [edit on github]
Return the thawed parameter objects.
This includes linked parameters, which complicates the min/max settings, since the range on the components of a linked parameter does not match that of the original parameter, which is an issue when the limits are exceeded.
Added in version 4.16.1.
- guess(dep, *args, **kwargs) [edit on github]
Call guess on each component.
At the moment there is no recognition of the full model expression - e.g. cpt1 * cpt2 and cpt1 + cpt2 would ideally have different scalings applied here.
Changed in version 4.17.0: Prior to 4.17.0 the guess method could not be called on composite models.
- 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 >>> from sherpa.utils import linear_interp >>> mybox = Box1D() >>> request_space = np.arange(1, 10, 0.1) >>> regrid_model = mybox.regrid(request_space, interp=linear_interp)
- reset() None [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: bool = False) None [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() None [edit on github]
Called after a model may be evaluated multiple times.
See also
- thaw() None [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]