sample_low_pass - bruno-beloff/scs_analysis GitHub Wiki
docs > software repositories > scs_analysis > commands > filtering and aggregating data
DESCRIPTION
The sample_low_pass utility provides a rolling exponential average or low pass filter. The user must specify the sampling interval in seconds, together with the cut-off frequency.
Input data is typically in the form of a JSON document. A command parameter specifies the path to the node within the document that is to be filtered. The node is typically a leaf node integer or float. The output of the sample_low_pass utility includes the source value, and the smoothed value.
SYNOPSIS
sample_low_pass.py -d DELTA_T -c CUT_OFF [-p PRECISION] [-v] [PATH]
Options | |
---|---|
--version | show program's version number and exit |
-h, --help | show this help message and exit |
-d DELTA, --delta=DELTA | sampling time interval |
-c CUT_OFF, --cut-off=CUT_OFF | cut-off frequency |
-p PRECISION, --prec=PRECISION | precision (default 0 decimal places) |
-v, --verbose | report narrative to stderr |
EXAMPLES
aws_topic_history.py -m60 /orgs/south-coast-science-demo/brighton/loc/1/gases | ./sample_low_pass.py -d 10.0 -c 0.02 -p 1 val.CO.cnc
DOCUMENT EXAMPLE - INPUT
{"tag": "scs-bgx-401", "rec": "2018-03-27T09:54:41.042+00:00", "val": {"NO2": {"weV": 0.29563, "aeV": 0.280879, "weC": 0.009569, "cnc": 61.0}, "Ox": {"weV": 0.406819, "aeV": 0.387443, "weC": -0.010706, "cnc": 34.7}, "NO": {"weV": 0.319692, "aeV": 0.292129, "weC": 0.028952, "cnc": 165.5}, "CO": {"weV": 0.395819, "aeV": 0.289317, "weC": 0.113108, "cnc": 311.3}, "sht": {"hmd": 82.4, "tmp": 12.6}}}
DOCUMENT EXAMPLE - OUTPUT
{"rec": "2018-03-27T10:55:11.033+00:00", "val": {"CO": {"cnc": {"src": 121.3, "lpf": 131.3}}}}
RESOURCES
Ten Little Algorithms, Part 2: The Single-Pole Low-Pass Filter