ST_SetZ
Name
ST_SetZ — Returns a geometry with the same X/Y coordinates as the input geometry, and values from the raster copied into the Z dimension using the requested resample algorithm.
Synopsis
    
     geometry
     
      ST_SetZ
     
     (
    
    raster
    
     rast
    
    , geometry
    
     geom
    
    , text
    
     resample=nearest
    
    , integer
    
     band=1
    
    
     )
    
    ;
   
Description
Returns a geometry with the same X/Y coordinates as the input geometry, and values from the raster copied into the Z dimensions using the requested resample algorithm.
   The
   
    resample
   
   parameter can be set to "nearest" to copy the values from the cell each vertex falls within, or "bilinear" to use
   
    bilinear interpolation
   
   to calculate a value that takes neighboring cells into account also.
  
Availability: 3.2.0
Examples
--
-- 2x2 test raster with values
--
-- 10 50
-- 40 20
--
WITH test_raster AS (
SELECT
ST_SetValues(
  ST_AddBand(
    ST_MakeEmptyRaster(width => 2, height => 2,
      upperleftx => 0, upperlefty => 2,
      scalex => 1.0, scaley => -1.0,
      skewx => 0, skewy => 0, srid => 4326),
    index => 1, pixeltype => '16BSI',
    initialvalue => 0,
    nodataval => -999),
  1,1,1,
  newvalueset =>ARRAY[ARRAY[10.0::float8, 50.0::float8], ARRAY[40.0::float8, 20.0::float8]]) AS rast
)
SELECT
ST_AsText(
  ST_SetZ(
    rast,
    band => 1,
    geom => 'SRID=4326;LINESTRING(1.0 1.9, 1.0 0.2)'::geometry,
    resample => 'bilinear'
))
FROM test_raster
            st_astext
----------------------------------
 LINESTRING Z (1 1.9 38,1 0.2 27)