Our full technical support staff does not monitor this forum. If you need assistance from a member of our staff, please submit your question from the Ask a Question page.


Log in or register to post/reply in the forum.

WindVector Standard Deviation Calculation History?


Clayton Jan 26, 2022 12:54 AM

I'm hoping there are some Edlog Jedis on this forum that have some historical knowledge on changes in how the standard deviation of wind direction has been calculated over the years. I've inherited a program (originally written in Edlog but that has since been changed to CRBasic) for the RM Young 05103 Wind Monitor that includes a 0.001 m/s offset for wind speed. The result of this is that we never actually measure wind speeds of zero. This seems like it might throw a small wrench into how wind vectors and sigma theta (standard deviation of the wind direction) are now calculated by the WindVector instruction. 

The CR3000 manual section on wind vector processing seems to imply that replacing the zero values with 0.001 probably impacts how vectors are calculated. Here are the sections from page 212 & 213 to which I'm referring: 

7.7.9.2 Wind Vector ProcessingWindVector() uses a zero-wind-speed measurement when processing scalar wind speed only. Because vectors require magnitude and direction, measurements at zero wind speed are not used in vector speed or direction calculations. This means, for example, that manually-computed hourly vector directions from 15 minute vector directions will not agree with CR3000-computed hourly vector directions. Correct manual calculation of hourly vector direction from 15 minute vector directions requires proper weighting of the 15 minute vector directions by the number of valid (non-zero wind speed) wind direction samples.
Note: Cup anemometers typically have a mechanical offset which is added to each measurement. A numeric offset is usually encoded in the CRBasic program to compensate for the mechanical offset. When this is done, a measurement will equal the offset only when wind speed is zero; consequently, additional code is often included to zero the measurement when it equals the offset so that WindVector() can reject measurements when wind speed is zero. 

Since there isn't any code to zero out 0.001 m/s measurements (because we do not use cup anemometers) it appears that we are overriding the instruction that rejects zero m/s measurements when calculating vectors. Does anyone have any insight on how this might be impacting the data at this point?

I enquired with our most experienced employee as to why this offset was put in there. He recalled that at the time (unclear when), if 0.00 was used as an offset in the program, it resulted in an error code in the Campbell calculation of sigma theta whenever the winds were even briefly (a matter of seconds) quiescent during a given hour.  After consultation with Campbell and R. M. Young, it was determined the simplest way to address the sigma theta issue was to include 0.001 m/s as the offset so that there would be no error codes in the calculation of the sigma theta values, resulting in the loss of that data.

It seems like, at some point in the past, the WindVector instruction may have been changed by Campbell to automatically throw out wind speed zeros in order to resolve this issue. Does anyone know if that is true, and if so, when that change occurred?

I'm wondering what the ramifications might be of removing the 0.001 m/s offset at this point. I'm concerned about comparability of historic data with data following such a change, but that might not be enough justification for having an uneccesary offset in the program.

Any insight would be greatly appreciated.

Alex


JDavis Jan 31, 2022 04:41 PM

First of all, the algorithms should behave the same on Edlog dataloggers and CRBasic dataloggers. I image that the 0.001 was used because an interval with all zero wind speeds would output NAN or the equivalent. Logically, reporting NAN is the right thing to do, but can provide a challenge to data post processing.

Weighted vectors would not be impacted much by including samples of 0.001. The magnitude of the vector is small.

Unweighted direction could be impacted a lot by a lot of samples. Unweighted calculations of direction give equal weight to every wind direction, when speed is >0.

The full explanation of the algorithms are in the CR1000 manual.

https://s.campbellsci.com/documents/us/manuals/cr1000.pdf  Page 208

Log in or register to post/reply in the forum.