product spec ============ A product spec is the description of a product as it is stored in the :py:class:`runmacs.processor.metaStorage.MetaStorage`. Subsequently queries in the meta storage are only able to refer to information available in the product spec. serialization and deserialization of products --------------------------------------------- The product spec is generated implicitly for every product (an object deriving from :py:class:`runmacs.processor.product.Product`), mostly using the :py:func:`runmacs.processor.sugar.pprop` decorator which describes "persistant properties". It is also possible to recreate the appropriate `Product` instance from a product spec, using :py:meth:`runmacs.processor.product.Product.fromProductSpec`. layout ------ A typical product spec looks as follows:: { "productClass": "runmacs.processor.products.derrived.calibratedimage.CalibratedImage", # name of python class associated with the product "productType": "calibrated_image", # name, describing the type of included data "componentOids": [ ("rawImage", ), ("darkBefore", ), ("darkAfter", ), ("calibrationData", ), ], # list of components (for derived products only) # and a lot of pprops: "sensorId": "550008", "dataSize": { "spatial": 1312, "spectral": 800, "frames": 754 }, "integrationTime": ... }