H3 Cells
The H3 Cell type (H3CellDatasetDTO) provides aggregated parking statistics for each hexagonal area. It is the ideal format for visualizing parking density at the scale of a neighborhood or an entire city.
The H3 system
Our datasets use the H3 geospatial indexing system, developed by Uber. This system divides the Earth's surface into uniformly sized hexagons, enabling efficient spatial aggregation and consistent neighborhood analyses.
Why hexagons?
Unlike squares (traditional grids), hexagons offer:
- Uniform distance: every neighbor is equidistant from the center
- No directional distortion: consistent analysis in every direction
- Better circle approximation: ideal for areas of influence
Resolution used
All CartograFit datasets use resolution 9 of the H3 system.
| Resolution | Diameter | Area | Use |
|---|---|---|---|
| 8 | ~461 m | ~0.74 km² | Macro analysis |
| 9 | ~174 m | ~0.11 km² | CartograFit |
| 10 | ~66 m | ~0.015 km² | Micro analysis |
Our datasets are produced at resolution 9, but we can generate aggregations at other resolutions to suit your needs.
✉️Contact usProperties
Identification
| Property | Type | Description | Example |
|---|---|---|---|
id | string | Unique identifier (= h3_index) | 893b0c6a9a7ffff |
layer_type | string | Document type | h3_cell |
h3_index | string | H3 index (identical to id) | 893b0c6a9a7ffff |
h3_resolution | integer | H3 resolution (always 9) | 9 |
Geometry
| Property | Type | Description |
|---|---|---|
center | GeoPoint | Cell center { lat, lon } |
geometry | Polygon | Hexagonal outline (GeoJSON) |
area_km2 | number | Area in km² |
Properties grouped logically (parking statistics, road statistics, etc.) are exposed as flat group_field columns in the exported files (GeoJSON and GeoPackage). See Property format.
Parking statistics
| Property | Type | Description |
|---|---|---|
parking_stats_total_spots | integer | Total number of spots |
parking_stats_total_areas | integer | Number of parking areas |
parking_stats_density_per_km2 | number | Spot density per km² |
parking_stats_average_confidence | number | Average confidence score (0-1) |
parking_stats_coverage_percentage | number | Percentage covered by imagery (0-100) |
Breakdown by type
| Property | Type | Description |
|---|---|---|
parking_by_type_parallel | integer | Parallel parking spots |
parking_by_type_perpendicular | integer | Perpendicular parking spots |
parking_by_type_diagonal | integer | Angled (diagonal) parking spots |
parking_by_type_other | integer | Other configurations |
Road statistics
| Property | Type | Description |
|---|---|---|
road_stats_total_roads | integer | Number of roads |
road_stats_total_length_meters | number | Total road length |
road_stats_road_density_km_per_km2 | number | Road density (km/km²) |
road_stats_major_roads | integer | Primary/secondary roads |
road_stats_local_roads | integer | Local/service roads |
Accessibility
| Property | Type | Description |
|---|---|---|
accessibility_has_public_parking | boolean | Public parking present |
accessibility_has_paid_parking | boolean | Paid parking present |
accessibility_has_disabled_parking | boolean | Accessible parking spots present |
Quality
| Property | Type | Description |
|---|---|---|
avg_fit_score | number | Average confidence score (0-1) |
Road coverage
The visited_road_stats_* fields measure ground-level imagery coverage across the cell's road network:
| Property | Type | Description |
|---|---|---|
visited_road_stats_total_visited_meters | number | Meters of road covered by ground-level imagery |
visited_road_stats_total_non_visited_meters | number | Meters without coverage |
visited_road_stats_coverage_percent | number | Coverage percentage (0-100) |
These statistics are additive: summing the meters across all cells gives the overall coverage of the area.
Neighborhood
| Property | Type | Description |
|---|---|---|
neighbors | string | Serialized JSON array of adjacent H3 indices (e.g. "[\"893b0c6a9a3ffff\",\"893b0c6a9abffff\"]") |
Use cases
Density heatmap
Use parking_stats_density_per_km2 to create a color-based visualization:
| Density (spots/km²) | Interpretation |
|---|---|
| 0-50 | Sparsely equipped area |
| 50-150 | Moderately equipped |
| 150-300 | Well equipped |
| 300+ | Very well equipped area |
Comparative analysis
Compare H3 cells to identify:
- Over-equipped vs. under-equipped areas
- The geographic distribution of parking types
- Sectors with accessible or paid parking
Dashboards and KPIs
Aggregate cells to compute indicators at the scale of a territory:
- Total number of spots
- Average density
- Accessible-parking coverage
Recommended QGIS style
H3 cells are displayed in green with transparency by default:
- Download the QGIS style file: h3_cells.qml
- In QGIS: right-click the layer → Properties → Symbology
- Style → Load Style → select the
.qmlfile
GeoJSON example
{
"type": "Feature",
"properties": {
"id": "893b0c6a9a7ffff",
"layer_type": "h3_cell",
"h3_index": "893b0c6a9a7ffff",
"h3_resolution": 9,
"area_km2": 0.11,
"parking_stats_total_spots": 42,
"parking_stats_total_areas": 8,
"parking_stats_density_per_km2": 382,
"parking_stats_average_confidence": 0.82,
"parking_stats_coverage_percentage": 75,
"parking_by_type_parallel": 28,
"parking_by_type_perpendicular": 10,
"parking_by_type_diagonal": 4,
"parking_by_type_other": 0,
"road_stats_total_roads": 5,
"road_stats_total_length_meters": 450.5,
"road_stats_road_density_km_per_km2": 4.1,
"road_stats_major_roads": 1,
"road_stats_local_roads": 4,
"accessibility_has_public_parking": true,
"accessibility_has_paid_parking": false,
"accessibility_has_disabled_parking": true,
"visited_road_stats_total_visited_meters": 380.2,
"visited_road_stats_total_non_visited_meters": 70.3,
"visited_road_stats_coverage_percent": 84.4,
"avg_fit_score": 0.82,
"neighbors": "[\"893b0c6a9a3ffff\",\"893b0c6a9abffff\"]"
},
"geometry": {
"type": "Polygon",
"coordinates": [[[55.47, -21.12], [55.475, -21.115], ...]]
}
}
H3 resources
To learn more about the H3 system:
- h3geo.org - Official site with complete documentation
- H3 on GitHub - Source code and multi-language bindings
- Introduction to H3 - Overview article by Uber
- H3 for Python - Official Python library
- H3 Geo Viewer - Interactive visualization
Variants by source
H3 cells come in two variants depending on the imagery source:
Ground-level cells (h3_cells_street)
Aggregation of the elements identified from ground-level imagery. Includes the road coverage statistics (visited_road_stats) measuring what proportion of the road network was covered by ground-level imagery.
Satellite cells (h3_cells_satellite)
Aggregation of the elements identified from HD satellite imagery. The road statistics (road_stats) are identical (same OSM network), but the parking statistics come exclusively from satellite imagery.
| Property | Ground-level | Satellite |
|---|---|---|
parking_stats_* | Ground-level imagery | Satellite imagery |
road_stats_* | OSM network (identical) | OSM network (identical) |
visited_road_stats_* | Ground-level imagery coverage | Not applicable (0) |
avg_fit_score | Average ground-level score | Average satellite score |
Both variants share the same data format and the same H3 resolution 9 grid.