Skip to content
Snippets Groups Projects
Miscellaneous.md 4.12 KiB
Newer Older
# Miscellaneous

A collection of unrelated quality check functions.

## Index

- [range](#range)
- [seasonalRange](#seasonalrange)
- [isolated](#isolated)
- [missing](#missing)
- [clear](#clear)
- [force](#force)


## range

```
range(min, max)
```
| parameter | data type | default value | description                  |
| --------- | --------- | ------------- | -----------                  |
Bert Palm's avatar
Bert Palm committed
| min       | float     |               | The upper bound for valid values |
| max       | float     |               | The lower bound for valid values |


The function flags all values outside the closed interval
$`[`$`min`, `max`$`]`$.

## seasonalRange

```
sesonalRange(min, max, startmonth=1, endmonth=12, startday=1, endday=31)
```

| parameter  | data type   | default value | description                  |
| ---------  | ----------- | ----          | -----------                  |
Bert Palm's avatar
Bert Palm committed
| min        | float       |               | The upper bound for valid values |
| max        | float       |               | The lower bound for valid values |
| startmonth | integer     | `1`           | The interval start month         |
| endmonth   | integer     | `12`          | The interval end month           |
| startday   | integer     | `1`           | The interval start day           |
| endday     | integer     | `31`          | The interval end day             |

The function does the same as `range`, but only if the timestamp of the
data-point lies in a defined interval, which is build from days and months only. 
In particular, the *year* is not considered in the Interval. 

The left 
boundary is defined by `startmonth` and `startday`, the right boundary by `endmonth`
and `endday`. Both boundaries are inclusive. If the left side occurs later
in the year than the right side, the interval is extended over the change of
year (e.g. an interval of [01/12, 01/03], will flag values in December,
January and February).

NOTE: Only works for time-series-like datasets.


## isolated

```
Bert Palm's avatar
Bert Palm committed
isolated(window, gap_window, group_window) 

```

| parameter    | data type                                                     | default value | description                                                            |
|--------------|---------------------------------------------------------------|---------------|------------------------------------------------------------------------|
Bert Palm's avatar
Bert Palm committed
| gap_window   | [offset string](docs/ParameterDescriptions.md#offset-strings) |               | The minimum size of the gap before and after a group of valid values, which makes this group considered as isolated. See condition (2) and (3) |
| group_window | [offset string](docs/ParameterDescriptions.md#offset-strings) |               | The maximum size of an isolated group of valid data. See condition (1).                  |

The function flags arbitrary large groups of values, if they are surrounded by sufficiently
large data gaps. A gap is defined as group of missing and/or flagged values.

A continuous group of values
$`x_{k}, x_{k+1},...,x_{k+n}`$ with timestamps $`t_{k}, t_{k+1}, ..., t_{k+n}`$
is considered to be isolated, if:
1. $` t_{k+n} - t_{k} \le `$ `group_window`
David Schäfer's avatar
David Schäfer committed
2. None of the values $` x_i, ..., x_{k-1} `$, with $`t_{k-1} - t_{i} \ge `$ `gap_window` is valid or unflagged
3. None of the values $` x_{k+n+1}, ..., x_{j} `$, with $`t_{j} - t_{k+n+1} \ge `$ `gap_window` is valid or unflagged


## missing

```
missing(nodata=NaN)
```

| parameter | data type  | default value  | description |
| --------- | ---------- | -------------- | ----------- |
Bert Palm's avatar
Bert Palm committed
| nodata    | any        | `NAN`          | A value that defines missing data |


The function flags all values indicating missing data.

## clear

```
clear()
```

The funcion removes all previously set flags.

## force

```
force(flag)
```
| parameter | data type                | default value | description   |
| --------- | -----------              | ----          | -----------   |
Bert Palm's avatar
Bert Palm committed
| flag      | float/[flagging constant](docs/ParameterDescriptions.md#flagging-constants) | GOOD     | The flag that is set unconditionally |
Bert Palm's avatar
Bert Palm committed
The functions overwrites all previous set flags with the given flag.

## dummy

```
dummy()
```

The funcion does nothing.