sure. Did you mean ST_GeomfromText or show it as text? SELECT ST_GeomfromText ((gvxy).geom), ((gvxy).x - 1) * rwidth + (gvxy).y gridid FROM (SELECT ST_PixelAsPolygons(rast) gvxy, ST_Width(rast) rwidth FROM (SELECT ST_AsRaster(ST_Extent(way_geom)::geometry, 0.000036, 0.000036) rast FROM buffers where osm_id = 94695311 ) foo1 ) foo2;
ERROR: parse error - invalid geometry HINT: "010300000001000000050000005" <-- parse error at position 27 within geometry ********** Error ********** ERROR: parse error - invalid geometry SQL state: XX000 Hint: "010300000001000000050000005" <-- parse error at position 27 within geometry On Thu, Mar 22, 2012 at 2:53 PM, Pierre Racine <pierre.rac...@sbf.ulaval.ca>wrote: > I guess this is related to a GDAL problem where you cannot create a raster > using ST_AsRaster with pixel size smaller than 1. Was this fixed Bborie? > > Ed could you reduce the list of geometries passed to ST_Extent to one and > write it as ST_GeomfromText so we can debug this more easily? > > Pierre > > > -----Original Message----- > > From: manohar.k...@gmail.com [mailto:manohar.k...@gmail.com] On Behalf > > Of Ed Linde > > Sent: Thursday, March 22, 2012 9:45 AM > > To: Pierre Racine > > Cc: PostGIS Users Discussion > > Subject: Re: [postgis-users] ST_Buffer + grid problem > > > > Hi Pierre, > > So I am trying to have a 4meter by 4meter cell and I converted 4meters to > > degrees, because I think ST_Extent will compute it in degrees as my > geometry is > > in srid 4326. But I get this GDAL error which I have no clue what it > means. Any > > ideas how I can fix it? Also I noticed that if I set it to 1.0, 1.0 I get > > 21 rows but the gridid isn't continuous either (which is weird). > > > > CREATE TABLE vectorgrid AS > > SELECT (gvxy).geom, ((gvxy).x - 1) * rwidth + (gvxy).y gridid FROM > (SELECT > > ST_PixelAsPolygons(rast) gvxy, ST_Width(rast) rwidth > > FROM (SELECT ST_AsRaster(ST_Extent(way_geom)::geometry, > 0.000036, > > 0.000036) rast > > FROM buffers > > ) foo1 > > ) foo2; > > > > ERROR: rt_raster_gdal_rasterize: Unable to add band to GDALDataset > > > > ********** Error ********** > > > > ERROR: rt_raster_gdal_rasterize: Unable to add band to GDALDataset SQL > state: > > XX000 > > > > > > > > > > On Thu, Mar 22, 2012 at 2:13 PM, Pierre Racine < > pierre.rac...@sbf.ulaval.ca> > > wrote: > > > > > > You can control how the grid is aligned by using more ST_AsRaster > > parameters. See: > > > > http://postgis.refractions.net/documentation/manual- > > svn/RT_ST_AsRaster.html > > > > If you want it to align on your point, just align it on your > points... > > > > Pierre > > > > > > > -----Original Message----- > > > From: manohar.k...@gmail.com [mailto:manohar.k...@gmail.com] > > On Behalf > > > Of Ed Linde > > > Sent: Thursday, March 22, 2012 9:05 AM > > > To: PostGIS Users Discussion > > > Cc: Pierre Racine > > > Subject: Re: [postgis-users] ST_Buffer + grid problem > > > > > > Hi Pierre, > > > Thanks for the grid idea last night. I have a problem though, I > want to > > have a 4m > > > by 4m cell sized grid over my buffer geometries which are in > SRID = > > 4326. And > > > then I have another data set of 2D points which are also in SRID > > 4326... > > > wondering how I can figure out from just a given (lat,long) > which cell > > ID in the > > > buffer grid it would belong to? I am thinking that I might run > into > > "alignment > > > issues" because shouldn't the extent of the grid be exactly the > same > > on the 2D > > > point cloud as well, so that the grid cell IDs will match? > Unless I am > > missing > > > something here? > > > > > > Cheers, > > > Ed > > > > > > > > > > > > On Wed, Mar 21, 2012 at 8:46 PM, Pierre Racine > > <pierre.rac...@sbf.ulaval.ca> > > > wrote: > > > > > > > > > > I am not sure if this is possible, but I have computed > (using > > ST_Buffer) > > > a sort of > > > > buffer around several LINESTRINGs. Now I would like to > lay some > > sort > > > of grid of > > > > say 1m^2 cell size on top of this collection of > geometries and > > then > > > compute the > > > > intersection... so in the end I would like to for > example, know > > that grid > > > cell ID = 1 > > > > intersects with buffers 1 and 10, grid cell 2 intersects > with buffers > > 7, 10 > > > etc.. > > > > > > > > Is there a simple way of doing this in postgis? Maybe > someone > > could > > > point me to > > > > some documentation of how I can generate such a grid in > postgis > > and > > > maybe > > > > then I can use just ST_Intersect once I have these two > > geometries? > > > > > > > > > With the raster type you can now easily create a vector > grid like > > this: > > > > > > CREATE TABLE vectorgrid AS > > > SELECT (gvxy).geom, ((gvxy).x - 1) * rwidth + (gvxy).y > gridid > > > FROM (SELECT ST_PixelAsPolygons(rast) gvxy, ST_Width(rast) > > rwidth > > > FROM (SELECT > ST_AsRaster(ST_Extent(geom)::geometry, > > 1.0, > > > 1.0) rast > > > FROM yourbuffertable > > > ) foo1 > > > ) foo2; > > > > > > Make sure a spatial index exist on both tables: > > > > > > CREATE INDEX yourbuffertable_geom_idx ON yourbuffertable > > USING > > > gist (geom); > > > CREATE INDEX vectorgrid _geom_idx ON vectorgrid USING gist > > > (geom); > > > > > > You can then perform a normal intersect query: > > > > > > CREATE TABLE interresult AS > > > SELECT b.bufferid, g.gridid, ST_Intersection(g.geom, > b.geom) > > geom > > > FROM vectorgrid g, yourbuffertable b > > > WHERE ST_Intersects(g.geom, b.geom); > > > > > > Pierre > > > _______________________________________________ > > > postgis-users mailing list > > > postgis-users@postgis.refractions.net > > > > http://postgis.refractions.net/mailman/listinfo/postgis-users > > > > > > > > > > > > > >
_______________________________________________ postgis-users mailing list postgis-users@postgis.refractions.net http://postgis.refractions.net/mailman/listinfo/postgis-users