User Manual 4.13 Postprocessing

De Wiki
Aller à : navigation, rechercher


Introduction

Scope

This section describes all postprocessing actions available on events and phenomena

Javadoc

All the classes are available in the following package:

Library Javadoc
Patrius [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/package-summary.html Package fr.cnes.sirius.patrius.events.postprocessing]

Links

None as of now.

Useful Documents

None as of now.

Package Overview

The conception of the post processing is presented hereafter.

Please note that not all implementations are present in the following diagram for the sake of clarity.

PATRIMOINESIRIUSPostProcessing.png

After the propagation, the logger (CodedEventsLogger) has registered all of the events and the phenomena detected during the propagation. Then, the associated timeline (Timeline) is created from this logger. This object contains all of the detected events and phenomena. On this timeline, different types of post processings can be performed.

Features Description

Phenomenon duration filter

This filter removes from the list the specified phenomena with a duration greater / lower than a given criterion.
A boolean "isMinDuration" determines if the criterion is the minimum or maximum duration of the phenomena that will remain on the list.
The comparison is made with the Comparators class "greaterOrEqual" or "lowerOrEqual" method with a e-14 relative "doubles comparison" epsilon. The phenomena with a duration equal to the criterion are so always kept in the list.

Element type filter

This filter selects all the events and/or phenomena in the Timeline whose code correspond to one or more given codes and removes them from the Timeline (or it keeps them and removes all the other elements in the Timeline).
The user sets the codes of the elements to keep/remove using an array of string.
If the boolean removeAll is set to false at the filter construction, then the complementary filter is built i.e. a filter which preserves in the TimeLine only the given events or phenomena type.

Occurrence filter

This filter removes all of the Nxk occurrences of a given event or phenomenon type. The type is defined by the code.

If the boolean removeAll is set to false at the filter construction, then the complementary filter is built i.e. a filter which preserves in the Timeline only the Nxk occurrences of the given event or phenomenon type.

For example, if N=3 then the third, sixth, ninth... occurrences will be kept or removed.

Events during phenomena filter

This filter removes all of the specified types of events that occur during a given phenomenon type. A type is defined by the code.

If the boolean removeAll is set to false at the filter construction, then the complementary filter is built i.e. a filter that erases the events of the given types which occur outside the given phenomenon type.

Time filter

This filter removes all of the specified events and phenomena types which occur during a given time interval.
If the boolean removeAll is set to false, the complementary filter is built i.e. a filter which preserves the specified events and the phenomena that occur during the given time interval.

NB : if the phenomenon interval of validity overlaps the given time interval, the phenomenon is redefined with an undefined start or end event.

"AND" criterion on phenomena

This criterion adds to the phenomena list of a Timeline object the phenomena corresponding to time intervals when phenomena of particular types A AND B occur at the same time.
The events defining the beginning and the end of those new phenomena are directly the ones of the original A and B phenomena.

"OR" criterion on phenomena

This criterion adds to the phenomena list of a Timeline object the phenomena corresponding to time intervals when phenomena of particular types A OR B occur.
The events defining the beginning and the end of those new phenomena are directly the ones of the original A and B phenomena.

"NOT" criterion on phenomena

This criterion returns the complementary interval of of phenomenon.

Delayed events

This criterion adds delayed events for a given event type. The delay is given at the construction of the criterion, it is given in secondes, it can be either positive or negative.

Merged phenomena

This criterion merges two phenomena of a same given type if the lapse between them is below a given value. This value is given at the criterion construction, it is given in secondes.

Merged Timelines

This post-processing merges two Timelines adding all the events and phenomena of one Timeline to the other one.
The merging operation is allowed only if the time interval of validity of the two Timelines is the same, otherwise the method applyTo(Timeline list) throws an exception.

Polarization single selection

This post-processing creation adds one phenomenon to the timeline; this new phenomenon represents a polarization single selection over two visibility phenomena timelines.
If the chosen phenomenon is called for instance "VISI L", the output phenomenon code will be "VISI L Selection".

