[postgis-users] Cascaded Union Aggregate function
Dane Springmeyer
blake at hailmail.net
Sun Oct 5 09:58:40 PDT 2008
Regina,
Great, my query now works with your amended upgis function posting.
So, here are my timing outputs for the dataset on watersheds I just
sent a reference to:
select count(*) from npsa;
--3162 records
select st_cascadeunion(the_geom) from npsa group by wholedrain;
-- 48.39 sec
select upgis_cascadeunion(the_geom) from npsa group by wholedrain;
-- 50.91 sec
select ST_Union(the_geom) from npsa group by wholedrain;
-- 2.49 minutes
select ST_Collect(the_geom) from npsa group by wholedrain;
-- 10.73 seconds
Next chance I get I'll take a look at the actual results.
Thanks!
Dane
On Oct 5, 2008, at 5:53 AM, Paragon Corporation wrote:
> Dane,
> Dane,
> Oops sorry about that . I just posted a revised version. Can you
> try that
> out? Thanks.
>
> Also can you send me a sample of your data off list. I think the
> issue was
> I was experimenting with array_append vs. st_geom_accum and I had
> gotten the
> error you described below, but then was unable to replicate it again.
>
> It could be the detoasting affect of st_geom_accum that Mark had
> described
> was the difference between the two.
>
> Thanks,
> Regina
>
> -----Original Message-----
> From: postgis-users-bounces at postgis.refractions.net
> [mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of
> Dane
> Springmeyer
> Sent: Sunday, October 05, 2008 1:47 AM
> To: PostGIS Users Discussion
> Subject: Re: [postgis-users] Cascaded Union Aggregate function
>
> Hi Regina,
>
> Thank you so much for the wiki posting. I've been using your code
> from your
> august 12th email with great success, if not joy. What an amazing
> speed
> improvement, especially for such a critical function. This was your
> exact
> email of code I have working:
> http://postgis.refractions.net/pipermail/postgis-devel/2008-August/003412.ht
> ml
>
> I've just downloaded the new code off the wiki, but I'm getting an
> error of
> 'Unknown Geometry Type: 0'. I'll paste the whole error below in case
> you
> have an idea what might be going on. I'm running mac 10.5 with these
> details:
>
> postgis_version
> ---------------------------------------
> 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
> (1 row)
>
> --------------------------------------------------------------
> PostgreSQL 8.3.3 on i386-apple-darwin9.4.0, compiled by GCC
>
>
> Cheers,
>
> Dane
>
>
> -- full error:
> test=# select upgis_cascadeunion(the_geom) from npsa group by
> wholedrain;
>
> ERROR: Unknown geometry type: 0
> CONTEXT: SQL function "upgis_dump_collect_garray" statement 1
> SQL statement "SELECT
> upgis_dump_collect_garray( array_append(ARRAY(SELECT $1 [s] As geom
> FROM
> generate_series(1, $2 ) As s WHERE NOT (s = ANY( $3 )) ),
> st_unite_garray(ARRAY(SELECT $1 [s] As geom FROM generate_series(1,
> $2 ) As s WHERE s = ANY( $3 ) ) ) ) )"
> PL/pgSQL function "st_collect_unite_garray" line 29 at assignment SQL
> statement "SELECT upgis_unitecascade_garray(ARRAY(SELECT
> st_collect_unite_garray( $1 [i:least(i + $2 - 1, $3 )]) As geom FROM
> generate_series(1, $3 , $2 ) As i), $4 + 1, $5 , false)"
> PL/pgSQL function "upgis_unitecascade_garray" line 48 at assignment
> SQL statement "SELECT
> upgis_dump_collect_garray( array_append(ARRAY(SELECT $1 [ $2 [s]]
> As geom
> FROM generate_series(1, array_upper( $2 ,1)) As s ),
> upgis_unitecascade_garray(ARRAY(SELECT $1 [s] As geom FROM
> generate_series(1, $3 ) As s WHERE NOT (s = ANY( $2 )) ), $4 + 1,
> $5 , true) ) )"
> PL/pgSQL function "upgis_unitecascade_garray" line 33 at assignment
> SQL
> function "upgis_unitecascade_garray_sort" statement 1
>
>
> On Oct 4, 2008, at 4:53 PM, Paragon Corporation wrote:
>
>>
>> Oops sorry about that.
>>
>> Just realized I had ugly spaces in the link. I've changed it. Use
>> this one
>>
>> http://postgis.refractions.net/support/wiki/index.php?
>> upgis_cascadeuni
>> on
>>
>> -----Original Message-----
>> From: postgis-users-bounces at postgis.refractions.net
>> [mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of
>> Paragon Corporation
>> Sent: Saturday, October 04, 2008 7:44 PM
>> To: 'PostGIS Users Discussion'
>> Subject: [postgis-users] Cascaded Union Aggregate function
>>
>> For those people who have unions to do that are slow, feel free to
>> try
>> out this aggregate union function.
>>
>> I haven't tested it enough for it to make it into 1.3.4, but have
>> included a link to the source code in the wiki. It should work just
>> fine on PostGIS versions 1.2.2 and above.
>>
>> http://postgis.refractions.net/support/wiki/index.php?PL%2FPGSQL
>> %20Pse
>> udo%20 Cascade%20Union%20Aggregate%20Function
>>
>> Let me know if you run into any problems with it. It has worked well
>> for the samples I have used it on.
>>
>> Thanks,
>> Regina
>>
>>
>> _______________________________________________
>> 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
>
> _______________________________________________
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20081005/9b1281a3/attachment.html>
More information about the postgis-users
mailing list