Measurement¶
-
class
lsst.verify.
Measurement
(metric, quantity=None, blobs=None, extras=None, notes=None)[source]¶ Bases:
lsst.verify.jsonmixin.JsonSerializationMixin
A measurement of a single
Metric
.A measurement is associated with a single
Metric
and consists of aastropy.units.Quantity
value. In addition, a measurement can be augmented withBlob
s (either shared, or directly associated with the measurement’sMeasurement.extras
) and metadata (Measurement.notes
).Parameters: metric :
str
,lsst.verify.Name
, orlsst.verify.Metric
quantity :
astropy.units.Quantity
, optionalThe measured value as an Astropy
Quantity
. If aMetric
instance is provided, the units ofquantity
are compared to theMetric
‘s units for compatibility. Thequantity
can also be set, updated, or read with theMeasurement.quantity
attribute.blobs :
list
ofBlob
s, optionalList of
lsst.verify.Blob
instances that are associated with a measurement. Blobs are datasets that can be associated with many measurements and provide context to a measurement.extras :
dict
oflsst.verify.Datum
instances, optionalDatum
instances can be attached to a measurement. Extras can be accessed from theMeasurement.extras
attribute.notes :
dict
, optionalMeasurement annotations. These key-value pairs are automatically available from
Job.meta
, though keys are prefixed with the metric’s name. This metadata can be queried by specifications, so that specifications can be written to test only certain types of measurements.Raises: TypeError
Raised if arguments are not valid types.
Attributes Summary
blobs
dict
oflsst.verify.Blob
s associated with this measurement.datum
Representation of this measurement as a Datum
.description
Description of the metric ( str
, orNone
ifMeasurement.metric
is not set).extras
Blob
associated solely to this measurement.identifier
Unique UUID4-based identifier for this measurement ( str
, immutable).json
A dict
that can be serialized as semantic SQUASH JSON.metric
Metric associated with the measurement ( lsst.verify.Metric
orNone
, mutable).metric_name
Name of the corresponding metric ( lsst.verify.Name
, mutable).notes
Measurement annotations as key-value pairs ( dict
).quantity
astropy.units.Quantity
component of the measurement (mutable).Methods Summary
deserialize
([metric, identifier, value, ...])Create a Measurement instance from a parsed YAML/JSON document. jsonify_dict
(d)Recursively build JSON-renderable objects on all values in a dict. link_blob
(blob)Link a Blob
to this measurement.write_json
(filepath)Write JSON to a file. Attributes Documentation
-
blobs
= None¶ dict
oflsst.verify.Blob
s associated with this measurement.See also
-
description
¶ Description of the metric (
str
, orNone
ifMeasurement.metric
is not set).
-
extras
= None¶ Blob
associated solely to this measurement.Notes
extras
work just likeBlob
s, but they’re automatically created with eachMeasurement
. AddDatum
s toextras
if thoseDatum
s only make sense in the context of thatMeasurement
. IfDatum
s are relevant to multiple measurements, add them to an externalBlob
instance and attach them to each measurements’sMeasurement.blobs
attribute through theMeasurement.link_blob
method.
-
json
¶ A
dict
that can be serialized as semantic SQUASH JSON.Fields:
metric
(str
) Name of the metric the measurement measures.identifier
(str
) Unique identifier for this measurement.value
(float
) Value of the measurement.unit
(str
) Units of thevalue
, as anastropy.units
-compatible string.blob_refs
(list
ofstr
) List ofBlob.identifier
s for Blobs associated with this measurement.
Note
Blob
s are not serialized with a measurement, only their identifiers. Thelsst.verify.Job
class handles serialization of blobs alongside measurements.Likewise,
Measurement.notes
are not serialized with the measurement. They are included withlsst.verify.Job
‘s serialization, alongside job-level metadata.
-
metric
¶ Metric associated with the measurement (
lsst.verify.Metric
orNone
, mutable).
-
metric_name
¶ Name of the corresponding metric (
lsst.verify.Name
, mutable).
-
notes
¶ Measurement annotations as key-value pairs (
dict
).These key-value pairs are automatically available from
Job.meta
, though keys are prefixed with theMetric
‘s name. This metadata can be queried bySpecification
s, so thatSpecification
s can be written to test only certain types ofMeasurement
s.
-
quantity
¶ astropy.units.Quantity
component of the measurement (mutable).
Methods Documentation
-
classmethod
deserialize
(metric=None, identifier=None, value=None, unit=None, blob_refs=None, blobs=None, **kwargs)[source]¶ Create a Measurement instance from a parsed YAML/JSON document.
Parameters: metric :
str
Name of the metric the measurement measures.
identifier :
str
Unique identifier for this measurement.
value :
float
Value of the measurement.
unit :
str
Units of the
value
, as anastropy.units
-compatible string.List of
Blob.identifier
s for Blob associated with this measurement.blobs :
BlobSet
Returns: measurement :
Measurement
Measurement instance.
-
jsonify_dict
(d)¶ Recursively build JSON-renderable objects on all values in a dict.
Parameters: d :
dict
Dictionary to convert into a JSON-serializable object. Values are recursively JSON-ified.
Returns: json_dict :
dict
Dictionary 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, })
-
link_blob
(blob)[source]¶ Link a
Blob
to this measurement.Blobs can be linked to a measurement so that they can be retrieved by analysis and visualization tools post-serialization. Blob data is not copied, and one blob can be linked to multiple measurements.
Parameters: blob :
lsst.verify.Blob
A
Blob
instance.Notes
After linking, the
Blob
instance can be accessed by name (Blob.name
) through theMeasurement.blobs
dict
.
-