# [postgis-users] Dot Density idea

David William Bitner david.bitner at gmail.com
Thu May 6 10:51:13 PDT 2010

```If it was the overall density of the dots that mattered and not as much the
exact number of dots, a representative table could be made with a "random
yet even" set of dots covering a certain area. To apply to a polygon, you
could then Scale the data to the appropriate density and translate/compute
the intersection to apply to a given polygon.

On Thu, May 6, 2010 at 12:50 PM, Martin Davis <mbdavis at refractions.net>wrote:

> Did your algorithm work with irregular polgon extents?
>
>
> Jan Hartmann wrote:
>
>> I did this long ago. Regular points won't work, you'll get all kinds of
>> moire patterns. I just computed random x and y values from the origin of the
>> grid cell within the x- and y grid-size. Can't remember having any problems
>> with overlapping points.
>>
>> Jan
>>
>> On 05/06/10 19:35, Paul Ramsey wrote:
>>
>>> Even-yet-random :) nice requirement. How about just starting with a
>>> regular grid and then perturbing the elements randomly with a radius
>>> of a cell size? You can use the area of the polygon and number of
>>> needed points to calculate the appropriate cell size and go from
>>> there.
>>>
>>> P
>>>
>>> On Thu, May 6, 2010 at 10:28 AM, Martin Davis<mbdavis at refractions.net>
>>>  wrote:
>>>
>>>
>>>> Good point about the need for even distribution of the points. That
>>>> seems
>>>> like a whole lot harder to code than simply randomly placing points in a
>>>> polygon.  Does anyone have any pointers to algorithms for producing this
>>>> effect?
>>>>
>>>> George Silva wrote:
>>>>
>>>>
>>>>> The really big problem with dot density is that dots can overlap
>>>>> themselves,
>>>>> masking the real number, so if anything will be developed in this area,
>>>>> the
>>>>> points should be
>>>>>
>>>>> A) evenly distributed
>>>>> or
>>>>> B) randomly distributed, but with some sort of "colision" tests, so
>>>>> there
>>>>> is
>>>>> no or little overlap.
>>>>>
>>>>> This is a interesting idea, especially if we could make a materialized
>>>>> view
>>>>> with those points, which could be added to GIS software for
>>>>> presentation.
>>>>>
>>>>> George
>>>>>
>>>>> On Thu, May 6, 2010 at 1:53 PM, Sufficool, Stanley<
>>>>> ssufficool at rov.sbcounty.gov>  wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Looks nasty, but it might work:
>>>>>>
>>>>>> select
>>>>>> st_line_interpolate_point(
>>>>>>       st_intersection(
>>>>>>               the_geom,
>>>>>>               st_makeline(
>>>>>>                       st_pointn(st_exteriorring(the_geom), (rand1.rand
>>>>>> *
>>>>>> st_npoints(st_exteriorring(the_geom)))::int),
>>>>>>                       st_pointn(st_exteriorring(the_geom), (rand2.rand
>>>>>> *
>>>>>> st_npoints(st_exteriorring(the_geom)))::int)
>>>>>>               )
>>>>>>       )
>>>>>>       ,rand3.rand
>>>>>> )
>>>>>> from insert_your_table_name_here,
>>>>>> (select random() as rand, generate_series(1,1000) as point_number) as
>>>>>> rand1
>>>>>> JOIN (select random() as rand, generate_series(1,1000) as
>>>>>> point_number)
>>>>>> as
>>>>>> rand2
>>>>>>       ON rand1.point_number = rand2.point_number
>>>>>> JOIN (select random() as rand, generate_series(1,1000) as
>>>>>> point_number)
>>>>>> as
>>>>>> rand3
>>>>>>       ON rand2.point_number = rand3.point_number
>>>>>> WHERE st_geometrytype(
>>>>>>       st_intersection(
>>>>>>               the_geom,
>>>>>>               st_makeline(
>>>>>>                       st_pointn(st_exteriorring(the_geom), (rand1.rand
>>>>>> *
>>>>>> st_npoints(st_exteriorring(the_geom)))::int),
>>>>>>                       st_pointn(st_exteriorring(the_geom), (rand2.rand
>>>>>> *
>>>>>> st_npoints(st_exteriorring(the_geom)))::int)
>>>>>>               )
>>>>>>       )
>>>>>> ) = 'ST_LineString'
>>>>>> AND oid = 5030 /* Enter your own OID here */
>>>>>> limit 100
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: postgis-users-bounces at postgis.refractions.net
>>>>>>> [mailto:postgis-users-bounces at postgis.refractions.net] On
>>>>>>> Behalf Of Martin Davis
>>>>>>> Sent: Thursday, May 06, 2010 8:56 AM
>>>>>>> To: John Abraham; postgis-users at postgis.refractions.net; Martin
>>>>>>> Davis
>>>>>>> Subject: Re: [postgis-users] Dot Density idea
>>>>>>>
>>>>>>>
>>>>>>> I was thinking the same thing!
>>>>>>>
>>>>>>> strk wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> ST_RandomPoinsOnSurface(geometry, numpoints) would be an interesting
>>>>>>>> function indeed. Sounds like a good job for GEOS/JTS.
>>>>>>>>
>>>>>>>> --strk;
>>>>>>>>
>>>>>>>> On Mon, May 03, 2010 at 10:49:32PM -0600, John Abraham wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> One of the things I miss about using ESRI's GIS is the
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> ability to do
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> dot-density maps.  Within a polygon, the number of dots is
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> proportional to a value, and the dots are randomly placed.  I
>>>>>>> find it useful to be able to present several data values at
>>>>>>> once (e.g. blue dots for population, red dots for employment).
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> I also find that it is a more intuitive way of scaling for
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> zone size
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> than dividing the value by the area of the zone.  That is,
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> the count
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> of the dots represents the actual number, but the density
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> of the dots
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> represents the density of the number.  So I don't have to decide
>>>>>>>>> whether to divide the value by the area of the polygon to plot
>>>>>>>>> density: both the absolute number and the density are
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> easily visible.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Since my open-source GIS viewing systems (mostly QGIS and
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> Mapserver)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> won't plot dot-density, I've done without.
>>>>>>>>>
>>>>>>>>> But today I realized that I can build these on the server
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> can generate random points within the bounding-box of the polygon,
>>>>>>>>> throwing out those that aren't contained within the polygon,
>>>>>>>>> repeating until I have enough.  Then I can save these points as a
>>>>>>>>> separate layer, and display this layer using almost any desktop or
>>>>>>>>> web based viewer!
>>>>>>>>>
>>>>>>>>> Has anyone done this?  Can I do it in SQL or do I need to write
>>>>>>>>> something in PL/pgsql?
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> John Abraham
>>>>>>>>>
>>>>>>>>> PS I just bought the Postgis In Action book; enjoying it so far.
>>>>>>>>> _______________________________________________
>>>>>>>>> postgis-users mailing list postgis-users at postgis.refractions.net
>>>>>>>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> --
>>>>>>> Martin Davis
>>>>>>> Senior Technical Architect
>>>>>>> Refractions Research, Inc.
>>>>>>> (250) 383-3022
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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
>>>>>
>>>>>
>>>>>
>>>> --
>>>> Martin Davis
>>>> Senior Technical Architect
>>>> Refractions Research, Inc.
>>>> (250) 383-3022
>>>>
>>>> _______________________________________________
>>>> 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
>>
>>
> --
> Martin Davis
> Senior Technical Architect
> Refractions Research, Inc.
> (250) 383-3022
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>

--
************************************
David William Bitner
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20100506/a38c8a17/attachment.html>
```