Joining spatially connected polygons and average attributes of new merged polygon

298
1
03-05-2014 05:35 AM
New Contributor
Hi All,
i hope someone can help.
I have a shapefile of individual building polygons with building height attributes, I want to merge all adjoining polygons and average the building heights of the adjoining polygons. As the buildings that are semidetached or terraced all share the same roof heights. The building heights have been processed from lidar data point cloud and so building heights vary amoungst adjoining buildings. This join will average building height for all adjoining buildings. I know what I need to do but can not find the correct tools. Please find snapshot of screen attached showing polygons and attribute table showing attribute. Each polygon has an individual average height attribute.
[ATTACH=CONFIG]31947[/ATTACH][ATTACH=CONFIG]31947[/ATTACH]
Tags (2)
Reply
0 Kudos
1 Reply
MVP Honored Contributor
Hi All,
i hope someone can help.
I have a shapefile of individual building polygons with building height attributes, I want to merge all adjoining polygons and average the building heights of the adjoining polygons. As the buildings that are semidetached or terraced all share the same roof heights. The building heights have been processed from lidar data point cloud and so building heights vary amoungst adjoining buildings. This join will average building height for all adjoining buildings. I know what I need to do but can not find the correct tools. Please find snapshot of screen attached showing polygons and attribute table showing attribute. Each polygon has an individual average height attribute.
[ATTACH=CONFIG]31947[/ATTACH][ATTACH=CONFIG]31947[/ATTACH]


Sounds like you want to use the Dissolve tool and dissolve everything you want together whether they touch or not initially into one multipart polygon.  You could get the Mean height of this polygon in the Dissolve if you want, but that probably is not important.  Then use the Multipart to Singlepart tool to break everything apart that does not touch.  Use Spatial Join with these separate polygons as the target and the original polygons as the join layer.  Use the One To One option and alter the field properties of the height field in the field list to get the Mean Summary rather than the Sum.

If you want to transfer this average back to the original polygons, reverse the Spatial Join so that the original polygons are the target and the polygons with the average height are the join layer.  Create an attribute join of the original layer FID and the Target_FID of the Spatial Join together and use the Field Calculator to transfer the average height to a new field in the original house data.  Always keep raw source data when doing generalization analysis in case you decide to use other criteria for grouping the original data later, or you spot anomalous averages that you want to verify from the source data.  Keeping the raw source field also lets you do comparisons of the average to the original value to determine if the buildings should really have been averaged or treated differently.
Reply
0 Kudos