Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Sorting by geographical proximity / clumping groups of items based on X and Y

by FoxtrotUniform (Prior)
on Jul 18, 2002 at 16:16 UTC ( #182884=note: print w/replies, xml ) Need Help??


in reply to Sorting by geographical proximity / clumping groups of items based on X and Y

One off-the-cuff idea: treat this as an image-processing problem.

  1. Segment your world into a grid of "pixels", with the intensity of each pixel being the number of problems reported there.
  2. Blur the "image" a bit, to group complaints that are relatively close, but not in adjacent pixels. How much you blur is probably a matter of experimentation.
  3. Run an edge detection algorithm over the image. You now have borders defining clumps of complaints.

The major problem that I can see is that you might get several closely-spaced groups blurring into each other, creating a single super-large group.

Update: "Segment the world, find local maxima, then calculate the voronoi diagram of the point set described by the maxima" might work, too.

--
The hell with paco, vote for Erudil!
:wq

  • Comment on Re: Sorting by geographical proximity / clumping groups of items based on X and Y

Replies are listed 'Best First'.
Re: Re: Sorting by geographical proximity / clumping groups of items based on X and Y
by t'mo (Pilgrim) on Jul 18, 2002 at 16:21 UTC

    Too much time with the GIMP, eh? :-)

    But how do you decide how to "segment your world"? That could be a problem...

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://182884]
help
Chatterbox?
[ambrus]: Corion: as for that, I talked with schmorp, and looked a bit more at Prima
[ambrus]: Corion: from the docs, it definitely looks like it would be possible to write an AnyEvent driver for it using Prima::File and Prima::Timer.
[ambrus]: (I haven't found an idle event.)
[ambrus]: However, I also looked at the internals, and found two interesting things:
[marto]: stupid xpath question, I have a xpath copied from the browser, is the * wildcard supposed to work for IDs? e.g. '//*[@id="*"]/ div/div/header/p/a '?
[ambrus]: The main loop for unixish systems is in https://metacpan. org/source/ KARASIK/Prima-1. 49/unix/apc_app.c. It is a hand-rolled select loop, but also always spins at least once every 0.2 seconds for some reason.
[ambrus]: marto: no, not that way. if you just want to test for an existing id attribute, then write *[@id] , or you can match a regexp to the value of that attribute like *[@id=~/something/ ]
[marto]: ambrus, thanks I ended up going with '//*[starts- with(@id, "thread_")]...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (6)
As of 2016-12-08 10:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (140 votes). Check out past polls.