Datum¶
-
class
lsst.verify.Datum(quantity=None, unit=None, label=None, description=None)[source]¶ Bases:
lsst.verify.datum.QuantityAttributeMixin,lsst.verify.jsonmixin.JsonSerializationMixinA value annotated with units, a plot label and description.
Datum supports natively support Astropy
Quantityand units. In addition, a Datum can also wrap strings, booleans and integers. A Datums’s value can also beNone.Parameters: quantity :
astropy.units.Quantity,int,floator iterable.Value of the
Datum.unit :
strUnits of
quantityas astrifquantityis not supplied as anastropy.units.Quantity. See http://docs.astropy.org/en/stable/units/. Units are not used bystr,bool,intorNonetypes.label :
str, optionalLabel suitable for plot axes (without units).
description :
str, optionalExtended description of the
Datum.Attributes Summary
descriptionExtended description. jsonDatum as a dictcompatible with overallJobJSON schema.labelLabel for plotting (without units). latex_unitUnits as a LaTeX string, wrapped in $.quantityValue of the datum ( astropy.units.Quantity,str,bool,None).unitRead-only astropy.units.Unitof thequantity.unit_strRead-only astropy.units.Unit-compatiblestrindicating units ofquantity.Methods Summary
deserialize([label, description, value, unit])Deserialize fields from a Datum JSON object into a Datuminstance.jsonify_dict(d)Recursively build JSON-renderable objects on all values in a dict. write_json(filepath)Write JSON to a file. Attributes Documentation
-
description¶ Extended description.
-
label¶ Label for plotting (without units).
-
latex_unit¶ Units as a LaTeX string, wrapped in
$.
-
quantity¶ Value of the datum (
astropy.units.Quantity,str,bool,None).
-
unit¶ Read-only
astropy.units.Unitof thequantity.
-
unit_str¶ Read-only
astropy.units.Unit-compatiblestrindicating units ofquantity.
Methods Documentation
-
classmethod
deserialize(label=None, description=None, value=None, unit=None)[source]¶ Deserialize fields from a Datum JSON object into a
Datuminstance.Parameters: value :
float,int,bool,str, orlistValues, which may be scalars or lists of scalars.
An
astropy.units-compatible string with units ofvalue, orNoneif the value does not have physical units.label :
str, optionalLabel suitable for plot axes (without units).
description :
str, optionalExtended description of the
Datum.Returns: datum :
DatumDatum instantiated from provided JSON fields.
Examples
With this class method, a
Datummay be round-tripped from its JSON serialized form.>>> datum = Datum(50. * u.mmag, label='sigma', ... description="Photometric uncertainty.") >>> print(datum) sigma = 50.0 mmag Photometric uncertainty. >>> json_data = datum.json >>> new_datum = datum.deserialize(**json_data) >>> print(new_datum) sigma = 50.0 mmag Photometric uncertainty.
-
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, })
-