$$ \newcommand{\pd}[2]{ \frac{\partial #1}{\partial #2} }
\newcommand{\od}[2]{\frac{d #1}{d #2}}
\newcommand{\td}[2]{\frac{D #1}{D #2}}
\newcommand{\ab}[1]{\langle #1 \rangle}
\newcommand{\bss}[1]{\textsf{\textbf{#1}}}
\newcommand{\ol}{\overline}
\newcommand{\olx}[1]{\overline{#1}^x}
$$

# Hydrostatic and Geostrophic Balances

In the previous lecture, we obtained the local-tangent-plane form of the Boussinesq equations of motion. We repeat the final equations, in component form, below:

$$ \begin{align}
\td{u}{t} - f v &= -\pd{\phi}{x} + \nu \nabla^2 u \\
\td{v}{t} + f u &= -\pd{\phi}{y} + \nu \nabla^2 v \\
\td{w}{t}       &= -\pd{\phi}{z} + b + \nu \nabla^2 w  \ .
\end{align} $$

In this lecture, we ask _what are the dominant balances in these equations under common oceanographic conditions_.

## Hydrostatic Balance

We already saw hydrostatic balance for the _background pressure and density field_. For the large-scale flow, the dynamic pressure is also in hydrostatic balance:

$$ \pd{\phi}{z} = b \ . $$

To remind ourselves of the underlying physics, we can write out $\phi$ and $b$ explicitly and drop the common factor of $1/\rho_0$:

$$ \pd{}{z} \delta p = - g \delta \rho \ . $$

Hydrostatic balance can be used to define $\phi$ at any point. In order to do so, however, we must think a bit more about sea-surface height and its relation to pressure.

## Sea Surface Height, Dynamic Height, and Pressure

What is the dynamic pressure $\phi$ at an arbitrary depth $z$ for a flow in hydrostatic balance? The dynamc sea-surface $\eta$ is defined relative to the mean geoid (i.e. a surface of constant geopotential) at $z=0$.



We go back to the full hydrostatic balance with both backround and dynamic pressure:

$$ \pd{}{z} (p) = - g \rho \ . $$

We now integrate this equation in the vertical from an arbitrary $z$ up to the sea surface $\eta$:

$$ \int_z^\eta \pd{}{z'} p dz'
= p(\eta) - p(z)
= - g \int_z^\eta  \rho dz' \ . $$

$p(\eta)$ is the pressure right at the sea surface, which is given by the atmospheric pressure. Although atmospheric pressure loading can have a small effect on ocean circulation, it is generally negligible compared to the huge pressures generated internally by the ocean. We will now take $p(\eta)=0$ to simplify the bookkeeping, this gives.

$$ p(z) = g \int_z^\eta  \rho dz' \ . $$

Now let's subtract the reference pressure. It given integrating the hydrostatic balance for the background density up to $z=0$. This upper limit is important: the reference pressure is defined for a flat sea surface.

$$ p_{ref}(z) = g \int_z^0  \rho_0 dz' \ . $$

Subtracting the two equations, we obtain

$$ \begin{align}
\delta p(z) = p(z) - p_{ref}(z) &= g \int_z^\eta  \rho dz' \ - g \int_z^0  \rho_0 dz' \\
&= g \int_0^\eta  \rho  dz' + g \int_z^0 \delta \rho dz' \\
&= g \rho_0 \int_0^\eta  dz' + g \int_0^\eta  \delta \rho  dz' + g \int_z^0 \delta \rho dz'
\end{align} $$

We see there is a contribution from the density fluctuations in the interior (second term), plus the variations in the sea-surface height (first term). We can, to the usual precision of the Boussinesq approximation, neglect the density fluctuations within the depths 0 to $\eta$. Dividing through by $\rho_0$, we obtain

$$ \begin{align}
\phi(z) = g \eta  - \int_z^0 b dz'
\end{align} $$

It is common in oceanography to define a quanity known as _dynamic height_, which expresses dynamic pressure variations in terms of their effective sea-surface height. In our notation, with the Boussinesq approximation, dynamic height is defined as

$$ D = \frac{\phi}{g} \ .$$ 

The dynamic pressure at the ocean bottom is given by

$$ \begin{align}
\phi(-H) = g \eta  - \int_{-H}^0 b dz' \ .
\end{align} $$

The first term is related to fluctuations in the total ocean volume at each point.
The second term is called the _steric_ component.


## Rossby Number

Let's estimate the relative size of the acceleration to Coriolis terms on the left-hand side of the horizontal momentum equations.

The ratio of these terms defines the _Rossby number_. 

$$ R_O =  \frac{ \left | \td{u}{t} \right | }{ | f v |} $$

The magnitude of the acceleration term can be estimated as $U^2 / L$, where $U$ is a representitive velocity scale of the flow and $L$ is a representative length scale. So we can estimate the Rossby number as

$$ R_O =  \frac{U}{f L} \ . $$

What are representative values? For the large-scale ocean circulation, U = 0.01 m/s, L = 1000 km, and f = 10$^{-4}$ s$^{-1}$. This gives $R_O = 10^{-4}$. So the _acceleration terms are often totally negligible_!

For low Rossby number conditions, we can neglect the acceleration and write the horizontal momentum equations as

$$ \begin{align} - f v &= -\pd{\phi}{x} + \nu \nabla^2 u \\
 f u &= -\pd{\phi}{y} + \nu \nabla^2 v 
\end{align} $$

The _geostrophic flow_ is defined as the flow determined by the balance between the Coriolis term and and the pressure gradient:

$$ \begin{align} - f v_g &= -\pd{\phi}{x} \\
  f u_g &= -\pd{\phi}{y} 
\end{align} $$

while the ageostrophic flow is defined via the balance between the Coriolis term and the friction term:

$$ \begin{align} - f v_a &= \nu \nabla^2 u \\
  f u_a &= \nu \nabla^2 v 
\end{align} $$

The total flow is given by the sum of the geostrophic and ageostrophic components:

$$ \mathbf{u} = \mathbf{u}_a + \mathbf{u}_g \ .$$

## Geostrophic Flow

Away from the boundaries, Friction is weak, and the flow is, to a good approximation geostrophic. Geostrophic (or "balanced") flow is a ubiquitous feature of flows in the ocean and atmosphere. Geostrophic flow is characterized by flow along the pressure contours (i.e. _isobars_), as illustrated below.



Rotational flow around pressure minimum is called _cyclonic_. Cyclonc flow is counterclockwise in the northern hemisphere and (due to the change of sign of $f$) clockwise in the southern hemisphere.



_ [AVISO mean dynamic topography](https://www.aviso.altimetry.fr/en/applications/ocean/large-scale-circulation/mean-dynamic-topography.html) _

### Thermal Wind

The geostrophic flow is determined by the pressure and the pressure is determined by the density (via hydrostatic balance). We can see this relationship more clearly if we take the derivative in $z$ of the geostrophic equations:

$$ \begin{align} - f \pd{v_g}{z} &= -\pd{}{x}\pd{\phi}{z} = -\pd{b}{x}\\
f \pd{u_g}{z} &= -\pd{}{y} \pd{\phi}{z} = -\pd{b}{y} \ .
\end{align} $$

These equations, called _thermal wind_ relate the _vertical shear of the geostrophic flow_ to the _horizontal gradients of buoyancy_. They are very useful for interpreting hydrographic data.



[WOCE Atlantic Atlas Vol. 3](http://whp-atlas.ucsd.edu/whp_atlas/atlantic/a03/sections/printatlas/printatlas.htm) 


```python
import pooch
import xarray as xr
from matplotlib import pyplot as plt

url = "ftp://ftp.spacecenter.dk/pub/DTU10/2_MIN/DTU10MDT_2min.nc"
fname = pooch.retrieve(url, known_hash="5d8eb0782514ca5f061eecc5a726f05b34a6ca34281cd644ad19c059ea8b528f")
ds = xr.open_dataset(fname)
ds
```

    Downloading data from 'ftp://ftp.spacecenter.dk/pub/DTU10/2_MIN/DTU10MDT_2min.nc' to file '/home/jovyan/.cache/pooch/cd1481012b784d34e848db69c19b022f-DTU10MDT_2min.nc'.
    SHA256 hash of downloaded file: 5d8eb0782514ca5f061eecc5a726f05b34a6ca34281cd644ad19c059ea8b528f
    Use this value as the 'known_hash' argument of 'pooch.retrieve' to ensure that the file hasn't changed if it is downloaded again in the future.





<div><svg style="position: absolute; width: 0; height: 0; overflow: hidden">
<defs>
<symbol id="icon-database" viewBox="0 0 32 32">
<path d="M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z"></path>
<path d="M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z"></path>
<path d="M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z"></path>
</symbol>
<symbol id="icon-file-text2" viewBox="0 0 32 32">
<path d="M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z"></path>
<path d="M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z"></path>
<path d="M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z"></path>
<path d="M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z"></path>
</symbol>
</defs>
</svg>
<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.
 *
 */

:root {
  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));
  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));
  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));
  --xr-border-color: var(--jp-border-color2, #e0e0e0);
  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);
  --xr-background-color: var(--jp-layout-color0, white);
  --xr-background-color-row-even: var(--jp-layout-color1, white);
  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);
}

html[theme=dark],
body.vscode-dark {
  --xr-font-color0: rgba(255, 255, 255, 1);
  --xr-font-color2: rgba(255, 255, 255, 0.54);
  --xr-font-color3: rgba(255, 255, 255, 0.38);
  --xr-border-color: #1F1F1F;
  --xr-disabled-color: #515151;
  --xr-background-color: #111111;
  --xr-background-color-row-even: #111111;
  --xr-background-color-row-odd: #313131;
}

.xr-wrap {
  display: block;
  min-width: 300px;
  max-width: 700px;
}

.xr-text-repr-fallback {
  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */
  display: none;
}

.xr-header {
  padding-top: 6px;
  padding-bottom: 6px;
  margin-bottom: 4px;
  border-bottom: solid 1px var(--xr-border-color);
}

.xr-header > div,
.xr-header > ul {
  display: inline;
  margin-top: 0;
  margin-bottom: 0;
}

.xr-obj-type,
.xr-array-name {
  margin-left: 2px;
  margin-right: 10px;
}

.xr-obj-type {
  color: var(--xr-font-color2);
}

.xr-sections {
  padding-left: 0 !important;
  display: grid;
  grid-template-columns: 150px auto auto 1fr 20px 20px;
}

.xr-section-item {
  display: contents;
}

.xr-section-item input {
  display: none;
}

.xr-section-item input + label {
  color: var(--xr-disabled-color);
}

.xr-section-item input:enabled + label {
  cursor: pointer;
  color: var(--xr-font-color2);
}

.xr-section-item input:enabled + label:hover {
  color: var(--xr-font-color0);
}

.xr-section-summary {
  grid-column: 1;
  color: var(--xr-font-color2);
  font-weight: 500;
}

.xr-section-summary > span {
  display: inline-block;
  padding-left: 0.5em;
}

.xr-section-summary-in:disabled + label {
  color: var(--xr-font-color2);
}

.xr-section-summary-in + label:before {
  display: inline-block;
  content: '►';
  font-size: 11px;
  width: 15px;
  text-align: center;
}

.xr-section-summary-in:disabled + label:before {
  color: var(--xr-disabled-color);
}

.xr-section-summary-in:checked + label:before {
  content: '▼';
}

.xr-section-summary-in:checked + label > span {
  display: none;
}

.xr-section-summary,
.xr-section-inline-details {
  padding-top: 4px;
  padding-bottom: 4px;
}

.xr-section-inline-details {
  grid-column: 2 / -1;
}

.xr-section-details {
  display: none;
  grid-column: 1 / -1;
  margin-bottom: 5px;
}

.xr-section-summary-in:checked ~ .xr-section-details {
  display: contents;
}

.xr-array-wrap {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 20px auto;
}

.xr-array-wrap > label {
  grid-column: 1;
  vertical-align: top;
}

.xr-preview {
  color: var(--xr-font-color3);
}

.xr-array-preview,
.xr-array-data {
  padding: 0 5px !important;
  grid-column: 2;
}

.xr-array-data,
.xr-array-in:checked ~ .xr-array-preview {
  display: none;
}

.xr-array-in:checked ~ .xr-array-data,
.xr-array-preview {
  display: inline-block;
}

.xr-dim-list {
  display: inline-block !important;
  list-style: none;
  padding: 0 !important;
  margin: 0;
}

.xr-dim-list li {
  display: inline-block;
  padding: 0;
  margin: 0;
}

.xr-dim-list:before {
  content: '(';
}

.xr-dim-list:after {
  content: ')';
}

.xr-dim-list li:not(:last-child):after {
  content: ',';
  padding-right: 5px;
}

.xr-has-index {
  font-weight: bold;
}

.xr-var-list,
.xr-var-item {
  display: contents;
}

.xr-var-item > div,
.xr-var-item label,
.xr-var-item > .xr-var-name span {
  background-color: var(--xr-background-color-row-even);
  margin-bottom: 0;
}

.xr-var-item > .xr-var-name:hover span {
  padding-right: 5px;
}

.xr-var-list > li:nth-child(odd) > div,
.xr-var-list > li:nth-child(odd) > label,
.xr-var-list > li:nth-child(odd) > .xr-var-name span {
  background-color: var(--xr-background-color-row-odd);
}

.xr-var-name {
  grid-column: 1;
}

.xr-var-dims {
  grid-column: 2;
}

.xr-var-dtype {
  grid-column: 3;
  text-align: right;
  color: var(--xr-font-color2);
}

.xr-var-preview {
  grid-column: 4;
}

.xr-var-name,
.xr-var-dims,
.xr-var-dtype,
.xr-preview,
.xr-attrs dt {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-right: 10px;
}

.xr-var-name:hover,
.xr-var-dims:hover,
.xr-var-dtype:hover,
.xr-attrs dt:hover {
  overflow: visible;
  width: auto;
  z-index: 1;
}

.xr-var-attrs,
.xr-var-data {
  display: none;
  background-color: var(--xr-background-color) !important;
  padding-bottom: 5px !important;
}

.xr-var-attrs-in:checked ~ .xr-var-attrs,
.xr-var-data-in:checked ~ .xr-var-data {
  display: block;
}

.xr-var-data > table {
  float: right;
}

.xr-var-name span,
.xr-var-data,
.xr-attrs {
  padding-left: 25px !important;
}

.xr-attrs,
.xr-var-attrs,
.xr-var-data {
  grid-column: 1 / -1;
}

dl.xr-attrs {
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 125px auto;
}

.xr-attrs dt,
.xr-attrs dd {
  padding: 0;
  margin: 0;
  float: left;
  padding-right: 10px;
  width: auto;
}

.xr-attrs dt {
  font-weight: normal;
  grid-column: 1;
}

.xr-attrs dt:hover span {
  display: inline-block;
  background: var(--xr-background-color);
  padding-right: 10px;
}

.xr-attrs dd {
  grid-column: 2;
  white-space: pre-wrap;
  word-break: break-all;
}

.xr-icon-database,
.xr-icon-file-text2 {
  display: inline-block;
  vertical-align: middle;
  width: 1em;
  height: 1.5em !important;
  stroke-width: 0;
  stroke: currentColor;
  fill: currentColor;
}
</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;
Dimensions:  (lon: 10801, lat: 5400)
Coordinates:
  * lon      (lon) float64 0.0 0.03333 0.06667 0.1 ... 359.9 359.9 360.0 360.0
  * lat      (lat) float64 -89.98 -89.95 -89.92 -89.88 ... 89.92 89.95 89.98
Data variables:
    mdt      (lat, lon) float32 ...
Attributes:
    Conventions:  COARDS/CF-1.0
    title:        DTU10MDT_2min.mdt.nc
    source:       Danish National Space Center
    node_offset:  1</pre><div class='xr-wrap' hidden><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-174307df-cece-4c62-ab91-3d91ecf736ad' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-174307df-cece-4c62-ab91-3d91ecf736ad' class='xr-section-summary'  title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>lon</span>: 10801</li><li><span class='xr-has-index'>lat</span>: 5400</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-10a0027b-c404-484b-a129-dc848711bf6c' class='xr-section-summary-in' type='checkbox'  checked><label for='section-10a0027b-c404-484b-a129-dc848711bf6c' class='xr-section-summary' >Coordinates: <span>(2)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lon</span></div><div class='xr-var-dims'>(lon)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.0 0.03333 0.06667 ... 360.0 360.0</div><input id='attrs-02b957da-dcda-4676-8a0c-b51b0a03ecf8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-02b957da-dcda-4676-8a0c-b51b0a03ecf8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-6657f096-9613-4a1f-a801-11dd15b7eb90' class='xr-var-data-in' type='checkbox'><label for='data-6657f096-9613-4a1f-a801-11dd15b7eb90' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd><dt><span>actual_range :</span></dt><dd>[-1.66666667e-02  3.60016667e+02]</dd></dl></div><div class='xr-var-data'><pre>array([0.000000e+00, 3.333333e-02, 6.666667e-02, ..., 3.599333e+02,
       3.599667e+02, 3.600000e+02])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>-89.98 -89.95 ... 89.95 89.98</div><input id='attrs-344e807a-01b8-4e4b-8e70-f0b625885f2a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-344e807a-01b8-4e4b-8e70-f0b625885f2a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8cb5590e-85d2-495b-949e-34aad4b97064' class='xr-var-data-in' type='checkbox'><label for='data-8cb5590e-85d2-495b-949e-34aad4b97064' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd><dt><span>actual_range :</span></dt><dd>[-90.  90.]</dd></dl></div><div class='xr-var-data'><pre>array([-89.983333, -89.95    , -89.916667, ...,  89.916667,  89.95    ,
        89.983333])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-01366bd1-6bd9-4231-a5a7-aa68bc518030' class='xr-section-summary-in' type='checkbox'  checked><label for='section-01366bd1-6bd9-4231-a5a7-aa68bc518030' class='xr-section-summary' >Data variables: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>mdt</span></div><div class='xr-var-dims'>(lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-9c2aea3c-73af-4ab1-94d8-b2498f118152' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-9c2aea3c-73af-4ab1-94d8-b2498f118152' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f47a4624-3a2b-47ba-a320-6b73638362b4' class='xr-var-data-in' type='checkbox'><label for='data-f47a4624-3a2b-47ba-a320-6b73638362b4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>mean ocean dynamic topography</dd><dt><span>units :</span></dt><dd>m</dd><dt><span>actual_range :</span></dt><dd>[-2.26   2.155]</dd></dl></div><div class='xr-var-data'><pre>[58325400 values with dtype=float32]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-708c400b-08df-4f86-aae5-fad7063cdeae' class='xr-section-summary-in' type='checkbox'  checked><label for='section-708c400b-08df-4f86-aae5-fad7063cdeae' class='xr-section-summary' >Attributes: <span>(4)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>Conventions :</span></dt><dd>COARDS/CF-1.0</dd><dt><span>title :</span></dt><dd>DTU10MDT_2min.mdt.nc</dd><dt><span>source :</span></dt><dd>Danish National Space Center</dd><dt><span>node_offset :</span></dt><dd>1</dd></dl></div></li></ul></div></div>




```python
mdt = ds.mdt.coarsen(lon=10, lat=10, boundary='pad').mean()
```


```python
import cartopy.crs as ccrs
proj = ccrs.Robinson(central_longitude=180)

fig = plt.figure(figsize=(16, 6))
ax = plt.axes(projection=proj, facecolor='0.8')
mdt.plot(ax=ax, transform=ccrs.PlateCarree())
ax.coastlines()
```


```python

```

0a9c457bb77eebf8099c4d7c518e6c3c82494c99
ipynb
Jupyter Notebook
book/06_hydrostatic_geostrophic.ipynb
monocilindro/intro_to_physical_oceanography
1cd76829d94dcbd13e5e81c923db924ff0798c1b
MIT
2015-09-18T02:01:53.000Z
2022-02-28T01:43:48.000Z
book/06_hydrostatic_geostrophic.ipynb
monocilindro/intro_to_physical_oceanography
1cd76829d94dcbd13e5e81c923db924ff0798c1b
MIT
2015-09-19T01:35:28.000Z
2022-02-28T17:23:53.000Z
book/06_hydrostatic_geostrophic.ipynb
monocilindro/intro_to_physical_oceanography
1cd76829d94dcbd13e5e81c923db924ff0798c1b
MIT
2015-09-12T00:30:33.000Z
2022-02-08T19:37:51.000Z
Qwen/Qwen-72B
1. YES
2. YES