Sunday, September 16, 2018

Using Buoy Data and BuoyCAMs to Study Passing Storms

When we learned that Hurricane Florence was headed toward NDBC BuoyCAM 41049, we set up a convenient graphic way to monitor the relative positions of storms to this and other buoys in its track so we could know when to look at the pictures.  The pictures update every hour, so we need to catch them at the right time to learn what we can.

Finally a working system emerged to view all the BuoyCAMs in the form of a KML file that loads into Google Earth (GE) superimposed onto the NHC storm track chart that automatically updated every hour.  We even eventually got it working in smart phones. Then when all was in place and working, sure enough, Florence went by Buoy 41049 in the middle of the night when the cameras could not see it!

For those unfamiliar with the BuoyCAM program, here is a short video overview.

Missing the storm's closest point of approach was a disappointment, but not the end of the world.  The storm had to approach several more data buoys and one more BouyCAM on the way to the coast, and we could try again, which we did.  Also this whole study is primarily to prepare for other systems that will come by later in the season.

I have yet to write up the actual science (marine weather and navigation) that we might glean from these observations; for now we are just getting the tools in place.  Much of the background is covered in our new book Modern Marine Weather, 3rd ed, but I will add focused notes on the observations, once we get more data.  In short, we want to study conditions on the edges of these systems when we still have time to maneuver around them. So we are looking at pressure, wind speed and direction, and sea state when available. With the BuoyCAMs, there is the hope that we can learn about the sea state and approaching cloud patterns.

In each case, we need to correlate the data we see with the actual range and bearing to the storm at the time of observation, which we get from other sources. For tropical cyclones in the Atlantic and Eastern Pacific we will get this from the NHC.  There is only one BuoyCAM near HI, which could see storms coming up from the SE, in which case we go to the CPHC for that data. We have two Atlantic cases to look at below to see what we might learn.

First there is the issue of what exactly are we looking at in the pictures? Each BuoyCAM has 6 cameras on it dividing the horizon into 6 segments, 60º across. The one on the left has a true direction label on it. The location of that direction within the frame has no significance. We can think of it as the approximate direction of that camera.  Below is how we concluded that based on measured bearings to known sunrise directions.

For each of these cameras, we used their Lat-Lon that we get from NDBC and the UTC of the picture to then go to the USNO website to compute the precise true bearing to the sun. Then this fixed scale was placed on the image sequence to locate the bearing of the left-side camera. In each set, the white arrow and number points to the direction of the labeled bearing.

The conclusion is that the bearing shown marks the general direction of that camera, but not precisely. The bottom 3 were all close, within about ± 15º, but the top one was off 30º. We have since improved our method of scaling these pictures (shown below) and indeed our new system seems to have found a buoy whose camera was stuck on the wrong direction. But in looking at very many of these, that is the only one we found off.

Now we can look at the sequence observed as Florence approached BuoyCAM 41049 so you can see what the sequence looks like, with no adjustments. The top is most recent, after the storm went by; the bottom is the previous day.

We notice the seas were rough at sunrise after it went by—the surface slope we see in the right-hand pictures at sunrise 0510 AST, Sept 11, are waves, not the horizon viewed from a tilted camera—but we do not see much interesting in the clouds before or after... at least without further manipulation. If the BuoyCAM is under a band of squalls it seems to block out any definition of the storm cell or wall cloud itself.  At the time this storm passed the buoy (06 to 09z on Sept 11) it was a hurricane with sustained winds of 125 kts, gusting to 150. The center of the storm was 107 nmi off in direction 148T.  At the location of the buoy the winds were 35 kts gusting to 45. We don't have much info yet, but for a storm of this size, every mile you get from its center helps. Here the 150 kts along the eye wall dropped to 35 kts at 107 nmi off, which is a good place to remind mariners to review the 'Mariners 1-2-3 Rule" and the "34-kt Rule," which are explained starting on page 44 of indispensable Mariner’s Guide For Hurricane Awareness In The North Atlantic Basin

After the storm passed this buoy, it then approached another BuoyCAM, 41004. The raw data are shown below, again most recent at the top, then preceding hours below.

This is the one we ran across the camera problem.  In the forth one down from the top (valid at 1410z), we can see clear indication of the sun direction. We know the location and time, so we can compute that the sun was 38º above the horizon at that time, in direction 115 T.  The sun bearing on that scale would be about 231 + 60 = 291, which is north of west at a local time of about 10 AM.

