Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Instrument noise #58

Open
surgura opened this issue Aug 19, 2024 · 3 comments
Open

Instrument noise #58

surgura opened this issue Aug 19, 2024 · 3 comments

Comments

@surgura
Copy link
Collaborator

surgura commented Aug 19, 2024

Improve noise for instruments and add where it is missing.

@ammedd
Copy link
Collaborator

ammedd commented Oct 17, 2024

src/virtualship/make_realistic/ would be the place to start

@ammedd
Copy link
Collaborator

ammedd commented Oct 17, 2024

For the CTD the idea is to 1) add spiky noise to the top layers, 2) physical noise throughout the profile and 3) a tiny drift to distinguish the up- and downcast for example representing the flow of different water masses coming by.
Sample code to be found in ctd_make_realistic.py

I'll look up old work for the ADCP later.

@iuryt
Copy link
Contributor

iuryt commented Nov 10, 2024

ADCP

For the ADCP, we can introduce noise that varies based on the running standard deviation of the ship's heading. This means that the data will become noisy during sharp turns in the ship's trajectory. Instead of appearing as random noise, this often resembles a drift in the data. Additionally, we should consider that the horizontal offset between the ADCP transducer and the GPS, which is used to calculate the ship's speed, can introduce errors in the calculated ocean velocity. These errors primarily occur when the ship is maneuvering, particularly while turning.

image

There is also higher values very close to the bottom and the ringing at the surface.
image

Maybe we could start a discussion and choose which of these should be prioritized.

This is very useful for this discussion:
https://currents.soest.hawaii.edu/docs/adcp_doc/ADCP_INTERPRETATION/interpretation/index.html

CTD/XBT

If I understand correctly, we have several types of noise: surface-intensified exponential noise, depth-increasing noise, drift noise, and depth-dependent OpenSimplex noise. Therefore, we need to implement both up/downcast drift and spikes.

Additionally, is there a reason for the code duplication in _add_temperature_noise and _add_salinity_noise? We could create functions for each type of noise that can be applied to different variables. In this case, _add_temperature_noise would simply call functions like surface_noise, drift_noise, etc. What do you think?

https://github.com/iuryt/virtualship/blob/8cdf9319d53694984bbb05f349b4dfc3c7c50c88/src/virtualship/make_realistic/ctd_make_realistic.py#L60-L100

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

3 participants