sfxSignalAnalysisExt icon

sfxSignalAnalysisExt

Allows you to filter out noise, only show noise, or plot duration vs frequency of events in history grids.
sfxSignalAnalysisExt

Registered StackHub users may elect to receive email notifications whenever a new package version is released.

There are 4 watchers.

v1.4.1

Overview

Welcome to SkySpark's Signal Analysis Extension! As of today, there are 8 functions in this package.

sfxFourier(hisGrid, filter: x => x, theChartType: "bar")

Plot duration vs frequency

  • Works on booleans or lambdas of other kinds such as numerics
  • Must only have 2 states (forced by lambdas)
  • Only works on a single ts and a single v0 column
  • Side Effects: None
  • Input: ts, v0 grid
  • Output: Transmuted history grid of ts, v0 columns
  • Filter used appears in col meta data
  • read(cool).hisRead(2016-07).sfxFourier
  • read(temp and discharge).hisRead(2016-07).sfxFourier(x => x > 70, "scatter")

sfxHisDurPlot(hisGrid, delta: 0%, dur: 16min, theChartType: "scatter")

Plot duration bucket vs frequency

  • Percentage and Duration thresholds determined manually or automatically
  • Supports a true History Grid with multiple V columns
  • Side Effects: Data interpolated, multiple histories that do not start and/or end around same time will result in leading and trailing 0s
  • leading and trailing 0s and length of entire window will affect results in auto mode
  • Input: ts, val*n grid where val*n can be multiple V columns with only numbers
  • Output: Transmuted history grid of ts, V*n columns
  • delta and dur used appear in column meta data
  • read(temp and discharge).hisRead(yesterday).sfxHisDurPlot
  • read(temp and discharge).hisRead(yesterday).sfxHisDurPlot(50%, 16min, "bar")
  • readAll(temp and discharge).hisRead(yesterday).sfxHisDurPlot
  • readAll(temp and discharge).hisRead(yesterday).sfxHisDurPlot(50%, 16min)

sfxHisNoiseFilter(hisGrid, delta: 0%, dur: 16min)

Remove low duration events

  • Percentage and Duration thresholds determined manually or automatically
  • Supports a true History Grid with multiple V columns
  • Side Effects: Data interpolated, multiple histories that do not start and/or end around same time will result in leading and trailing 0s
  • leading and trailing 0s and length of entire window will affect results in auto mode
  • Input: ts, val*n grid where val*n can be multiple V columns with only numbers
  • Output: Transmuted history grid of ts, V*n columns
  • delta and dur used appear in column meta data
  • read(temp and discharge).hisRead(yesterday).sfxHisNoiseFilter
  • read(temp and discharge).hisRead(yesterday).sfxHisNoiseFilter(50%, 16min)
  • readAll(temp and discharge).hisRead(yesterday).sfxHisNoiseFilter
  • readAll(temp and discharge).hisRead(yesterday).sfxHisNoiseFilter(50%, 16min)

sfxHisShowNoise(hisGrid, delta: 0%, dur: 16min)

Remove high duration events

  • Percentage and Duration thresholds determined manually or automatically
  • Supports a true History Grid with multiple V columns
  • Side Effects: Data interpolated, multiple histories that do not start and/or end around same time will result in leading and trailing 0s
  • leading and trailing 0s and length of entire window will affect results in auto mode
  • Input: ts, val*n grid where val*n can be multiple V columns with only numbers
  • Output: Transmuted history grid of ts, V*n columns
  • delta and dur used appear in column meta data
  • read(temp and discharge).hisRead(yesterday).sfxHisShowNoise
  • read(temp and discharge).hisRead(yesterday).sfxHisShowNoise(50%, 16min)
  • readAll(temp and discharge).hisRead(yesterday).sfxHisShowNoise
  • readAll(temp and discharge).hisRead(yesterday).sfxHisShowNoise(50%, 16min)

sfxMultiFourier(theList)

Plot multiple Fourier grids together

  • All input grids must come from sfxFourier()
  • Works on booleans or lambdas of other kinds such as numerics
  • Side Effects: None
  • Input: Multiple Fourier grids
  • Output: Multiple v columns
  • sfxMultiFourier([read(temp and discharge).hisRead(2010-01).sfxFourier(x=>x<60),read(temp and discharge).hisRead(2010-01).sfxFourier(x=>x>80)])

