product spec

A product spec is the description of a product as it is stored in the 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 runmacs.processor.product.Product), mostly using the runmacs.processor.sugar.pprop() decorator which describes “persistant properties”. It is also possible to recreate the appropriate Product instance from a product spec, using 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", <component hash>),
        ("darkBefore", <component hash>),
        ("darkAfter", <component hash>),
        ("calibrationData", <component hash>),
        ], # list of components (for derived products only)
    # and a lot of pprops:
    "sensorId": "550008",
    "dataSize": {
        "spatial": 1312,
        "spectral": 800,
        "frames": 754
    },
    "integrationTime": ...
}