I've been assigned to find the radius of road curves. My boss found this article describing a pretty straightforward method of doing so:
- find the start/end points of the curve;
- create a chord;
- create the middle ordinate (from chord midpoint, perpendicular line that goes up to the curve)
- do a bit of math with the chord and ordinate lengths to find the radius.
Manually, this works very well. The downside is that I'm working with thousands of miles of road, so we want to build an automated tool to be able to quickly analyze our entire existing network, and also be able to check roads digitized in future.
I have adapted this script to find transition points where the curve begins/ends -- comparing line segments to see if the road direction is changing (e.g. is it still turning right, or has it started curving left instead). I therefore have chords for all the curves, but now I'm struggling with how to make middle ordinates. It needs to:
- start at the midpoint of the chord
- be perpendicular to the chord (I'm not positive how to do this yet, but found a script that will probably work and/or be adaptable)
- be long enough to reach the road, but no longer (???)
So, long question short: how can I find the (approximate) distance between my chord midpoint and the road?
(Another StackExchange question describes working with the Near_analysis function which looks like it could work, but I currently have all of those chord midpoints just stored as a python list, not a feature class. I'd like to avoid generating a bunch of new features if possible.)