NCCOOS Trac Projects: Top | Web | Platforms | Processing | Viz | Sprints | Sandbox | (Wind)

DPWP: A Doppler Profiler Waves Processing Toolbox for raw RDI ADCP and Nortek AWAC data (Beta)

This is a Beta release of the DPWP toolbox (previously named DPWavesProc) designed to process raw wave data from either an RDI ADCP or a Nortek AWAC. The toolbox currently uses a two step process to take the raw output data from either instrument and generate directional wave spectra, plots of these spectra, and various wave field information (significant wave height, peak period, etc.). The toolbox uses Python for the initial processing of the raw data and generates text files which can be input and processed into spectra within Matlab utilizing the code included in the toolbox. The spectra are generated using an edited version of DIWASP created by David Johnson, the original version of which can be found on the web. Please note that this is a very early beta release and thus should be used accordingly. A more complete description of the capabilities of the toolbox can be found in the attached Powerpoint file and Word file, however the individual pieces of the toolbox are described below. below.

Any questions can be direction to Greg Dusek, Dept. of Marine Sciences at UNC Chapel Hill at gdusek@email.unc.edu.

For the full most updated version of the toolbox click here:DPWP Newest Version, or individual pieces of the toolbox can be viewed below.


RDI ADCP Processing

pd0.py [Raw Data Splitter]

This is the initial step in processing the ADCP raw interleaved waves and currents data and is run in Python. The purpose of this code is to take a raw data binary file from an ADCP and split the file into a binary file just including wave data and a binary file just including currents data. The wave file can then be processed in python via the code described below, or in wavesmon if desired. The currents file can be processed using RDI's software or other software currently available on the web.

adcpwaves.py [Processes raw waves data to ASCII files]

This code takes the ADCP binary waves data output from PD0.py and processes it into various ASCII files. These files include seperate files for the pressure data, the range data, the along beam orbital velocity data and system info data. Each of these files are created per wave burst and time stamped accordingly. In other words, if you set up to take wave measurements hourly, the output files will be broken up hourly and have a date and time stamp indicating this. These ASCII files can then be utilized to generate directional wave spectra using the matlab code described below. Please note that in the code the default height for the ADCP transducer face above the bottom is set at 0.4m (at line 142). If your ADCP is different this may need to be adjusted.

specmultiplot.m [Takes pressure,range,orbital and sys info ASCII files and generates spectra through DIWASP]

The specmultiplot code is set up to take the ASCII files created from adcpwaves.py and generate directional wave spectrum for one or more time steps. Simply access the directory in which the ASCII files are stored (along with wavesmon spectra for comparison) and run specmultiplot.m indicating the first and last time step you want to process and the number of hours between each time step and the following items will be generated and saved in that directory:

  • Multiple directional wave spectra using either the uvw, range or along beam orbital velocity data and either the IMLM or EMEP methods (see the the attached document or the DIWASP manual for more info)
  • Polar plots and plots of both 2d frequency and direction of these spectra side by side
  • Plots of the significant wave height, peak period, dominant direction, direction of peak period over time
  • A Winfo matlab data structure which includes all of the wave spectra, as well as the sig height, peak p, dominant dir and dir of peak.

It is important to make sure that the radialtouvw.m, radialwaveplot.m, waveplot.m, Winfo_plot.m and DIWASP are all accesible in Matlab for this to work, as these functions are all called on by specmultiplot.m. These functions can be used for individually for various purposes if desired. It is important to note that the transducer height above the bottom and the magnetic variation are set in the radialtouvw.m function. Make sure to adjust these values if needed. Also, see here for the DIWASP code and documentation although this is also included in the DPWP toolbox.




Nortek AWAC Processing

The Nortek AWAC processing follows the same general idea as the ADCP processing, although with a few changes due to differences between the instruments and the way the raw data is formatted. The steps of the AWAC processing are shown below.

nortek.py [Processes raw data to ASCII files ]

Due to the way the AWAC raw data is formatted there is no "splitter" instead nortek.py takes the raw binary AWAC data, usually a *.WPR files and outputs time stamped ASCII files of the data in the same way that adcpwaves.py does for the ADCP data. In this case the outputs include 3 files containing any currents data collected by the AWAC and then wave data files for each wave burst (ie hourly) of the pressure, vertical range data, along beam orbital velocity data and system info data. These ASCII files can then be input into the matlab code in the same way as the ADCP data.

nortek_specmultiplot.m [Takes pressure,range,orbital and sys info ASCII files and generates spectra through DIWASP ]

The nortek_specmultiplot.m code works in nearly exactly the same way as ADCP specmultiplot code (see above). The output data will be the same as the ADCP code and again will include the following:

  • Multiple directional wave spectra using either the uvw, range or along beam orbital velocity data and either the IMLM or EMEP methods (see the the attached document or the DIWASP manual for more info)
  • Polar plots and plots of both 2d frequency and direction of these spectra side by side
  • Plots of the significant wave height, peak period, dominant direction, direction of peak period over time
  • A Winfo matlab data structure which includes all of the wave spectra, as well as the sig height, peak p, dominant dir and dir of peak.

In the case of the nortek_specmultiplot.m code it is important that the following included functions are accessible by matlab: nortek_radialtouvw.m, nortek_specread.m, nortek_waveplot.m, nortek_Winfo_plot.m. It is important to note that the transducer height above the bottom and the magnetic variation are set in the nortek_radialtouvw.m function. Make sure to adjust these values if needed.

Attachments