We also noted that the 231 label for the left camera had not changed all day, whereas these typically swing around with the wind—they are on a buoy, on a chain.  We contacted NDBC to ask about this to learn that it is now on a maintenance schedule, but it could be a while before they get to it. These buoys are not like satellites that can be remotely controlled and even repaired. A real ship has to go there and real people have to fix it.  We have looked at a lot of these images from many buoys, and this is the first one we found with this error. If you want to be sure your scale is right, then it is safest to check the buoy at sunrise or sunset and compare to the true sun bearing at the time. Here is a video on how to check BuoyCAM bearings, which includes a way to get archived images, which is not documented elsewhere... sorry that it is a bit long (18m) to go over these details that might not be of interest to all readers.

How to download BuoyCAM images, present and archived, and then how to add a scale to them using a Mac. A PC version will be added shortly—the process is the same, it is just the graphics viewer programs that are different.  The overlay file needed can be downloaded at 

For the time being, we ignore the posted direction label shown and scale them to match the known sun direction at 1410z. We have also aligned the pictures and added a full scale, as explained in the video above.
With this view (using the corrected scale) we do not immediately see any localization of the storm, but we do see notable clear weather to the S-SW at 1510 and 1610z.  We can check that observation with a satellite image of the storm, the closest in time we have being at 1647z, shown below.

This is consistent with the BuoyCAM (showing clear to the SW at this time) and does show that we can, on some level, imagine the mariner's perspective from the buoy. Keep in mind as well that this is dynamic. A few hours earlier this would not be the case, which is also reflected in the pics. The storm was moving W-SW at just 3 kts, but the clouds (squalls) were rotating counterclockwise.

More to the point, the storm center is to the NE at 15 to 16z.  To get better perspective on that, we recenter the series of pictures above to get the following />

Now we get a better feeling of what mariners might see looking around the horizon. Not only would they see clear skies to the SW, on the other side of the horizon they would see an ominous cloud to the N-NE, which we can only guess would be more impressive if we had a higher camera view.  We get the best view of this at 1510z. Zooming in on 1510z, you can see under the clouds to a more prominent barrier. The center of the system was 110 nmi off at this point, and the eye diameter of this now strong tropical storm was 15 nmi.

This is some form of a "bar cloud," which can be watched to monitor its relative direction of motion.  If it just grows bigger and keeps coming from that direction, the storm is headed toward us. If it moves to one side or the other, it could be going by to the side. That type of observation depends on the squalls, which come in bands, spiraling around the strom, and these could obliterate any such detailed observations.  Hopefully as we get more image data in these conditions we can learn more about that type of observation.

In preparation to looking to the actual Buoy data rather than just the images, here is the full NHC Advisory 61 description issued at 9/15 at 1500z:





    64 KT....... 60NE  60SE  60SW  20NW.
    50 KT.......100NE  80SE  80SW  40NW.
    34 KT.......170NE 150SE 140SW  80NW.

12 FT SEAS..330NE 240SE 120SW   0NW.


The buoy at this time is 110 nmi SW of storm center, which means the forecasted winds were 34 kt, a forecast that extended out to 140 nmi in this quadrant according to the Advisory. The actual winds were a bit less, 25 to 27, gusting to 35, but well within the expected variance, as clearly warned.

The above notes outline the type of study we can do watching the buoys as storms pass by. The NDBC has a series of these studies archived, which teach us much about real observations in the vicinity of tropical cyclones. Here is one of their examples showing Hurricane Rita passing over several buoys. We have used that data to confirm our "generic hurricane" we use in our textbook, Modern Marine Weather, 3rd ed. The archived NDBC results, and our own meager beginnings here on use of BuoyCAMs, are very encouraging, so we will continue to work on ways to learn more from the data.

BuoyCAMs employ the NDBC's  SCOOP (Self-Contained Ocean Observing Payload) system of using several sensors in one modular unit. The images are then transferred from the buoys to NDBC via the Iridium RUDICS network. The program began in 2014/15 and is expanding still. We can look forward to even more informative images in the future as more BuoyCAMs go online with even better cameras. Think of what has happened recently with cell phone cameras to imagine the potential.

