The table context menu (available by right-clicking) gives access to two types of filtering: [Filter by Tree...] and [Filter by Expression...] (the latter since FEWS-2014.02). These options, which can be applied simultaneously, allow the user to apply a filter to data shown in the table, hiding all records that do not satisfy the filter criteria. With the filter(s) applied, data can be selectively copied to clipboard or edited. The display in the graph is not affected by the filters.

# Filter by Tree

This option allows the user to filter records based on a number time series *properties*: user, comment, and flagSource (validation). The main branches of the filter tree are formed by the time series that are selected. The properties then appear as subbranches, and for each property the available options are listed as the tree leaves.

When selecting one of the leaves, the data shown in the table is shrunk to all records that have the specified property. When choosing multiple leaves from the *same* branch, the data selection is expanded to the union of the individual leaves. A filter based on leaves of *different* branches will shrink the data selection to the intersection of the individual branches. For example, suppose the user chooses the leaves HN and ROF in the validation branch of time series A, and leaf HN in the validation branch of time series B. In that case only those records are shown for which the flagSource of time series A equals HN *or* ROF, *and* the flagSource of time series B equals HN.

*Figure 1: Filter by Tree.*

# Filter by Expression

This option (available sine FEWS-2014.02) allows the user to filter the records based on expressions, involving the active table columns. The expressions are therefore not limited to the data column, but may also involve the user or comment column. A column is referenced by its alphabetical index (mind to use capitals). The following operators and functions are available for constructing expressions:

**OPERATORS**

operators | description | example |
---|---|---|

< > <= >= | relations | A>=10 |

== != | equality | A!=10 |

+ - | add, subtract | A+3>10 |

* / | multiply, divide | A*0.5>10 |

^ | power | A^2>10 |

&& | logical AND | A>10&&E>5 |

|| | logical OR | A>10||E>5 |

**FUNCTIONS**

function | description | example |
---|---|---|

sum | sum of values | sum(A,E,...)>10 |

abs | absolute value | abs(A)>10 |

pow | power function | pow(A,2)>10 |

sqrt | square root | sqrt(A)>10 |

min | minimum of list | min(A,E)>10 |

max | maximum of list | max(A,E)>10 |

average | average of list | average(A,E)>10 |

exp | exponential (e^x) | exp(A)>10 |

ln | natural logarithm | ln(A)>10 |

log | logarithm base 10 | log(A)>10 |

atanh | inverse hyperbolic tangent | atanh(A)>10 |

acosh | inverse hyperbolic cosine | acosh(A)>10 |

asinh | inverse hyperbolic sine | asinh(A)>10 |

tanh | hyperbolic tangent | tanh(A)>10 |

cosh | hyperbolic cosine | cosh(A)>10 |

sinh | hyperbolic sine | sinh(A)>10 |

atan | arc tangent | atan(A)>10 |

acos | arc cosine | acos(A)>10 |

asin | arc sine | asine(A)>10 |

tan | tangent | tan(A)>10 |

cos | cosine | cos(A)>10 |

sin | sine | sin(A)>10 |

isMissing | check for NaN | isMissing(A) |

An example application is shown in Figure 2.

*Figure 2: Filter by Expression.*