[postgis-users] PostGIS heatmap generation

Paul Norman penorman at mac.com
Mon Mar 17 15:41:03 PDT 2014

I'm looking at heatmap generation with PostGIS and was wondering if anyone
had any suggestions.

To give some specifics to the problem

- I have a dataset of 100 million to 500 million points 
  across the US

- Each point has a date associated with it

- The data covers the US

- The data is to be loaded in from text files

- Everything has to be able to run from the command line 
  without user interaction

- The data will be viewed on a state level down to a local 
  level through a webmap

I want to make heatmaps for questions like "points in the 
last week" or "points in the last month"

I've looked at a few common suggestions for heatmaps

Leaflet.heatmap: Millions of points is out of the question

QGIS heatmap plugin: As far as I can tell, this requires user 
interaction and is out of the question.

R: I don't know R, but I think it'd suffer the same problems as 
Mapnik does, below.

Mapnik (https://www.mapbox.com/blog/colorize-alpha-image-filter/): 
I got this working with some test data (OSM nodes table) and it 
works up to a point. When I start requesting areas with hundreds 
of thousands of points it starts to bog down. I'm not sure if this 
exclusively on the query side or also on the rendering side.

One potential problem is that at low zooms I'd be returning millions 
of rows from PostgreSQL.

Has anyone got any suggestions for how to efficiently render heatmaps 
from datasets this large?  I was thinking of two tables, one with the 
raw data for high zooms and one pre-aggregated into space and time 
bins (e.g. requests in a given box in a given time range) for use 
in lower zooms. The aggregation operation would obviously be slow, but
I'd only have to do it once. 

More information about the postgis-users mailing list