ST_AsRaster
Name
ST_AsRaster — Converts a PostGIS geometry to a PostGIS raster.
Synopsis
    
     raster
     
      ST_AsRaster
     
     (
    
    geometry
    
     geom
    
    , raster
    
     ref
    
    , text
    
     pixeltype
    
    , double precision
    
     value=1
    
    , double precision
    
     nodataval=0
    
    , boolean
    
     touched=false
    
    
     )
    
    ;
   
    
     raster
     
      ST_AsRaster
     
     (
    
    geometry
    
     geom
    
    , raster
    
     ref
    
    , text[]
    
     pixeltype=ARRAY['8BUI']
    
    , double precision[]
    
     value=ARRAY[1]
    
    , double precision[]
    
     nodataval=ARRAY[0]
    
    , boolean
    
     touched=false
    
    
     )
    
    ;
   
    
     raster
     
      ST_AsRaster
     
     (
    
    geometry
    
     geom
    
    , double precision
    
     scalex
    
    , double precision
    
     scaley
    
    , double precision
    
     gridx
    
    , double precision
    
     gridy
    
    , text
    
     pixeltype
    
    , double precision
    
     value=1
    
    , double precision
    
     nodataval=0
    
    , double precision
    
     skewx=0
    
    , double precision
    
     skewy=0
    
    , boolean
    
     touched=false
    
    
     )
    
    ;
   
    
     raster
     
      ST_AsRaster
     
     (
    
    geometry
    
     geom
    
    , double precision
    
     scalex
    
    , double precision
    
     scaley
    
    , double precision
    
     gridx=NULL
    
    , double precision
    
     gridy=NULL
    
    , text[]
    
     pixeltype=ARRAY['8BUI']
    
    , double precision[]
    
     value=ARRAY[1]
    
    , double precision[]
    
     nodataval=ARRAY[0]
    
    , double precision
    
     skewx=0
    
    , double precision
    
     skewy=0
    
    , boolean
    
     touched=false
    
    
     )
    
    ;
   
    
     raster
     
      ST_AsRaster
     
     (
    
    geometry
    
     geom
    
    , double precision
    
     scalex
    
    , double precision
    
     scaley
    
    , text
    
     pixeltype
    
    , double precision
    
     value=1
    
    , double precision
    
     nodataval=0
    
    , double precision
    
     upperleftx=NULL
    
    , double precision
    
     upperlefty=NULL
    
    , double precision
    
     skewx=0
    
    , double precision
    
     skewy=0
    
    , boolean
    
     touched=false
    
    
     )
    
    ;
   
    
     raster
     
      ST_AsRaster
     
     (
    
    geometry
    
     geom
    
    , double precision
    
     scalex
    
    , double precision
    
     scaley
    
    , text[]
    
     pixeltype
    
    , double precision[]
    
     value=ARRAY[1]
    
    , double precision[]
    
     nodataval=ARRAY[0]
    
    , double precision
    
     upperleftx=NULL
    
    , double precision
    
     upperlefty=NULL
    
    , double precision
    
     skewx=0
    
    , double precision
    
     skewy=0
    
    , boolean
    
     touched=false
    
    
     )
    
    ;
   
    
     raster
     
      ST_AsRaster
     
     (
    
    geometry
    
     geom
    
    , integer
    
     width
    
    , integer
    
     height
    
    , double precision
    
     gridx
    
    , double precision
    
     gridy
    
    , text
    
     pixeltype
    
    , double precision
    
     value=1
    
    , double precision
    
     nodataval=0
    
    , double precision
    
     skewx=0
    
    , double precision
    
     skewy=0
    
    , boolean
    
     touched=false
    
    
     )
    
    ;
   
    
     raster
     
      ST_AsRaster
     
     (
    
    geometry
    
     geom
    
    , integer
    
     width
    
    , integer
    
     height
    
    , double precision
    
     gridx=NULL
    
    , double precision
    
     gridy=NULL
    
    , text[]
    
     pixeltype=ARRAY['8BUI']
    
    , double precision[]
    
     value=ARRAY[1]
    
    , double precision[]
    
     nodataval=ARRAY[0]
    
    , double precision
    
     skewx=0
    
    , double precision
    
     skewy=0
    
    , boolean
    
     touched=false
    
    
     )
    
    ;
   
    
     raster
     
      ST_AsRaster
     
     (
    
    geometry
    
     geom
    
    , integer
    
     width
    
    , integer
    
     height
    
    , text
    
     pixeltype
    
    , double precision
    
     value=1
    
    , double precision
    
     nodataval=0
    
    , double precision
    
     upperleftx=NULL
    
    , double precision
    
     upperlefty=NULL
    
    , double precision
    
     skewx=0
    
    , double precision
    
     skewy=0
    
    , boolean
    
     touched=false
    
    
     )
    
    ;
   
    
     raster
     
      ST_AsRaster
     
     (
    
    geometry
    
     geom
    
    , integer
    
     width
    
    , integer
    
     height
    
    , text[]
    
     pixeltype
    
    , double precision[]
    
     value=ARRAY[1]
    
    , double precision[]
    
     nodataval=ARRAY[0]
    
    , double precision
    
     upperleftx=NULL
    
    , double precision
    
     upperlefty=NULL
    
    , double precision
    
     skewx=0
    
    , double precision
    
     skewy=0
    
    , boolean
    
     touched=false
    
    
     )
    
    ;
   
