adjusted wrapper function circ.sd() because circular::sd.circular() can return NaN instead of 0