Thursday, May 25, 2017

60 Knots - A New Speedrecord?

Short answer: no. Before I get to the long answer, let me warn you: this is another one of my geeky posts. I reckon it may be of interest to about 5 or 10 windsurfers in the whole world! You've been warned.

This all started when our "United Speedsailors of America" team member Denis posted results from a recent session. He had uploaded his results to, and it showed that he had reached 2 second speed of 59.88 knots:
Denis does around 40 knots on a regular basis, so he is wicked fast. But he also knew that he definitely had not broken the world record for 2 second top speed (55.23 knots by Antoine Albeau on the Lüderitz Speed Channel). Even the ka72 results hinted in that direction: his best 10 second speed was just 30.1 knots.
Furthermore, Denis often sails with Boro, who just recently had his own problems with GPS accuracy,  so he was very skeptical about what his watch tried to tell him. He had also worn his old trusted GT-31 GPS unit, and that had reported a top speed of only around 30 knots.
World-famous speed surfer and GPS guru Roo (yes, he is from Australia!) immediately looked at the tracks, noticed that during the time of the supposed record speeds the "sat count dropped to 6/7", and came to the conclusion that due to "the surrounding mountains the sats that were just above the horizon produced poor signals which caused the anomoly".

Well, this seems to make sense - Denis and Boro are windsurfing on a mountain lake, so the mountains around it must be too high! Since almost everyone else is windsurfing in flat terrain, maybe we can just ignore their problems? That's simple! Simple is great! Right?

Not so fast, cowboy! Sure, there are 10,000 ft (3,000 m) mountains around Washoe Lake. But the lake itself is at 5000 ft elevation, measures 2 x 4 km, and is in a valley that extends more than 10 km from each end of the lake. So a lot of the sky and the GPS satellites will be visible. So let's look at the tracks:

The doppler speed graph from his GW-60 watch is shown on the top in red; for comparison, the GT-31 data are shown in blue at the bottom. The GW-60 data show 3 spikes: 2 above 50 knots, and one above 70 knots! Before we jump to any hasty conclusions, let's zoom in on the largest spike:

We can see that the blue (GT-31) graph shows a speed close to zero around the time of the spike. In other words, Denis was most likely in the water at that time. There are few things that kill GPS reception as well as a few inches of water! We can also bet that Denis wore his watch on his wrist, and the GT-31 on his upper arm, so at times, the watch will have been deeper under water. Sure, the watch should not show a spike like this .. but I have seen similar spikes in GT-31 data in the past (and do not usually see them in GW-60 data, even when I fall a lot). As Forest Gump said: "It happens".

But let's not stop there - let's look at the actual data points:
Pay attention to the "+/-" column, which shows error estimates for the speed (also called "SDoP", for "Speed Dilution of Precision"). The SDoP values start at around 2, but then quickly jump up to 4.957, which is where they stay for a while. At the first line of the highlighted area, we can also notice that the time between data points jumped from 0.2 seconds to 16.6 seconds - for more than 16 seconds, the GPS did not have enough reception to calculate speed. Denis, where was your hand?

If you wondered why the +/- numbers never got higher than 4.957, give yourself a geek gold star! That's simply because the SDoP numbers are stored as a single byte in the .sbp files, and the highest number possible corresponds to 4.957 knots. In plain English, an SDoP of 4 or higher indicates complete junk.

So, the watch actually knows that these data points are junk! Any analysis software should now, too! As guru Roo correctlu pointed out, GPSResults completely ignores the problematic data points, and gives top speed results that are practically identical to the results from the GT-31 unit. GPSResults has an SDoP filter, and by default refuses to include any regions with SDoP values above 3.0 (for 5 Hz data). The big question remains: what about other software?

Many Australian speed surfers analyze their results on, and Denis did. However, it appears that either does not use SDoP filters, or does not use them correctly. If we assume that Denis' problem had more to do with putting the watch under water than with being surrounded by mountains (which was not a problem when he was not swimming), then this problem might affect many other speed surfers, and needs to be addressed (there's also a problem with the alpha 500 numbers being wrong for this track).

