Transform a temporal circular buffer to another subtype
tcbufferInst(tcbuffer) → tcbufferInst tcbufferSeq(tcbuffer) → tcbufferSeq tcbufferSeqSet(tcbuffer) → tcbufferSeqSet
SELECT asText(tcbufferSeq(tcbuffer 'Cbuffer(Point(1 1), 0.5)@2001-01-01', 'discrete'));
-- {Cbuffer(POINT(1 1),0.5)@2001-01-01}
SELECT asText(tcbufferSeq(tcbuffer 'Cbuffer(Point(1 1), 0.5)@2001-01-01'));
-- [Cbuffer(POINT(1 1),0.5)@2001-01-01]
SELECT asText(tcbufferSeqSet(tcbuffer 'Cbuffer(Point(1 1), 0.5)@2001-01-01'));
-- {[Cbuffer(POINT(1 1),0.5)@2001-01-01]}
Transform a temporal circular buffer to another interpolation
setInterp(tcbuffer,interp) → tcbuffer
SELECT asText(setInterp(tcbuffer 'Cbuffer(Point(1 1),0.2)@2001-01-01','linear'));
-- [Cbuffer(POINT(1 1),0.2)@2001-01-01]
SELECT asText(setInterp(tcbuffer '{[Cbuffer(Point(1 1),0.1)@2001-01-01],
[Cbuffer(Point(1 1),0.2)@2001-01-02]}', 'discrete'));
-- {Cbuffer(POINT(1 1),0.1)@2001-01-01, Cbuffer(POINT(1 1),0.2)@2001-01-02}
Round the points and the radii of the temporal circular buffer to the number of decimal places
round(tcbuffer,integer) → tcbuffer
SELECT asText(round(tcbuffer '{[Cbuffer(Point(1 1.123456789),0.123456789)@2001-01-01,
Cbuffer(Point(1 1),0.5)@2001-01-02)}', 3));
-- {[Cbuffer(POINT(1 1.123),0.123)@2001-01-01, Cbuffer(POINT(1 1),0.5)@2001-01-02)}
Extract the subsequences where the temporal circular buffer stays within an area with a specified maximum size for at least the given duration
stops(tcbuffer,maxdist float=0.0,minduration interval='0 minutes') → tcbuffer
The size of the area is the greatest distance between two centres of the subsequence, as stated for a temporal point in stops.
SELECT asText(stops(tcbuffer '[Cbuffer(Point(1 1), 0.5)@2001-01-01,
Cbuffer(Point(1 1), 0.5)@2001-01-02, Cbuffer(Point(2 2), 0.5)@2001-01-03,
Cbuffer(Point(2 2), 0.5)@2001-01-04]'));
/* {[Cbuffer(POINT(1 1),0.5)@2001-01-01, Cbuffer(POINT(1 1),0.5)@2001-01-02],
[Cbuffer(POINT(2 2),0.5)@2001-01-03, Cbuffer(POINT(2 2),0.5)@2001-01-04]} */