OceanTools.jl

Utilities for working with the Copernicus Ocean Datasets in Julia

Introduction

The OceanTools.jl package provides a handful of helper functions to work with SEALEVEL_GLO_PHY_L4_NRT_OBSERVATIONS data from Copernicus in Julia. These are written to be

This package was developed by Nathanael Schilling at TUM, and is maintained by Daniel Karrasch (TUM).

Installation

Run the following in the Julia REPL:

]add https://github.com/CoherentStructures/OceanTools.jl.git

Disclaimer

These functions have not been tested in detail and probably have bugs. The author of this package is in no way affiliated with Copernicus.

Features

The OceanTools.jl package provides julia utilities for reading in velocity and sea surface heights (ssh) from Copernicus datasets. This functionality relies on the NCDatasets.jl package.

There are also functions for interpolating the resulting values (trilinear and tricubic).

Tricubic interpolation is implemented using the algorithm of Lekien and Marsden's paper, along with a function to obtain the gradient (in space) of the interpolation function. This is the only known (to us) Julia implementation of the three-dimensional tricubic interpolation. For other implementations, see the mirror of the original code libtricubic, and the Python packages pytricubic and eqtools.

This gives a way of approximating geostrophic sea-surface velocities with the well-known formula

\[\begin{aligned} u &= -A(y)\partial_y h(x,y,t),\\ v &= A(y)\partial_x h(x,y,t), \end{aligned}\]

where:

  • $u$ - longitudinal component of the velocity,
  • $v$ - latitudinal component of the velocity,
  • $x$ - longitude,
  • $y$ - latitude,
  • $h$ - sea-surface height.

Here, $A(y) = g/(2 R \Omega \sin y)$ with $g$ the gravitational constant, $R$ the radius of the earth, $\Omega$ is the earth's mean angular velocity (in m/s). This equation is implemented in the ssh_rhs function.

For a list of functions that are implemented by this package, consult the exports.jl file or the source code.