geo.shapeData() function
The geo.shapeData()
function is experimental and subject to change at any time. By using this function, you accept the risks of experimental functions.
The geo.shapeData()
function renames existing latitude and longitude fields to lat and lon and adds an s2_cell_id tag. Use geo.shapeData()
to ensure geo-temporal data meets the requirements of the Geo package:
- Rename existing latitude and longitude fields to
lat
andlon
. - Pivot data into row-wise sets based on
_time
. - Generate
s2_cell_id
tags usinglat
andlon
values and a specified S2 cell level.
*Function type: Transformation*
import "experimental/geo"
geo.shapeData(
latField: "latitude",
lonField: "longitude",
level: 10
)
Parameters
latField
Name of the existing field that contains the latitude value in decimal degrees (WGS 84). Field is renamed to lat
.
*Data type: String*
lonField
Name of the existing field that contains the longitude value in decimal degrees (WGS 84). Field is renamed to lon
.
*Data type: String*
level
S2 cell level to use when generating the S2 cell ID token.
*Data type: Integer*
Examples
Shape data to meet the requirements of the Geo package
import "experimental/geo"
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "example-measurement")
|> geo.shapeData(
latField: "latitude",
lonField: "longitude",
level: 10
)
geo.shapeData input and output
Given the following input:
_time | _field | _value |
---|---|---|
0001 | latitude | 30.0 |
0002 | latitude | 30.5 |
0003 | latitude | 30.7 |
0004 | latitude | 31.1 |
• • • | • • • | • • • |
0001 | longitude | 20.0 |
0002 | longitude | 19.8 |
0003 | longitude | 19.2 |
0004 | longitude | 19.5 |
The following function would output:
|> geo.shapeData(
latField: "latitude",
lonField: "longitude",
level: 5
)
_time | lat | lon | s2_cell_id |
---|---|---|---|
0001 | 30.0 | 20.0 | 138c |
0002 | 30.5 | 19.8 | 1384 |
0003 | 30.7 | 19.2 | 139c |
0004 | 31.1 | 19.5 | 139c |