Bottom Detection L0
Reading the .bot and .raw files together and then generating the detected_seafloor_depth values. Note that those values appear to be wrong for the test file used.
Last updated
Was this helpful?
Reading the .bot and .raw files together and then generating the detected_seafloor_depth values. Note that those values appear to be wrong for the test file used.
Last updated
Was this helpful?
Image is unrelated to this data, I'm just using it for illustrating the example. The raw binary files store the data in ragged/jagged arrays for each water column measurement. So each vertical slice of data (diagonal in the picture) could have a different depth associated with each individual cell — it's typically pretty uniform for each file but you do find examples where they change the depth midway through the file and start recording to a deeper level (sometimes the frequencies can be measuring different depths too and that gets really complicated). To package things up so that they can be stored in Xarray DataArrays and numpy nd-arrays (similar to what is on the left), they create a uniform data array and pad the missing data with np.nan's. The problem there is then that the depth associated with each index might be different than the one adjacent to it, so to solve that they end up having two coordinates systems. The "range_sample" is one of the dimensions of the Sv data (it has no units because it is just an index number), you then need to go to the associated "echo_range" to get the actual depth where the units are in meters. This is all very messy in the Level_1 data. I took the liberty of fixing it for the Level_2 zarr store data that I derive. Because I have resampled and regrided the data I can store the data in the Xarray DataArray with a simple coordinate axis, I call mine 'depth' and you know that the depth is the same for adjacent