> For the complete documentation index, see [llms.txt](https://developers.felt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.felt.com/felt-style-language/types-of-visualizations/h3.md).

# H3

H3 visualization is a way to aggregate point data into a grid of H3 cells.

H3 visualizations are defined using `"type": "h3"` . They generally share the same properties and behaviors as [color range visualizations for polygons](/felt-style-language/types-of-visualizations/numeric-visualizations-color-and-size.md). Properties of specific relevance to H3 are:

| Field name         | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `aggregation`      | The aggregation method that will be used on points within each cell. Supported values are `count` (default), `sum`, `min`, `max`, and `mean` .                                                                                                                                                                                                                                                                                                                        |
| `binMode`          | `fixed` (default), `low`, `medium`, `high`, or `auto`. `fixed` keeps the cell resolution constant at all zooms; the other modes pick a resolution from the current zoom, where `low` produces larger hexagons and `high` smaller ones (`auto` behaves like `medium`).                                                                                                                                                                                                 |
| `baseBinLevel`     | Required. If `binMode` is `fixed`, this is the [H3 cell resolution](https://h3geo.org/docs/core-library/restable/) that the map will use. H3 cells vary from resolution 0 (largest) to resolution 15 (smallest). In the zoom-adaptive modes, this is the reference resolution used for calculating class breaks — you will get best results choosing a resolution that matches the `fixed` resolution you would choose for the most commonly-viewed zoom of your map. |
| `numericAttribute` | The numeric column to aggregate. Required unless `aggregation` is `count` , in which case the column choice is irrelevant.                                                                                                                                                                                                                                                                                                                                            |

This is an example of an H3 visualization

<figure><img src="/files/GBYIs7jN2MHXVpOpSYnk" alt=""><figcaption></figcaption></figure>

defined with the following style

```json
{
  "config": {
    "steps": {"type": "quantiles", "count": 5},
    "aggregation": "sum",
    "binMode": "fixed",
    "baseBinLevel": 3,
    "numericAttribute": "capacity_mw"
  },
  "paint": {"color": "@riverine"},
  "type": "h3",
  "version": "2.3.1",
  "label": {},
  "legend": {"displayName": "auto"}
}
```

`aggregation: "count"` doesn't need a `numericAttribute` — it counts the points in each cell:

```json
{
  "version": "2.3.1",
  "type": "h3",
  "config": {
    "aggregation": "count",
    "baseBinLevel": 4,
    "binMode": "medium",
    "steps": {"type": "continuous"}
  },
  "paint": {"color": "@galaxy", "opacity": 0.85, "strokeColor": "auto", "strokeWidth": 1},
  "legend": {"displayName": "auto"}
}
```

### Aggregation popups

H3 cells display **aggregated** values, not raw feature attributes. Their popups reference special attribute names — `"felt:cluster_size"` for the feature count, and `"felt:sum:column"`, `"felt:mean:column"`, `"felt:min:column"`, `"felt:max:column"` for aggregates. If no `popup` is provided, Felt auto-generates sensible stats from the aggregation type. See [the popup block](/felt-style-language/style-definition-blocks/the-popup-block.md#h3-aggregation-attributes).

```json
{
  "version": "2.3.1",
  "type": "h3",
  "config": {
    "numericAttribute": "revenue",
    "aggregation": "sum",
    "baseBinLevel": 5,
    "binMode": "medium",
    "steps": {"type": "jenks", "count": 5}
  },
  "paint": {"color": "@copper", "opacity": 0.85, "strokeColor": "auto", "strokeWidth": 1, "isClickable": true},
  "popup": {
    "titleAttribute": "felt:sum:revenue",
    "keyAttributes": ["felt:cluster_size", "felt:mean:revenue", "felt:min:revenue", "felt:max:revenue"]
  },
  "attributes": {"revenue": {"displayName": "Revenue ($)", "format": {"thousandSeparated": true, "mantissa": 0}}},
  "legend": {"displayName": "auto"}
}
```

{% hint style="info" %}
H3 cells are rendered as polygons, so `size` has no effect on them — control cell size with `baseBinLevel` (H3 resolution) and `binMode` (how that resolution adapts to zoom). The `attributes` block renames the **source column**, so `"revenue"` makes a popup entry read "Sum of Revenue ($)".
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers.felt.com/felt-style-language/types-of-visualizations/h3.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
