Significant Waves

Significant wave heights at Station 44025

Last week a major snowstorm travelled across the continental United states, becoming a strong nor’easter over the Mid-Atlantic. While snowfall amounts in New Jersey were far less than some had predicted, the wind and waves that battered the coast were still quite severe. Dunes in Mantoloking, NJ that were heavily damaged last fall by Hurricane Sandy were again breached, causing flooding and further hindering repairs.

Wave heights at NOAA Station 44025, just 43 miles off the coast of New Jersey, reached 18.4 feet on the night of March 6th. The blue line above shows the significant wave heights measured by the NOAA buoy over the course of the last week.

The red horizontal lines signify the percentage of hourly wave measurements recorded between 2005 and 2012 that were less than the indicated height. The top line, at 31.6 feet, represents the maximum wave height reached during the 8-year record, which occurred as Hurricane Sandy made landfall.

The maximum wave height during last week’s storm reached the 99.9th percentile. Only 1 hourly measurement in 1000 hours of measurements (the equivalent of 42 days) ever reach this level. After the peak, wave heights remained between the 90 and 99.9th percentile for 3 days, which indicates the significance of this storm.

Matlab tip: If you’re interested in calculating significant wave heights at various percentile levels at other stations or for other parameters, here’s some code to play with.

% Load in the concatenated NDBC Datafile
data = textscan(fid,'%4f %2f %2f %2f %2f %f %f %f %f %f %f %f %f %f %f %f %f %f %*[^\n]','HeaderLines',2,'CommentStyle','#');

% Calculate time and remove bad datapoints
dtime = datenum(data{1},data{2},data{3},data{4},data{5},0);
wvht = data{9};
wvht(find(wvht==99)) = NaN;

% Calculate percentile levels and convert meters to feet
wvd = sort(wvht(find(~isnan(wvht))));
disp([.9 wvd(round(length(wvd)*.9))*3.28084]);
disp([.99 wvd(round(length(wvd)*.99))*3.28084]);
disp([.999 wvd(round(length(wvd)*.999))*3.28084]);
disp([1 wvd(round(length(wvd)*1))*3.28084]);