ST_Rescale — Neuabtastung eines Rasters, indem nur die Skala (oder Pixelgröße) angepasst wird. Die neuen Pixelwerte werden mit den Algorithmen NearestNeighbor (englische oder amerikanische Schreibweise), Bilinear, Cubic, CubicSpline, Lanczos, Max oder Min resampling berechnet. Die Voreinstellung ist NearestNeighbor.
raster ST_Rescale(
raster rast, double precision scalexy, text algorithm=NearestNeighbor, double precision maxerr=0.125)
;
raster ST_Rescale(
raster rast, double precision scalex, double precision scaley, text algorithm=NearestNeighbor, double precision maxerr=0.125)
;
Sie können ein Raster neu abtasten, indem Sie nur den Maßstab (oder die Pixelgröße) anpassen. Die neuen Pixelwerte werden mit einem der folgenden Resampling-Algorithmen berechnet:
NearestNeighbor (englische oder amerikanische Schreibweise)
Biliniear
Kubisch
CubicSpline
Lanczos
Max
Min
Die Standardeinstellung ist NearestNeighbor, die am schnellsten ist, aber die schlechteste Interpolation ergibt.
scalex
und scaley
bestimmen die neue Pixelgröße. Der Wert von "scaley" muss oftmals negativ sein, um einen ordnungsgemäß ausgerichteten Raster zu erhalten.
Wenn "scalex" oder "scaley" teilerfremd zur Breite oder Höhe des Rasters sind, dann wird der Zielraster auf die Ausdehnung des Ausgangsrasters erweitert. Um die exakte Ausdehnung des Ausgangsrasters sicher zu erhalten, siehe ST_Resize
maxerr
ist der Schwellenwert bei der Näherungstransformation des Skalierungsalgorithmus (in Pixeleinheiten). Ein Standardwert von 0.125 wird verwendet, wenn kein maxerr
angegeben wird. Dies ist dergleiche Wert, welcher von gdalwarp verwendet wird. Wenn der Wert auf Null gesetzt ist, wird keine Annährung ausgeführt.
Siehe GDAL Warp resampling methods für mehr Details. |
ST_Rescale unterscheidet sich von ST_SetScale darin, dass ST_SetScale den Raster nicht skaliert um mit der Ausdehnung des Ausgangsrasters übereinzustimmen. ST_SetScale ändert lediglich die Metadaten (oder die Georeferenz) des Rasters, um eine ursprünglich falsch angegebene Skalierung zu korrigieren. ST_Rescale berechnet die Breite und Höhe eines Rasters so, dass er mit der geographischen Ausdehnung des Ausgangsraster übereinstimmt. ST_SetScale verändert weder die Breite noch die Höhe des Rasters. |
Verfügbarkeit: 2.0.0 benötigt GDAL 1.6.1+
Verbessert: 3.4.0 Max und Min Resampling Optionen hinzugefügt
Änderung: 2.1.0 Funktioniert jetzt auch mit Raster ohne SRID
Ein einfaches Beispiel, das die Pixelgröße eines Raster von 0.001 Grad auf 0.0015 Grad ändert.
-- the original raster pixel size SELECT ST_PixelWidth(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0)) width width ---------- 0.001 -- the rescaled raster raster pixel size SELECT ST_PixelWidth(ST_Rescale(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015)) width width ---------- 0.0015
ST_Resize, ST_Resample, ST_SetScale, ST_ScaleX, ST_ScaleY, ST_Transform