Name

ST_Resample — Resample a raster using a specified resampling algorithm, new dimensions, an arbitrary grid corner and a set of raster georeferencing attributes defined or borrowed from another raster. New pixel values are computed using the NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor.

Synopsis

raster ST_Resample(raster rast, integer width, integer height, integer srid=same_as_rast, double precision gridx=NULL, double precision gridy=NULL, double precision skewx=0, double precision skewy=0, text algorithm=NearestNeighbour, double precision maxerr=0.125);

raster ST_Resample(raster rast, integer srid=NULL, double precision scalex=0, double precision scaley=0, double precision gridx=NULL, double precision gridy=NULL, double precision skewx=0, double precision skewy=0, text algorithm=NearestNeighbor, double precision maxerr=0.125);

raster ST_Resample(raster rast, raster ref, text algorithm=NearestNeighbour, double precision maxerr=0.125, boolean usescale=true);

raster ST_Resample(raster rast, raster ref, boolean usescale, text algorithm=NearestNeighbour, double precision maxerr=0.125);

Description

Resample a raster using a specified resampling algorithm, new dimensions (width & height), a grid corner (gridx & gridy) and a set of raster georeferencing attributes (scalex, scaley, skewx & skewy) defined or borrowed from another raster.

New pixel values are computed using the NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor which is the fastest but produce the worst interpolation.

A maxerror percent of 0.125 is used if no maxerr is specified.

[Note]

Only works if raster is in a known spatial reference system (SRID).

[Note]

Refer to: GDAL Warp resampling methods for more details.

Availability: 2.0.0 Requires GDAL 1.6.1+

Examples

SELECT ST_Width(orig) As orig_width, ST_Width(reduce_100) As new_width
 FROM (
 SELECT rast As orig, ST_Resample(rast,100,100) As reduce_100   
  FROM aerials.boston 
	WHERE ST_Intersects(rast,
	  ST_Transform(
	    ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, 4326),26986) ) 
	        limit 1 ) As foo;
 orig_width | new_width
------------+-------------
        200 |         100				

See Also

ST_Rescale, ST_Transform