Humminbird Side Imaging Forums

Software and Software Development => Other 3rd Party Software => Topic started by: Dr_Dan on November 07, 2012, 10:09:19 AM

Title: Reading .son files into Matlab
Post by: Dr_Dan on November 07, 2012, 10:09:19 AM
I'm trying to read data recorded into a .son file on my Humminbird into Matlab. My understanding is that the .son file format has not been released by Humminbird so it is necessary to convert them into some other format so they can be read by other programs such as .xtf or .dvs, so I'd just like to know if the format of one of these file types is laid out anywhere so that I can write a program to read the data in them into matlab?

Also another question, I'm not interested in the sidescan data, just the main beam data. Do any of these other formats, .xtf or others cover this data or are they only for sidescan?
Title: Re: Reading .son files into Matlab
Post by: LANYC on March 07, 2013, 06:00:03 AM
hi i'm french and i work with matlab and i've arrive to put dat humminbird into mathlab.
for this:
open your DAT file with hummviewer.
export this on csv file.
use the depth ans gps for make a 3d map with delauney trangulation:
tri = delaunay(x,y);
trisurf(tri,x,y,z);
Title: Re: Reading .son files into Matlab
Post by: matt@reefmaster on March 09, 2013, 04:36:24 AM
Lanyc,
Cool model and an interesting looking bit of underwater structure!
I spent a bit of time playing with track logs in Matlab before we developed ReefMaster.
A few tips that might help improve your model:

- Be a bit wary of just triangulating all your depth points - depending on the shape of your tracks you might end up with a lot of interpolated depths - they might be appropriate or they might not be. Your model above looks like it would be fine. Triangulation also gets a bit slow with a lot of data.
- If you take into consideration what the depth reading of a sounder means, in terms of the sonar beam and it's cone angle, you can get a much higher definition model of the seabed. Try creating a grid and populating it with depth points that you derive from each sounding, such that the depths fill an appropriately sized circle on the seabed. You will need to adjust depths to fit the curve of the beam - you can do this this with simple trig.
- When you get multiple depths in the same grid bins, choose the deepest - depending on the source quality of your data, you might also consider eliminating outliers.
- If you create a depth grid in this way, you will eliminate much of the need for interpolation, assuming a reasonable density of depth points.
- You can then do a simple triangulation of the resulting mesh - and apply some smoothing beforehand also, using something like a simple 2D Gaussian.
- Don't forget that the the physical distances between longitude points vary with latitude. You can approximate well enough for small areas by calculating the width and heights and stretching your grid accordingly - again you can use trig if you assume a spherical earth, otherwise there are fomulae around for more accurate calculations.

I'd be very interested to see how your model turns out, and how it compares to one produced by ReefMaster, if you did download the trial.

cheers,
matt
Title: Re: Reading .son files into Matlab
Post by: LANYC on March 09, 2013, 06:55:33 AM
thanks for all,
i'll try your idea.
i work in this project with mathprofessor et geologie professor.
i'll giving more news.
thank you.
good week  end.
Title: Re: Reading .son files into Matlab
Post by: LANYC on March 09, 2013, 07:17:16 AM
help me
Title: Re: Reading .son files into Matlab
Post by: alansia on April 09, 2013, 04:59:46 PM
this is somewhat old message, maybe you already have found a solution.

From what I can see, your intrpolation work well but you are not interpolating depth but something else. Or you have very bad depth values. Depth isn't supposed to change that much from point to point. Did you noticed something strange while recording?

Also, I have notice having a to tight color scale (min -5.2; max -5.5) do horrible thing on flat bottom.

But I suspect à MatLab bad querry, interpolating longitude or heading instead.

I hope this help!
SimplePortal 2.3.3 © 2008-2010, SimplePortal