Closed ali-ramadhan closed 3 years ago
It would seem Oceanostics.jl
is more general, so maybe the right approach is to add a dependency to it?
I'm definitely fine with adding Oceanostics.jl as a dependency. I've tested it (albeit for 2D vertical domains only) and it seems to be working fine.
~But I don't know why the code needs that statistic, instead of keeping Ri as a possible user-defined diagnostic. I guess I don't know what "long list of statistics" is being referred to here. Is that related to some turbulence closure?~
My bad, I just realized this isn't the Oceananigans repo! haha
Ah haha nice. Yeah I think the three_layer_constant_fluxes.jl
example is up to 51 statistics (without third-order statistics):
julia> ds["timeseries"] |> keys |> length
51
julia> show(IOContext(stdout, :limit => false), ds["timeseries"] |> keys)
["t", "vb", "uT", "tke_shear_production", "tke_advective_flux", "wc₀", "uv", "c₁c₁", "νₑ_∂z_v", "uu", "uc₁", "c₁", "p", "e", "wc₁", "vv", "vT", "bT", "v", "bc₂", "wT", "c₂", "wc₂", "uc₀", "wb", "νₑ_∂z_u", "κₑ_∂z_T", "tke_buoyancy_flux", "uc₂", "wv", "κₑ_∂z_c₁", "bc₁", "ww", "u", "T", "wu", "vc₁", "bc₀", "b", "c₀c₀", "c₀", "c₂c₂", "vc₂", "κₑ_∂z_c₀", "ub", "νₑ_∂z_w", "tke_dissipation", "κₑ_∂z_c₂", "TT", "tke_pressure_flux", "vc₀"]
Also for the record, I'm very much open to you guys "dumping" KernelComputedFields and other statistics/diagnostics on Oceanostics to keep LESbrary for other stuff. We'd just need to discuss organizational aspects a bit.
More packages with more focused purposes = better, probably...
Would be useful to add Ri(z) to the long list of statistics that are output.
It can be computed from U(z), V(z), and B(z) but probably we need to compute the local Ri(x, y, z) then horizontally average?
@tomchor also wrote a
KernelComputedField
in Oceanostics.jl: https://github.com/tomchor/Oceanostics.jl/blob/81d48c323f38f38617ed162e320d14c1691a615f/src/FlowDiagnostics.jl#L7-L15Do we just add a dependency on Oceanostics.jl to make use of all the new diagnostics?
cc @xkykai