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.