at.latticetools.observablelist#

Grouping of Observable objects for fast evaluation.

ObservableList(lattice, …)

This container based on list is in charge of optics computations and provides each individual Observable with its specific data.

ObservableList provides the evaluate() method and the following properties:

Classes

ObservableList([obsiter, ring])

Handles a list of Observables to be evaluated together.

class ObservableList(obsiter=(), ring=None, **kwargs)[source]#

Bases: list

Handles a list of Observables to be evaluated together.

ObservableList supports all the list methods, like appending, insertion or concatenation with the “+” operator.

Parameters:

The following keyword arguments define the default values to be used when not given to the evaluate() method

Keyword Arguments:

Example

>>> obslist = ObservableList()

Create an empty Observable list

>>> obslist.append(OrbitObservable(at.Monitor, plane="x"))
>>> obslist.append(GlobalOpticsObservable("tune"))
>>> obslist.append(EmittanceObservable("emittances", plane="h"))

Add observables for horizontal closed orbit at Monitor locations, tunes and horizontal emittance

>>> obslist.evaluate(ring, initial=True)

Compute the values and mark them as the initial value

>>> obslist.values
[array([-3.02189464e-09,  4.50695130e-07,  4.08205818e-07,
         2.37899969e-08, -1.31783561e-08,  2.47230794e-08,
         2.95310770e-08, -4.05598110e-07, -4.47398092e-07,
         2.24850671e-09]),
array([3.81563019e-01, 8.54376397e-01, 1.09060730e-04]),
1.320391045951568e-10]
>>> obslist.get_flat_values("tune", "emittances[h]")
array([3.815630e-01, 8.543764e-01, 1.090607e-04, 1.320391e-10])

Get a flattened array of tunes and horizontal emittance

append(obs)[source]#

Append observable to the end of the list.

check()[source]#

Check if all observables are evaluated.

Returns:

okTrue if evaluation is done, False otherwise

Raises:

AtError – any value is doubtful: evaluation failed, empty value…

evaluate(ring=None, *, initial=False, **kwargs)[source]#

Compute all the Observable values.

Parameters:
  • ring (Lattice | None) – Lattice used for evaluation

  • initial (bool) – If True, store the values as initial values

Keyword Arguments:
exclude(obsname, excluded)[source]#

Set the excluded mask on the selected observable.

extend(obsiter)[source]#

Extend list by appending Observables from the iterable.

get_deviations(*obsid, err=None)[source]#

Return the deviations from target values.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err (float | None) – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

get_flat_deviations(*obsid, err=None, order='F')[source]#

Return a 1-D array of deviations from target values.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err (float | None) – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

  • order (str) – Ordering for reshaping. See reshape()

get_flat_shape(*obsid)[source]#

Return the shape of the flattened values.

Parameters:

*obsid (str | int) – name or index of selected observables (Default all)

get_flat_targets(*obsid)[source]#

Return a 1-D array of target values of observables.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

get_flat_values(*obsid, err=None, order='F')[source]#

Return a 1-D array of Observable values.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err (float | None) – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

  • order (str) – Ordering for reshaping. See reshape()

get_flat_weighted_deviations(*obsid, err=None, order='F')[source]#

Return a 1-D array of weighted deviations from target values.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err (float | None) – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

  • order (str) – Ordering for reshaping. See reshape()

get_flat_weighted_values(*obsid, err=None, order='F')[source]#

Return a 1-D array of Observable weighted values.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err (float | None) – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

  • order (str) – Ordering for reshaping. See reshape()

get_flat_weights(*obsid, order='F')[source]#

Return a 1-D array of Observable weights.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • order (str) – Ordering for reshaping. See reshape()

get_residuals(*obsid, err=None)[source]#

Return the residuals of observables.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err (float | None) – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

get_shapes(*obsid)[source]#

Return the shapes of all values.

Parameters:

*obsid (str | int) – name or index of selected observables (Default all)

get_sum_residuals(*obsid, err=None)[source]#

Return the sum of residual values.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err (float | None) – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

get_targets(*obsid, err=None)[source]#

Return the target values of observables.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err (float | None) – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

get_values(*obsid, err=None)[source]#

Return the values of observables.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err (float | None) – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

Raises:

Exception – Any exception raised during evaluation, unless err has been set.

get_weighted_deviations(*obsid, err=None)[source]#

Return the weighted deviations from target values.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err (float | None) – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

get_weighted_values(*obsid, err=None)[source]#

Return the weighted values of observables.

Parameters:
  • *obsid (str | int) – name or index of selected observables (Default all)

  • err (float | None) – Default observable value to be used when the evaluation failed. By default, an Exception is raised.

get_weights(*obsid)[source]#

Return the weights of observables.

Parameters:

*obsid (str | int) – name or index of selected observables (Default all)

insert(index, obs)[source]#

Insert Observable before index.

property deviations: tuple#

Deviations from target values

property flat_deviations: ndarray[tuple[Any, ...], dtype[float64]]#

1-D array of deviations from target value

property flat_shape#

Shape of the flattened values

property flat_targets: tuple#

1-D array of target values

property flat_values: ndarray[tuple[Any, ...], dtype[float]]#

1-D array of Observable values

property flat_weighted_deviations: ndarray[tuple[Any, ...], dtype[float]]#

1-D array of weighted deviations from target values

property flat_weighted_values: ndarray[tuple[Any, ...], dtype[float]]#

1-D array of Observable weigthed values

property flat_weights: ndarray[tuple[Any, ...], dtype[float]]#

1-D array of Observable weights

property residuals: tuple#

Residuals of all observable

property shapes: tuple#

Shapes of all values

property sum_residuals: float#

Sum of all residual values

property targets: tuple#

Target values of all observables

property values: tuple#

values of all observables

property weighted_deviations: tuple#

Weighted deviations from target values

property weighted_values: tuple#

Weighted values of all observables

property weights: tuple#

Weights of all observables