User Manual 4.15 Postprocessing
Sommaire
- 1 Introduction
- 2 Features Description
- 2.1 Phenomenon duration filter
- 2.2 Element type filter
- 2.3 Occurrence filter
- 2.4 Events during phenomena filter
- 2.5 Time filter
- 2.6 "AND" criterion on phenomena
- 2.7 "OR" criterion on phenomena
- 2.8 "NOT" criterion on phenomena
- 2.9 Delayed events
- 2.10 Merged phenomena
- 2.11 Merged Timelines
- 2.12 Polarization single selection
- 2.13 Polarization switch
- 3 Getting Started
- 4 Contents
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 | 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.
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:
- phenomena L and R are filtered in order to remove the phenomena whose duration is shorter then dMin;
- 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;
- 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:
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:
- phenomena L and R are filtered in order to remove the phenomena whose duration is shorter then dMin;
- 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;
- all phenomena are kept.
The following image represents an example of these steps on the timelines L and R:
After these first filtering steps the polarisation switches are computed as follows :
- 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.
- 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. - 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:
Getting Started
Modèle:SpecialInclusion prefix=$theme sub section="GettingStarted"/
Contents
Interfaces
Interface | Summary |
---|---|
PostProcessing | This interface represents a postprocessing action on a TimeLine object. |
Classes
Class | Summary |
---|---|
ElementTypeFilter | Filter that removes or keeps only the items of a specific type (code or code + comment) in a given timeline. |
TimeFilter | Filter that removes or keeps only all of the events and the phenomena that are inside a given time interval. |
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. |
PhenomenonDurationFilter | This filter removes phenomena on a duration criterion. |
EventsDuringPhenomenaFilter | Filter that removes or keeps only a specified type of events during a specified type of phenomena. |
DelayCriterion | This class is a post processing criterion that delays a specified kind of events. |
MergePhenomenaCriterion | This class is a post processing criterion that merges two successive phenomena if the time lapse is below a given value. |
AndCriterion | Adds the phenomena corresponding to the occruences of phenomena of types A AND B at the same time. |
OrCriterion | Adds the phenomena corresponding to the occruences of phenomena of types A OR B merged. |
NotCriterion | Returns the complementary interval of of phenomenon. |
MergeTimelines | Merges two timelines when their intervals of validity are the same. |
PolarizationSingleSelection | Creates a new phenomenon representing the polarization single selection from two visibility phenomena. |
PolarizationSwitch | Adds new events to the timeline, each one representing a polarization switch. |