Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a shapefile with 3800 polygons representing the smallest administrative areas in Ireland. Many of these, in rural areas, have tiny populations, under 100 people. In urban areas, all would have adequate populations.

For each area I have a population figure, and various other attributes, all of which can be intelligently summed to give valid results for areas produced by combining the smaller areas.

I need to merge the areas to get say, 500 or 600 areas of reasonable population. I need to leave the larger (in population) areas alone, where possible. I would greatly prefer to do this automatically. This is necessary for model fitting purposes, primarily.

I've looked at a number of the dissolve questions here. 'Batch Dissolve Polygons based on Attributes in QGIS or FWTools' I think would require me to know which areas to merge, when this is what I need to calculate. 'Practical way of managing polygons and unions of them' and 'How do dissolve polygons from shapefile using open source tools?' have the same issue.

Any suggestions?

share|improve this question

What you are attempting is known as Zone Design. The definitive work on the subject was carried out by Stan Openshaw in the late 80s and early 90s. See the zdes home page, sadly that code is probably not going to help you as it is written in AML and required Arc/Info 7 to run. But the papers linked off the bottom of the page should help you implement the algorithm your self.

A related method was used to engineer the 2001 and 2011 UK census output areas by Dave Martin of Southampton University but I think that algorithm was never released.

share|improve this answer
Thank you very much - that is really helpful. I hadn't made the conceptual link at all, but its obvious when you point it out! It give me several new places to look. Thanks again – astaines Aug 13 '12 at 14:49

It looks as if iant's suggestion is spot on. Southampton have released software which will likely do exactly what I need doing. Details are at :-

Thank you all, Anthony

share|improve this answer

The dissolve tool in QGIS has a checkbox that allows you to run the tool "only on selected features".

To select the features you want to merge just run a query on your layer (layer->query) and then select the results.

share|improve this answer
"I think would require me to know which areas to merge, when this is what I need to calculate." So precisely what query are you proposing to run? – whuber Aug 12 '12 at 16:52
Very simply I want to agglomerate small areas with tiny populations to their neighbours, reasonably intelligently, to make up bigger areas with larger populations. As far as possible I want to leave areas with big populations alone. I can presumably specify this as some kind of optimization problem, but I don't know how to manage the spatial relationships.This is the key problem. If I could generate a list of areas to be joined up I'd be almost sorted, but I can't (except manually!) – astaines Aug 12 '12 at 18:56

In GRASS GIS, there is v.clean with the tool "rmarea: remove small areas, the longest boundary with adjacent area is removed". You could use it via the new Sextante plugin.

share|improve this answer
Useful, and I'll certainly consider it. Thanks! – astaines Aug 13 '12 at 14:50

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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