Now, how about my favorite GPS analysis software, GPS Action Replay Pro (GPSAR, which I used to create all the screen shots above)? Unfortunately, the results are not pretty:
GPSAR calculates a top speed of 64.55 knots! Based on the settings shown in the speed dialog, GPSAR does not have any SDoP filtering at all, and thus arrives at incorrect results.

So, here's the bottom line:

  • Accuracy estimates are fantastic to automatically identify bad data can lead to very large over-estimates - even fake "world records"
  • and GPS Action Replay Pro do not appear to have functioning SDoP filters at this point in time; any data analyzed with either software should be carefully checked!
  • GPSResults has SDoP filters that can correctly identify artifacts such as the ones described here; however, as I have shown in a previous blog entry, the default settings may not be adequate to catch smaller errors, which can overstate speeds by a knot or two
As mentioned above, Denis's data files are available on I also made zip files with the data from my previous post about GW-60 accuracy for Boro's data and for the 6-GPS test drive.

Wednesday, May 24, 2017

Lightning in my Harbor

Lightning is the only thing that gets windsurfers off the water. But sometimes, Lightning may be the only thing that gets windsurfers on the water. Obviously, I'm talking about two different things.

The thing that got me on the water today is shown in this picture:
It's an F2 Lightning from 1987. I got it a few months back for $100. What a steal! Of course, it needed some work - a few little holes needed patching; the footstraps were falling apart and needed to be taken off; the mast track needed an hour of my attention before I figured out how to make it work again; and the daggerboard gasket needed to be replaced (with a few layers of sail repair tape for now). The picture above is from its brief maiden voyage at Fogland last week. Since then, I started to work on putting some footstraps on, and got the mast track working again, so I was dying to test it. When the Chapin wind meter showed averages around 14 mph today, with gusts to 17, I just had to go! The GPS tracks tell the story:
For comparison, here are tracks from an earlier session on a 117 l slalom board with the same sail:
The slalom session had quite a bit more wind (gusts up to 24 mph), but the tracks are more the typical back-and-forth session (I had to use a weed fin, which did not help). In comparison, going upwind on the F2 Lightning was not only 10 times easier, it also was a lot more fun - the longboard railed up very nicely! I played around with the upwind stance Andy Brandt had shown me last year - front foot sideways on the daggerboard knob, with the lower leg lying on the board, and the body far out over the water - that worked amazingly well! The top speed on the Lightning also was quite good - almost 24 mph, compared to 28 mph on the slalom board - but again, gusts were 7 mph on the slalom day! It really helped that going upwind on the longboard was so wicked easy; that made long, deep downwind runs easy, too. But the biggest difference was when the wind dropped down to 12 mph during the last third of the session. On the slalom board, that would have meant boredom and pain - there's simply no fun to be had on slalom gear unless it's planing. The Lightning, in contrast, was still fun, slowing down proportionally to the wind strength, instead of dropping suddenly from 20 mph to 6 mph as the slalom board would have done. The $100 I spent for the F2 Lightning were the best $100 I ever spent on windsurf gear!
Some of the readers with excellent memory may remember the title of this post, and wonder why I called Barnstable Harbor "my harbor". Well, that's simple: I had it all for myself! There were a couple of fishing boats out - maybe one every few of square miles. But otherwise, the harbor was all mine - as it is most of the time when I windsurf there. Not that I'd mind sharing - it's big enough, and one of my all-time favorite windsurfing places!

Monday, May 15, 2017

The Fastest Way To Get Faster

Some people who saw me driving around today looked at me in a funny way. Was it because I had my arm out of the window in 54ºF (12ºC)? Or maybe because I had 6 GPS units strapped to my arm?
In case you're wondering: I was wearing two yellow GW-52 units on top; two GW-60 PGS watches on the wrist, one facing up and one facing down; and a GT-31 plus a third GW-52 at the bottom.

As fascinated as I am with GPS speedsurfing, even I need a good reason to strap more than $1000 in GPS devices on my arm and go for a drive. I had one! I wanted to reproduce what Boro had accomplished recently. Boro wanted to start using his GW-60 watch, and compared it to his trusty old GT-31 GPS units. He got substantially higher speeds from the GW-60 watch:
  • 2 seconds:
    37.99 knots GW-60, 36.29 knots GT-31
  • 5x10 seconds:
    33.71 knots GW-60, 33.20 knots GT-31
