---
title: geo.shapeData() function
description: geo.shapeData() renames existing latitude and longitude fields to lat and lon and adds an s2_cell_id tag.
url: https://docs.influxdata.com/flux/v0/stdlib/experimental/geo/shapedata/
estimated_tokens: 1015
product: Flux
version: v0
---

# geo.shapeData() function

-   Flux 0.63.0+
-   View InfluxDB support

`geo.shapeData()` is experimental and [subject to change at any time](/flux/v0/stdlib/experimental/#experimental-packages-are-subject-to-change).

`geo.shapeData()` renames existing latitude and longitude fields to **lat** and **lon** and adds an **s2\_cell\_id** tag.

Use `geo.shapeData()` to ensure geotemporal data meets the requirements of the Geo package:

1. Rename existing latitude and longitude fields to `lat` and `lon`.
2. Pivot fields into columns based on `_time`.
3. Generate `s2_cell_id` tags using `lat` and `lon` values and a specified [S2 cell level](https://s2geometry.io/resources/s2cell_statistics.html).

##### Function type signature

```js
(
    <-tables: stream[{C with _field: string}],
    latField: A,
    level: int,
    lonField: B,
) => stream[{D with s2_cell_id: string, lon: float, lat: float}] where A: Equatable, B: Equatable
```

For more information, see [Function type signatures](/flux/v0/function-type-signatures/).

## Parameters

### latField

(Required) Name of the existing field that contains the latitude value in decimal degrees (WGS 84).

Field is renamed to `lat`.

### lonField

(Required) Name of the existing field that contains the longitude value in decimal degrees (WGS 84).

Field is renamed to `lon`.

### level

(Required) [S2 cell level](https://s2geometry.io/resources/s2cell_statistics.html) to use when generating the S2 cell ID token.

### tables

Input data. Default is piped-forward data (`<-`).

#### Related

-   [Work with geo-temporal data](/influxdb/v2/query-data/flux/geo/)

[geotemporal](/flux/v0/tags/geotemporal/)
