[postgis-users] Calculate variance of a multipoint

Stephen Woodbridge woodbri at swoodbridge.com
Fri May 27 19:33:15 PDT 2011


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




More information about the postgis-users mailing list