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.

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 .-> DatumIsCloseResult[DatumIsCloseResult]
    DatumLessThan -. creates .-> DatumLessThanResult[DatumLessThanResult]

pytao.constraints.observables.DatumObservation

Bases: Observation

Observation containing the result of a Tao datum evaluation.

Attributes:

Name Type Description
obs_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
obs_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
obs_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 and Results

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.DatumIsCloseResult

Bases: IsCloseResult

Result of a DatumIsClose comparison with per-field check results.

Each field is None if the corresponding comparison was not run.

Attributes:

Name Type Description
result_type str

Discriminator literal. Always "datum_is_close".

model_value CheckResult or None

Model value comparison result.

design_value CheckResult or None

Design value comparison result.

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.

pytao.constraints.observables.DatumLessThanResult

Bases: IsLessResult

Result of a DatumLessThan comparison with per-field less-than check results.

Each field is None if the corresponding component was not checked.

Attributes:

Name Type Description
result_type str

Discriminator literal. Always "datum_is_less".

model_value CheckResult or None

Model value comparison result.

design_value CheckResult or None

Design value comparison result.

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 .-> DatumIsCloseResult[DatumIsCloseResult]
    DatumLessThanConstraint -. creates .-> DatumLessThanResult[DatumLessThanResult]
    DatumRegressionConstraint -. creates .-> DatumIsCloseResult

pytao.constraints.config.DatumIsCloseConstraint

Bases: IsCloseConstraint

Constraint checking that two datum observables are approximately equal.

Attributes:

Name Type Description
constraint_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

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

Attributes:

Name Type Description
constraint_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

Constraint comparing current datum observations against a saved reference.

Attributes:

Name Type Description
constraint_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.