Geospatial · Areas and surfaces
Spatial Interpolate
Estimates a smooth surface from measured sample points, on a hexagon or square grid. For example, a pollution surface from sensors.
Also known as: IDW, heat surface
How it works
Pick the Sample point geometry and the numeric Value column to interpolate. Grid is H3 hexes (lon/lat) by default with an H3 resolution of 7; Square grid (CRS units) needs a Cell size in the data's units. Each cell takes the inverse-distance-weighted average of the nearest samples: Power (IDW exponent) is 2, Neighbours per cell is 12, and Search radius limits how far a sample may be (metres on lon/lat data, CRS units otherwise; 0 means no limit). The output is one row per cell across the samples' extent, with the cell geometry, the estimated value in the Output column (interpolated by default) and sample_count. A cell with no sample in range gets NULL.
Inputs and outputs
Inputs
data— Table
Outputs
data— Table
Settings
The Attributes panel of Spatial Interpolate, as in the app: the controls work, but nothing runs — there is no data behind it.
The same settings, as the Assistant writes them
{
geometryColumn: string
valueColumn: string
grid: "h3"|"square"
resolution: number (0-15, h3 only)
cellSize: number (CRS units, square only)
power: number (IDW exponent, default 2)
maxNeighbors: number (1-100)
searchRadius: number (metres on a lon/lat CRS, else CRS units; 0 = no limit)
outputColumn: string
}one row per cell covering the samples' extent: the cell geometry, the inverse-distance-weighted value, and sample_count. Cells with no sample in range are NULL
Example
You have 40 air-quality sensors and want a surface for the whole city. Set Value column to pm25, keep H3 hexes at resolution 8, set Search radius to 3000 so a cell far from every sensor stays NULL rather than guessing, and name the Output column pm25_est. A Map node then draws the hexagons as a choropleth.