I'm trying to measure the compactness (roundness) of some 800 polygons of different shape and size. I created the centroids and what I want to do now is to buffer those centroids with the exact same area of their polygons. Sorry if this is too simple but I just can't find the way to do it.
Asked
Active
Viewed 139 times
0
-
At what point exactly are you running into trouble? Also, what software/version are you using? – phloem Jan 08 '15 at 17:59
-
I don't know how/where to specify the size of the buffer based on the [area] field rather than in a distance. – 1buzz Jan 08 '15 at 18:06
-
Area = pi * r * r, r = sqrt(Area/pi) But you should do more research into "roundness" and "compactness" for standards – Vince Jan 08 '15 at 18:18
-
1look at the solution and comments in Easily calculate “roundness/compactness” of a polygon – gene Jan 08 '15 at 18:23
1 Answers
0
- If not done already, calculate the area in a field for your polygons
- Create centroids. Area field should carry over to the points.
Create and calculate a radius field that corresponds to a circle of the given area, for each point. The formula for circle area is A = pi*r^2, so r = Sqr(A/pi). Pi = 4*Atn(1). The exact VBScript field calculation is:
Sqr ( [area]/(4*Atn(1) ) )
Run Buffer using the values in your radius field as the distance.
phloem
- 4,678
- 15
- 30