On 05/29/2012 10:56 AM, Paolo Cavallini wrote:
> Il 29/05/2012 19:03, Bborie Park ha scritto:
>> Read it again.  The very first variant listed on that page has the
>> ST_AsRaster(geom geometry, rast raster, ...)
> 
> Yes, that's what I was trying, without success. Let's say I have two adjacent
> polygons, and I want a raster where the cells have the value of one of the 
> fields of
> the the polygons (say, the id). Moreover, I want the resulting raster to be 
> aligned
> to an existing raster (this is a very common task in GIS, easily done in 
> GRASS, GDAL,
> SAGA, etc.). I do not see an option in:
> 
> ST_AsRaster(geometry geom, raster ref, text pixeltype, double precision 
> value=1,
> double precision nodataval=0, boolean touched=false);
> 
> to write in each cell the value of the raster. Moreover, a simple
> 
>  CREATE TABLE rasterized as
>    select b.rid, ST_AsRaster(a.geom, b.rast, '4BUI') as rast
>    from province a, hdr b;
> 
> results in (N geometries * N tiles) records, whereas I needed (N tiles) 
> records, and
> for each tile a raster with a different value for each province.
> 
> All the best, and thanks.

WITH ref AS (
        SELECT ST_MakeEmptyRaster(1, 1, 0, 0, 1, -1, 0, 0, 0) AS rast
)
SELECT
        ST_AsRaster(g.geom, ref.rast, '32BUI', g.id, 0)
FROM mygeomtable g
CROSS JOIN ref

That would convert your geometries into rasters, all of which have the
same alignment with pixel values set to the particular geometry's id.
So, for 20 input geometries, there would be 20 output rasters.

-bborie

-- 
Bborie Park
Programmer
Center for Vectorborne Diseases
UC Davis
530-752-8380
bkp...@ucdavis.edu
_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to