按区域过滤地理时序数据
使用 geo.filterRows
函数 按地理区域过滤地理时序数据
以下示例使用示例鸟类迁徙数据,并查询埃及开罗 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 网格单元
过滤区域
返回的点
严格过滤
非严格过滤
此页内容是否对您有帮助?
感谢您的反馈!