Q&A ClusterModeller | Kernel Density Analysis with Points

Liz Sanderson
Liz Sanderson
  • Updated


I'm trying to render a hot spot map of crimes. Using other GIS systems, I can easily do a Kernel Density type analysis which will create contours of dense areas. I'd like to do this in FME, but am struggling! Any thoughts, please?



FME does have a DensityCalculator transformer, but this is a little different. Basically, we need to calculate the density (or clustering) by taking each point and assessing the density of similar points within the same area.

With the ClusterModeller custom transformer, we can have outputs of raster, 3D surface, DEM Points, or Draped Points. You could write this to many formats, including ones capable of true 3D visualization. From the DEM Points you can make contours with the ContourGenerator which allows you to customize the tolerance and the interval. 

To keep in mind is that the ClusterModeller does not prove whether the clusters are statistically significant, where they could be random patterns. The tolerance calculation is convenient when you are not sure about your data; however, this is simply a method that seems to produce an acceptable result and experiment with values to get better results.



The method is very simple. Find the number of neighbors within a given radius for each point, and use that value as the Z in a DEM/Surface Model. The trick is to find the best radius to give a good result. This transformer offers the user the ability to enter that value, or will calculate one automatically based on the average distance between the input points.

Example input:



Example output:


Additional Resources


Data Attribution

The data used here originates from data made available by the City of Vancouver, British Columbia. It contains information licensed under the Open Government License - Vancouver.

Was this article helpful?



Please sign in to leave a comment.