# sfxCalculusExt

Allows you to perform calculus on numerical and boolean history grids in SkySpark.
sfxCalculusExtAxon funcs

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

There are 8 watchers.

v1.7.1

sfxFindIntervals
sfxFindIntervals(hisGrid)

Find Intervals

• Return the ts, interval of a hisGrid
• Side Effects: Lose first ts of hisGrid
• Input: ts, val grid
• Output: Transmuted history grid of ts, interval
• `read(temp and discharge).hisRead(yesterday).sfxHisFindIntervals()`

Cumulative Integral/Area under the Curve from Rectangle Method Approximation

• Supports a true History Grid with multiple V columns
• Should be exact for COV Points
• Side Effect: Data interpolated
• Input: ts, val*n grid where val*n can be multiple V columns with numbers and/or booleans
• Output: Transmuted history grid of ts, V*n columns
• `readAll(temp and discharge).hisRead(yesterday).sfxHisAddRectIntegral()`

Cumulative Integral/Area under the Curve from Trapezoid Method Approximation

• Supports a true History Grid with multiple V columns
• Should be exact for Linear Points
• Side Effect: Data interpolated
• Input: ts, val*n grid where val*n can be multiple V columns with numbers and/or booleans
• Output: Transmuted history grid of ts, V*n columns
• `readAll(temp and discharge).hisRead(yesterday).sfxHisAddTrapIntegral()`
sfxHisDelta
sfxHisDelta(hisGrid)

Rolling Delta

• Supports a true History Grid with multiple V columns
• Side Effect: Data interpolated
• Input: ts, val*n grid where val*n can be multiple V columns with numbers
• Output: Transmuted history grid of ts, V*n columns
• Example: Get change between samples
• `readAll(temp and discharge).hisRead(yesterday).sfxHisDelta()`
sfxHisDerivative
sfxHisDerivative(hisGrid)

Derivative

• Supports a true History Grid with multiple V columns
• Slope going to ts data-point is used as derivative of ts data-point
• Side Effects: Lose first ts of hisGrid; data interpolated
• Input: ts, val*n grid where val*n can be multiple V columns with numbers and/or booleans
• Output: Transmuted history grid of ts, V*n columns
• `readAll(temp and discharge).hisRead(yesterday).sfxHisDerivative()`
sfxHisRectIntegral
sfxHisRectIntegral(hisGrid)

Integral from Rectangle Method Approximation

• Supports a true History Grid with multiple V columns
• Should be exact for COV Points
• Side Effects: Lose first ts of hisGrid; data interpolated
• Input: ts, val*n grid where val*n can be multiple V columns with numbers and/or booleans
• Output: Transmuted history grid of ts, V*n columns
• `readAll(temp and discharge).hisRead(yesterday).sfxHisRectIntegral()`
sfxHisShiftDataBack
sfxHisShiftDataBack(hisGrid)

Shift Data Back in Time One TS

• Supports a true History Grid with multiple V columns
• Side Effect: Lose last ts
• Input: ts, val*n grid where val*n can be multiple V columns
• Output: Transmuted history grid of ts, V*n columns
• `readAll(temp and discharge).hisRead(yesterday).sfxHisShiftDataBack()`
sfxHisShiftDataForward
sfxHisShiftDataForward(hisGrid, removeTop: true)

Shift Data Forward in Time One TS

• Supports a true History Grid with multiple V columns
• Side Effect: Lose last first ts (see leave it with null value if set 2nd parameter to false)
• Input: ts, val*n grid where val*n can be multiple V columns
• Output: Transmuted history grid of ts, V*n columns
• `readAll(temp and discharge).hisRead(yesterday).sfxHisShiftDataBack()`
• `readAll(temp and discharge).hisRead(yesterday).sfxHisShiftDataBack(false)`
sfxHisSum
sfxHisSum(hisGrid)

Rolling Sum

• Supports a true History Grid with multiple V columns
• Side Effect: Data interpolated
• Input: ts, val*n grid where val*n can be multiple V columns with numbers
• Output: Transmuted history grid of ts, V*n columns
• Example: Turn energy differentials to totalized values
• `readAll(temp and discharge).hisRead(yesterday).sfxHisSum()`
sfxHisTrapIntegral
sfxHisTrapIntegral(hisGrid)

Integral from Trapezoid Method Approximation

• Supports a true History Grid with multiple V columns
• Should be exact for linear Points
• Side Effects: Lose first ts of hisGrid; data interpolated
• Input: ts, val*n grid where val*n can be multiple V columns with numbers and/or booleans
• Output: Transmuted history grid of ts, V*n columns
• `readAll(temp and discharge).hisRead(yesterday).sfxHisTrapIntegral()`
sfxHisZScore
sfxHisZScore(src)

Get each ZScore of each cell of a hisGrid

• Supports a true History Grid with multiple V columns
• Side Effects: None
• Input: ts, v0 grid
• Output: Transmuted history grid of ts, v0 columns
• `read(zone and air and temp and sensor).hisRead(pastMonth).sfxHisZScore`
• `readAll(power).hisRead(pastMonth).sfxHisZScore`
sfxPostUnitFixer
sfxPostUnitFixer(value)

Unit Fixing Function

• Function used to fix time units in calculus functions.
• Fixes resultant units
• Inputs: Number with units
• Output: Number with clean units
sfxPreUnitFixer
sfxPreUnitFixer(value)

Function used to convert booleans and fix null units

• Fixes input units
• Inputs: Number or boolean
• Output: Number with units
sfxSeparatePeriods
sfxSeparatePeriods(hisDurGrid, interval: 15min)

Separate Periods of a HisDurGrid into the Requested Interval

• Useful for passing to hisInterpolate
• Does not support multiple V columns
• Side Effect: Data automatically hisClipped
• Input: ts, dur grid and optional interval (defVal: 15min)
• Output: Transmuted history grid of ts, broken up durs
• `read(temp and discharge).hisRead(yesterday).hisFindPeriods(x => x > 70).sfxSeparatePeriods`
• `read(temp and discharge).hisRead(yesterday).hisFindPeriods(x => x > 70).sfxSeparatePeriods(1hr)`