content/flux/v0/stdlib/experimental/geo/groupbyarea.md
geo.groupByArea() groups rows by geographic area.
Area sizes are determined by the specified level.
Each geographic area is assigned a unique identifier (the S2 cell ID token)
which is stored in the newColumn.
Results are grouped by newColumn.
(
<-tables: stream[{A with s2_cell_id: string, lon: float, lat: float}],
level: int,
newColumn: string,
?s2cellIDLevel: int,
) => stream[B] where B: Record
{{% caption %}} For more information, see Function type signatures. {{% /caption %}}
({{< req >}}) Name of the new column for the unique identifier for each geographic area.
({{< req >}}) S2 Cell level used to determine the size of each geographic area.
S2 Cell level
used in the s2_cell_id tag. Default is -1 (detects S2 cell level from the s2_cell_id tag).
Input data. Default is piped-forward data (<-).
import "experimental/geo"
data
|> geo.groupByArea(newColumn: "foo", level: 4)
{{< expand-wrapper >}} {{% expand "View example input and output" %}}
| _time | *id | lat | lon | *s2_cell_id |
|---|---|---|---|---|
| 2021-01-03T02:00:00Z | a213b | 39.08433 | -75.9978 | 89bc |
| _time | *id | lat | lon | *s2_cell_id |
|---|---|---|---|---|
| 2021-01-01T00:00:00Z | a213b | 41.01433 | -70.7515 | 89e4 |
| _time | *id | lat | lon | *s2_cell_id |
|---|---|---|---|---|
| 2021-01-02T01:00:00Z | a213b | 40.9228 | -73.3527 | 89ec |
| *foo | _time | id | lat | lon | s2_cell_id |
|---|---|---|---|---|---|
| 89b | 2021-01-03T02:00:00Z | a213b | 39.08433 | -75.9978 | 89bc |
| *foo | _time | id | lat | lon | s2_cell_id |
|---|---|---|---|---|---|
| 89f | 2021-01-01T00:00:00Z | a213b | 41.01433 | -70.7515 | 89e4 |
| 89f | 2021-01-02T01:00:00Z | a213b | 40.9228 | -73.3527 | 89ec |
{{% /expand %}} {{< /expand-wrapper >}}