content/shared/influxdb-v2/query-data/flux/geo/group-geo-data.md
Use the geo.groupByArea() to group geo-temporal data by area and geo.asTracks()
to group data into tracks or routes.
{{% note %}}
For example results, use the bird migration sample data
to populate the sampleGeoData variable in the queries below.
{{% /note %}}
Use the geo.groupByArea() function
to group geo-temporal data points by geographic area.
Areas are determined by S2 grid cells
newColumn parameter.level parameter.The following example uses the sample bird migration data to query data points within 200km of Cairo, Egypt and group them by geographic area:
import "experimental/geo"
sampleGeoData
|> geo.filterRows(region: {lat: 30.04, lon: 31.23, radius: 200.0})
|> geo.groupByArea(newColumn: "geoArea", level: 5)
Use geo.asTracks() function
to group data points into tracks or routes and order them by time or other columns.
Data must contain a unique identifier for each track. For example: id or tid.
groupBy parameter.sortBy parameter. Default is ["_time"].The following example uses the sample bird migration data to query data points within 200km of Cairo, Egypt and group them into routes unique to each bird:
import "experimental/geo"
sampleGeoData
|> geo.filterRows(region: {lat: 30.04, lon: 31.23, radius: 200.0})
|> geo.asTracks(groupBy: ["id"], orderBy: ["_time"])