文档文档

按区域过滤地理时序数据

使用 geo.filterRows 函数 按地理区域过滤地理时序数据

  1. 定义地理区域
  2. 使用严格或非严格过滤

以下示例使用示例鸟类迁徙数据,并查询埃及开罗 200 公里范围内的数据点

import "experimental/geo"

sampleGeoData
    |> geo.filterRows(region: {lat: 30.04, lon: 31.23, radius: 200.0}, strict: true)

定义地理区域

Geo 包中的许多函数都基于地理区域过滤数据。使用以下形状之一定义地理区域

box

通过指定包含以下属性的记录来定义盒状区域

  • minLat: 最小纬度,以十进制度数 (WGS 84) 表示 (浮点数)
  • maxLat: 最大纬度,以十进制度数 (WGS 84) 表示 (浮点数)
  • minLon: 最小经度,以十进制度数 (WGS 84) 表示 (浮点数)
  • maxLon: 最大经度,以十进制度数 (WGS 84) 表示 (浮点数)
盒状区域示例
{
    minLat: 40.51757813,
    maxLat: 40.86914063,
    minLon: -73.65234375,
    maxLon: -72.94921875,
}

circle

通过指定包含以下属性的记录来定义圆形区域

  • lat: 圆心纬度,以十进制度数 (WGS 84) 表示 (浮点数)
  • lon: 圆心经度,以十进制度数 (WGS 84) 表示 (浮点数)
  • radius: 圆的半径,以公里 (km) 为单位 (浮点数)
圆形区域示例
{
    lat: 40.69335938,
    lon: -73.30078125,
    radius: 20.0,
}

polygon

使用包含多边形中每个点的纬度和经度的记录来定义多边形区域

  • points: 定义自定义多边形的点 (记录数组)

    使用包含以下属性的记录定义每个点

    - **lat**: latitude in decimal degrees (WGS 84) _(Float)_
    - **lon**: longitude in decimal degrees (WGS 84) _(Float)_
    
多边形区域示例
{
    points: [
        {lat: 40.671659, lon: -73.936631},
        {lat: 40.706543, lon: -73.749177},
        {lat: 40.791333, lon: -73.880327},
    ]
}

严格和非严格过滤

在大多数情况下,指定的地理区域与 S2 网格单元并非完美对齐。

  • 非严格过滤 返回可能在指定区域之外,但在部分被该区域覆盖的 S2 网格单元内的点。
  • 严格过滤 仅返回指定区域内的点。

严格过滤的性能较低,但比非严格过滤更准确。

S2 网格单元
过滤区域
返回的点

严格过滤

非严格过滤


此页内容是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像目前一样使用它,而无需对您的代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时的数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建于 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看