Package org.geotools.process.vector
Class HeatmapSurface
Object
HeatmapSurface
Computes a Heat Map surface from a set of irregular data points, each containing a positive height value. The nature
of the surface is determined by a kernelRadius value, which indicates how far out each data points "spreads".
The Heatmap surface is computed as a grid (raster) of values representing the surface. For stability, the compute grid is expanded by the kernel radius on all four sides. This avoids "edge effects" from distorting the surface within the requested envelope.
The values in the output surface are normalized to lie in the range [0, 1].
- Author:
- Martin Davis, OpenGeo
-
Constructor Summary
ConstructorsConstructorDescriptionHeatmapSurface
(int kernelRadius, Envelope srcEnv, int xSize, int ySize) Creates a new heatmap surface. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addPoint
(double x, double y, double value) Adds a new data point to the surface.float[][]
Computes a grid representing the heatmap surface.
-
Constructor Details
-
HeatmapSurface
Creates a new heatmap surface.- Parameters:
kernelRadius
- the kernel radius, in grid unitssrcEnv
- the envelope defining the data spacexSize
- the width of the output gridySize
- the height of the output grid
-
-
Method Details
-
addPoint
public void addPoint(double x, double y, double value) Adds a new data point to the surface. Data points can be coincident.- Parameters:
x
- the X ordinate of the pointy
- the Y ordinate of the pointvalue
- the data value of the point
-
computeSurface
public float[][] computeSurface()Computes a grid representing the heatmap surface. The grid is structured as an XY matrix, with (0,0) being the bottom left corner of the data space- Returns:
- a grid representing the surface
-