4

This problem is similar to retail presence optimization. I'd like to know which GIS's could help us do the following:

Given a set of point locations,

  1. create a circle of radius n meters around each.
  2. each circle has a unique score.
  3. replace the circle's unique score with the sum of its score and the scores of all circles with which it intersects.
  4. create a polygon(s)--the union of all circles with sum >= a threshold.
  5. Layer in a new set of points and take the set of all these new points that are contained within the polygon(s).
  6. Export as a table those points and their metadata.

I once upon a time was reasonably fluent with Manifold, and I think this could be done in Manifold, I think. We're interested in a GIS, for now, costing no more than Manifold. Shortest learning curve super appreciated too.

Thanks in advance for any guidance you can provide, Steve

5
  • Have a look at qgis.org it has vector tools that should be enough to accomplish this task.
    – Moe
    Oct 24, 2012 at 19:42
  • QGIS is not only great, but its also FREE. And this great training manual for QGIS will help lesson your learning curve. Oct 24, 2012 at 19:56
  • 2
    Sounds like an interesting problem. It would be easier to understand if you could include some screen shots at some of the steps. Oct 24, 2012 at 20:00
  • 2
    What do you mean by 'score' - an attribute that is added to the circle?
    – Simbamangu
    Oct 24, 2012 at 20:09
  • Thanks for the qgis reference. @simbamangu: the scored circles of radius n meters are around given hotels; the scores are the number of avg weekly person-nights stayed at each hotel. Oct 24, 2012 at 21:08

2 Answers 2

7

These activities should all be easily done in QGIS, point by point as per your question:

  1. Symbols can be given radii based on a field. In the Symbology properties tab, select 'advanced', 'size scale field' and then the field with the radius (the CRS of the project will need to be in metres).
  2. The score can be stored in an attribute field;
  3. "Join attributes by location" can be used to summarise intersecting layers, probably with a subsequent field calculator operation to total the scores;
  4. Performing a query (Layer|Query...) on the circles layer will let you select only the characteristics you want, e.g. sum > x, and then Vector|Geoprocessing|Union to create a new layer with those circles.
  5. A point-in-polygon operation will give you the interesting points within the polygon layer.
  6. The attribute table can be saved directly with save-as CSV.

And, as we love to point out on this site, QGIS is FREE.

1
  • 2
    More than free, qgis is opensource, meaning everyone is able to see and improve its code. For your problem you use the plugin Sextante to build a model with all the steps described above. Or you can create a script in python. Either way, you will be able to run all the operations with one click. Oct 24, 2012 at 22:55
6

For the described issue I don't see the point in actually using GIS (you didn't mention that you have to visualise data). This issue (especially if it is routine one) can be solved by several quite simple SQL-statements. Consider using PostGIS or Spatialite (depends on your data amount). I believe another alternative is to use OGR scripting but I would definitely stick with database management system.

2
  • 1
    Yes, we can do this purely with math (probably w/Pig on Hadoop), but it's easier to explain what we've done to our business peers with a visualization, and, as I said, I'm looking for a general solution for a class of such problems. Oct 24, 2012 at 21:09
  • Ah, just realized that underdark edited out of my original question my statement of looking for a generalized solution--you probably never saw that. Oct 24, 2012 at 22:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.