pyhctsa.operations.correlation.falling_sticks¶
- pyhctsa.operations.correlation.falling_sticks(y)¶
Physical falling-sticks model of line-of-sight interaction.
As in stick_angles, each time-series value is treated as a rigid stick standing on the zero baseline, with sticks grouped by sign into a ‘positive’ set (protruding up from the zero level) and a ‘negative’ set (protruding down). Here, sticks are toppled: each stick rotates about its base towards later same-sign sticks and stops at whichever angle first brings it into contact with one – either its trunk striking the side of a taller later stick, or its underside striking the tip of a shorter one it topples clean over – or else it falls flat (angle = pi/2) if no later same-sign stick lies within reach (a stick of height h can only ever reach as far as horizontal distance h).
This differs from stick_angles, which only ever compares a stick to its immediate same-sign successor via the slope between them. falling_sticks instead allows a stick to skip over intervening sticks to hit a farther one, so it is sensitive to range-dependent local- extremum structure (e.g. a tall stick toppling clean over an intervening short one) that the purely local (i, i+1) comparison cannot see.
Adapted from a Python implementation (‘FALLstick’) by Eugene Chon (@EugeneChon04), who wrote the original Python version for hctsa; this is a port of hctsa’s
CO_FallingSticks.- Parameters:¶
- y : array-like¶
The input time series (assumed z-scored: the sign split is around the mean, matching stick_angles’s convention).
- Returns:¶
Statistics on the resulting fall-angle sequence (location, spread, shape, persistence), on the asymmetry between the positive and negative branches, and on the three collision types a fall can end in – falling flat, hitting the immediately next stick, or skipping over one or more sticks to hit a farther one – and the two ways a hit can occur – trunk-strike (case 1) vs. tip-strike/topple-over (case 2). The persistence statistics (
tau_p,ac1_p,tau_n,ac1_n) are NaN when a branch’s fall angles are constant to rounding error (e.g. all sticks fall flat); likewiseskewness_allandkurtosis_allwhen all the angles are, andstd_allis then 0.- Return type:¶
dict