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.
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)¶ 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.
Returns: - datum :
Datum Datum 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.
- value :
-
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.
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, })
- d :
- quantity :