I conclude by admitting what has been in the back of my mind from the onset of our BuoyCAM studies: It is one particular picture we have had in all of our training materials, since first editions.

Figure 4.5-7. Photograph of Hurricane Klaus in 1984, courtesy of Charles Brown, who was taking part in NOAA’s Voluntary Observing Ship program at the time he took this photo, less than 200 nmi from the wall of the storm, uniquely visible in the picture centered over the headland on the left. On the right are several squalls. Notice how calm the water is at this distance off and how clear the sky. Klaus Lasted from Nov 5 to 13, with peak winds of 80 kts at 980 mb on Nov 9

In the past 34 years of looking, we have not found anything at all similar to this. But just like the gold miner who keeps going back to the hills, we keep looking. There is, of course, a lot more to find besides unique images like this one.

Monday, September 3, 2018

Finding Longitude From the Time of Sunset

With accurate time available, there are several ways to find your Lat and Lon without a sextant if you ever lose GPS data. We cover each of these in the book Emergency Navigation. In this note we work through one example, which is just noting the time of sunrise or sunset. The principle behind this sunset method is easy enough to understand, but as we show here there are details to executing it, and a couple different approaches.

The measurement was kindly provided by meteorologist Angeline Pendergrass  during a research voyage on the RV Thomas G Thompson in the Strait of Juan de Fuca. She took the data from the aft deck at a height of eye estimated to be 10 ft above the water.

This type of sight requires seeing the top of the sun (upper limb, UL) disappear below the visible sea horizon. This observation is not quite as common as we might guess, even at sea. More often than not, there is a low layer of clouds on the horizon so we do not get to see a nice clean crossing of true sea horizon.

Since she did not have a watch at hand, the procedure was to take a cell phone picture of the sunset, just as the upper limb dropped below the visible horizon, which marked that time in her phone. Then she proceeded to the wheelhouse and took a picture of the GPS screen, which showed the UTC and the location of the vessel, which was drifting at the time. The cell phone time showed the delay was 1m 7s, so she could then figure an accurate time of sunset with the associated position.

The results were:
Sunset (upper limb crossing the visible horizon)
03:17:49  April 23, 2013 UTC
Lat 48º  16’  19.5493’’ N
Lon 123º  58’  57.5673’’  W
Height of eye 10 ft 
[I just found this article on my desktop, started 5 years ago, and finishing it now for our cel nav and emergency nav courses.]

Converting to decimal minutes, we will round this to 48º 16.3’ N, 123º 59’ W, which represents the true position of the vessel at the time of the sight.

We can solve the sunset method several ways. Some are easier in principle; others are faster to implement. We start with one that does not require any knowledge of celestial navigation, and follow it with a much faster method for those trained in cel nav.


We can find our Lon using Sunrise-Sunset Tables, but these tables come in several formats. A common type lists the times for the specific standard meridian (the longitude center of a time zone) of a specific place, using that specific time zone, such sunrise and set times for Seattle. Generalizing that type of table to our needs adds another layer of complexity to the process. Luckily, there are sunrise and set data in Tide Tables and the Nautical Almanac that are more generalized. These tables rely on the definition:

UTC sunset (Lat 1, Lon 1)  =  UTC sunset (Lat 1, Lon 0) + (Lon 1) x (1 hr/15º).

In words: the UTC (once called GMT) of sunset observed at (Lat 1, Lon1) is equal to the UTC of sunset at Lat 1 and Lon = 0 (Greenwich meridian) plus the time it takes the sunset to get to us as it moves west at a rate of 15º of Lon each hour.  (In East Lon, the last term is negative.)

We can rewrite that to solve for Lon:

Lon  = (15º/1 hr) x (UTC sunset observed – UTC sunset at Greenwich)

Our Lon is just the difference between observed sunset time and the sunset time at Greenwich at the same Lat converted to degrees at the rate of 1 hr = 15º, which means that 1 min = 15', and 4 sec = 1'

We observe the first term by timing the sunset, so the whole process boils down to looking up the time of sunset at Greenwich on the date and Lat of interest.

