content/enterprise_influxdb/v1/flux/guides/geo/_index.md
Use the Flux Geo package to filter geo-temporal data and group by geographic location or track.
{{% warn %}} The Geo package is experimental and subject to change at any time. By using it, you agree to the risks of experimental functions. {{% /warn %}}
To work with geo-temporal data:
Import the experimental/geo package.
import "experimental/geo"
Load geo-temporal data. See below for sample geo-temporal data.
Do one or more of the following:
{{< children >}}
Many of the examples in this section use a sampleGeoData variable that represents
a sample set of geo-temporal data.
The Bird Migration Sample Data
available on GitHub provides sample geo-temporal data that meets the
requirements of the Flux Geo package.
Use the experimental csv.from() function
to load the sample bird migration annotated CSV data from GitHub:
import `experimental/csv`
sampleGeoData = csv.from(
url: "https://github.com/influxdata/influxdb2-sample-data/blob/master/bird-migration-data/bird-migration.csv"
)
{{% note %}}
csv.from(url: ...) downloads sample data each time you execute the query (~1.3 MB).
If bandwidth is a concern, use the to() function
to write the data to a bucket, and then query the bucket with from().
{{% /note %}}
Use curl and the influx write command to write bird migration line protocol to InfluxDB.
Replace db/rp with your destination bucket:
curl https://raw.githubusercontent.com/influxdata/influxdb2-sample-data/master/bird-migration-data/bird-migration.line --output ./tmp-data
influx write -b db/rp @./tmp-data
rm -f ./tmp-data
Use Flux to query the bird migration data and assign it to the sampleGeoData variable:
sampleGeoData = from(bucket: "db/rp")
|> range(start: 2019-01-01T00:00:00Z, stop: 2019-12-31T23:59:59Z)
|> filter(fn: (r) => r._measurement == "migration")