Saturday, 11 July 2015

arcgis desktop - Identify shape of the polygons: elongation, roundness, etc


I am generalizing geological map. In the initial step I am dealing with small polygons which should be either deleted, enlarged, aggregated and etc.


Before applying operations mentioned above I would like to start with the shape analysis, such as elongated polygons or more round polygons and so on, as this may be key factor to deal with.


Geological maps have quite complex shapes which should be considered and maintained as much as possible.


Is there any way that identifies the shapes of the polygons based on the geometry?



I am using ArcGIS, Python basically.



Answer



The main shape index is obtained by dividing the area by the square of the perimeter of the polygon. If you multiply this value by 4Pi, you obtain a normalized value that is 1 for a disk and close to zero for an very elongated polygon. This index is one of the most robust that I know.


You can also divide the area of your polygon with the area of its convex hull (see minimum bounding geometry tool). This will allow you to discriminate convex and concave polygons (for a man-made structure, you can use bounding rectangle instead of convex hull. This is called the "rectangular-fit", but I don't think that it is the most usefull in your case).


Further indices imply to construction of the skeleton of the polygon, but this is more complex. For instance, you can count the number of ramifications and measure the length of the longest component. See here for an example on how to build skeletons if you want to go this way.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...