Name

ST_SetM — 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 Dimension M kopiert werden.

Synopsis

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

Beschreibung

Liefert eine Geometrie mit denselben X/Y-Koordinaten wie die Eingabegeometrie und mit Werten aus dem Raster, die unter Verwendung des gewünschten Resample-Algorithmus in die M-Dimensionen kopiert wurden.

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_SetM(
    rast,
    band => 1,
    geom => 'SRID=4326;LINESTRING(1.0 1.9, 1.0 0.2)'::geometry,
    resample => 'bilinear'
))
FROM test_raster

            st_astext
----------------------------------
 LINESTRING M (1 1.9 38,1 0.2 27)

Siehe auch

ST_Value, ST_SetZ