That's 1.7 knots more for 2 seconds! It takes me (and others) years to improve my speed by that much! In many other tests, the speed of the watch had been much closer to the speed of other GPS units - was his watch broken, or was there another cause?

Looking at Boro's GPS files, it was obvious that his speed data had unusually high error margins of +- 1 to 2 knots; that's at least 2 times higher than usually, and about 5 times higher than what can be achieved with good GPS satellite reception. The error margins were about 2x higher when he was going the direction of his speed runs than when he was sailing back.

The first suspicion was that he was using an undergrip, with his watch hand closer to the mast, on his speed runs, and Boro quickly confirmed that this had indeed been the case. The human body is a very good absorber of GPS signals, and the GPS gurus had been very concerned about this very scenario - watches faces down towards the water, with an arm between them and the GPS satellites. I quickly did a little test walk with a couple of GW-60 watches on my wrist, one facing up and one down, and was able to reproduce the roughly 2-fold increase in error estimates if the watch is facing down.

But could such an increase in speed errors cause the observed difference in speed? There are some theoretical arguments against that: if the error is random, and we collect data at 5 Hz, we get 10 data points for 2 seconds, and 50 for 10 second runs. Average error should sometimes go up, sometimes go down, so that the total error should go down the more points we have. With 10 points, we'd expect the error to go down about 3-fold; with 50 points, about 7-fold. With data like Boro's that have about 1.5 knots error estimates, the expected error for 2 seconds is just 0.5 knots; for 10 seconds, it's closer to 0.2 knots; for 5x10 seconds, even lower.

So, something just is not right here. Instead of boring you to death with more theory and statistics, let's get back to my little drive. The idea was simple: let's just see what actually happens if we go for a drive with a bunch of GPS units, some facing up towards the satellite, some facing down. Somewhere in the middle of the drive, turn the arm around by 180 degrees and see what happens! And, most importantly - what's the effect on the top speed?

Let's start with a look at the speeds:
This is about 15 minutes worth of data from 6 GPS units - a bit too much information to see much. I deleted a few data points in the middle, where I turned my arm around. I also split the tracks into 2 segments for each device, before and after I turned the arm. So each device was pointing up for one segment, and down for the other.

Let's jump straight to the 2 second speed results from the first segment:
Four units show top speeds close to 28 knots: all the units that were facing up, and the GT-31. But the GW-60 watch and the GW-52 unit that were facing down show speeds that are almost one respectively 2 knots higher! Let's look at the data in detail:

