series_atan
You often use series_atan in scenarios where you want to transform numeric measurements into angular values for further statistical analysis, pattern recognition, or anomaly detection.
Usage#
Syntax#
series_atan(array)Parameters#
| Parameter | Type | Description |
|---|---|---|
array |
dynamic | A dynamic array of numeric values. |
Returns#
A dynamic array with the arc tangent of each input element. The results are in radians.
Use case examples#
You want to analyze request durations by converting them into angular values for specialized statistical transformations.
Query
['sample-http-logs']
| summarize durations = make_list(req_duration_ms)
| extend atan_durations = series_atan(durations)Output
| durations | atan_durations |
|---|---|
| [10, 200, 5000] | [1.4711, 1.5658, 1.5706] |
The query aggregates request durations, then transforms them into their arc tangent equivalents for normalized comparison.
You want to transform span durations into angular values for advanced time series modeling.
Query
['otel-demo-traces']
| summarize spans = make_list(duration) by ['service.name']
| extend atan_spans = series_atan(spans)Output
| service.name | spans | atan_spans |
|---|---|---|
| frontend | [00:00:01, 00:00:03] | [0.7854, 1.2490] |
| checkoutservice | [00:00:05, 00:00:07] | [1.3734, 1.4289] |
The query collects span durations by service and transforms them into arc tangent values.
You want to analyze failed login attempts by transforming their request durations into angular values.
Query
['sample-http-logs']
| summarize failed_durations = make_list(req_duration_ms) by id
| extend atan_failed = series_atan(failed_durations)Output
| id | failed_durations | atan_failed |
|---|---|---|
| user42 | [20, 200, 800] | [1.5208, 1.5658, 1.5696] |
The query collects durations and applies the arc tangent function element-wise.
List of related functions#
- series_asin: Applies the arc sine function element-wise to array values. Use this when you need the inverse sine instead of the inverse cosine.
- series_acos: Returns the arc cosine of each element in an array. Use when you need to invert cosine transformations instead of sine.
Other query languages#
Splunk SPL users
In Splunk SPL, you typically use eval atan(x) to calculate the arc tangent of a scalar value, but SPL doesn’t provide a built-in function for applying atan across arrays or time series directly. In APL, series_atan applies the operation element-wise to arrays, making it easier to work with dynamic and time series data.
Splunk example
... | eval angle=atan(value)APL equivalent
datatable(arr: dynamic)
[
dynamic([0, 1, -1])
]
| extend atan_arr = series_atan(arr)ANSI SQL users
In ANSI SQL, you use ATAN(x) for scalar values. To work with arrays, you typically need to unnest the array, apply ATAN to each element, and then aggregate the results back. APL simplifies this with series_atan, which applies the arc tangent function element-wise to the entire array.
SQL example
SELECT ATAN(value)
FROM numbers;APL equivalent
datatable(arr: dynamic)
[
dynamic([0, 1, -1])
]
| extend atan_arr = series_atan(arr)