[postgis-devel] Ordering of geometries in multipolygons, preparedgeometries
Obe, Regina
robe.dnd at cityofboston.gov
Tue Aug 5 11:58:28 PDT 2008
Kevin,
I remember that thread too and was thinking if that was along the lines of how the cascaded union thing would work. In the cascaded case I presume we would still want to order the geometries. I also wasn't quite clear how this is different from using
ST_MemCollect or ST_MemUnion - except it probably bunches more than 2 at a time.
Looking at the example I did where I was puzzled about why ordering made things slightly worse, I discovered I had the table clustered on the geometry so that's probably why - it was already naturally sorted so sorting again added a bit more processing - granted it seemed to add more than it should have. I'll have to revisit that one again.
Thanks,
Regina
-----Original Message-----
From: postgis-devel-bounces at postgis.refractions.net on behalf of Kevin Neufeld
Sent: Tue 8/5/2008 2:39 PM
To: PostGIS Development Discussion
Subject: Re: [postgis-devel] Ordering of geometries in multipolygons, preparedgeometries
Yes, specifying a custom ordering for collect often makes a huge
difference when performing certain operations, but PostGIS does not do
anything special internally with the ordering of a collection ... yet.
I recall back in Nov.2007 that Lee Keel was trying to union ~33000
polygons together that was taking over 5 hours to compute. (See the
"geomunion revisited..." thread in postgis-users).
Using a technique called cascaded union, Martin Davis and I were able to
drop the computation to half a minute by simply ordering the geometries
so that they were spatially close to eachother and then unioning small
collections at a time.
(http://postgis.refractions.net/pipermail/postgis-users/2007-November/017696.html)
Martin, what's the status of your CascadedUnion class in JTS? Do you
know if it ever made its way into GEOS yet?
Cheers,
-- Kevin
Obe, Regina wrote:
> Do PostGIS functions take advantage of the internal ordering of
> geometries in a Multi geometry?
>
> The reason I ask is that since ST_Collect just collects geometries in
> the order they are fed in, I'm wandering if its better to advice to
> first order the geometries before collecting.
>
> Something along the line of
>
> SELECT stusps,
> ST_Collect(f.the_geom) as singlegeom
> FROM (SELECT stusps, (ST_Dump(the_geom)).geom As the_geom
> FROM
> somestatetable
> ORDER BY stusps, somestatetable.the_geom ) As f
> GROUP BY stusps
>
> or maybe it doesn't make a difference.
>
> Also I've noticed when using ST_Union if I order the geometries first
> before passing them to ST_Union, it is anywhere from 20-30% faster. On
> some occasions though - its actually slower by about 10% (even when my
> ordering doesn't add any significant time). I'm still trying to figure
> this out.
>
> Case in point - runs in 359-360 ms
> SELECT ST_Union(the_geom)
> from (SELECT * from neighborhoods ORDER BY the_geom) as foo
>
> Vs - runs between 530 - 550 ms
> SELECT ST_Union(the_geom)
> from (SELECT * from neighborhoods ) as foo
>
> This is all running on - "POSTGIS="1.3.3" GEOS="3.0.0-CAPI-1.4.1"
> PROJ="Rel. 4.6.0, 21 Dec 2007" USE_STATS"
>
> Thanks,> Regina
>
>
> -----------------------------------------
> The substance of this message, including any attachments, may be
> confidential, legally privileged and/or exempt from disclosure
> pursuant to Massachusetts law. It is intended
> solely for the addressee. If you received this in error, please
> contact the sender and delete the material from any computer.
>
> _______________________________________________
> postgis-devel mailing list
> postgis-devel at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-devel
_______________________________________________
postgis-devel mailing list
postgis-devel at postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-devel/attachments/20080805/60140a51/attachment.html>
More information about the postgis-devel
mailing list