Skip to content

Datum Constraints

A DatumObservation stores the output of a tao datum. These can be defined and evaluated on the fly using a DatumObservable. User-defined values are provided with DatumLiteral.

Observation Classes

flowchart TD
    LatticeObservable([LatticeObservable]) --> Observable([Observable])
    LiteralObservable([LiteralObservable]) --> Observable
    DatumObservable[DatumObservable] --> LatticeObservable
    DatumLiteral[DatumLiteral] --> LiteralObservable
    IsClose([IsClose]) --> Comparison([Comparison])
    IsLess([IsLess]) --> Comparison
    DatumIsClose[DatumIsClose] --> IsClose
    DatumLessThan[DatumLessThan] --> IsLess
    DatumObservable -. creates .-> DatumObservation[DatumObservation]
    DatumLiteral -. creates .-> DatumObservation
    DatumIsClose -. creates .-> ComparisonResult([ComparisonResult])
    DatumLessThan -. creates .-> ComparisonResult

pytao.constraints.observables.DatumObservation

Bases: Observation

Observation containing the result of a Tao datum evaluation.

Attributes:

Name Type Description
type str

Discriminator literal. Always "datum".

model_value float

Model value of the datum.

design_value float

Design value of the datum.

Observables

pytao.constraints.observables.DatumObservable

Bases: LatticeObservable[DatumObservation]

Observable that creates a temporary Tao datum and evaluates it.

Attributes:

Name Type Description
type str

Discriminator literal. Always "datum".

data_type str

Tao datum data type (e.g. "orbit.x").

ele_name str

Name of the element at which the datum is evaluated.

ele_start_name str

Start element name for range datums.

ele_ref_name str

Reference element name.

eval_point EvalPoint

Where along the element to evaluate (beginning, center, or end).

data_source DataSource

Source of the data (lat, data, var, or beam).

pytao.constraints.observables.DatumLiteral

Bases: LiteralObservable[DatumObservation]

Literal datum observable with user-specified model and design values.

Attributes:

Name Type Description
type str

Discriminator literal. Always "datum_literal".

model_value float

Model value for the produced observation.

design_value float

Design value for the produced observation.

Operators

Both operators produce a ComparisonResult whose checks are keyed by the field names listed below.

pytao.constraints.observables.DatumIsClose

Bases: IsClose[DatumObservation]

IsClose operator comparing two DatumObservation instances.

Set a field to None to skip that comparison.

Attributes:

Name Type Description
model_value_test TolComparison or None

Comparison for the model value.

design_value_test TolComparison or None

Comparison for the design value.

pytao.constraints.observables.DatumLessThan

Bases: IsLess[DatumObservation]

Component-wise less-than comparison between two DatumObservations.

Set a field to True to enable the less-than check for that component.

Attributes:

Name Type Description
model_value bool

Check model value.

design_value bool

Check design value.

Constraints Classes

flowchart TD
    ComparisonConstraint([ComparisonConstraint]) --> Constraint([Constraint])
    RegressionConstraint([RegressionConstraint]) --> Constraint
    IsCloseConstraint([IsCloseConstraint]) --> ComparisonConstraint
    IsLessConstraint([IsLessConstraint]) --> ComparisonConstraint
    DatumIsCloseConstraint[DatumIsCloseConstraint] --> IsCloseConstraint
    DatumLessThanConstraint[DatumLessThanConstraint] --> IsLessConstraint
    DatumRegressionConstraint[DatumRegressionConstraint] --> RegressionConstraint
    DatumIsCloseConstraint -. creates .-> ComparisonResult([ComparisonResult])
    DatumLessThanConstraint -. creates .-> ComparisonResult
    DatumRegressionConstraint -. creates .-> ComparisonResult

pytao.constraints.config.DatumIsCloseConstraint

Bases: IsCloseConstraint[DatumObservables, DatumIsClose]

Constraint checking that two datum observables are approximately equal.

Attributes:

Name Type Description
type str

Discriminator literal. Always "datum_eq".

obs_a DatumObservables

First datum observable.

obs_b DatumObservables

Second datum observable.

comparison DatumIsClose

Comparison operator applied to the two observations.

pytao.constraints.config.DatumLessThanConstraint

Bases: IsLessConstraint[DatumObservables, DatumLessThan]

Constraint checking that obs_a is component-wise less than obs_b.

Attributes:

Name Type Description
type str

Discriminator literal. Always "datum_lt".

obs_a DatumObservables

Left-hand side observable.

obs_b DatumObservables

Right-hand side observable.

comparison DatumLessThan

Less-than operator configuration.

pytao.constraints.config.DatumRegressionConstraint

Bases: RegressionConstraint[DatumIsClose]

Constraint comparing current datum observations against a saved reference.

Attributes:

Name Type Description
type str

Discriminator literal. Always "datum_reg".

obs DatumObservables

Datum observable to evaluate and compare.

comparison DatumIsClose

Comparison operator used to check current against reference.