Using sound speed profile data

Echoview can use the CTD profile of depth and derived sound speed to adjust acoustic data.

We plan to extend this tool to other file formats in future versions. Please send your suggestions and ideas to

CTD depth and sound speed data

Echoview supports CTD depth and derived sound speed data via the calibration settings CtdDepthProfile and SoundSpeedProfile in an ECS file. Derived sound speed (ms-1) can be calculated using CTD data. For more information about sound speed equations refer to Sonar calculator algorithms.

Sound speed profile characteristics

A SoundSpeed-Depth profile provides:

  • A sound speed for any depth/time.
    • Echoview models the speed of sound in water with respect to the properties of the water it travels through. A simple differential equation and integration is used to express Depth = f(profile segment sound speeds, time, profile segment depths) for SoundSpeed-Depth profile segments where Δv ≠ 0.
  • Sound speed profile end-points are handled as constant sound speed values that extend to minus infinity and plus infinity in depth.

A general differential equation for velocity where Δv ≠ 0 can be expressed as:

Rearrange the terms and integrate with respect to dt:

This expression, after further mathematics, application of initial conditions and simplification for a known SoundSpeed-Depth profile becomes:




These derived equations are also used:




dT is the depth (m) traveled in the profile segment in a given time T.
v0 is the start speed (m/s) of the SoundSpeed-Depth profile segment.
v1 is the end speed (m/s) of the profile segment.
d0 is the start depth (m) for v0 in the profile segment.
d1 is the end depth (m) for v1 the profile segment.
B is defined as:

vd is the speed (m/s) at depth d.
dT is the distance (m) traveled in the profile segment in a time T.
Td is the time (s) taken to travel a distance d in the profile segment.


  • The size of the CtdDepthProfile and SoundSpeedProfile arrays must match.
  • The ECS file supports a single sound speed profile.

Original ping

The original ping data provides:

  • the start time of the ping
  • the end time of the ping
  • the start and end times for any sample in the ping

For further information refer to About start and stop ranges.

New ping and resampling

New pings

Original ping time series with constant sound speed. New ping depth series with sound speed profile.

Figure 1. Left, the original ping sample-time/depth/range series under a single sound speed. Middle, a simple SoundSpeed-Depth profile with segments marked. Right, the new ping sample-depth series under a sound speed profile.

Sample depths of the new ping

The new ping takes its ping start, ping end time and number of samples from the same values in the original ping and takes sound speed from the SoundSpeed-Depth profile. The new SoundSpeed profiled ping is set up to have regular-depth samples.

The total depth of the new ping is calculated by summing the depths traveled with respect to the original ping start time and original ping stop time and the inherent time arising from the SoundSpeed-Depth profile.

Simple SoundSpeed-Depth profile with two sound speeds

Let the transducer point down so that Range = Depth. The SoundSpeed profile is displayed in Figure 1.

  1. The new ping start depth is calculated by using the original ping start time. The start of the SoundSpeed profile at D(0) = 0m is nominally at zero seconds. The profile segment D(0) to D(1) is where Δv = 0. Equation (2) used to calculate the time traveled to D(1).
  2. The profile segment between D(1) and D(2) is where Δv ≠ 0. Equation (4) can be used to calculate the time traveled between D(1) and D(2).
  3. The profile segment between D(2) and D(End) is where Δv = 0. Given the original ping stop time, we can infer the time traveled between D(2) and D(End) and with equation (2) can calculate the distance traveled.
  4. The new ping sample interval is calculated using the new ping start depth, new ping stop depth and number of samples in the ping.
  5. New ping sample interval = (New ping stop depth - New ping start depth)/Number of samples

A complex SoundSpeed-Depth profile is handled with similar techniques.


Figure 2. Ping SoundSpeed profiled samples with irregular sample intervals resampled to a SoundSpeed profiled ping with regular sample intervals.

Figure 2. Ping SoundSpeed profiled samples with irregular sample intervals resampled to a SoundSpeed profiled ping with regular sample intervals.

Sample resampling is required because transformed sample data with respect to a SoundSpeed-Depth profile doesn't have regular sample intervals. Resampling of sample values uses a weighted mean in the linear domain and accounts for the proportion of the original sample that contributes to the new sample. Resampling supports SoundSpeeds between 1400 to 1700 m/s.


See also

About CTD data
ECS files CtdDepthProfile