Filter geo-temporal data by region
This page documents an earlier version of InfluxDB OSS. InfluxDB OSS v2 is the latest stable version. See the equivalent InfluxDB v2 documentation: Filter geo-temporal data by region.
Use the geo.filterRows
function
to filter geo-temporal data by geographic region:
The following example uses the sample bird migration data and queries data points within 200km of Cairo, Egypt:
import "experimental/geo"
sampleGeoData
|> geo.filterRows(
region: {lat: 30.04, lon: 31.23, radius: 200.0},
strict: true
)
Define a geographic region
Many functions in the Geo package filter data based on geographic region. Define a geographic region using one of the the following shapes:
box
Define a box-shaped region by specifying a record containing the following properties:
- minLat: minimum latitude in decimal degrees (WGS 84) (Float)
- maxLat: maximum latitude in decimal degrees (WGS 84) (Float)
- minLon: minimum longitude in decimal degrees (WGS 84) (Float)
- maxLon: maximum longitude in decimal degrees (WGS 84) (Float)
Example box-shaped region
{
minLat: 40.51757813,
maxLat: 40.86914063,
minLon: -73.65234375,
maxLon: -72.94921875
}
circle
Define a circular region by specifying a record containing the following properties:
- lat: latitude of the circle center in decimal degrees (WGS 84) (Float)
- lon: longitude of the circle center in decimal degrees (WGS 84) (Float)
- radius: radius of the circle in kilometers (km) (Float)
Example circular region
{
lat: 40.69335938,
lon: -73.30078125,
radius: 20.0
}
polygon
Define a polygonal region with a record containing the latitude and longitude for each point in the polygon:
points: points that define the custom polygon (Array of records)
Define each point with a record containing the following properties:
- **lat**: latitude in decimal degrees (WGS 84) _(Float)_ - **lon**: longitude in decimal degrees (WGS 84) _(Float)_
Example polygonal region
{
points: [
{lat: 40.671659, lon: -73.936631},
{lat: 40.706543, lon: -73.749177},
{lat: 40.791333, lon: -73.880327}
]
}
Strict and non-strict filtering
In most cases, the specified geographic region does not perfectly align with S2 grid cells.
- Non-strict filtering returns points that may be outside of the specified region but inside S2 grid cells partially covered by the region.
- Strict filtering returns only points inside the specified region.
Strict filtering is less performant, but more accurate than non-strict filtering.
S2 grid cell
Filter region
Returned point
Strict filtering
Non-strict filtering
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.