Skip to content

Spatial density and hotspot analysis

Heatmap Analysis Services

Density, distribution and spatial heatmap analysis, built on defensible parameters rather than a default radius.

Kernel density surface · 400 m bandwidth · normalised per residentLowHigh

Overview

A heatmap is a set of choices, not a picture

Bandwidth, cell size, colour classification and normalisation each change what a heatmap says. The same points can produce one broad hotspot or five distinct ones depending on the radius, and both maps look equally convincing. That is why an unlabelled heatmap is a decoration, not evidence.

We state every parameter, test the result against alternatives, and normalise by the right denominator. Raw counts almost always just rediscover where the population is; density per resident, per household or per competing venue is what actually informs a decision.

Where the question is “is this hotspot real?”, we go beyond visual density to statistical hotspot detection, which separates genuine clustering from the clumping you would expect by chance alone.

Sample output

The same data, mapped

A static preview rather than an embedded map SDK, so the page stays fast. Interactive maps are built on request as part of a visualization project.

Kernel density surface · 400 m bandwidth · normalised per residentLowHigh

Scope

Methods we use

The method is chosen to match the question and the density of the input data.

  • Kernel density estimation

    A smooth continuous surface, with bandwidth selected and justified rather than left at a default.

  • Hexagonal binning

    Equal-area aggregation that avoids the directional bias of square grids.

  • Grid aggregation

    Fixed-cell counts when results must join to an existing raster or reporting grid.

  • Getis-Ord Gi* hotspots

    Statistically significant hot and cold spots with confidence levels, not just visual intensity.

  • Local Moran's I clustering

    Identifies high-high, low-low and outlier locations for pattern explanation.

  • Weighted density

    Points weighted by revenue, capacity, review count or any attribute that matters more than presence.

  • Normalised density

    Values per capita, per household or per square kilometre, so hotspots are not just population artefacts.

  • Temporal heatmaps

    Density by hour, day or season, to separate persistent hotspots from transient ones.

  • Difference surfaces

    Change between two periods or two categories, mapped directly instead of compared by eye.

  • Accessibility-weighted density

    Density computed along the road network rather than in straight-line space.

Output formats

Delivered the way your stack expects

GeoTIFF raster
The density surface itself, at a stated cell size and CRS, for use in any GIS.
GeoJSON / Shapefile
Hexbin or grid polygons carrying the computed values as attributes.
Static maps
Print-ready PNG, SVG and PDF with legend, scale bar and parameter note.
Interactive map
A browser-based map with layer toggles and value inspection on hover.
Analysis report
Method, parameters, results and the limits of what the surface can support.

Sample dataset

What you actually receive

Sample project data. Note how Northgate looks busy on raw counts but is statistically unremarkable once density and population are accounted for.

Sample project · Hotspot output by district · normalised per 10k residents
DistrictPointsDensity per km²Per 10k residentsGi* z-scoreClassification
Central41862.418.26.41Hot spot · 99%
Harbourside23641.821.74.88Hot spot · 99%
Northgate18422.19.41.62Not significant
Westfield9711.66.1-0.84Not significant
Eastbank636.23.8-2.71Cold spot · 95%

Delivered work

This service on a real project

Sample projects built on this service, with the numbers they produced and what each one settled.

Heatmap AnalysisGIS AnalysisMap Visualization

Urban Heatmap Data Analysis

Turning a scattered point dataset into a normalised density surface that separates real activity clusters from population artefacts.

Input records
48,600
Records corrected
9.1%
Hotspots confirmed
2 of 5

What it showed

  • Central had by far the largest raw count and by far the largest visual hotspot, but ranked third on activity per resident. The original map had been describing population distribution, not activity.
  • Harbourside, which barely registered on the unnormalised map, was the strongest genuine hotspot at 99% confidence. It has a small residential population and a high concentration of activity, precisely the pattern raw-count heatmaps hide.
Read the full case study
POI DataLocation IntelligenceHeatmap Analysis

Restaurant Location Intelligence

Mapping a city's food and drink offer, measuring competitive density, and producing a ranked shortlist of neighbourhoods for a new venue.

Venues collected
3,180
Coverage recovered
+6%
Areas shortlisted
42 → 6

What it showed

  • Market Square, the area the operator had assumed was strongest because it felt busy, had the highest competitive density in the city and the highest incumbent ratings. Entering there would have meant competing with well-established venues for demand that was already fully served.
  • Riverside North had a third of the competitive density with over half the reachable demand of Market Square. It scored highest overall despite feeling quieter on a weekend visit, because much of its demand is workplace-based and shows up on weekdays.
Read the full case study

How it works

Five steps, every project

  1. Step 01

    Tell us what data you need

    Share the points you have, or ask us to collect them, and the decision the map has to support.

  2. Step 02

    We define the data scope

    We agree the study area, the denominator for normalisation and the method to use.

  3. Step 03

    We collect and process the data

    Points are cleaned, projected to an equal-area system and weighted if required.

  4. Step 04

    We validate the dataset

    Parameters are tested for sensitivity, and hotspots are checked for statistical significance.

  5. Step 05

    We deliver the final result

    Surfaces, maps and a short report stating parameters, findings and limitations.

Quoted on the area covered, the number of periods and categories, and whether the hotspots need statistical testing. Tell us the question you are trying to settle and you get a fixed price first.

FAQ

Questions we get asked

What data do I need to provide?

At minimum, a list of locations with coordinates or addresses. Attributes such as revenue, visits, capacity or review counts let us weight the surface, which usually makes the result far more useful. If you have no point data, we can collect it first.

How do you choose the bandwidth or cell size?

From the scale of the decision and the density of the data, then tested. We produce the surface at several parameter values and check whether the conclusion holds. If it does not, the map is not strong enough evidence and we say so.

Can you make a heatmap from addresses without coordinates?

Yes. We geocode the addresses first and record a match quality per record. Poorly matched records are excluded or flagged, because a heatmap built on centroid fallbacks produces convincing hotspots that do not exist.

What is the difference between a heatmap and hotspot analysis?

A heatmap shows where values are high. Hotspot analysis tests whether that concentration is greater than would occur by chance, and returns a significance level. If you need to defend a decision, ask for the second.

Can you analyse changes over time?

Yes. We build surfaces for each period on identical parameters and map the difference directly, which is far more reliable than comparing two separately classified maps side by side.

What do I actually receive?

The raster or binned polygon layer with values as attributes, print-ready maps, optionally an interactive map, and a written note on method, parameters and limitations so anyone reviewing the work can check it.

Next step

Have a specific data requirement?

Tell us the geography, the fields and the cadence you need for heatmap analysis. You get a scoped plan, a sample and a fixed price before any work starts.