The Boundaries of the Ocean

Before dealing with the water itself, let’s first examine the space that the water lives in. This space is defined by the ocean bottom (the bathymetry) and the top (the free surface).

Spatial Coordinates

Longitude: \(\varphi\), Latitude: \(\lambda\)

Boundaries

Bottom: \(H = H(\varphi, \lambda)\), Surface: \(\eta = \eta(\varphi, \lambda, t)\)

The ocean has no side boundaries!

The vertical coordinate: z

\(z = 0\) at sea level

But what is sea level? Determined by the geoid: isosurfaces of gravitational + centrifugal potential.

geoid

The Geoid

  • Determined by distribution of mass within the Earth + planetary rotation rate

  • Always perpendicular to gravity vector

  • Varies on O(100 m) over Earth’s surface

The Free Surface

  • Deviates from the geoid due to ocean mean circulation, waves, etc

  • Varies on O(1 m)

  • Negligible contribution to overall ocean volume

The Bottom

To look at the bottom boundary of the ocean, we will load data from the NGDC ETOPO5 database from the IRI Data Library.

import xarray as xr
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams['figure.figsize'] = (12,5)
import hvplot.xarray
ds = xr.open_dataset('http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NGDC/.ETOPO5/dods')
ds = ds.rename({'X': 'lon', 'Y': 'lat'})
ds['elev_ocean'] = ds.elev.where(ds.elev<0).load()
ds
<xarray.Dataset>
Dimensions:     (lat: 2160, lon: 4320)
Coordinates:
  * lat         (lat) float32 90.0 89.92 89.83 89.75 ... -89.75 -89.83 -89.92
  * lon         (lon) float32 0.0 0.08333 0.1667 0.25 ... 359.8 359.8 359.9
Data variables:
    elev        (lat, lon) int16 -4290 -4290 -4290 -4290 ... 2774 2774 2774 2774
    elev_ocean  (lat, lon) float64 -4.29e+03 -4.29e+03 -4.29e+03 ... nan nan nan
Attributes:
    description:                 ETOPO5 5x5 minute land surface elevations an...
    dataset_documentation.html:  http://iridl.ldeo.columbia.edu/SOURCES/.NOAA...
    Conventions:                 IRIDL
ds.elev_ocean.hvplot('lon', 'lat', clim=(-8000, 0), rasterize=True, height=500, width=1000, cmap='ocean')