Synthesizing Marine Data Sets using MATLAB

Diane Fribance
Coastal Carolina University
Author Profile


Students use MATLAB to analyze an oceanographic data set collected in an estuary on a class boat trip, and put it into context using time-series data downloaded from online sources. Some basic oceanographic knowledge is required, and data sets are provided to students as .mat files. Students work in a Live Script to integrate the assignment and student solutions all within the MATLAB environment. The data focus on salinity and turbidity values recorded after the passage of Hurricane Matthew in 2016.

Used this activity? Share your experiences and modifications

Learning Goals

By the end of this lab, students should be able to:

1. Use MATLAB for data visualization, building on skills from earlier assignments.

2. Use 'find' to remove data points that do not represent valid measurements.

3. Make use of time-series data to help interpret spatial data collected over a shorter time interval.

4. Produce averages and standard deviations with depth profile data, to demonstrate the importance of significance comparisons.

5. Evaluate differences between diverse data collection methods.

Context for Use

This assignment is given to undergraduates as a lab activity in a 300-level elective. Pre-requisites for the elective include basic statistics and introductory marine science courses. Students in the course range from sophomores to seniors, and the course is focused on learning to use ocean instrumentation to collect and analyze research data sets. This lab is given about halfway through the semester, after students have completed 5 other assignments using MATLAB, so it is assumed that they know how to use some basic functions without needing detailed directions. The activity is expected to take approximately two hours, including time to review skill sets listed below.

Skills students will need prior to starting this lab include:

1. Examining depth profiles of ocean/estuary data sets,

2. Basic figure creation and use (use 'plot' with two variables, label figure axes, add legend to figures, zoom and pan in a figure),

3. Access functions (either native to MATLAB or supplied),

4. Understand use of scripts in MATLAB, as they will be working with a variant on a basic script for this exercise (live script),

5. Use the 'find' function,

6. Use indices determined by 'find' to set values of a variable,

7. Understanding what NaN values represent and the tradeoffs of including them in averages.

Description and Teaching Materials

Students need access to MATLAB and the data file and function below, as well as the live script template. The live script includes descriptions of variables within the files. In October 2016, our class spent several hours collecting vertical profiles of temperature and salinity at stations 1-4 in Winyah Bay, SC (see map) and surface and bottom water samples which were processed for turbidity. Three replicate profiles were obtained at each station. Assignment could be extended by adding t-test or other statistical comparisons for the vertical profiles if the statistics package is available to students.

External Data Sets Template (MATLAB Live Script 43kB Jul20 18)

winyah 2016 data (Matlab .MAT File 115kB Jul20 18)

find mean CTD data (Matlab File 1kB Jul20 18)


Grading is based on successful reproduction of the requested figures, as well as answers to the questions. Answers are paragraph format and are graded manually. An answer key is provided here to give guidance. Others utilizing this exercise may want to use their own data sets, or adjust the questions as appropriate, as this particular assignment helps prepare students to be familiar with the area they will be conducting their own research projects, Winyah Bay, SC. A map of station locations is also provided for context.

References and Resources

Real-time and archived data from the NERRS NIWB (North Inlet-Winyah Bay) stations can be accessed at: NERRS CDMO