IntroductionΒΆ

This is the section that should contain the summary flowchart of the Processing Function, where the products that will be described should appear quite clearly. In principle, this flow-chart should be no different from the one already present in the RSD and possibly in the Software Design Document, and at least we encourage to have a single flow-chart between the RSD and the DPDD. The idea is to guide the reader of the DPDD toward a more detailed understanding of the role of the products in the pipeline.

The Dynamic Flag Processing Element (DF PE) is in charge of producing dynamic quality flags (DFs) inside the pipeline. Such Dynamic Flags (DFs) are created based on rules that have been manually entered into the EAS. The rules can be applied to Data Products (DPs) from any other processing element. From a systemic perspective, the only difference between the DF processing element and regular processing elements is that the DF PE accepts input DPs of any type.

The DF PE ingests data products from EAS or other PFs, and receives as additional input flag rules (flagRuleSets). The selection of data products and corresponding flagRuleSets is done by the operator starting the pipeline through COORS and is dependent only on the name of the input data product. The flag rules contain flag conditions, which, when triggered, raise a flag for the corresponding element in the input data product. These flags are then stored in a separate DF data product. For each input data product, one DF data product will be generated.

The main goal of the Dynamic Flag processing function is to generate dynamic flags that are based on flag conditions. As input the DF PF receives one or more data products that are output of one or more preceding PFs. Additional input are flagRuleSets specific to the input DPs, which then are applied to the corresponding input DP. If a flagRuleSet triggers, a quality flag referring to the data product is generated and stored in the archive. FlagRuleSets contain one or more Boolean expressions called flagConditions. A FlagRuleSet triggers if any of its flagConditions evaluate to true. In quasi-notation, a flagCondition might look something like this:

Dp.Data.ExposureTime.Value  GT  0.0

The expression to the left of the operator GT is a reference to an element inside the input data product. If this element is greater than zero, the flagCondition evaluates to true, the FlagRuleSet triggers, and an appropriate quality flag is raised and stored in the archive.