time_range: 조회할 시간 구간 선택
foundryts.functions.time_range(start=None, end=None)는 시계열 하나에서 지정한 시간 범위의 관측을 남기는 함수를 반환합니다. 입력과 출력은 FunctionNode이며, 선택한 구간도 후속 계산에 사용할 시계열입니다.
전체 시계열 대신 필요한 구간을 조회하면 백엔드가 읽을 관측점을 줄일 수 있습니다.
경계 인수
| 인수 | 형식 | 기본 인수 | 경계 |
|---|---|---|---|
| start | int, str 또는 datetime | None | 지정한 시작 시각 포함 |
| end | int, str 또는 datetime | None | 지정한 종료 시각 제외 |
정수 시각은 Unix epoch 이후 나노초입니다. start를 생략하면 첫 관측부터, end를 생략하면 마지막 관측까지 포함합니다. 두 경계를 모두 지정하면 [start, end) 구간을 선택합니다.
관측 시각을 일정한 간격만큼 옮기는 time_shift와는 구분합니다. time_range는 범위를 선택하며 남은 관측의 시각이나 값을 바꾸지 않습니다.
가상 관측과 네 가지 범위
import foundryts.functions as F
series = F.points(
(1, 1.0),
(101, 2.0),
(200, 4.0),
(201, 8.0),
name="series",
)
bounded = F.time_range(start=200, end=202)(series)
narrower = F.time_range(start=200, end=201)(series)
unbounded_start = F.time_range(end=201)(series)
unbounded_end = F.time_range(start=101)(series)
bounded_df = bounded.to_pandas()
각 노드를 평가할 때 유지하는 관측은 다음과 같습니다. 괄호는 (시각 ns, 값)입니다.
| 범위 | 유지하는 관측 |
|---|---|
| start=200, end=202 | (200, 4.0), (201, 8.0) |
| start=200, end=201 | (200, 4.0) |
| end=201만 지정 | (1, 1.0), (101, 2.0), (200, 4.0) |
| start=101만 지정 | (101, 2.0), (200, 4.0), (201, 8.0) |
bounded_df의 가상 결과는 다음 두 행입니다.
| timestamp | value |
|---|---|
| 1970-01-01 00:00:00.000000200 | 4.0 |
| 1970-01-01 00:00:00.000000201 | 8.0 |
출력 timestamp는 pandas.Timestamp이고 value는 입력 시계열에 따라 float 또는 str입니다. 여러 시계열을 여러 구간으로 나누려면 NodeCollection.map_intervals를 사용할 수 있습니다.