I would like some advice on setting up a workbench that could retrieve the number of interior angles in a polygon that are classed as concave (i.e. >180 degrees).
So far I have the following:
- run my polygon featureclass through the 'convexity filter' to obtain only concave polygons.
- I then use the 'Orientor' to assign the right hand rule before passing it through the 'VertexAngleCalculator'.
- I then use a tester to filter those angle that are negative (i.e. concave).
- Use 'statistics calculator grouped by original polygon UID to get the total count of features.
- merge these attributes with the original feature class.
This works fine as long as the first/last vertex in the polygon is not a concave angle. This is because the 'VertexAngleCalculator' returns a value of '0' for the start/end vertex - and therefore cannot be classified.
Unless there is a simpler way to obtain all interior angles for each polygon, my thoughts would be to re-run the process a second time, first shifting the order of vertices by 1 index place. Then removing all features from both passes with a angle attribute of 0, and removing duplicates from the first pass that have the same geometry and angle attribute as in the second pass. Unfortunately I have no idea how to do this in FME.
Any help would be greatly appreciated!