The selection of this polarization phenomenon is made through the following three steps:

  1. phenomena L and R are filtered in order to remove the phenomena whose duration is shorter then dMin;
  2. the remaining phenomena are filtered again in order to merge two phenomena if the time between the end of one phenomenon and the beginning of the other is shorter than dMax;
  3. the longest phenomenon is selected among all the remaining L and R phenomena.

The following image represents an example of the polarization single selection process on the timelines L and R:

PolarizationChoice.png

Polarization switch

This post-processing creation possibly adds new events to the timeline; these new events represent polarization switches over two visibility phenomena timelines.
If the phenomenon that triggers the polarization switch is called for instance "VISI L", the output event code will be "VISI L Selection"; the date of the new polarization event will be the end date of the previous phenomenon (even if the next phenomenon has not already started).

The first steps of the polarization switching algorithm are identical to the polarization single selection algorithm:

  1. phenomena L and R are filtered in order to remove the phenomena whose duration is shorter then dMin;
  2. the remaining phenomena are filtered again in order to merge two phenomena if the time between the end of one phenomenon and the beginning of the other is shorter than dMax;
  3. all phenomena are kept.

The following image represents an example of these steps on the timelines L and R:

SwitchingPolarizationfirst.png

After these first filtering steps the polarisation switches are computed as follows :

  1. first choice: if both phenomena L and R are active at the beginning of the interval of validity, select the longest one; if only one phenomenon is active, select it; otherwise if both phenomena are not active, select the next active phenomenon. In any case, the output event date will coincide with the beginning of the interval of validity.
  2. once the first phenomenon selected, move forward until the end of it (date Tf); a new event is triggered if one of the following conditions applies:
    - at Tf the other phenomenon is active, and its remaining duration is longer than dMin;
    - the next polarization phenomenon after Tf belongs to the other polarization group of phenomena(L if the current phenomenon is R and vice versa).
    If an event is triggered, its date will be Tf.
  3. apply 2. until the end of the interval of validity.

The following image represents 6 examples of the expected switching polarization events for two polarization phenomena timelines, called L and R:

SwitchingPolarization.png

Getting Started

Modèle:SpecialInclusion prefix=$theme sub section="GettingStarted"/

Contents

Interfaces

Interface Summary
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/PostProcessing.html PostProcessing] This interface represents a postprocessing action on a TimeLine object.

Classes

Class Summary
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/ElementTypeFilter.html ElementTypeFilter] Filter that removes or keeps only the items of a specific type (code or code + comment) in a given timeline.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/TimeFilter.html TimeFilter] Filter that removes or keeps only all of the events and the phenomena that are inside a given time interval.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/OccurrenceFilter.html OccurrenceFilter] Filter that removes or keeps only the N x k occurrences of a specific element type (code or code + comment) in a given timeline.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/PhenomenonDurationFilter.html PhenomenonDurationFilter] This filter removes phenomena on a duration criterion.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/EventsDuringPhenomenaFilter.html EventsDuringPhenomenaFilter] Filter that removes or keeps only a specified type of events during a specified type of phenomena.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/DelayCriterion.html DelayCriterion] This class is a post processing criterion that delays a specified kind of events.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/MergePhenomenaCriterion.html MergePhenomenaCriterion] This class is a post processing criterion that merges two successive phenomena if the time lapse is below a given value.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/AndCriterion.html AndCriterion] Adds the phenomena corresponding to the occruences of phenomena of types A AND B at the same time.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/OrCriterion.html OrCriterion] Adds the phenomena corresponding to the occruences of phenomena of types A OR B merged.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/NotCriterion.html NotCriterion] Returns the complementary interval of of phenomenon.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/MergeTimelines.html MergeTimelines] Merges two timelines when their intervals of validity are the same.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/PolarizationSingleSelection.html PolarizationSingleSelection] Creates a new phenomenon representing the polarization single selection from two visibility phenomena.
[[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/events/postprocessing/PolarizationSwitch.html PolarizationSwitch] Adds new events to the timeline, each one representing a polarization switch.