Polygons -> Larger Polygons based on Attribute

367
7
02-13-2014 05:37 AM
ThomasSchmidt
New Contributor
Hey guys,

i have the following problem: I have a set of buildings (either as a polygon, or if needed as centroid points) which I want to "sum up" in larger polygons. My buildings are classified in 8 different classes (as attribute), which should be used for calculating the larger polygons. Basically I would like to have a set of polygons, divided in 8 classes, which cover the whole urban area. So far, I havent found a solution which fits my case. Does anyone of you have an idea, how to do this?
Thanks in advance, greetings.
0 Kudos
7 Replies
RichardFairhurst
MVP Honored Contributor
Hey guys,

i have the following problem: I have a set of buildings (either as a polygon, or if needed as centroid points) which I want to "sum up" in larger polygons. My buildings are classified in 8 different classes (as attribute), which should be used for calculating the larger polygons. Basically I would like to have a set of polygons, divided in 8 classes, which cover the whole urban area. So far, I havent found a solution which fits my case. Does anyone of you have an idea, how to do this?
Thanks in advance, greetings.


The solution is the Dissolve tool. Use the attribute that groups the buildings into 8 classes as the Dissolve Field.  You can sum the shape area or other area field using the Summary Fields.  Use the Multi-part option to make sure that discontinuous buildings are merged together by the dissolve to get a complete summary of each building class in a single polygon per class.

If you don't need polygons as the output and just want a table summarizing the building class areas, just use the Summary Statistics tool with similar settings.  The summary table output could be joined to the original polygons through the building class field, as long as only one field is used to create the class breaks.
0 Kudos
ThomasSchmidt
New Contributor
Richard, thanks for your idea. The dissolve tool works in the way you described it, however this is not the result I was aiming for. I actually want the buildings to spread out and create a new polygon topology, so that the spare room between the buildings are also covered by the polygon. Those polygons should be created according to the 8 classes, but I would prefer several polygons for each class (because the urban area im trying to cover is actually pretty large) and not just one multipart-feature for each class.
Do u have a solution for this case in mind? Im sorry, that my first post was a bit sloppy in regards to my purpose.
Thanks, greetings.
0 Kudos
RichardFairhurst
MVP Honored Contributor
Richard, thanks for your idea. The dissolve tool works in the way you described it, however this is not the result I was aiming for. I actually want the buildings to spread out and create a new polygon topology, so that the spare room between the buildings are also covered by the polygon. Those polygons should be created according to the 8 classes, but I would prefer several polygons for each class (because the urban area im trying to cover is actually pretty large) and not just one multipart-feature for each class.
Do u have a solution for this case in mind? Im sorry, that my first post was a bit sloppy in regards to my purpose.
Thanks, greetings.


The Advanced license Cartography tools are designed to do this at 10.2 based on a demonstration I saw at the last UC.  The Simplify Building tool and Delineate Built-Up Areas tool produce some pretty sophisticated effects that sound like what you are describing.  They have a variety of settings that can produce a wide range of effects.  You would have to experiment with them to see all that they can do, since the tool help only illustrates a fraction of what they are capable of.

The Aggregate Polygons tool with the Orthogonal option also can be helpful, but it would have to be run in an iterating model that worked on one group at a time using groups you would first have to define by other means like using the Near tool.
0 Kudos
RichardFairhurst
MVP Honored Contributor
0 Kudos
ThomasSchmidt
New Contributor
Thanks for the help. The Aggregate Polygon tool seems to work for my use-case-scenario, when I split up my building shapefile into the number of classes I have (i would probably have to clip the results later on, since there might be some slight overlaps of the polygons in the end).

However, the Delineate Built-up Area Tool seems to be the better fit. Is there a way to include an attribute class field in the calculation? The Identifier-Field has a different task than what I am looking for. Im also experiencing some trouble with the Minimum Detail Size Field. Ive tried several different sizes there, but I always receive the "error 000200 : Error in building map context. Reference scale is not defined." which is wrong, because all my shapefiles are referenced as well as the data frame. Any idea?
Great video-tutorial by the way :)
0 Kudos
RichardFairhurst
MVP Honored Contributor
Thanks for the help. The Aggregate Polygon tool seems to work for my use-case-scenario, when I split up my building shapefile into the number of classes I have (i would probably have to clip the results later on, since there might be some slight overlaps of the polygons in the end).

However, the Delineate Built-up Area Tool seems to be the better fit. Is there a way to include an attribute class field in the calculation? The Identifier-Field has a different task than what I am looking for. Im also experiencing some trouble with the Minimum Detail Size Field. Ive tried several different sizes there, but I always receive the "error 000200 : Error in building map context. Reference scale is not defined." which is wrong, because all my shapefiles are referenced as well as the data frame. Any idea?
Great video-tutorial by the way :)


I have used Aggregate polygons, but not the other tools.  I just saw the demo and figured it fit your description.  There is a tool environment setting that sets the reference scale the tool will observe.  Try accessing that and matching your data frame reference scale.  The help script example included this line immediately before running the tool:

env.referenceScale = "50000"

You could always try Iterating through the 8 classes separately and Append the separate outputs together like you are with the Aggregate Polygon tool.  That may require a lot of experimentation since this tool has a lot of logic to account for barriers that may change as each class is modified by the tool.  A model or script could be manually set up to process the classes in a specific order (say from least significant to most significant or vice versa) and use the inputs of the preceding run as barriers for the later runs so that you could adjust the settings to eliminate more of one class than another.  The Identifier field would be essential to such a model to give you the ability to assign feature based priorities within the individual outputs that the subsequent model runs would observe.  This was the intention of the programmers, since they realized they could never anticipate all of the use cases their tool would be applied to.  They also realized that user preferences play a huge role in determining if the output is acceptable or not, and the Identifier Field was their way of accommodating those preference adjustments (rather than predefining one style of output for all users).

Anyway, the answer is there is no way to do what you want directly.  It has to be developed through a model or a script to add logic that the tool does not possess.  This is not uncommon with outputs where you want to increase the complexity of the available tool outputs.  You are expected to figure out how to combine less complex outputs and make the necessary adjustments to increase the complexity.  I have models/scripts with over 100 tools to extract only about 8 different data outputs from 1 centerline network that I built about 6 years ago, and if I had waited for a single tool to do each output I would still have nothing.

The super tool creates a black box with no way to alter anything that the programmer did not anticipate or decide to support.  As a result, the super tool is normally a bad idea, because it will lack the flexibility to accommodate every user's need.  No matter what tools ESRI creates there will always be needs that go beyond what their tools are capable of doing, just like the capability you want.  Beyond a certain point, it is better to have many smaller tools and combine them in custom models or scripts that can produce infinite different effects.  My models and scripts have been tweaked many times to achieve important minor adjustments that no super tool would have supported.
0 Kudos
ThomasSchmidt
New Contributor
Thank you for your detailed answer. I know that ESRI tools cant do anything on their own, it would just have saved some time, when there would be a tool directly for this use-case. I will try to get this to work, thank you (in case i got one or two more questions, i will probably come back here). :)
0 Kudos