ST_Tile
Prev | 12.3. Raster Constructors | Next

## Name

ST_Tile — Returns a set of rasters resulting from the split of the input raster based upon the desired dimensions of the output rasters.

## Synopsis

`setof raster ST_Tile(`raster rast, int[] nband, integer width, integer height, boolean padwithnodata=FALSE, double precision nodataval=NULL`)`;

`setof raster ST_Tile(`raster rast, integer nband, integer width, integer height, boolean padwithnodata=FALSE, double precision nodataval=NULL`)`;

`setof raster ST_Tile(`raster rast, integer width, integer height, boolean padwithnodata=FALSE, double precision nodataval=NULL`)`;

## Description

Returns a set of rasters resulting from the split of the input raster based upon the desired dimensions of the output rasters.

If `padwithnodata` = FALSE, edge tiles on the right and bottom sides of the raster may have different dimensions than the rest of the tiles. If `padwithnodata` = TRUE, all tiles will have the same dimensions with the possibility that edge tiles being padded with NODATA values. If raster band(s) do not have NODATA value(s) specified, one can be specified by setting `nodataval`.

If a specified band of the input raster is out-of-db, the corresponding band in the output rasters will also be out-of-db.

Availability: 2.1.0

## Examples

    WITH foo AS (
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, 0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, 0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL

        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, 0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, 0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, 0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL

        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, 0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, 0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, 0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast
    ), bar AS (
        SELECT ST_Union(rast) AS rast FROM foo
    ), baz AS (
        SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM bar
    )
    SELECT
        ST_DumpValues(rast)
    FROM baz;

                  st_dumpvalues
    ------------------------------------------
     (1,"{{1,1,1},{1,1,1},{1,1,1}}")
     (2,"{{10,10,10},{10,10,10},{10,10,10}}")
     (1,"{{2,2,2},{2,2,2},{2,2,2}}")
     (2,"{{20,20,20},{20,20,20},{20,20,20}}")
     (1,"{{3,3,3},{3,3,3},{3,3,3}}")
     (2,"{{30,30,30},{30,30,30},{30,30,30}}")
     (1,"{{4,4,4},{4,4,4},{4,4,4}}")
     (2,"{{40,40,40},{40,40,40},{40,40,40}}")
     (1,"{{5,5,5},{5,5,5},{5,5,5}}")
     (2,"{{50,50,50},{50,50,50},{50,50,50}}")
     (1,"{{6,6,6},{6,6,6},{6,6,6}}")
     (2,"{{60,60,60},{60,60,60},{60,60,60}}")
     (1,"{{7,7,7},{7,7,7},{7,7,7}}")
     (2,"{{70,70,70},{70,70,70},{70,70,70}}")
     (1,"{{8,8,8},{8,8,8},{8,8,8}}")
     (2,"{{80,80,80},{80,80,80},{80,80,80}}")
     (1,"{{9,9,9},{9,9,9},{9,9,9}}")
     (2,"{{90,90,90},{90,90,90},{90,90,90}}")
    (18 rows)

    WITH foo AS (
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, 0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, 0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL

        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, 0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, 0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, 0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL

        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, 0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, 0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, 0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast
    ), bar AS (
        SELECT ST_Union(rast) AS rast FROM foo
    ), baz AS (
        SELECT ST_Tile(rast, 3, 3, 2) AS rast FROM bar
    )
    SELECT
        ST_DumpValues(rast)
    FROM baz;

                  st_dumpvalues
    ------------------------------------------
     (1,"{{10,10,10},{10,10,10},{10,10,10}}")
     (1,"{{20,20,20},{20,20,20},{20,20,20}}")
     (1,"{{30,30,30},{30,30,30},{30,30,30}}")
     (1,"{{40,40,40},{40,40,40},{40,40,40}}")
     (1,"{{50,50,50},{50,50,50},{50,50,50}}")
     (1,"{{60,60,60},{60,60,60},{60,60,60}}")
     (1,"{{70,70,70},{70,70,70},{70,70,70}}")
     (1,"{{80,80,80},{80,80,80},{80,80,80}}")
     (1,"{{90,90,90},{90,90,90},{90,90,90}}")
    (9 rows)

## See Also

ST_Union, ST_Retile

Prev | Up | Next
ST_MakeEmptyRaster | Home | ST_Retile