;---------------------------------------------------------------------------- ; :File: avgangle.pro ; :Author: Brian Vanderwende ; ; :Description: Function which averages an inputted array of directions ; (This accounts for 10,350 being averaged as non-zero (etc) ; in standard averaging practices) ; ; Variables ; dirarr - array of directions which will be averaged ; Return value: The average of the input direction array ; ;---------------------------------------------------------------------------- function avgAngle, dirarr sVal = total(sin(dirarr * !PI / 180), /NAN) cVal = total(cos(dirarr * !PI / 180), /NAN) avgDir = atan(sVal / cVal) * 180 / !PI if abs(avgDir) LT 0.001 then avgDir = 0.0 if sVal GT 0 AND cVal LT 0 then avgDir = 180 + avgDir if sVal LT 0 AND cVal LT 0 then avgDir = 180 + avgDir if sVal LT 0 AND cVal GT 0 then avgDir = 360 + avgDir return, avgDir MOD 360.0 end