The top graph shows the doppler speed, the bottom graph shows the error estimates. What stands out is:
  • Two speed curves are substantially higher than the others: the black (GW-52 #3) and the red (GW-60 #2). 
  • The same two GPS units have error estimates in this region that are about 2x higher than the other units,
  • The observed error is not random. Both the red and black speed curves stay about 2 knots above the other curves for 8-10 seconds (40-50 data points). If the error would be completely random, this would be extremely unlikely to happen by chance; winning the jackpot in a lottery is more likely.
I can only speculate why the error becomes non-random at high SDOP values, but there's a likely guess: when the signal quality gets too low, the firmware starts to rely more on "dead reckoning". GPS chips sometimes use dead reckoning when no GPS signal is available, for example in tunnels. A sensible firmware implementation would start using increasing amounts of dead reckoning as the signal quality decreases, rather than a single "all-or-nothing" threshold. There are several indications that something like dead reckoning is causing the observed error characteristics, but that probably deserves another post.

Another question that arose was whether the problems are specific to the GW-60 watch, since it apparently has a GPS antenna that is smaller than the antenna in the GT-31, and thus possibly inferior. Let's look at the error estimate graphs from the "up" and "down" segments to get an idea. I color-coded the graphs so that blue indicates "up", and red indicates "down". Here's the GW-60 watch:
The SDOP values roughly doubled when I turned my arm so that the GPS was facing down. Here's the same graph for a GW-52:
Pretty similar, again with a marked increase when the GPS unit was faces down under my lower arm. Finally, let's look at the GT-31:
The GT-31 was facing down during the first segment, and up in the second segment. Again, we see much better data accuracy with the GPS facing up towards the satellites. Note that I sometimes had to take my hand into the car to turn, and that I may not always have had the arm oriented perfectly up or down, but the overall trend is clear: all three devices show the same trend towards much degraded accuracy of the GPS is worn facing to the ground.

Here are some conclusions and suggestions from this analysis (some of these points just re-iterate what others have stated many time before):
  • When using a GPS watch, make sure that the watch is facing up during your speed runs! If you use an undergrip on your front hand, wear the watch on the inside or (even better) on your back hand. Or get an armband extended and wear the watch around your bizeps - it will get better reception there. For the best GPS reception and the most accurate data, consider mounting it on your helmet (if you wear one).
  • The GPS analysis software may need to be modified to deal with poor quality data better. For example, the default SDOP cutoff of 3.0 that GPSResults uses for 5 Hz data seems too high, as the example above and Boro's initial experience show.
  • While the examples I have shown here focus on speed over-estimates, it's just as possible that the error goes the other direction, and the speed is under-estimated. Here's an example:
The red track is from a downward-facing watch, and the speed happens to be several knots too low just around the maximum speed for this region. So wearing the watch facing downward during speed runs may not just be the quickest way to pick up a knot or two - it may also be the quickest way to loose a knot. So - keep it up!

Monday, May 8, 2017

Fun With Eddie's Pictures

We had a couple of nice windsurf sessions at the "Kennedy Slicks" in Hyannis Port Harbor yesterday and today. Eddie took some pictures both days - yesterday from Hyannis Port, today from Kalmus, about a mile away. Here is a picture from yesterday:
I'm about 200 feet away from the pier in this picture. The wind had dropped a bit when the picture was taken, so I'm hanging really low. I had wanted to stop a few minutes earlier, but went out again when I saw that Eddie was just setting up to take pictures.

For comparison, here is the picture from today:
In this picture, either I have shrunken a lot since yesterday, or the wall is noticeably taller. Some shrinking happened - I was on a 7.0 today and a 7.8 yesterday, so the mast length was about 460 cm compared to 480. But mostly, the wall was taller.

Some of you may think I'm telling stories. Some may grow concerned about walls in the water suddenly growing. Some may astutely observe it's not the same section of wall in the two pictures. But those of you who have windsurfed at the Kennedy Slicks will remember that the spot is quite tide dependent. We don't have a lot of tide in the Nantucket Sound - the different between high and low tide today was only about 3 feet. According to the the tide tables, the tide was about 1 to 1.5 ft lower when today's picture was taken.

Since we've got the pictures, know the mast lengths, and have too much time on our hands, we can calculate the height of the wall above the water. Yesterday, it was about 140 cm; today, it was a bit above 200 cm. Most of the difference was from lower tide levels; the remainder could be from some small differences in height between the different sections, or from slight chances in wind direction that pushed more water towards shore yesterday compared to today (it was SSW-SW yesterday, compared to WSW-SW today).

Why does it matter, you ask? Well, thanks for asking! You just gave me an excuse to post today's GPS tracks:
I got my top speed of the day in the second run. All top 5 speeds were in the first 30 minutes; after that, I could not break 30 knots again, no matter how hard I tried. But the readings from the nearby iWindsurf meter show that the wind actually was a knot or two stronger in the second half of the session. So I should have been able to go faster after the first 30 minutes!

From the beginning to the end of the session, the tide dropped by about 0.8 ft, according to these tide graphs. That's not a lot, but it made quite a difference in the wind quality close to the wall - the wind became a lot gustier and weaker, at least in the really flat section within a 100 or 200 feet of the pier. Nina, who was freestyling and playing with waves, verified that this was a localized effect - when she sailed away further from the wall, the wind became steadier and stronger.

That a higher wall due to a lower tide will impede the wind more is not exactly rocket science, but what surprised me was that even a change of less than one foot made such a noticeable difference. When I stopped sailing, the predicted tide level was at 1.55 ft. At more than 2 feet, the wind gets a lot steadier; at 2.5 ft or higher, the disturbances from the wall are quite small, even when sailing within 150 ft of the wall. The higher tide levels come with a slight drawback: a lot of water can gush through the big holes that are in the first third of the wall close to shore, which creates "general unrest" in the water in the near-shore section. But then, I need to practice speedsurfing in chop, so I'll borrow a quote from Coach Ned: "It's all good".