Datum¶
-
class
lsst.verify.Datum(quantity=None, unit=None, label=None, description=None)¶ 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
str Units 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, optional Label suitable for plot axes (without units).
- description
str, optional Extended description of the
Datum.
- quantity
Attributes Summary
Extended description.
Label for plotting (without units).
Units as a LaTeX string, wrapped in
$.Value of the datum (
astropy.units.Quantity,str,bool,None).Read-only
astropy.units.Unitof thequantity.Read-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)¶ Deserialize fields from a Datum JSON object into a
Datuminstance.- Parameters
- value
float,int,bool,str, orlist Values, which may be scalars or lists of scalars.
- unit
strorNone An
astropy.units-compatible string with units ofvalue, orNoneif the value does not have physical units.- label
str, optional Label suitable for plot axes (without units).
- description
str, optional Extended description of the
Datum.
- value
- Returns
- datum
Datum Datum instantiated from provided JSON fields.
- datum
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.
-
static
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.
- d
- Returns
- json_dict
dict Dictionary that can be serialized to JSON.
- json_dict
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, })