Name

ST_SnapToGrid — Skaliert einen Raster durch Fangen an einem Führungsgitter. Neue Pixelwerte werden über NearestNeighbor, bilinear, kubisch, CubicSpline oder mit dem Lanczos-Filter errechnet. Die Standardeinstellung ist NearestNeighbor. 

Synopsis

raster ST_SnapToGrid(raster rast, double precision gridx, double precision gridy, text algorithm=NearestNeighbor, double precision maxerr=0.125, double precision scalex=DEFAULT 0, double precision scaley=DEFAULT 0);

raster ST_SnapToGrid(raster rast, double precision gridx, double precision gridy, double precision scalex, double precision scaley, text algorithm=NearestNeighbor, double precision maxerr=0.125);

raster ST_SnapToGrid(raster rast, double precision gridx, double precision gridy, double precision scalexy, text algorithm=NearestNeighbor, double precision maxerr=0.125);

Beschreibung

Skaliert einen Raster durch Fangen an einem Führungsgitter, welches durch einen beliebige Pixeleckpunkt (gridx & gridy) und eine optionale Pixelgröße (scalex & scaley) definiert ist. Neue Pixelwerte werden über NearestNeighbor, bilinear, kubisch, CubicSpline oder mit dem Lanczos-Filter errechnet. Die Standardeinstellung "NearestNeighbor" ist am schnellsten, ergibt aber die schlechteste Interpolation. 

gridx und gridy bestimmen einen beliebigen Pixeleckpunkt des neuen Gitters. Dies muss nicht unbedingt die obere linke Ecke des Zielrasters sein, darf aber nicht innerhalb oder am Rand der Ausdehnung des Zielrasters liegen.

Optional können Sie die Pixelgröße des neuen Gitters mit scalex und scaley festlegen.

Die Ausdehnung des Zielrasters erfasst die Ausdehnung des Ausgangsrasters.

Wenn maxerr nicht angegeben ist, wird der maximale Fehler mit 0.125 Prozent angesetzt.

[Note]

Siehe GDAL Warp resampling methods für mehr Details.

[Note]

Verwenden Sie bitte ST_Resample, wenn Sie eine bessere Kontrolle über die Gitterparameter benötigen.

Verfügbarkeit: 2.0.0 benötigt GDAL 1.6.1+

Änderung: 2.1.0 Funktioniert jetzt auch mit Raster ohne SRID

Beispiele

Ein einfaches Beispiel, bei dem ein Raster an einem sich geringfügig unterscheidenden Gitter gefangen wird.

-- the original raster upper left X
SELECT ST_UpperLeftX(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0));
-- result
0

-- the upper left of raster after snapping
SELECT ST_UpperLeftX(ST_SnapToGrid(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0002, 0.0002));

--result
-0.0008