I have a point dataset in which each point has a value for a "rating" field. Points distributions don't follow any pattern and can overlap at identical locations. My requirement is to generate something like a heat map showing geographical variation of "rating", where high values are "hot" and low values are "cold".

My project already uses GeoServer's Web Processing Service and heatmap rendering transformation for a different requirement. Its existing heatmaps show the density of points that match given criteria, e.g. all points where "rating" < 1. This visualisation is meaningful because heat maps show density and only meaningful points are selected, however I can't use the same approach to show the variation across "rating". I can set the heat map process's weightAttr variable to "rating", but the resulting visualisation will not differentiate between areas with fewer points and areas with low "rating" values.

What I need is a transformation very similar to heat map but that instead of counting how many points are contained within each grid cell it calculates an average value across all values in each grid cell.

  1. Is such a transformation possible within GeoServer / WPS, and
  2. If not, is there documentation available on how to write and test my own rendering transformation?
  • Would Barnes surface suit you suite.opengeo.org/docs/latest/cartography/rt/barnes.html?
    – user30184
    Sep 18, 2018 at 18:29
  • @user30184 thanks, that looks like it might be perfect. I'll try to experiment with that later today
    – tomfumb
    Sep 18, 2018 at 18:39
  • @user30184 you should post this comment as an answer, so far it looks like the Barnes Surface will give the result I want. I'm finding the documentation a bit lacking, and in one instance wrong, but I'm getting there with some experimentation
    – tomfumb
    Sep 19, 2018 at 0:21

1 Answer 1


You are right that the heatmap rendering transformation creates a map that is visualizing density. It is useless for interpolating values of some continuous measure (temperature, air pressure etc.) between measured observations.

GeoServer does have also support for the Barnes interpolation that might be usable for your data and use case. You can find some documentation about that rendering transformation from http://suite.opengeo.org/docs/latest/cartography/rt/barnes.html.

This site is temporarily in read-only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .