New Python package for Neutral Surfaces

Hi there good people,

I’m pleased to release neutralocean to the world. It’s a Python package to calculate neutral surfaces in the ocean. Currently, the main job is to compute ω-surfaces, which solve a global optimization problem to reduce the neutrality error by typically 1-2 orders of magnitude compared to potential density surfaces.

So if you ever calculate isopycnals using potential density, specific volume anomaly, Jackett & McDougall’s 1997 γⁿ neutral density, or others, bear in mind that these are often not terribly accurate in terms of being aligned with the directions in which the ocean mixes rapidly (“isopycnal” or “epineutral” mixing), and being orthogonal to the directions in which the ocean mixes very weakly (“diapycnal” or “dianeutral” mixing). Consider using ω-surfaces for such analyses.

Also, if you think you need a 3D density variables (like the above), sometimes these analysis can actually be done using 2D surfaces (like ω-surfaces), perhaps 1 of them, perhaps 2 of them very slightly apart (to get layer thickness and potential vorticity), or perhaps a whole set of them.

And feel free to reach out to me with questions.


P.S. There’s also a MATLAB version , which can calculate geostrophic streamfunctions and some other advanced neutral surfaces, but only works on rectilinear grids.


Here’s a few recent resources if you want to learn more about neutral surfaces:
Watch: One World Mathematics of Climate - April 5 2022 seminar

Read (background in Sections 1, 2):
Read (for ω-surfaces especially):

(it only lets me put 2 links per post…)

Cool. And a conda package on conda-forge. Nice!

You, or a CLEX person, should request it be installed in the CLEX supported anaconda environment to make it easily available to folks using NCI.

Awesome, thanks for the suggestion Aidan! I’ve just emailed now.

Yeah, getting it onto conda-forge took a bit of brainpower! So many steps, so many instructions to read…