Namn

ST_SetZ — Returnerar en geometri med samma X/Y-koordinater som indatageometrin och värden från rastret kopierade till Z-dimensionen med den begärda omsamplingsalgoritmen.

Synopsis

geometry ST_SetZ(raster rast, geometry geom, text resample=nearest, integer band=1);

Beskrivning

Returnerar en geometri med samma X/Y-koordinater som indatageometrin och värden från rastret kopieras till Z-dimensionerna med hjälp av den begärda resample-algoritmen.

Parametern resample kan ställas in på "nearest" för att kopiera värdena från den cell som varje vertex faller inom, eller "bilinear" för att använda bilineär interpolation för att beräkna ett värde som även tar hänsyn till angränsande celler.

Tillgänglighet: 3.2.0

Exempel

Testraster på 2×2 med värdena 10 50 40 20.

Kod
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_SetZ(
    rast,
    band => 1,
    geom => 'SRID=4326;LINESTRING(1.0 1.9,1.0 0.2)'::geometry,
    resample => 'bilinear'
)
FROM test_raster
Utdata
LINESTRING Z (1 1.9 38,1 0.2 27)
Figur
Geometry figure for visual-rt-st-setz-01

Se även

ST_Value, ST_SetM