Name

ST_SetZ — Gibt eine Geometrie mit denselben X/Y-Koordinaten wie die Eingabegeometrie zurück, wobei die Werte aus dem Raster mit dem gewünschten Resample-Algorithmus in die Z-Dimension kopiert werden.

Synopsis

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

Beschreibung

Gibt eine Geometrie mit denselben X/Y-Koordinaten wie die Eingabegeometrie zurück, wobei die Werte aus dem Raster mit dem gewünschten Resample-Algorithmus in die Z-Dimensionen kopiert werden.

Der Parameter resample kann auf "nearest" gesetzt werden, um die Werte aus der Zelle zu kopieren, in die jeder Scheitelpunkt fällt, oder auf "bilinear", um bilineare Interpolation zu verwenden, um einen Wert zu berechnen, der auch die benachbarten Zellen berücksichtigt.

Verfügbarkeit: 3.2.0

Beispiele

--
-- 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)

Siehe auch

ST_Value, ST_SetM