What is the best way to average wind direction? I have found many conflicting suggestions elsewhere. Best one I saw is to average SINs of all angles in radians and take inverse SIN of the result.
This is to be used to produce a windrose where the input must have one record per hour, but the data provided has several records per hour.
While it's not quite meaningless to average the direction of the wind, it's ill-defined in many cases (imagine that you have a perfect east wind and a perfect west wind and you want to find the direction of their average!), and probably not really what you're after. Assuming that you have velocity data for the wind as well as directional data, you're best off turning the velocity+direction into a vector, adding those vectors, and then if you need a direction in the end, taking the direction of the result. In the case where your wind always has the same speed (or at least can be assumed to have constant speed), this is better than the mechanism you suggest: for instance, in your method an east wind ($\theta_0=0^{\circ}$) and a north wind ($\theta_1=90^{\circ}$) will give $s_0 = \sin(0^{\circ}) = 0$ and $s_1 = \sin(90^{\circ}) = 1$, so $s_{avg} = 0.5$ and $\theta_{avg} = \sin^{-1}(s_{avg}) = 30^{\circ}$, whereas the average-of-vectors method yields $v_0 = (\cos(\theta_0),\sin(\theta_0)) = (1,0), v_1 = (0,1), v_{avg} = (0.5, 0.5)$ and $\theta_{avg} = 45^{\circ}$. It also has the advantage that it's rotationally invariant; rotating the entire assemblage by any constant value (for instance, making your north wind a northeast wind and your east wind a southeast wind) will give an average that's the average of the initial data rotated by that amount. Note that in the case where the average is ill-defined, this method will yield a zero vector for the combined wind's direction, and so it (correctly) breaks down when trying to find an angle from that result.