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

feature request: calc_mld #108

Open
eleanorfrajka opened this issue Nov 14, 2024 · 3 comments
Open

feature request: calc_mld #108

eleanorfrajka opened this issue Nov 14, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@eleanorfrajka
Copy link
Collaborator

This is similar to compute_cline, but would work on ungridded profile data.

Common definitions of mixed layer depth would be finding when the 20m bin averaged density exceeds the top 20m density by some threshold (0.01 kg/m3 in the Labrador Sea, often larger elsewhere).

This would be a useful tool for some onward calculations like figure like Fig 3 in Giddy et al 2001. https://doi.org/10.1029/2020JC016814 (she uses density difference of 0.03 kg/m3 for a ref depth of 10m)

@MOchiara
Copy link
Member

GliderTools has one and it works on ungridded data. Do we want to add it so some specific function?
https://glidertools.readthedocs.io/en/latest/physics.html#mixed-layer-depth

@eleanorfrajka
Copy link
Collaborator Author

eleanorfrajka commented Nov 14, 2024

Ok, found it. it does this: https://github.com/GliderToolsCommunity/GliderTools/blob/master/glidertools/physics.py

It looks like it does what Giddy says, but I don't think it handles well when data are slightly noisy. I'll try to find a reference. A method that handles noisy data better:

  • bin the data in 20m averages and look for the density difference when the first 20m bin is greater than the bin-averaged density (0-20m) by at least the threshold. The 20m binning helps deal with small duration spikes.

Or there is Pickart et al. 2002. They use a standard deviation criterion.
CleanShot 2024-11-14 at 21 41 39@2x

Or there is manual inspection (Vage et al.)
image
Ah, actually those are both the same method. There is visual inspection to "pick" the depth, then the 2-standard deviation around the values above the visually chosen MLD is used to determine when the profile differs outside this 2-std window.

Ok - conclusion, implement/copy across the method from glidertools (probably defaulting to use sigma0 for density and the 0.03 threshold).

  • But I'd like to find profiles that "break" this (i.e., where you'd pick a MLD by eye different from what this method chooses) and then implement something else (likely based on an accumulated buoyancy anomaly threshold) to see if it can produce a more stable/robust result.

@eleanorfrajka
Copy link
Collaborator Author

@eleanorfrajka eleanorfrajka added the enhancement New feature or request label Nov 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants