{ "cells": [ { "cell_type": "markdown", "id": "4745fe28", "metadata": {}, "source": [ "# Physical Variables" ] }, { "cell_type": "markdown", "id": "081f83f1", "metadata": {}, "source": [ "> This notebook looks at some canonical transformations of sea surface height (SSH). \n", "These are derived variables that can be calculated from SSH and are often very good indicators of performance.\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "d8e3909d", "metadata": {}, "outputs": [], "source": [ "import autoroot\n", "import typing as tp\n", "from dataclasses import dataclass\n", "import numpy as np\n", "import pandas as pd\n", "import xarray as xr\n", "import metpy\n", "from metpy.units import units\n", "import xarray_dataclasses as xrdataclass\n", "from oceanbench._src.geoprocessing import geostrophic_v2 as geocalc\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "sns.reset_defaults()\n", "sns.set_context(context=\"talk\", font_scale=0.7)\n", "\n", "%load_ext autoreload\n", "%autoreload 2\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "13ce2ee5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[35m/Users/eman/code_projects/data/oceanbench-data-registry/osse_natl60/grid/gf_mod_ssh_daily.nc\u001b[m\u001b[m\n" ] } ], "source": [ "# file = \"/gpfswork/rech/cli/uvo53rl/projects/jejeqx/data/natl60/NATL60-CJM165_GULFSTREAM_ssh_y2013.1y.nc\"\n", "file = \"/Users/eman/code_projects/data/oceanbench-data-registry/osse_natl60/grid/gf_mod_ssh_daily.nc\"\n", "\n", "!ls $file" ] }, { "cell_type": "code", "execution_count": 3, "id": "ddfa613d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.Dataset>\n", "Dimensions: (time: 60, lat: 201, lon: 201)\n", "Coordinates:\n", " * lon (lon) float64 -65.0 -64.95 -64.9 -64.85 ... -55.1 -55.05 -55.0\n", " * lat (lat) float64 33.0 33.05 33.1 33.15 33.2 ... 42.85 42.9 42.95 43.0\n", " * time (time) datetime64[ns] 2013-01-01T12:00:00 ... 2013-03-01T12:00:00\n", "Data variables:\n", " ssh (time, lat, lon) float64 ...
<xarray.DataArray ()>\n", "<Quantity(8.967442585730005e-05, '1 / second')>
<xarray.Dataset>\n", "Dimensions: (time: 60, lat: 201, lon: 201)\n", "Coordinates:\n", " * lon (lon) float64 -65.0 -64.95 -64.9 -64.85 ... -55.1 -55.05 -55.0\n", " * lat (lat) float64 33.0 33.05 33.1 33.15 33.2 ... 42.85 42.9 42.95 43.0\n", " * time (time) datetime64[ns] 2013-01-01T12:00:00 ... 2013-03-01T12:00:00\n", "Data variables:\n", " ssh (time, lat, lon) float64 [m] 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0\n", " psi (time, lat, lon) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
<xarray.Dataset>\n", "Dimensions: (time: 60, lat: 201, lon: 201)\n", "Coordinates:\n", " * lon (lon) float64 -65.0 -64.95 -64.9 -64.85 ... -55.1 -55.05 -55.0\n", " * lat (lat) float64 33.0 33.05 33.1 33.15 ... 42.85 42.9 42.95 43.0\n", " * time (time) datetime64[ns] 2013-01-01 2013-01-02 ... 2013-03-01\n", "Data variables:\n", " ssh (time, lat, lon) float64 <Quantity([[[ 0.52873772 0.528737...\n", " psi (time, lat, lon) float64 <Quantity([[[ 57821.90125565 5782...\n", " u (time, lat, lon) float64 <Quantity([[[ 0.09819786 0.098197...\n", " v (time, lat, lon) float64 <Quantity([[[ 0.06750432 -0.067504...\n", " ke (time, lat, lon) float64 <Quantity([[[7.09982675e-03 7.0998...\n", " vort_r (time, lat, lon) float64 <Quantity([[[-21.03727654 -13.1933...\n", " vort_a (time, lat, lon) float64 <Quantity([[[26.01496319 33.858852...\n", " div (time, lat, lon) float64 <Quantity([[[-22.41076683 -11.8198...\n", " ens (time, lat, lon) float64 <Quantity([[[1.31080192e+08 5.1554...\n", " shear_strain (time, lat, lon) float64 <Quantity([[[ 1.24743972e-08 -1.24...