This question has been converted to Community Wiki and wiki locked
because it is an example of a question that seeks a list of answers
and appears to be popular enough to protect it from closure. It
should be treated as a special case and should not be viewed as the
type of question that is encouraged on this, or any Stack Exchange
site, but if you wish to contribute more content to it then feel free
to do so by editing this answer.
There are at least two different kinds of heat maps:
- Heatmaps representing concentration of points, and
- Heatmaps representing distributions of attribute values
Every method has advantages and problems, I'm afraid going into detail is far beyond this Q&A.
I'll try to list some methods and functions for QGIS and GRASS.
Concentration of points
If you are tracking movement of wildlife, vehicles, etc. it can be useful to assess regions with high concentration of location messages.
Tools: e.g. QGIS Heatmap plugin (available in versions > 1.7.x) or GRASS v.neighbors or v.kernel
Distributions of attribute values
Here, we're basically talking more or less about interpolation methods. Methods include:
IDW
Depending on the implementation this can be global (using all available points in the set) or local (limited by number of points or maximum distance between points and interpolated position).
Tools: QGIS interpolation plugin (global), GRASS v.surf.idw or r.surf.idw (local)
Splines
Again, huge number of possible implementations. B-Splines are popular.
Tools: GRASS v.surf.bspline
Kriging
Statistical method with various sub-types.
Tools: GRASS v.krige (thanks to om_henners for the tip) or using R.
Best Answer
Coincidentally, I have been doing a lot of reading about this subject over the last couple of days. For the actual generation of heat maps there are a large number of factors to consider.
The most valuable resources for me were from Laura Rosenshein at Esri. She sums up a lot of the material in this one blog post.
To answer your question, I would recommend watching the videos linked on that page and then running through the tutorial - that gave me sufficient knowledge on how to use the Spatial Statistics tools in ArcMap to create a multi scale-level heat map for my web application.
If you are short on time, this post gives a good summary on considerations to think about when creating a heat map.