bluerobotics / bluerobotics/ping-python
Add speed of sound estimation from water properties
- Dominant language
- Python
- Stars
- 60
- Forks
- 39
- PR merge metrics
- No merged PRs in 30d
Description
Would help with #122, and would also better enable data processing capabilities.
Should probably be implemented as a `water.py` module, with a helper for estimating salinity as per [here](https://bluerobotics.com/learn/speed-of-sound-in-water-calculator/#salinity-estimation). Ideally there would be some kind of API access to NASA's global sea surface salinity data (queried by GPS location?) or something, but that is probably best left as a note/TODO for now.
Example `v_sound` code at bluerobotics/ping-viewer/issues/1003
Would be useful to include an `estimate_v_sound(self, depth=None, temperature=None, salinity=None)` method in `PingDevice` that uses `water.estimate_sound_speed(depth, temperature, salinity)`, which can be updated over time to use the most up to date implemented method. `PingDevice` can have its initialisation updated to include initial `depth=0, temperature=25, salinity=water.estimate_salinity_from_type("seawater")` values.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the existing PingDevice implementation and the proposed water.py module, then compare the example v_sound code in bluerobotics/ping-viewer/issues/1003 with the linked salinity-estimation guidance. Done means providing sound-speed and salinity estimation, exposing PingDevice.estimate_v_sound(depth, temperature, salinity), and initializing the stated defaults; NASA data access should remain a TODO.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100