[postgis-users] Dot Density idea

Martin Davis mbdavis at refractions.net
Thu May 6 10:50:51 PDT 2010


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
>>>>>>>>
>>>>>>>>                
>>>>>> instead.  I
>>>>>>
>>>>>>           
>>>>>>>> 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




More information about the postgis-users mailing list