ThresholdSpecification¶
-
class
lsst.verify.ThresholdSpecification(name, threshold, operator_str, **kwargs)[source]¶ Bases:
lsst.verify.SpecificationA threshold-type specification, associated with a
Metric, that defines a binary comparison against a measurement.Parameters: name :
strName of the specification for a metric. LPM-17, for example, uses
'design','minimum'and'stretch'terminology.quantity :
astropy.units.QuantityThe specification threshold level.
operator_str :
strThe threshold’s binary comparison operator. The operator is oriented so that
measurement {{ operator }} threshold quantityis the specification test. Can be one of:'<','<=','>','>=','==', or'!='.metadata_query :
dict, optionalDictionary of key-value terms that the measurement’s metadata must have for this specification to apply.
tags : sequence of
str, optionalSequence of tags that group this specification with others.
kwargs :
dictKeyword arguments passed directly to the
lsst.validate.base.Specificationconstructor.Raises: TypeError
Attributes Summary
datumRepresentation of this ThresholdSpecification‘s threshold as aDatum.jsondictthat can be serialized as semantic JSON, compatible withmetric_nameName of the metric this specification corresponds to ( lsst.verify.Name).nameSpecification name ( lsst.verify.Name).operatorBinary comparision operator that tests success of a measurement fulfilling a specification of this metric. operator_strThreshold comparision operator (‘str’). tagsTag labels ( setofstr).thresholdThe specification threshold level ( astropy.units.Quantity).typeMethods Summary
check(measurement)Check if a measurement passes this specification. convert_operator_str(op_str)Convert a string representing a binary comparison operator to the operator function itself. deserialize([name, threshold, metric, package])Deserialize from keys in a specification YAML document or a JSON serialization into a ThresholdSpecificationinstance.jsonify_dict(d)Recursively build JSON-renderable objects on all values in a dict. query_metadata(metadata)Query a Job’s metadata to determine if this specification applies. write_json(filepath)Write JSON to a file. Attributes Documentation
-
datum¶ Representation of this
ThresholdSpecification‘s threshold as aDatum.
-
metric_name¶ Name of the metric this specification corresponds to (
lsst.verify.Name).
-
name¶ Specification name (
lsst.verify.Name).
-
operator¶ Binary comparision operator that tests success of a measurement fulfilling a specification of this metric.
Measured value is on left side of comparison and specification level is on right side.
-
operator_str¶ Threshold comparision operator (‘str’).
A measurement passes the specification if:
measurement {{ operator }} threshold == True
The operator string is a standard Python binary comparison token, such as:
'<','>','<=','>=','=='or'!='.
-
threshold= None¶ The specification threshold level (
astropy.units.Quantity).
-
type¶
Methods Documentation
-
check(measurement)[source]¶ Check if a measurement passes this specification.
Parameters: measurement :
astropy.units.QuantityReturns: passed :
boolRaises: astropy.units.UnitError
Raised if the measurement cannot be compared to the threshold. For example, if the measurement is not an
astropy.units.Quantityor if the units are not compatible.
-
static
convert_operator_str(op_str)[source]¶ Convert a string representing a binary comparison operator to the operator function itself.
Operators are oriented so that the measurement is on the left-hand side, and specification threshold on the right hand side.
The following operators are permitted:
op_strFunction >=operator.ge>operator.gt<operator.lt<=operator.le==operator.eq!=operator.neParameters: op_str :
strA string representing a binary operator.
Returns: op_func : obj
An operator function from the
operatorstandard library module.Raises: ValueError
Raised if
op_stris not a supported binary comparison operator.
-
classmethod
deserialize(name=None, threshold=None, metric=None, package=None, **kwargs)[source]¶ Deserialize from keys in a specification YAML document or a JSON serialization into a
ThresholdSpecificationinstance.Parameters: name :
strorlsst.validate.base.NameSpecification name, either as a string or
Name.threshold :
dictmetric :
strorlsst.validate.base.Name, optionalName of the fully-qualified name of the metric the specification corresponds to. This parameter is optional if
nameis already fully-qualified.package :
strorlsst.validate.base.Name, optionalName of the package the specification corresponds to. This parameter is optional if
nameormetricare already fully-qualified.kwargs :
dictKeyword arguments passed directly to the
lsst.validate.base.Specificationconstructor.Returns: specification :
ThresholdSpecificationA specification instance.
-
jsonify_dict(d)¶ Recursively build JSON-renderable objects on all values in a dict.
Parameters: d :
dictDictionary to convert into a JSON-serializable object. Values are recursively JSON-ified.
Returns: json_dict :
dictDictionary that can be serialized to JSON.
Examples
Subclasses can use this method to prepare output in their
json-method implementation. For example:def json(self): return JsonSerializationMixin.jsonify_dict({ 'value': self.value, })
-
query_metadata(metadata)¶ Query a Job’s metadata to determine if this specification applies.
Parameters: metadata :
lsst.verify.Metadataordict-typeMetadata mapping. Typically this is the
lsst.verify.Job.metaattribute.Returns: applies :
bool
-