[postgis-users] Calculate variance of a multipoint

Aren Cambre aren at arencambre.com
Sat May 28 06:09:37 PDT 2011


Thank you!

On Fri, May 27, 2011 at 9:33 PM, Stephen Woodbridge <woodbri at swoodbridge.com
> wrote:

> Aren,
>
> Your purposed approach sounds reasonable to me. You can do it all in one
> query like:
>
> select c.gid, sum(c.dist*c.dist)/count(*) as variance
>  from (
>    select b.gid, b.cent, st_distance(b.geom, b.cent) as dist
>      from (
>        select a.gid, (st_dump(a.the_geom)).geom as geom,
> centroid(a.the_geom) as cent
>          from (
>            select 99 as gid, 'MULTIPOINT(1 2,2 3,3 4,4 5)'::geometry as
> the_geom
>            union all
>            select 88 as gid, 'MULTIPOINT(1 2,2 3,3 4,4 5,3 5,9
> 9)'::geometry as the_geom
>            ) as a
>        ) as b
>    ) as c
>  group by gid order by variance desc;
>
> You should be able to replace the select...union all select ... with your
> table of multipoints.
>
> -Steve W
>
>
> On 5/27/2011 6:19 PM, Aren Cambre wrote:
>
>> Did anyone have thoughts on this? :-)
>>
>> Aren
>>
>> On Wed, May 4, 2011 at 2:12 PM, Aren Cambre <aren at arencambre.com
>> <mailto:aren at arencambre.com>> wrote:
>>
>>    The more I think about it, is this a job for R? I know I need to
>>    start using R at some point, just haven't begun yet.
>>
>>    Aren
>>
>>
>>    On Wed, May 4, 2011 at 1:42 PM, Aren Cambre <aren at arencambre.com
>>    <mailto:aren at arencambre.com>> wrote:
>>
>>        Suppose you have a geometry type with a multipoint. How would
>>        you calculate the variance of the points in that multipoint?
>>
>>        I looked through the PostGIS 1.5 function reference and am not
>>        coming up with any easy way.
>>
>>        A hard way seems to be using st_centroid(multipoint) to find the
>>        multipoint's  center. From there, I can calculate the distance
>>        of each point from its center, and use that towards calculating
>>        the variance (each distance is squared, all squared distances
>>        are added together, then divide by number of points).
>>
>>        I guess my ultimate need is to measure relative dispersion of
>>        multipoints. The multipoints that have the most dispersion are
>>        suspect, but I need a way of identifying which ones are like this.
>>
>>        Aren
>>
>>
>>
>>
>>
>> _______________________________________________
>> 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/20110528/afc3ec8d/attachment.html>


More information about the postgis-users mailing list