Using archived acoustic data to map krill along the Antarctic Peninsula

In this project, we re-analyzed archived data from an Acoustic Doppler Current Profiler (ADCP) to investigate the distribution of key zooplankton/micronekton, particularly Antarctic krill, in the Southern Ocean along the western Antarctic Peninsula.

Every year, the Palmer Station Long-Term Ecological Research (LTER) project runs a research cruise in the Southern Ocean, tracing a sampling grid along the western Antarctic Peninsula.

The Palmer Station LTER sampling gridlines. Each orange dot represents one sampling station, spaced 20km apart on each line. Lines are spaced 100km apart from each other. Not all stations are sampled in all years.

The vessel has a hull-mounted Acoustic Doppler Current Profiler (ADCP). An ADCP is an acoustic instrument that uses sonar to measure water velocity throughout the water column - it’s used to map oceanographic currents and water movement. The ADCP sends out pings of sound and listens for the returning echoes. It records two properties of the echoes: the echo frequency and the echo intensity (or loudness). The echo intensity gives a sense of the presence and size/density of objects in the water below the ADCP - a dense school of krill will have a very loud echo, while a mostly empty water column will have a very quiet echo.

I reprocessed ADCP data from Palmer Station LTER cruises from 2005 through 2018 to examine the horizontal and vertical distribution of organisms in the water column. Through Duke Data Science’s summer undergraduate research program, I mentored a team of 3 undergraduates, and we put together a GUI using Python’s ipyleaflet to allow us to visualize these data. A JupyterLite version can be run in browser here, or there’s a demo video below since JupyterLite can be a bit finnicky and doesn’t like all browsers!

Data processing pipeline

The ADCP records data in a custom binary encoding unique to the manufacturer. Unfortunately for me, existing ADCP processing software focuses on creating spatially averaged estimates of water velocity and does not save the echo intensities, nor does it convert many of the other measurements tracked by the ADCP (such as temperature at the transducer)… so I had to use the manufacturer’s manual and write code to parse the binary myself. I first convert from the ADCP’s raw binary data files to human-readable csvs.

The ADCP records a relative value of the echo’s sound power as an 8-bit number representing the electrical signal induced in the transducer by the echo. Unfortunately again, the relationship between this value and the actual echo intensity in real-world units is non-linearly related to a host of variables including temperature at the transducer, water temperature, and water salinity, and it must then be corrected for depth. I then perform this conversion, using the sonar equation to calculate the approximate echo intensity in real-world dBs.

The code to convert from the raw ADCP binary to echo intensity is here.