The series_atan function computes the arc tangent (inverse tangent) for each element in a numeric array (also known as a series). You use it to transform a dynamic array of numbers into their corresponding arc tangent values, expressed in radians. This is useful when you work with time series or array data and want to normalize, analyze, or transform it using trigonometric operations.
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.
For users of other query languages
If you come from other query languages, this section explains how to adjust your existing queries to achieve the same results in APL.
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.
datatable(arr: dynamic)
[
dynamic([0, 1, -1])
]
| extend atan_arr = series_atan(arr)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.
datatable(arr: dynamic)
[
dynamic([0, 1, -1])
]
| extend atan_arr = series_atan(arr)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.