Is it possible use sonar estimate velocity apply to Arduboat in Non-GPS

I have an idea to use sonar estimate velocity and position in Arduboat, just like the Optical Flow uses in ArduCopter.
Can somebody give me some advice? will be grateful

In a water environment that may be tough. On open water there will not be anything to calculate off of and changing waves will make the water surface always changing. Also if sea spray or pond water gets on the sensors it will render them ineffective I would think. I have used some Matbotics sonars and they are O.K. but lack range and if water gets on the membrane will give false readings. They are better for obstacle avoidance but must be dry.

What you are describing is called an Doppler Velocity Log (ADV). We use them on ROVs and AUVs to provide precise navigation near the seafloor. They need to see the bottom to work.

Not something I have seen in the hobby “world”.