sfxNumbDist(hisGrid, bins: 10, theChartType: "bar", raw: true, forceInterval: false, forceCleanStart: false)

Plot bins vs frequency

  • Also shows average and total duration in designated bin
  • Works on booleans, numbers, and strings
  • Only works on a single ts and a single v0 column
  • Set 4th parameter (raw) to false to see percentages instead of counts
  • Side Effects: None
  • Input: ts, v0 grid
  • Output: Transmuted history grid of ts, v0 columns
  • Bins used appears in col meta data
  • read(cool).hisRead(2016-07).sfxNumbDist
  • read(temp and discharge).hisRead(2016-07).sfxNumbDist
  • read(temp and discharge).hisRead(2016-07).sfxNumbDist(20, "scatter")
  • read(temp and discharge).hisRead(2010-01).sfxNumbDist(10, "bar", false) // 10 groups
  • read(temp and discharge).hisRead(2010-01).sfxNumbDist(10, "bar", false, true, true) // groups of x have interval 10 and start at whole number

sfxRawFilter(hisGrid, delta: 50%)

Show duration buckets (manual)

  • Percentage and Duration thresholds determined manually
  • Debug function called by sfxHisNoiseFilter(), sfxHisShowNoise(), and sfxHisDurPlot()
  • Supports only history grids with a ts, v0 column
  • Side Effects: None
  • Input: ts, v0 grid where v0 can only be numbers
  • Output: Transmuted history grid of ts, v0, v1 = % change, v2 = group start, v3 = group end, v4 = group duration
  • delta used appears in column meta data
  • read(temp and discharge).hisRead(yesterday).sfxRawFilter(50%)

sfxRawFilterAuto(hisGrid)

Show duration buckets (auto)

  • Percentage and Duration thresholds determined automatically
  • Debug function called by sfxHisNoiseFilter(), sfxHisShowNoise(), and sfxHisDurPlot()
  • Supports only history grids with a ts, v0 column
  • Side Effects: None
  • Input: ts, v0 grid where v0 can only be numbers
  • Output: Transmuted history grid of ts, v0, v1 = % change, v2 = group start, v3 = group end, v4 = group duration
  • delta used and dur to be used appear in column meta data
  • read(temp and discharge).hisRead(yesterday).sfxRawFilterAuto

sfxEnergyInOut(theAhu, dateRange)

Compare Temperature Differential to SiteMeter's Energy

  • Requires zone air temp sensor point on equip, weatherPoint temp, and siteMeter needs energy point
  • Side Effects: None
  • Input: equip (usually ahu) with zone air temp sensor and dates
  • Output: kWh / deltaTemp hisGrid
  • read(ahu).sfxEnergyInOut(pastMonth)

sfxMode(hisGrid, interval)

Find One or More Modes for Dataset

  • The interval parameter determines what range constitutes the same number
  • Only works on a single ts and a single v0 column
  • Side Effects: None
  • Input: ts, v0 grid and the interval used for the groups (ie 1 treats 1.50 to 2.49 as 2 and so on)
  • Output: List of dicts as string which can include multiple modes (if two or more numbers appear the same number of times)
  • read(temp and discharge).hisRead(pastMonth).sfxMode
  • read(cool).hisRead(pastMonth).sfxMode
  • read(power).hisRead(pastMonth).sfxMode(2)

Please contact adam@skyfoundry.com with any questions.

Published by SkyFoundry

Products & Services by SkyFoundry

Packages by SkyFoundry

Free packages

Package details
Version1.4.1
Licensen/a
Build date1 year ago
on 23rd Mar 2022
Depends on
File namesfxSignalAnalysisExt.pod
File size23.62 kB
MD522950c8ef945a3d80a96ba750b370b51
SHA1 db3d0bbd7d2e9d3f6354cb9d9d65b2da1f8c54b5
Published by
SkyFoundryDownload now
Also available via SkyArc Install Manager
Tags
Pod File