[postgis-users] ST_Buffer + grid problem
Pierre Racine
Pierre.Racine at sbf.ulaval.ca
Thu Mar 22 14:17:30 PDT 2012
The raster was just a quick way to make a vector index grid. If you can't get ST_AsRaster to work by upgrading to GDAL 1.9 use ST_MakeEmptyRaster and then ST_MapalgebraExpr with the '([rast.x] - 1) * ' || ST_Width(rast)::text || ' + [rast.y]' expression.
Then convert each pixel to a table of polygons with (ST_PixelAsPolygons(rast)).geom & (ST_PixelAsPolygons(rast)).val
Then proceed with a normal geometry/geometry intersection.
We don't have a very fast way to do that in raster mode right now. The fastest approach with what we have would probably be to use ST_MapAlgebraFct and write a custom function that generate the values by doing a point/geometry instersection with the road buffer table.
Pierre
> -----Original Message-----
> From: postgis-users-bounces at postgis.refractions.net [mailto:postgis-users-
> bounces at postgis.refractions.net] On Behalf Of Ed Linde
> Sent: Thursday, March 22, 2012 5:03 PM
> To: PostGIS Users Discussion
> Subject: Re: [postgis-users] ST_Buffer + grid problem
>
> Oh and if you think there is a smarter way to do this, like maybe not making a
> raster like I am trying to etc then please let me know. The idea is that the road
> geometry is way way smaller than the point cloud which is in Terabytes, so I am
> making a grid index in some way around the road buffers, to speed up the
> computation.
>
>
> On Thu, Mar 22, 2012 at 10:01 PM, Ed Linde <edolinde at gmail.com> wrote:
>
>
> Hi Pierre,
> The idea is that I want to build this uniform grid on the road geometry
> and like you mention it has dimensions 1020x24798. I want to assign each cell a
> unique cell ID based on some formula like you had earlier ... x*width + y to get a
> 1D cell ID from (x,y). Hopefully I can do this on just (lat.long) of srid 4326
> directly. Then I need to
> intersect it to the buffers around the roads which I think should be easy
> once I have a raster, so this is just a normal intersect. Now I should know each
> cell and what road buffer it belongs to! Then on my second data set which is a
> massive point cloud with srid = 4326 as well, I just want to pass through it ONCE
> and compute in which cell it falls and hence associate a point with a road buffer.
> Hope that made sense :)
>
> Cheers,
> Ed
>
> On Thu, Mar 22, 2012 at 9:53 PM, Pierre Racine
> <Pierre.Racine at sbf.ulaval.ca> wrote:
>
>
> 1020x24798 so more than 25 000 000 polygons... or pixels...
>
> So if I understand well you want to assign some values to each
> of those cells based on a vector coverage (of how many polygons)?
>
>
> > -----Original Message-----
> > From: postgis-users-bounces at postgis.refractions.net
> [mailto:postgis-users-
> > bounces at postgis.refractions.net] On Behalf Of Ed Linde
>
> > Sent: Thursday, March 22, 2012 4:43 PM
> > To: PostGIS Users Discussion
> > Subject: Re: [postgis-users] ST_Buffer + grid problem
> >
>
> > So far no proper raster, because the following failed, but
> maybe the polygon
> > gives us an idea? This polygon is the extent of all the road
> geometries in
> > Denmark. Also I remember that when you did the raster at
> your end you said it
> > worked. Is 0.000036 degrees = 4m correct if I want to get a
> 4m by 4m cell sized
> > uniform raster grid?
> >
> > select ST_AsRaster(
> ST_GeomFromText('POLYGON((8.07734039737749
> > 54.4984986588244,8.07734039737749
> 57.7505109647578,15.1919565742587
> > 57.7505109647578,15.1919565742587
> 54.4984986588244,8.07734039737749
> > 54.4984986588244))'), 0.000036, 0.000036);
> >
> >
> > On Thu, Mar 22, 2012 at 9:39 PM, Pierre Racine
> <Pierre.Racine at sbf.ulaval.ca>
> > wrote:
> >
> >
> > > Thanks. The raster I need to visualise is a 4m by 4m grid
> on the entire
> > map of
> > > Denmark! :) So do you classify that as a large raster? If so
> is there a
> > way to see a
> > > portion of it or something?
> > > I just want to manually check for a few areas on the map
> that the
> > intersection
> > > indeed works as expected and things haven't gone awry
> thanks to
> > projection
> > > differences or that I had degrees instead of meters or
> some such
> > thing. Well, I
> > > still have to first test if this GDAL upgrade will fix things
> and if make
> > empty raster
> > > .. makes a difference.
> >
> >
> > That must be big but Danemark is a small country ;-) Only
> width and
> > height tell you if a raster is big.
> >
> > In the database, your grid is a set of rectangular geometry
> (how many?)
> > or just a big raster now (width & height)?
> >
> > _______________________________________________
> > postgis-users mailing list
> > postgis-users at postgis.refractions.net
> > http://postgis.refractions.net/mailman/listinfo/postgis-
> users
> >
> >
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
>
More information about the postgis-users
mailing list