Steve,<br><br>I think you are onto something.<br><br>There are exactly 101 points in each of the polygons in the (small) sample set that I have.<br><br>When i get a little more time i'll plot these with 3.6 degree wedges and see if anything jumps out at me.
<br><br>My working theory is that there are a set of rules determining what happens at each control point. In some cases it's pretty simple as we have enough points to pick one that includes the 80% points but not the 20% points. In other cases it seems to be extrapolated from the neighboring points using some kind of fitted curve.
<br><br>Will<br><br><div><span class="gmail_quote">On 7/5/06, <b class="gmail_sendername">Stephen Woodbridge</b> <<a href="mailto:woodbri@swoodbridge.com">woodbri@swoodbridge.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Paul,<br><br>Would you not just connect the dots, like this.<br><br>1) determine the 80% points, say by distance or whatever<br>2) order the points by radial angle increasing and radius decreasing<br>3) use something like a window say plus/minus 1/2 degree and select the
<br>maximum radius in the window and add that point to the polygon<br>4) step 1/2 degree and repeat 3)<br>5) close the polygon<br><br>You probably need to have some special handling if there is a sudden<br>change in radius to make sure no points get clicked out of the polygon.
<br><br>Anyway I think this would be a good start to the algorithm.<br><br>-Steve<br><br>Paul Ramsey wrote:<br>> Indeed, nice to see that everything can be strung together. I am trying<br>> to visualize what a "squishyhull" function would have to do to work
<br>> though :) It's a not uncommon request... the calculated equivalent of<br>> someone squinting and drawing a line around a group of points.<br>><br>> P<br>><br>> Mike Leahy wrote:<br>>> Hey there,
<br>>><br>>> If you can determine the closest 80% of points by whatever criteria,<br>>> wouldn't you be able to use the convexhull() function? I just tried<br>>> this, and it looks okay to me:<br>
>><br>>> testdb=# select astext(convexhull('MULTIPOINT((0 1),(0 0),(1 0),(1<br>>> 1))'::geometry));<br>>> astext<br>>> --------------------------------<br>>> POLYGON((0 0,0 1,1 1,1 0,0 0))
<br>>> (1 row)<br>>><br>>> I did the same thing after creating a points table with the separate<br>>> in individual records with the same overall coordinates in the<br>>> multipoint example above, and it worked okay too:
<br>>><br>>> testdb=# select astext(convexhull(collect(p))) from testpoint;<br>>> astext<br>>> --------------------------------<br>>> POLYGON((0 0,0 1,1 1,1 0,0 0))<br>>> (1 row)
<br>>><br>>> It wouldn't be too hard to modify this to work using where condition<br>>> that filters out the records of interest...or maybe on a saved view.<br>>><br>>> The only problem is that it wouldn't produce a nice curvy polygon
<br>>> outline like in the sample William provided.<br>>><br>>> Regards,<br>>> Mike<br>>><br>>> Paul Ramsey wrote:<br>>>> So my guess is that you use drive-time to segment your population of
<br>>>> customers relative to the store into the "nearest X%" and then draw a<br>>>> "shape" around that cloud of points. And drawing the shape is the<br>>>> "fun" part.
<br>>>><br>>>> William Andersen wrote:<br>>>>> It appears to be the same as this functionality in Business Analyst<br>>>>><br>>>>> <a href="http://www.esri.com/software/arcgis/extensions/businessanalyst/about/customer-market.html">
http://www.esri.com/software/arcgis/extensions/businessanalyst/about/customer-market.html</a><br>>>>> <<a href="http://www.esri.com/software/arcgis/extensions/businessanalyst/about/customer-market.html">http://www.esri.com/software/arcgis/extensions/businessanalyst/about/customer-market.html
</a>><br>>>>><br>>>>><br>>>>> I thought this was done using some older version of Arcview, but i'm<br>>>>> not very familiar with esri's offerings.<br>>>>><br>
>>>> Will<br>>>>><br>>>>> On 7/5/06, *Paul Ramsey * <<a href="mailto:pramsey@refractions.net">pramsey@refractions.net</a><br>>>>> <mailto:<a href="mailto:pramsey@refractions.net">
pramsey@refractions.net</a>>> wrote:<br>>>>><br>>>>> This wouldn't be in vanilla arcview, was it in Network Analyst?<br>>>>> The top<br>>>>> 80% of points by drive distance might yield this shape. Finding
<br>>>>> the<br>>>>> points would be straightforward, and then the hull building<br>>>>> would be the<br>>>>> hand-waving part.<br>>>>><br>>>>> P
<br>>>>><br>>>>> William Andersen wrote:<br>>>>> > Paul, Steve,<br>>>>> ><br>>>>> > Thanks for the quick replies, unfortunately it's pretty hard
<br>>>>> to tell<br>>>>> > from those images if they match.<br>>>>> ><br>>>>> > I've done some more digging and it turns out that these<br>>>>> shapes were
<br>>>>> > created in Arcview 3.x. The notes I have say...<br>>>>> ><br>>>>> > > This approach selects a number of the outliers and joins the<br>>>>> extreme
<br>>>>> > points using elliptical arcs.<br>>>>> > > The arcs are all created in a direction moving out from the<br>>>>> store.<br>>>>> ><br>
>>>> > However, I dont see customer points at the discontinuities in<br>>>>> the<br>>>>> hulls,<br>>>>> > so it appears that the "extreme points" are perhaps
<br>>>>> interpolated.<br>>>>> ><br>>>>> ><br>>>>> > Will<br>>>>> ><br>>>>> > On 7/5/06, *Paul Ramsey* < <a href="mailto:pramsey@refractions.net">
pramsey@refractions.net</a><br>>>>> <mailto:<a href="mailto:pramsey@refractions.net">pramsey@refractions.net</a>><br>>>>> > <mailto:<a href="mailto:pramsey@refractions.net">pramsey@refractions.net
</a><br>>>>> <mailto:<a href="mailto:pramsey@refractions.net">pramsey@refractions.net</a>>>> wrote:<br>>>>> ><br>>>>> > William,<br>>>>> >
<br>>>>> > It doesn't look like this is a standard algorithm, but more<br>>>>> likely a<br>>>>> > particular empirical technique provided by the particular<br>
>>>> software you<br>>>>> > were using. So substituting some other technique might<br>>>>> yield a<br>>>>> > different shape entirely... do any of the techniques
<br>>>>> mentioned here<br>>>>> ><br>>>>> <<a href="http://www.geospatial-online.com/geospatialsolutions/article/articleDetail.jsp?id=1348">http://www.geospatial-online.com/geospatialsolutions/article/articleDetail.jsp?id=1348
</a><br>>>>><br>>>>> > <<br>>>>><br>>>>> <a href="http://www.geospatial-online.com/geospatialsolutions/article/articleDetail.jsp?id=1348">http://www.geospatial-online.com/geospatialsolutions/article/articleDetail.jsp?id=1348
</a>>><br>>>>><br>>>>> > sound like what was done to your data?<br>>>>> ><br>>>>> > Paul<br>>>>> ><br>>>>> > William Andersen wrote:
<br>>>>> > ><br>>>>> > > I'm fairly new to postgis, and working to automate a<br>>>>> number of<br>>>>> > > processes.<br>>>>> > >
<br>>>>> > > We are trying to compute market area polygons that look<br>>>>> like the<br>>>>> > > attached image. These were created by some older<br>
>>>> software.<br>>>>> > ><br>>>>> > ><br>>>>> > > They are referred to as Amoeba Hulls, and they contain<br>>>>> 80%
<br>>>>> of a<br>>>>> > > store's customers. However I can't find any solid<br>>>>> documentation that<br>>>>> > > would allow me to reproduce them.
<br>>>>> > ><br>>>>> > > Does anyone have any ideas how these shapes are<br>>>>> created or an<br>>>>> > > alternate name that I might be able to google?
<br>>>>> Additionally, we may<br>>>>> > > be in a position to finance the development of this<br>>>>> feature.<br>>>>> > ><br>>>>> > _______________________________________________
<br>>>>> > postgis-users mailing list<br>>>>> > <a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br>>>>> <mailto:
<a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a>><br>>>>> > <mailto:<a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net
</a><br>>>>> <mailto:<a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a>>><br>>>>> ><br>>>>> <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users">
http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>>>>> ><br>>>>> ><br>>>>> ><br>>>>> ><br>>>>><br>>>>> ------------------------------------------------------------------------
<br>>>>><br>>>>> ><br>>>>> > _______________________________________________<br>>>>> > postgis-users mailing list<br>>>>> > <a href="mailto:postgis-users@postgis.refractions.net">
postgis-users@postgis.refractions.net</a><br>>>>> <mailto:<a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a>><br>>>>> > <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users">
http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>>>>><br>>>>> _______________________________________________<br>>>>> postgis-users mailing list<br>>>>>
<a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br>>>>> <mailto:<a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net
</a>><br>>>>> <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users">http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>>>>><br>>>>><br>>>>>
<br>>>>> ------------------------------------------------------------------------<br>>>>><br>>>>><br>>>>> _______________________________________________<br>>>>> postgis-users mailing list
<br>>>>> <a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br>>>>> <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users">http://postgis.refractions.net/mailman/listinfo/postgis-users
</a><br>>>><br>>>> _______________________________________________<br>>>> postgis-users mailing list<br>>>> <a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net
</a><br>>>> <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users">http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>>>><br>>> _______________________________________________
<br>>> postgis-users mailing list<br>>> <a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br>>> <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users">
http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>><br>> _______________________________________________<br>> postgis-users mailing list<br>> <a href="mailto:postgis-users@postgis.refractions.net">
postgis-users@postgis.refractions.net</a><br>> <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users">http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>><br><br>_______________________________________________
<br>postgis-users mailing list<br><a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br><a href="http://postgis.refractions.net/mailman/listinfo/postgis-users">http://postgis.refractions.net/mailman/listinfo/postgis-users
</a><br></blockquote></div><br>