[postgis-users] geomunion revisited....

Josh Livni josh at umbrellaconsulting.com
Mon Nov 12 21:12:33 PST 2007


I think running buffer(bunch_of_geoms,0) rather than 
geomunion(bunch_of_geoms) might be faster.

That said, still seems it takes a bit long.  If it were me I'd try 
playing around by first creating a table with your results, eg:

'''create table simple_buffers as (
select simplify(buffer(simplify(the_geom, 5), 400), 150) as the_geom 
from table1
union
select simplify(buffer(simplify(the_geom, 5), 400), 150) as the_geom 
from table2); '''

then you could create a GiST index on the_geom of your new table, run 
vacuum analyze on it, and then try the geomunion and buffer to test.  
With 32k+ rows, depending on how much they overlap, that might help a 
little, or at least help potentially isolate the issue if it does take 
as long. 

Also I assume you've modified your postgres config away from the 
defaults to take advantage of more memory on your machine, etc.



  -Josh



Lee Keel wrote:
>
> Well the good news is that I finally got a configuration that wasn't 
> crying about memory nor getting the other error....
>
> However, I am back to a much more general question.  Have there been 
> any improvements to the geomunion() algorithm in versions after 
> 1.2.1?  I have gotten my buffered polygons for all my linestrings and 
> that part of the query returns 32,278 rows in about 22 seconds.  But 
> the geomunion of these rows has been running for over 5 hours.  My 
> problem is that a person can do this in ArcMap in about 20 minutes.
>
> So the query that takes 22 seconds is:
>
> select simplify(buffer(simplify(the_geom, 5), 400), 150) as the_geom 
> from table1
>
> union
>
> select simplify(buffer(simplify(the_geom, 5), 400), 150) as the_geom 
> from table2
>
>
> by adding geomunion() to the resulting geometry, it is still running:
>
> select geomunion(the_geom) as the_geom from (
>
> select simplify(buffer(simplify(the_geom, 5), 400), 150) as the_geom 
> from table1
>
> union
>
> select simplify(buffer(simplify(the_geom, 5), 400), 150) as the_geom 
> from table2) foo
>
>
> Yes, I know that I must be insane to asking for a single multipolygon 
> like this.  And I am sure it is outside the normal realm of 
> geomunion(), but it would sure be nice if it would work. :)
>
> Suggestions welcome.
>
> Thanks in advance,
>
> Lee Keel
>
> This email and any files transmitted with it are confidential and 
> intended solely for the use of the individual or entity to whom they 
> are addressed. If you have received this email in error please notify 
> the sender. This message contains confidential information and is 
> intended only for the individual named. If you are not the named 
> addressee you should not disseminate, distribute or copy this e-mail.
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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