Description
Converts a PostGIS geometry to a PostGIS raster. The many variants offers three groups of possibilities for setting the alignment and pixelsize of the resulting raster.
   The first group, composed of the two first variants, produce a raster having the same alignment (
   
    scalex
   
   ,
   
    scaley
   
   ,
   
    gridx
   
   and
   
    gridy
   
   ), pixel type and nodata value as the provided reference raster. You generally pass this reference raster by joining the table containing the geometry with the table containing the reference raster.
  
   The second group, composed of four variants, let you set the dimensions of the raster by providing the parameters of a pixel size (
   
    scalex
   
   &
   
    scaley
   
   and
   
    skewx
   
   &
   
    skewy
   
   ). The
   
    width
   
   &
   
    height
   
   of the resulting raster will be adjusted to fit the extent of the geometry. In most cases, you must cast integer
   
    scalex
   
   &
   
    scaley
   
   arguments to double precision so that PostgreSQL choose the right variant.
  
   The third group, composed of four variants, let you fix the dimensions of the raster by providing the dimensions of the raster (
   
    width
   
   &
   
    height
   
   ). The parameters of the pixel size (
   
    scalex
   
   &
   
    scaley
   
   and
   
    skewx
   
   &
   
    skewy
   
   ) of the resulting raster will be adjusted to fit the extent of the geometry.
  
   The two first variants of each of those two last groups let you specify the alignment with an arbitrary corner of the alignment grid (
   
    gridx
   
   &
   
    gridy
   
   ) and the two last variants takes the upper left corner (
   
    upperleftx
   
   &
   
    upperlefty
   
   ).
  
   Each group of variant allows producing a one band raster or a multiple bands raster. To produce a multiple bands raster, you must provide an array of pixel types (
   
    pixeltype[]
   
   ), an array of initial values (
   
    value
   
   ) and an array of nodata values (
   
    nodataval
   
   ). If not provided pixeltyped defaults to 8BUI, values to 1 and nodataval to 0.
  
The output raster will be in the same spatial reference as the source geometry. The only exception is for variants with a reference raster. In this case the resulting raster will get the same SRID as the reference raster.
   The optional
   
    touched
   
   parameter defaults to false and maps to the GDAL ALL_TOUCHED rasterization option, which determines if pixels touched by lines or polygons will be burned. Not just those on the line render path, or whose center point is within the polygon.
  
This is particularly useful for rendering jpegs and pngs of geometries directly from the database when using in combination with ST_AsPNG and other ST_AsGDALRaster family of functions.
Availability: 2.0.0 - requires GDAL >= 1.6.0.
       
      | 
     |
| 
       Not yet capable of rendering complex geometry types such as curves, TINS, and PolyhedralSurfaces, but should be able too once GDAL can.  | 
    
Examples: Output geometries as PNG files
    black circle
-- this will output a black circle taking up 150 x 150 pixels -- SELECT ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10),150, 150));
    example from buffer rendered with just PostGIS
-- the bands map to RGB bands - the value (118,154,118) - teal  --
SELECT ST_AsPNG(
    ST_AsRaster(
        ST_Buffer(
            ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'),
            200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0]));
 See Also
ST_BandPixelType , ST_Buffer , ST_GDALDrivers , ST_AsGDALRaster , ST_AsPNG , ST_AsJPEG , ST_SRID