|
lsst.cp.pipe
20.0.0-9-gd915bd2+ba6d2d6bb0
|
Public Member Functions | |
| def | __init__ (self, groups) |
| def | copy (self) |
| def | fix (self, keys=slice(None), val=None) |
| def | release (self, keys=slice(None)) |
| def | indexof (self, indices=slice(None)) |
| def | __getitem__ (self, args) |
| def | __setitem__ (self, args, val) |
| def | free (self) |
| def | free (self, val) |
| def | full (self) |
| def | full (self, val) |
| def | __repr__ (self) |
Manages a vector of fit parameters with the possibility to mark a subset of
them as fixed to a given value.
The parameters can be organized in named slices (block of contiguous
values) accessible through indexing by their name as in `StructArray`.
>>> p_salt = FitParameters(['X0', 'X1', 'Color', 'Redshift'])
>>> p_dice = FitParameters([('alpha', 2), ('S', 10), ('dSdT', 10), 'idark'])
It is possible to modify the parameters in place. Using the indexing
of slices by name simplifies somewhat the operations, as one does
not need to care about the position of a slice within the entire
parameter vector:
>>> p_dice['idark'][0] = -1.0232E-12
>>> p_dice['S'][4] = 25.242343E-9
>>> p_dice['dSdT'][:] = 42.
>>> print p_dice
alpha: array([ 0., 0.])
S: array([ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 2.52423430e-08, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00])
dSdT: array([ 42., 42., 42., 42., 42., 42., 42., 42., 42., 42.])
idark: array([ -1.02320000e-12])
It is also possible to mark parameters as fixed to a value.
>>> p_dice.fix(0, 12.)
Value is optional. The above is equivalent to:
>>> p_dice[0] = 12.
>>> p_dice.fix(0)
Again named slices simplifies the operations:
>>> p_dice['S'].fix([0, -1], 12.)
>>> p_dice['dSdT'].fix([0, -1])
One can fix entire slices at once:
>>> p_dice['idark'].fix()
>>> p_salt['Redshift'].fix(val=0.23432)
The property ``full'' give access to the vector of parameters. The
property "free" gives access to the free parameters:
>>> print len(p_dice.free), len(p_dice.full)
17 23
Note that free relies on fancy indexing. Access thus trigger a
copy. As a consequence, the following will not actually alter the
data:
>>> p_dice.free[0] = 12.
>>> print p_dice.free[0]
0.0
It is still possible to set slices of free parameters as a
contiguous vector. For example:
>>> p_dice['S'].free = 12.
>>> print p_dice['S'].free
[ 12. 12. 12. 12. 12. 12. 12. 12.]
>>> p_dice[:5].free = 4.
>>> print p_dice[:5].free
[ 4. 4. 4.]
In particular, the typical use case which consists in updating the
free parameters with the results of a fit works as expected:
>>> p = np.arange(len(p_dice.free))
>>> p_dice.free = p
Last the class provide a convenience function that return the index
of a subset of parameters in the global free parameters vector, and
-1 for fixed parameters:
>>> print p_dice['dSdT'].indexof()
[-1 9 10 11 12 13 14 15 16 -1]
>>> print p_dice['dSdT'].indexof([1,2])
[ 9 10]
Definition at line 164 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.__init__ | ( | self, | |
| groups | |||
| ) |
Definition at line 241 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.__getitem__ | ( | self, | |
| args | |||
| ) |
Definition at line 276 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.__repr__ | ( | self | ) |
Definition at line 306 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.__setitem__ | ( | self, | |
| args, | |||
| val | |||
| ) |
Definition at line 287 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.copy | ( | self | ) |
Definition at line 250 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.fix | ( | self, | |
keys = slice(None), |
|||
val = None |
|||
| ) |
Definition at line 263 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.free | ( | self | ) |
Definition at line 291 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.free | ( | self, | |
| val | |||
| ) |
Definition at line 295 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.full | ( | self | ) |
Definition at line 299 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.full | ( | self, | |
| val | |||
| ) |
Definition at line 303 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.indexof | ( | self, | |
indices = slice(None) |
|||
| ) |
Definition at line 273 of file astierCovFitParameters.py.
| def lsst.cp.pipe.astierCovFitParameters.FitParameters.release | ( | self, | |
keys = slice(None) |
|||
| ) |
Definition at line 269 of file astierCovFitParameters.py.
1.8.18