Closed emiliom closed 2 years ago
For EK80:
transceiver_software_version
@leewujung wouldn't this variable be better placed in the
Sonar
group, where the convention attributesonar_software_version
is already found? I suggest moving it there, and not adding aping_time
dimension at this time; let's leave that addition to a future echopype version.
I agree with the above.
We have arrived at a consensus for EK80! Summary of dimension decisions for EK80.
EK80: Sonar/Beam_group1
/Sonar/Beam_group2
(channel, ping_time, range_sample, beam)
backscatter_i/r
→ backscatter_i
is only in Sonar/Beam_group1
angle_alongship/athwartship
→ only in Sonar/Beam_group2
(channel, ping_time, beam)
: these are vectors (dim: channel
) in the data file and in reality does not vary across ping_time
beam_direction_x/y/z
angle_offset_alongship/athwartship
angle_sensitivity_alongship/athwartship
equivalent_beam_angle
beamwidth_twoway_alongship/athwartship
beam_type
have dims (channel, ping_time)
transducer_offset_x/y/z(channel)
Note: this will be moved to the Platform
grouptransmit_duration_nominal(channel, ping_time)
transmit_power(channel, ping_time)
sample_interval(channel, ping_time)
slope(channel, ping_time)
transceiver_software_version(channel)
Note: this will be moved to the Sonar
groupchannel_id
will be “removed” in the future as it will become our coordinate channel
see #566frequency_start/end(channel, ping_time)
will have beam
added as a dimension → only in Sonar/Beam_group1
Note that we will not be addressing the AD2CP sensor in this issue, this will be left for a future version of echopype. Thus, the last items to discuss are the AZFP sensor dimensions.
AZFP: Sonar/Beam_group1
(channel, ping_time, range_sample, beam)
backscatter_r
(channel, ping_time, beam)
: these are vectors (dim: channel
) in the data file and in reality does not vary across ping_time
equivalent_beam_angle
gain_correction
sample_interval
should have dims (channel, ping_time)
, but currently echopype has it as just channel
transmit_duration_nominal
we should add ping_time
as a dimension to be consistent convention (it currently only has channel
as a dimension)temperature_counts(ping_time)
tilt_x/y_count(ping_time)
tilt_x/y(ping_time)
cos_tilt_mag(ping_time)
DS(channel)
EL(channel)
TVR(channel)
VTX(channel)
Sv_offset(channel)
number_of_samples_digitized_per_pings(channel)
number_of_digitized_samples_averaged_per_pings(channel)
The dimensions for AZFP listed above all look good. I just have some comments below on where specific form of data come from, and placement of specific variables.
sample_interval
should have dims(channel, ping_time)
, but currently echopype has it as justchannel
- For
transmit_duration_nominal
we should addping_time
as a dimension to be consistent convention (it currently only haschannel
as a dimension)
In the same data file AZFP does not have the flexibility like EK systems to change sample_interval
or transmit_duration_nominal
over time (hence only a channel
dimension straight from the data), but we could run into situations when combine_echodata
is used and we would need to accommodate having different sample_interval
over time, so having dims (channel, ping_time)
is a convenient change for both variables.
- Variables not found in the convention, should we leave them alone?
I have some suggestions where the variables should be moved to. I was definitely not thinking about the variable placement earlier.
temperature_counts(ping_time)
tilt_x/y_count(ping_time)
tilt_x/y(ping_time)
cos_tilt_mag(ping_time)
DS(channel)
EL(channel)
TVR(channel)
VTX(channel)
Sv_offset(channel)
number_of_samples_digitized_per_pings(channel)
number_of_digitized_samples_averaged_per_pings(channel)
Based on our Thursday meeting, we have come to a consensus on the variable dimensions of the beam group for AZFP. To summarize, here are the final decisions on the dimensions for AZFP:
AZFP: Sonar/Beam_group1
(channel, ping_time, range_sample, beam)
backscatter_r
(channel, ping_time, beam)
: these are vectors (dim: channel
) in the data file and in reality do not vary across ping_time
equivalent_beam_angle
gain_correction
ping_time
to sample_interval
and transmit_duration_nominal
to comply with the convention. These variables will now have dims (channel, ping_time)
.temperature_counts(ping_time)
tilt_x/y_count(ping_time)
tilt_x/y(ping_time)
cos_tilt_mag(ping_time)
DS(channel)
EL(channel)
TVR(channel)
VTX(channel)
Sv_offset(channel)
number_of_samples_digitized_per_pings(channel)
number_of_digitized_samples_averaged_per_pings(channel)
We are ready to close this now. 🎉
(Updated 2022-3-30). Add a
beam
dimension toBeam_groupX
groups. We've decided to always include thebeam
dimension, instead of relying on an implicit length-1 dimension.beam
dimension is not used explicitly and is effectively length 1. We'll need to add it.quadrant
that is conceptually equivalent (for our purposes) to thebeam
dimension as defined in SONAR-netCDF4 v1. We will need to rename it tobeam
.Older notes (just for reference):
beam
)quadrant
(WJ: there is an extra dimension quadrant — you can call them separate beams, but since Simrad use quadrant i used that for our first shot though I think it should be probably sector since it is not always 4)beam
dimension. Single-value dimensions can be implemented interchangeably in a netcdf file either explicitly with the dimension or implicitly (refer to the CF convention). In SONAR-netCDF4, since there is an explicitbeam
dimension, single-beam data would be expected to be stored withbeam
as a dimension.beam
dimension (ie, >1 beams per Beam subgroup? Based on "beam mode" alone?)