# how to automate changing polygon's shape while keeping its area the same and limiting deviation from orginal centroid? [closed]

I have a polygon that was digitized based upon visually interpreting underlying values of rasters/vectors that represent a natural environment (soil type, surface roughness, slope, elevation, etc...). The goal of the digitization was to define a polygon shape that maximizes the average value of underlying raster/vector values underneath while keeping the polygon area relatively small.

In this type of exercise there are many possible answers. I am brainstorming ways I could possibly automate tweaking the shape of the initially digitized polygon to see if there is a slightly better answer while defining some limits to the problem. Here is an example of a workflow I would like to have:

1) Begin with the initial polygon that is say, fairly circular with an area of 1 km^2 and a centroid at 0,0

2) Use a script or tool to create/try hundreds of slight permutations of the polygon's shape while having two limitations i) keeping the area the same and ii) not allowing the centroid to deviate more than say 0.5 in both x and y direction.

3) With the new polygon shape, perform an Extract by Polygon with one of the raster files and check if the average value of the cells has increased in the new polygon area compared to the original, and if so, save the new polygon to visually check later.

I figure the solution could get very complex because it deals with nodes. Certainly there would need to be creation or definition of a parameter describing how rough/erratic changes in the shape are allowed to be, and also, the calculations would depend on the number of nodes in the polygon. There might also be issues with self-intersecting lines depending on the parameters chosen. Another addition to the approach would be having the changes in shape intelligently maximize the average value rather than change the shape randomly. Any other factors important to account for / think about?

Do you know of some existing useful tools/scripts that could solve or help solve this problem? Any ideas are welcomed - especially ArcGIS and Open source approaches. I have a feeling that an ArcGIS solution will most likely involve programming with ArcObjects rather than any scripting. Or perhaps it's possible that a permutation problem like this one is best handled by non-GIS software - maybe something like R?

-

## closed as not a real question by PolyGeo♦, whuber♦Jun 17 '13 at 14:17

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

The problem as stated has a simple solution that usually is unique: draw the polygon around the cell of maximum value. This shows that you need to provide additional constraints or objectives in order for this to be a well-defined problem. If you stipulate a minimum area for the polygon, say equal to n cells, then draw a square around the n highest cells and then connect those squares with infinitesimally small paths. This shows you will want to constrain the tortuosity of the polygon as well as its area. – whuber Aug 10 '12 at 23:06
@whuber What does "tortuosity" mean? – dassouki Jun 17 '13 at 12:28
@dassouki Twistiness or crookedness. Entering English in the 1400s, it derives from Latin "torquere"--to twist--and is closely related to "torsion" and "torture." – whuber Jun 17 '13 at 14:16