Anyone have any good ideas on how to average 2D directions?

590 Views Asked by At

Directions, being a cyclical quantity (i.e. if you keep increasing the value, you'll eventually end up back where you started) can't be averaged out like regular numbers.

For example, say I have 2 directions, 30° & 270°. Conventional averaging methodology would have me add the values together (300°) and then divide by the number of values (2), giving a result of 150°. But while 150° is indeed equidistant between the 2 values, 330° is a much more appropriate answer as it's orientation more closely resembles the values being averaged.

Even if you restate the way the directions are written, this problem remains. e.g. say you rebrand all directions between 180° < x < 360° as being -180° < x < 0, you face the problem of -175° and 175° averaging out to 0°, when in fact 180° would be a more appropriate answer.

So I'm wondering if anyone has any good ideas on how to average out a set of directions? While sussing such an average out might be easy enough to do by hand with just 2 component values, I really need a method that works just as well with a higher amount of volumes, too.

Obviously there are some sets of values that could not be evened out, e.g. 0°, 90°, 180° & 270°, as these are all equally spaced around, not favoring any particular direction.

But generally, does anyone have any ideas?