You can go online and ask for that time ( and you will get 1902 UTC for this example, which is given rounded to nearest whole minute, but assuming we do not have internet when we need to find our Lon, we have to use the standard tables, which always requires some interpolation, followed by the time-to-angle conversion. Sample USNO online screens are below. They also offer options to print out various tables.

Top is input page; bottom is output page from USNO site.

The virtue of using the sunrise sunset tables in the Nautical Almanac is they provide just what we want, namely the values of sunrise and sunset in UTC as observed at Greenwich.  Normally, the navigator has to then apply a Lon correction to learn what to expect at their location, but now we are working this backwards. Below is a sample of a full daily page of the Almanac with the sunrise/set data marked.

The Almanac lists only one set of sunrise/sunset data on each page that covers 3 days. The data given are always for the middle date, so we are lucky here in that we do not have to interpolate for the date. If we wanted this on Apr 22, we would have to interpolate between Apr 20 and Apr 23 before we interpolate for Lat. Since we have the right day in this case, we just need to interpolate for the Lat.

50º 00’ N 19:06

48º 16.33 N hh:mm

45º 00’ N 18:56

At this place and time of year, the sunset time increases with Lat by 10 min (1906 - 1856) per 5º of Lat (50 - 45).

We are 3º 16.33’ (3.27º) above 45º, so we find  sunset time at Greenwich at this Lat as:

hh:mm = 18h 56m +(10m/5º) x 3.27º = 18 56 + 6.54m = 18h 62.54m = 19h 02m 32s.

Our Lon is then ( 03h 17m 49s - 19h 02m 32s) converted to degrees.

This is a negative number, which might pose some confusion, but the solution in practice is easy; just add 24 hr. You can think of this (Figure below) as the time it takes the sunset to move west from 1902 to midnight (24:00:00 - 19:02:32) + time it takes to get to us from there (03:17:49 - 00:00:00).

Schematic depiction of the sunset moving west at the rate of 15º of Lon per hour.

Thus we have this sum to make of hr, min, and sec,  done as separate columns. The answer is our "Lon" is 8h 15m 19s, which we then convert to time at the rate of 1h = 15º, 1m = 15', and every 4s = 1'.

Thus the Lon we find from the time of sunset using sunset tables is 123º 50' W, which is to be compared to our actual location of 123º 59' W.

This is 9' of Lon wrong, which at 48 N corresponds to 6 nmi (9 x Cos48). This is well within the expected uncertainty of this sunset tables solution. The cel nav sight reduction in Solution 2 below is more accurate, but even using that method we have to accept an uncertainty of about  ± 5 nmi, based on many measurements of our own and others.  This is mainly due to uncertainties in atmospheric refraction, plus the sunset tables method has rounded base times and no correction for height of eye—someone high in the rigging will see the sunset a bit later than someone on deck.

Before we do the cel nav solution, just a note that using sunset tables included in official NOAA Tide Tables (figure below) there is usually an additional interpolation required. Also note that the sunset times do vary slightly (±1 min or so) over the leap year cycle, so you either have to have the right year or one that is exactly 4 years different from the right year.

Sunrise sunset tables from the official NOAA Tide Tables.  This is the only set we have around at the moment, which is not for the right year. It is just intended to show the format.  (This is a 2018 write up of an article started in 2013!) 


If you know celestial navigation, an easy solution is to just treat this timing of sunset as if it were a normal sextant sight of the upper limb of the sun, and then do the sight reduction with a trig formula or with a cel nav program that computes the sight reduction. This approach has to be distinguished from solving the sight reduction using Sight Reduction Tables and plotting. It is possible to solve it that way, but that traditional approach takes more time and more graphic interpolation.

In this computed sight reduction approach, we have sextant height Hs = 0º 0.0’ (UL) at UTC = time the upper limb crossed the visible horizon. In this application we would have index correction = 0.0’ (no actual sextant involved) and height of eye (HE) = 10 ft in this particular sighting.  That is all a celestial navigator needs to know to find a line of position (LOP) from that sight. Since we are looking roughly westward at the time, this would be a roughly vertical LOP on the chart, and the place our known Lat crosses that LOP marks the Lon we are seeking.

A key point to keep in mind for this, and other direct determinations of Lon, is we are free to assume we know our Lat precisely. We have many ways to find accurate Lat, even without accurate time. Finding Lon is always the more interesting challenge.  We can get Lat very easily from a noon sight, or any two star sights, even if the watch used is wrong—we just need to know the time difference between the two star sights. A hack watch with unknown error will give us that.  In this type of star sightings, the Lat will be right, but the Lon will be wrong by an amount directly proportional to the watch error  at the rate of 15’ Lon error for each 1 min of time error.

Thus we will assume we know our Lat, and figure our Lon from the time of sunset.  So for now we just choose some random value of what we might have thought our Lon was before we did the sight.  Let us say our DR Lon before the sight was 124º 05’ W. In this case we actually know our true Lon, so our goal now is to assume some wrong Lon and then discover how wrong it was.

Next we do a normal computed sight reduction using HE = 10 ft and index correction IC = 0 and  Hs (UL) sun = 0º 0',  UTC = 03h 17m 49s on April 23, 2013, and we do this from a DR position of 48º 16.3’ N, 124º 05.0’ W. Also, looking ahead, we will use an air temp 49º F and a pressure of 1033 mb.

You can compute this sight reduction various ways. A convenient free solution for Windows computers is the Celestial Tools program of Stan Klein.  Or solve it directly with a trig calculator using the solutions we present in our online glossary under Navigator’s Triangle... although when you go that route we lose a lot of the efficiency. I want to stress that even though it is taking me some long discussion here to explain the procedure, once you have a good cel nav program in hand, the entire process takes seconds, not minutes!

The result of your computed sight reduction will be an intercept very close to:  a = 4.5’ A 290.1. Various programs may differ by a few tenths.  To check your  computed solution by hand you can use the USNO value of Hc (below), and apply the dip (-3.1') and altitude correction (-50.2') from the Nautical Almanac. Plus when doing it by hand we have to apply the additional altitude correction that depends on temp and pressure. This is done automatically in most computer solutions.

Angie's data did not include air temp and pressure, but we can look these up for nearby buoys (NDBC) at the time of the sight to find they were 1032 mb and 48º F.  Sample below

Since the standard is 50º F and 1010 mb, we have a small correction due to pressure alone, as shown in the Nautical Almanac table below.

Temp and pressure corrections from the Nautical Almanac. 

In our example, there is a -1.1' correction but notice that at more extreme values the correction on the horizon (Apparent altitude = 0) can be notable. These corrections are made automatically in most computer solutions, so you just enter temp and pressure. They might not even inform you of how much correction they made. And again I stress that these corrections have an uncertainty in them that is at least as large as the correction itself. These timed horizon sights have, overall, an uncertainty of about ± 5', with maybe slightly better average if done carefully in normal conditions.  Below is the raw data for a manual check of your favorite program.

Data from USNO site that we link to at

Once we have our sight reduction done and found a = 4.5’ A 290.1 (again, this is seconds to enter the data and get the result), we can plot to get the answer very quickly. Below is a plot of the LOP using OpenCPN.

Plotting a celestial LOP as a route segment from a plotted waypoint in OpenCPN.

Here we plot a waypoint at the DR position that we used for the sight reduction, then create a one-leg route in the direction Away from 290 T (290-180=110) with a length of 4.5 nmi. Then we draw another route leg perpendicular to that (ie in direction 290+90=020) and that is our LOP.

Then draw in the known Lat line and measure the Lon where it intersects the LOP. In this case, we are very close. Just 0.75 nmi off the true position.  This is a satisfying result (clearly better than the sunset tables solution), but we still have to consider it fortuitous. Nevertheless, it is a superior solution, because it accounts for the height of eye and the additional altitude corrections for temp and pressure. Also we keep in mind that even though a procedure does have a known statistical uncertainty based on many measurements from various sources, it does not mean it will be wrong by that much.

Regardless of how you solve it, this method of finding Lon belongs in the navigator's bag of tricks and it also stresses the value of wearing a watch with known rate so you can always figure accurate UTC.  See our recent note on how to rate a watch for accurate time.

A passing note: Load lines on the vessel indicate that the height of eye may have been a bit higher than estimated, but this factor enters the sight reduction as a square root. So even if it were 13 ft instead of 10 ft, the intercept value would only change by 0.4'. Nevertheless, this is a reminder that in this type of sight and indeed all cel nav sights, we are better off using data as accurate as possible. In this example, this potential difference is not crucial. If the HE was 13 and not 10, then the error was just over 1 nmi, not 0.75 nmi, but if you are taking sights routinely from a higher deck, at some point it is valuable to just drop a line over the side and measure it. Only has to be done once.