Repository: pangeo-forge/pangeo-forge-recipes (language: python)

Issue:
Support multiple variables / multiple timesteps
Currently we only support sequential inputs, along a single dimension.

```
foo.0.nc
foo.1.nc
...
foo.N.nc
```

However, many potential recipes instead have multiple different variables to be combined, e.g.
```
foo.nc
bar.nc
baz.nc
```

And in combination
```
foo.0.nc
bar.0.nc
baz.0.nc
foo.1.nc
...
baz.N.nc
```

For example the now broken [terraclimate recipe](https://github.com/pangeo-forge/terraclimate-feedstock) follows this pattern.

A good next step for the recipe complexity is to figure out how to handle this. Some ideas come to mind.

How will the API look? Currently we just use a flat list of `input_urls`. That won't work for multiple variables.
https://github.com/pangeo-forge/pangeo-forge/blob/276755393859840ee184e1b4f3bdb3c60ad6fe7f/pangeo_forge/recipe.py#L146 
Is a nested list enough to resolve this? Or a dictionary? What sort of validation is required on such inputs?

Currently we store the relationship between chunks and inputs in a private dictionary:
https://github.com/pangeo-forge/pangeo-forge/blob/276755393859840ee184e1b4f3bdb3c60ad6fe7f/pangeo_forge/recipe.py#L158-L161
The chunk keys are just sequential integers: `0, 1, ..., N`.

For multiple variables (but no timesteps), we might use variable names instead: `'foo', 'bar', 'baz'`.

For multiple variables AND timesteps, a tuple would do the trick: `('foo', 0), ('foo', 1), ..., ('baz', N)`.

We will also may to modify how we do `initialize_target`:
https://github.com/pangeo-forge/pangeo-forge/blob/276755393859840ee184e1b4f3bdb3c60ad6fe7f/pangeo_forge/recipe.py#L175

Right now we just read the first chunk and use that. But will that still work for multiple variables? Or do we have to read one of each variable?



Discussion / hints:

Fix patch:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 65a3907e..bb05b17c 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -27,10 +27,11 @@ repos:
     hooks:
     - id: seed-isort-config
 
--   repo: https://github.com/pre-commit/mirrors-isort
-    rev: v5.2.0
+-   repo: https://github.com/pycqa/isort
+    rev: 5.5.4
     hooks:
-    - id: isort
+      - id: isort
+        args: ["--profile", "black"]
 
 -   repo: https://github.com/myint/rstcheck
     rev: master
diff --git a/docs/api.md b/docs/api.md
index 2134e978..d45ceb91 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -32,6 +32,18 @@
     :show-inheritance:
 ```
 
+```{eval-rst}
+.. autoclass:: pangeo_forge.recipe.NetCDFtoZarrMultiVarSequentialRecipe
+    :show-inheritance:
+```
+
+## Patterns
+
+```{eval-rst}
+.. autoclass:: pangeo_forge.patterns.VariableSequencePattern
+    :members:
+```
+
 ## Executors
 
 ```{eval-rst}
diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md
index ef34442c..8c0294e5 100644
--- a/docs/tutorials/index.md
+++ b/docs/tutorials/index.md
@@ -6,4 +6,5 @@ These tutorials are deep dives into how to develop and debug Pangeo Forge recipe
 :maxdepth: 1
 
 netcdf_zarr_sequential
+multi_variable_recipe
 ```
diff --git a/docs/tutorials/multi_variable_recipe.ipynb b/docs/tutorials/multi_variable_recipe.ipynb
new file mode 100644
index 00000000..acef1ae8
--- /dev/null
+++ b/docs/tutorials/multi_variable_recipe.ipynb
@@ -0,0 +1,4267 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# NetCDF Zarr Multi-Variable Sequential Recipe\n",
+    "\n",
+    "This recipe is a little bit more complicated than the {doc}`netcdf_zarr_sequential`.\n",
+    "You shold probably review that one first; here we will skip the basics.\n",
+    "\n",
+    "For this example, we will use data from NOAA's [World Ocean Atlas](https://www.ncei.noaa.gov/products/world-ocean-atlas).\n",
+    "As we can see from the [data access page](https://www.ncei.noaa.gov/access/world-ocean-atlas-2018/bin/woa18.pl), the dataset is spread over many different files.\n",
+    "What's important here is that:\n",
+    "- There is a time sequence (month) to the files.\n",
+    "- Different variables live in different files.\n",
+    "\n",
+    "Because our dataset is spread over muliple files, we will have to use a {class}`pangeo_forge.recipe.NetCDFtoZarrMultiVarSequentialRecipe` class (rather than the simpler {class}`pangeo_forge.recipe.NetCDFtoZarrSequentialRecipe`).\n",
+    "\n",
+    "## Step 1: Get to know your source data\n",
+    "\n",
+    "This step can't be skipped! It's impossible to write a recipe if you don't understand intimately how the source data are organized.\n",
+    "World Ocean Atlass has eight different variables: Temperature, Salinity, Dissolved Oxygen, Percent Oxygen Saturation, Apparent Oxygen Utilization, Silicate, Phosphate, Nitrate.\n",
+    "Each variable has a page that looks like this:\n",
+    "\n",
+    "![screenshot from NCEI website](ncei-woa-screenshot.png)\n",
+    "\n",
+    "For the purpose of this tutorial, we will use the 5-degree resolution monthly data.\n",
+    "We can follow the links to finally find an HTTP download link for a single month of data."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "download_url = 'https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/temperature/decav/5deg/woa18_decav_t01_5d.nc'"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Let's download it and try to open it with xarray."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "connected.\n",
+      "HTTP request sent, awaiting response... 200 \n",
+      "Length: 2389903 (2.3M) [application/x-netcdf]\n",
+      "Saving to: ‘woa18_decav_t01_5d.nc.1’\n",
+      "\n",
+      "woa18_decav_t01_5d. 100%[===================>]   2.28M  5.23MB/s    in 0.4s    \n",
+      "\n",
+      "2021-02-11 14:45:40 (5.23 MB/s) - ‘woa18_decav_t01_5d.nc.1’ saved [2389903/2389903]\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "! wget https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/temperature/decav/5deg/woa18_decav_t01_5d.nc"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Exception reporting mode: Plain\n"
+     ]
+    },
+    {
+     "ename": "ValueError",
+     "evalue": "unable to decode time units 'months since 1955-01-01 00:00:00' with 'the default calendar'. Try opening your dataset with decode_times=False or installing cftime if it is not installed.",
+     "output_type": "error",
+     "traceback": [
+      "Traceback \u001b[0;36m(most recent call last)\u001b[0m:\n",
+      "  File \u001b[1;32m\"/Users/rpa/Code/xarray/xarray/coding/times.py\"\u001b[0m, line \u001b[1;32m194\u001b[0m, in \u001b[1;35mdecode_cf_datetime\u001b[0m\n    dates = _decode_datetime_with_pandas(flat_num_dates, units, calendar)\n",
+      "  File \u001b[1;32m\"/Users/rpa/Code/xarray/xarray/coding/times.py\"\u001b[0m, line \u001b[1;32m146\u001b[0m, in \u001b[1;35m_decode_datetime_with_pandas\u001b[0m\n    delta = _netcdf_to_numpy_timeunit(delta)\n",
+      "\u001b[0;36m  File \u001b[0;32m\"/Users/rpa/Code/xarray/xarray/coding/times.py\"\u001b[0;36m, line \u001b[0;32m46\u001b[0;36m, in \u001b[0;35m_netcdf_to_numpy_timeunit\u001b[0;36m\u001b[0m\n\u001b[0;31m    return {\u001b[0m\n",
+      "\u001b[0;31mKeyError\u001b[0m\u001b[0;31m:\u001b[0m 'months'\n",
+      "\nDuring handling of the above exception, another exception occurred:\n",
+      "Traceback \u001b[0;36m(most recent call last)\u001b[0m:\n",
+      "  File \u001b[1;32m\"/Users/rpa/Code/xarray/xarray/coding/times.py\"\u001b[0m, line \u001b[1;32m113\u001b[0m, in \u001b[1;35m_decode_cf_datetime_dtype\u001b[0m\n    result = decode_cf_datetime(example_value, units, calendar, use_cftime)\n",
+      "  File \u001b[1;32m\"/Users/rpa/Code/xarray/xarray/coding/times.py\"\u001b[0m, line \u001b[1;32m196\u001b[0m, in \u001b[1;35mdecode_cf_datetime\u001b[0m\n    dates = _decode_datetime_with_cftime(\n",
+      "  File \u001b[1;32m\"/Users/rpa/Code/xarray/xarray/coding/times.py\"\u001b[0m, line \u001b[1;32m134\u001b[0m, in \u001b[1;35m_decode_datetime_with_cftime\u001b[0m\n    cftime.num2date(num_dates, units, calendar, only_use_cftime_datetimes=True)\n",
+      "  File \u001b[1;32m\"cftime/_cftime.pyx\"\u001b[0m, line \u001b[1;32m461\u001b[0m, in \u001b[1;35mcftime._cftime.num2date\u001b[0m\n",
+      "\u001b[0;36m  File \u001b[0;32m\"cftime/_cftime.pyx\"\u001b[0;36m, line \u001b[0;32m133\u001b[0;36m, in \u001b[0;35mcftime._cftime._dateparse\u001b[0;36m\u001b[0m\n",
+      "\u001b[0;31mValueError\u001b[0m\u001b[0;31m:\u001b[0m 'months since' units only allowed for '360_day' calendar\n",
+      "\nDuring handling of the above exception, another exception occurred:\n",
+      "Traceback \u001b[0;36m(most recent call last)\u001b[0m:\n",
+      "  File \u001b[1;32m\"<ipython-input-2-7cf168336cd7>\"\u001b[0m, line \u001b[1;32m3\u001b[0m, in \u001b[1;35m<module>\u001b[0m\n    ds = xr.open_dataset(\"woa18_decav_t01_5d.nc\")\n",
+      "  File \u001b[1;32m\"/Users/rpa/Code/xarray/xarray/backends/api.py\"\u001b[0m, line \u001b[1;32m575\u001b[0m, in \u001b[1;35mopen_dataset\u001b[0m\n    ds = maybe_decode_store(store, chunks)\n",
+      "  File \u001b[1;32m\"/Users/rpa/Code/xarray/xarray/backends/api.py\"\u001b[0m, line \u001b[1;32m471\u001b[0m, in \u001b[1;35mmaybe_decode_store\u001b[0m\n    ds = conventions.decode_cf(\n",
+      "  File \u001b[1;32m\"/Users/rpa/Code/xarray/xarray/conventions.py\"\u001b[0m, line \u001b[1;32m589\u001b[0m, in \u001b[1;35mdecode_cf\u001b[0m\n    vars, attrs, coord_names = decode_cf_variables(\n",
+      "  File \u001b[1;32m\"/Users/rpa/Code/xarray/xarray/conventions.py\"\u001b[0m, line \u001b[1;32m492\u001b[0m, in \u001b[1;35mdecode_cf_variables\u001b[0m\n    new_vars[k] = decode_cf_variable(\n",
+      "  File \u001b[1;32m\"/Users/rpa/Code/xarray/xarray/conventions.py\"\u001b[0m, line \u001b[1;32m340\u001b[0m, in \u001b[1;35mdecode_cf_variable\u001b[0m\n    var = times.CFDatetimeCoder(use_cftime=use_cftime).decode(var, name=name)\n",
+      "  File \u001b[1;32m\"/Users/rpa/Code/xarray/xarray/coding/times.py\"\u001b[0m, line \u001b[1;32m463\u001b[0m, in \u001b[1;35mdecode\u001b[0m\n    dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n",
+      "\u001b[0;36m  File \u001b[0;32m\"/Users/rpa/Code/xarray/xarray/coding/times.py\"\u001b[0;36m, line \u001b[0;32m123\u001b[0;36m, in \u001b[0;35m_decode_cf_datetime_dtype\u001b[0;36m\u001b[0m\n\u001b[0;31m    raise ValueError(msg)\u001b[0m\n",
+      "\u001b[0;31mValueError\u001b[0m\u001b[0;31m:\u001b[0m unable to decode time units 'months since 1955-01-01 00:00:00' with 'the default calendar'. Try opening your dataset with decode_times=False or installing cftime if it is not installed.\n"
+     ]
+    }
+   ],
+   "source": [
+    "%xmode plain\n",
+    "import xarray as xr\n",
+    "ds = xr.open_dataset(\"woa18_decav_t01_5d.nc\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "❗️ Oh no, we got an error!\n",
+    "\n",
+    "This is a very common problem. The calendar is encoded using \"months since\" units, which are ambiguous in the [CF Conventions](https://cfconventions.org/Data/cf-conventions/cf-conventions-1.8/cf-conventions.html#calendar). (The precise length of a month is variable by month an year.)\n",
+    "\n",
+    "We will follow the advice and do"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
+       "<defs>\n",
+       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "</symbol>\n",
+       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "</symbol>\n",
+       "</defs>\n",
+       "</svg>\n",
+       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
+       " *\n",
+       " */\n",
+       "\n",
+       ":root {\n",
+       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
+       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
+       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
+       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
+       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
+       "  --xr-background-color: var(--jp-layout-color0, white);\n",
+       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
+       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
+       "}\n",
+       "\n",
+       "html[theme=dark],\n",
+       "body.vscode-dark {\n",
+       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
+       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
+       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
+       "  --xr-border-color: #1F1F1F;\n",
+       "  --xr-disabled-color: #515151;\n",
+       "  --xr-background-color: #111111;\n",
+       "  --xr-background-color-row-even: #111111;\n",
+       "  --xr-background-color-row-odd: #313131;\n",
+       "}\n",
+       "\n",
+       ".xr-wrap {\n",
+       "  display: block;\n",
+       "  min-width: 300px;\n",
+       "  max-width: 700px;\n",
+       "}\n",
+       "\n",
+       ".xr-text-repr-fallback {\n",
+       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-header {\n",
+       "  padding-top: 6px;\n",
+       "  padding-bottom: 6px;\n",
+       "  margin-bottom: 4px;\n",
+       "  border-bottom: solid 1px var(--xr-border-color);\n",
+       "}\n",
+       "\n",
+       ".xr-header > div,\n",
+       ".xr-header > ul {\n",
+       "  display: inline;\n",
+       "  margin-top: 0;\n",
+       "  margin-bottom: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-obj-type,\n",
+       ".xr-array-name {\n",
+       "  margin-left: 2px;\n",
+       "  margin-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-obj-type {\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-sections {\n",
+       "  padding-left: 0 !important;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input + label {\n",
+       "  color: var(--xr-disabled-color);\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input:enabled + label {\n",
+       "  cursor: pointer;\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input:enabled + label:hover {\n",
+       "  color: var(--xr-font-color0);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary {\n",
+       "  grid-column: 1;\n",
+       "  color: var(--xr-font-color2);\n",
+       "  font-weight: 500;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary > span {\n",
+       "  display: inline-block;\n",
+       "  padding-left: 0.5em;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:disabled + label {\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in + label:before {\n",
+       "  display: inline-block;\n",
+       "  content: '►';\n",
+       "  font-size: 11px;\n",
+       "  width: 15px;\n",
+       "  text-align: center;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:disabled + label:before {\n",
+       "  color: var(--xr-disabled-color);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked + label:before {\n",
+       "  content: '▼';\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked + label > span {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary,\n",
+       ".xr-section-inline-details {\n",
+       "  padding-top: 4px;\n",
+       "  padding-bottom: 4px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-inline-details {\n",
+       "  grid-column: 2 / -1;\n",
+       "}\n",
+       "\n",
+       ".xr-section-details {\n",
+       "  display: none;\n",
+       "  grid-column: 1 / -1;\n",
+       "  margin-bottom: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-array-wrap {\n",
+       "  grid-column: 1 / -1;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 20px auto;\n",
+       "}\n",
+       "\n",
+       ".xr-array-wrap > label {\n",
+       "  grid-column: 1;\n",
+       "  vertical-align: top;\n",
+       "}\n",
+       "\n",
+       ".xr-preview {\n",
+       "  color: var(--xr-font-color3);\n",
+       "}\n",
+       "\n",
+       ".xr-array-preview,\n",
+       ".xr-array-data {\n",
+       "  padding: 0 5px !important;\n",
+       "  grid-column: 2;\n",
+       "}\n",
+       "\n",
+       ".xr-array-data,\n",
+       ".xr-array-in:checked ~ .xr-array-preview {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-array-in:checked ~ .xr-array-data,\n",
+       ".xr-array-preview {\n",
+       "  display: inline-block;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list {\n",
+       "  display: inline-block !important;\n",
+       "  list-style: none;\n",
+       "  padding: 0 !important;\n",
+       "  margin: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list li {\n",
+       "  display: inline-block;\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list:before {\n",
+       "  content: '(';\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list:after {\n",
+       "  content: ')';\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list li:not(:last-child):after {\n",
+       "  content: ',';\n",
+       "  padding-right: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-has-index {\n",
+       "  font-weight: bold;\n",
+       "}\n",
+       "\n",
+       ".xr-var-list,\n",
+       ".xr-var-item {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-var-item > div,\n",
+       ".xr-var-item label,\n",
+       ".xr-var-item > .xr-var-name span {\n",
+       "  background-color: var(--xr-background-color-row-even);\n",
+       "  margin-bottom: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-var-item > .xr-var-name:hover span {\n",
+       "  padding-right: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-var-list > li:nth-child(odd) > div,\n",
+       ".xr-var-list > li:nth-child(odd) > label,\n",
+       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
+       "  background-color: var(--xr-background-color-row-odd);\n",
+       "}\n",
+       "\n",
+       ".xr-var-name {\n",
+       "  grid-column: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-var-dims {\n",
+       "  grid-column: 2;\n",
+       "}\n",
+       "\n",
+       ".xr-var-dtype {\n",
+       "  grid-column: 3;\n",
+       "  text-align: right;\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-var-preview {\n",
+       "  grid-column: 4;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name,\n",
+       ".xr-var-dims,\n",
+       ".xr-var-dtype,\n",
+       ".xr-preview,\n",
+       ".xr-attrs dt {\n",
+       "  white-space: nowrap;\n",
+       "  overflow: hidden;\n",
+       "  text-overflow: ellipsis;\n",
+       "  padding-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name:hover,\n",
+       ".xr-var-dims:hover,\n",
+       ".xr-var-dtype:hover,\n",
+       ".xr-attrs dt:hover {\n",
+       "  overflow: visible;\n",
+       "  width: auto;\n",
+       "  z-index: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-var-attrs,\n",
+       ".xr-var-data {\n",
+       "  display: none;\n",
+       "  background-color: var(--xr-background-color) !important;\n",
+       "  padding-bottom: 5px !important;\n",
+       "}\n",
+       "\n",
+       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
+       ".xr-var-data-in:checked ~ .xr-var-data {\n",
+       "  display: block;\n",
+       "}\n",
+       "\n",
+       ".xr-var-data > table {\n",
+       "  float: right;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name span,\n",
+       ".xr-var-data,\n",
+       ".xr-attrs {\n",
+       "  padding-left: 25px !important;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs,\n",
+       ".xr-var-attrs,\n",
+       ".xr-var-data {\n",
+       "  grid-column: 1 / -1;\n",
+       "}\n",
+       "\n",
+       "dl.xr-attrs {\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 125px auto;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt,\n",
+       ".xr-attrs dd {\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "  float: left;\n",
+       "  padding-right: 10px;\n",
+       "  width: auto;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt {\n",
+       "  font-weight: normal;\n",
+       "  grid-column: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt:hover span {\n",
+       "  display: inline-block;\n",
+       "  background: var(--xr-background-color);\n",
+       "  padding-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dd {\n",
+       "  grid-column: 2;\n",
+       "  white-space: pre-wrap;\n",
+       "  word-break: break-all;\n",
+       "}\n",
+       "\n",
+       ".xr-icon-database,\n",
+       ".xr-icon-file-text2 {\n",
+       "  display: inline-block;\n",
+       "  vertical-align: middle;\n",
+       "  width: 1em;\n",
+       "  height: 1.5em !important;\n",
+       "  stroke-width: 0;\n",
+       "  stroke: currentColor;\n",
+       "  fill: currentColor;\n",
+       "}\n",
+       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
+       "Dimensions:             (depth: 57, lat: 36, lon: 72, nbounds: 2, time: 1)\n",
+       "Coordinates:\n",
+       "  * lat                 (lat) float32 -87.5 -82.5 -77.5 -72.5 ... 77.5 82.5 87.5\n",
+       "  * lon                 (lon) float32 -177.5 -172.5 -167.5 ... 167.5 172.5 177.5\n",
+       "  * depth               (depth) float32 0.0 5.0 10.0 ... 1.45e+03 1.5e+03\n",
+       "  * time                (time) float32 372.5\n",
+       "Dimensions without coordinates: nbounds\n",
+       "Data variables:\n",
+       "    crs                 int32 -2147483647\n",
+       "    lat_bnds            (lat, nbounds) float32 -90.0 -85.0 -85.0 ... 85.0 90.0\n",
+       "    lon_bnds            (lon, nbounds) float32 -180.0 -175.0 ... 175.0 180.0\n",
+       "    depth_bnds          (depth, nbounds) float32 0.0 2.5 ... 1.475e+03 1.5e+03\n",
+       "    climatology_bounds  (time, nbounds) float32 0.0 404.0\n",
+       "    t_mn                (time, depth, lat, lon) float32 ...\n",
+       "    t_dd                (time, depth, lat, lon) float64 ...\n",
+       "    t_sd                (time, depth, lat, lon) float32 ...\n",
+       "    t_se                (time, depth, lat, lon) float32 ...\n",
+       "Attributes:\n",
+       "    Conventions:                     CF-1.6, ACDD-1.3\n",
+       "    title:                           World Ocean Atlas 2018 : sea_water_tempe...\n",
+       "    summary:                         PRERELEASE Climatological mean temperatu...\n",
+       "    references:                      Locarnini, R. A., A. V. Mishonov, O. K. ...\n",
+       "    institution:                     National Centers for Environmental Infor...\n",
+       "    comment:                         global climatology as part of the World ...\n",
+       "    id:                              woa18_decav_t01_5d.nc\n",
+       "    naming_authority:                gov.noaa.ncei\n",
+       "    sea_name:                        World-Wide Distribution\n",
+       "    time_coverage_start:             1955-01-01\n",
+       "    time_coverage_end:               2017-01-31\n",
+       "    time_coverage_duration:          P63Y\n",
+       "    time_coverage_resolution:        P01M\n",
+       "    geospatial_lat_min:              -90.0\n",
+       "    geospatial_lat_max:              90.0\n",
+       "    geospatial_lon_min:              -180.0\n",
+       "    geospatial_lon_max:              180.0\n",
+       "    geospatial_vertical_min:         0.0\n",
+       "    geospatial_vertical_max:         1500.0\n",
+       "    geospatial_lat_units:            degrees_north\n",
+       "    geospatial_lat_resolution:       5.00 degrees\n",
+       "    geospatial_lon_units:            degrees_east\n",
+       "    geospatial_lon_resolution:       5.00 degrees\n",
+       "    geospatial_vertical_units:       m\n",
+       "    geospatial_vertical_resolution:  SPECIAL\n",
+       "    geospatial_vertical_positive:    down\n",
+       "    creator_name:                    Ocean Climate Laboratory\n",
+       "    creator_email:                   NCEI.info@noaa.gov\n",
+       "    creator_url:                     http://www.ncei.noaa.gov\n",
+       "    creator_type:                    group\n",
+       "    creator_institution:             National Centers for Environmental Infor...\n",
+       "    project:                         World Ocean Atlas Project\n",
+       "    processing_level:                processed\n",
+       "    keywords:                        Oceans&lt; Ocean Temperature &gt; Water Temper...\n",
+       "    keywords_vocabulary:             ISO 19115\n",
+       "    standard_name_vocabulary:        CF Standard Name Table v49\n",
+       "    contributor_name:                Ocean Climate Laboratory\n",
+       "    contributor_role:                Calculation of climatologies\n",
+       "    cdm_data_type:                   Grid\n",
+       "    publisher_name:                  National Centers for Environmental Infor...\n",
+       "    publisher_institution:           National Centers for Environmental Infor...\n",
+       "    publisher_type:                  institution\n",
+       "    publisher_url:                   http://www.ncei.noaa.gov/\n",
+       "    publisher_email:                 NCEI.info@noaa.gov\n",
+       "    nodc_template_version:           NODC_NetCDF_Grid_Template_v2.0\n",
+       "    license:                         These data are openly available to the p...\n",
+       "    metadata_link:                   http://www.nodc.noaa.gov/OC5/WOA18/pr_wo...\n",
+       "    date_created:                    2018-02-19 \n",
+       "    date_modified:                   2018-02-19 </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-bf36ffef-eefa-4788-8bef-3e53957998f4' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-bf36ffef-eefa-4788-8bef-3e53957998f4' 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'>depth</span>: 57</li><li><span class='xr-has-index'>lat</span>: 36</li><li><span class='xr-has-index'>lon</span>: 72</li><li><span>nbounds</span>: 2</li><li><span class='xr-has-index'>time</span>: 1</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-38c0a4fd-86a6-4126-a464-cc074b1befdf' class='xr-section-summary-in' type='checkbox'  checked><label for='section-38c0a4fd-86a6-4126-a464-cc074b1befdf' class='xr-section-summary' >Coordinates: <span>(4)</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'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>-87.5 -82.5 -77.5 ... 82.5 87.5</div><input id='attrs-a9d46c70-445e-4063-95f5-ce0fd7aee7b1' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a9d46c70-445e-4063-95f5-ce0fd7aee7b1' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-73aae503-6652-4e23-8e39-5522b412d23f' class='xr-var-data-in' type='checkbox'><label for='data-73aae503-6652-4e23-8e39-5522b412d23f' 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>standard_name :</span></dt><dd>latitude</dd><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd><dt><span>axis :</span></dt><dd>Y</dd><dt><span>bounds :</span></dt><dd>lat_bnds</dd></dl></div><div class='xr-var-data'><pre>array([-87.5, -82.5, -77.5, -72.5, -67.5, -62.5, -57.5, -52.5, -47.5, -42.5,\n",
+       "       -37.5, -32.5, -27.5, -22.5, -17.5, -12.5,  -7.5,  -2.5,   2.5,   7.5,\n",
+       "        12.5,  17.5,  22.5,  27.5,  32.5,  37.5,  42.5,  47.5,  52.5,  57.5,\n",
+       "        62.5,  67.5,  72.5,  77.5,  82.5,  87.5], dtype=float32)</pre></div></li><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'>float32</div><div class='xr-var-preview xr-preview'>-177.5 -172.5 ... 172.5 177.5</div><input id='attrs-026d8d73-b8b7-4b24-bdea-60dece85a132' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-026d8d73-b8b7-4b24-bdea-60dece85a132' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e60ce5db-ed6e-4fa6-b554-5b101ccca84d' class='xr-var-data-in' type='checkbox'><label for='data-e60ce5db-ed6e-4fa6-b554-5b101ccca84d' 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>standard_name :</span></dt><dd>longitude</dd><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd><dt><span>axis :</span></dt><dd>X</dd><dt><span>bounds :</span></dt><dd>lon_bnds</dd></dl></div><div class='xr-var-data'><pre>array([-177.5, -172.5, -167.5, -162.5, -157.5, -152.5, -147.5, -142.5, -137.5,\n",
+       "       -132.5, -127.5, -122.5, -117.5, -112.5, -107.5, -102.5,  -97.5,  -92.5,\n",
+       "        -87.5,  -82.5,  -77.5,  -72.5,  -67.5,  -62.5,  -57.5,  -52.5,  -47.5,\n",
+       "        -42.5,  -37.5,  -32.5,  -27.5,  -22.5,  -17.5,  -12.5,   -7.5,   -2.5,\n",
+       "          2.5,    7.5,   12.5,   17.5,   22.5,   27.5,   32.5,   37.5,   42.5,\n",
+       "         47.5,   52.5,   57.5,   62.5,   67.5,   72.5,   77.5,   82.5,   87.5,\n",
+       "         92.5,   97.5,  102.5,  107.5,  112.5,  117.5,  122.5,  127.5,  132.5,\n",
+       "        137.5,  142.5,  147.5,  152.5,  157.5,  162.5,  167.5,  172.5,  177.5],\n",
+       "      dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>depth</span></div><div class='xr-var-dims'>(depth)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>0.0 5.0 10.0 ... 1.45e+03 1.5e+03</div><input id='attrs-4643b587-dbd2-404c-aafa-8ac17c7efe27' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-4643b587-dbd2-404c-aafa-8ac17c7efe27' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-b3537557-0db0-4ae1-a3e7-8420a56f8d63' class='xr-var-data-in' type='checkbox'><label for='data-b3537557-0db0-4ae1-a3e7-8420a56f8d63' 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>standard_name :</span></dt><dd>depth</dd><dt><span>bounds :</span></dt><dd>depth_bnds</dd><dt><span>positive :</span></dt><dd>down</dd><dt><span>units :</span></dt><dd>meters</dd><dt><span>axis :</span></dt><dd>Z</dd></dl></div><div class='xr-var-data'><pre>array([   0.,    5.,   10.,   15.,   20.,   25.,   30.,   35.,   40.,   45.,\n",
+       "         50.,   55.,   60.,   65.,   70.,   75.,   80.,   85.,   90.,   95.,\n",
+       "        100.,  125.,  150.,  175.,  200.,  225.,  250.,  275.,  300.,  325.,\n",
+       "        350.,  375.,  400.,  425.,  450.,  475.,  500.,  550.,  600.,  650.,\n",
+       "        700.,  750.,  800.,  850.,  900.,  950., 1000., 1050., 1100., 1150.,\n",
+       "       1200., 1250., 1300., 1350., 1400., 1450., 1500.], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>372.5</div><input id='attrs-61395312-b734-4818-9da8-e7f00c45b886' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-61395312-b734-4818-9da8-e7f00c45b886' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a0d4edeb-8172-402b-8b54-e30271184579' class='xr-var-data-in' type='checkbox'><label for='data-a0d4edeb-8172-402b-8b54-e30271184579' 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>standard_name :</span></dt><dd>time</dd><dt><span>long_name :</span></dt><dd>time</dd><dt><span>units :</span></dt><dd>months since 1955-01-01 00:00:00</dd><dt><span>axis :</span></dt><dd>T</dd><dt><span>climatology :</span></dt><dd>climatology_bounds</dd></dl></div><div class='xr-var-data'><pre>array([372.5], dtype=float32)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-b4a9ab78-8c78-4dbb-b69f-3c13f4ece862' class='xr-section-summary-in' type='checkbox'  checked><label for='section-b4a9ab78-8c78-4dbb-b69f-3c13f4ece862' class='xr-section-summary' >Data variables: <span>(9)</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>crs</span></div><div class='xr-var-dims'>()</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-8921e11d-f4e2-4106-8896-607d1f16c671' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-8921e11d-f4e2-4106-8896-607d1f16c671' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-52750617-8150-4040-a6cb-5e3b09217670' class='xr-var-data-in' type='checkbox'><label for='data-52750617-8150-4040-a6cb-5e3b09217670' 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>grid_mapping_name :</span></dt><dd>latitude_longitude</dd><dt><span>epsg_code :</span></dt><dd>EPSG:4326</dd><dt><span>longitude_of_prime_meridian :</span></dt><dd>0.0</dd><dt><span>semi_major_axis :</span></dt><dd>6378137.0</dd><dt><span>inverse_flattening :</span></dt><dd>298.25723</dd></dl></div><div class='xr-var-data'><pre>array(-2147483647, dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>lat_bnds</span></div><div class='xr-var-dims'>(lat, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-feca1f7b-32d7-409f-bd3d-109fb2f785ee' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-feca1f7b-32d7-409f-bd3d-109fb2f785ee' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1313b08b-0d36-41f8-8190-aec053dcbada' class='xr-var-data-in' type='checkbox'><label for='data-1313b08b-0d36-41f8-8190-aec053dcbada' 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>comment :</span></dt><dd>latitude bounds</dd></dl></div><div class='xr-var-data'><pre>array([[-90., -85.],\n",
+       "       [-85., -80.],\n",
+       "       [-80., -75.],\n",
+       "       [-75., -70.],\n",
+       "       [-70., -65.],\n",
+       "       [-65., -60.],\n",
+       "       [-60., -55.],\n",
+       "       [-55., -50.],\n",
+       "       [-50., -45.],\n",
+       "       [-45., -40.],\n",
+       "       [-40., -35.],\n",
+       "       [-35., -30.],\n",
+       "       [-30., -25.],\n",
+       "       [-25., -20.],\n",
+       "       [-20., -15.],\n",
+       "       [-15., -10.],\n",
+       "       [-10.,  -5.],\n",
+       "       [ -5.,   0.],\n",
+       "       [  0.,   5.],\n",
+       "       [  5.,  10.],\n",
+       "       [ 10.,  15.],\n",
+       "       [ 15.,  20.],\n",
+       "       [ 20.,  25.],\n",
+       "       [ 25.,  30.],\n",
+       "       [ 30.,  35.],\n",
+       "       [ 35.,  40.],\n",
+       "       [ 40.,  45.],\n",
+       "       [ 45.,  50.],\n",
+       "       [ 50.,  55.],\n",
+       "       [ 55.,  60.],\n",
+       "       [ 60.,  65.],\n",
+       "       [ 65.,  70.],\n",
+       "       [ 70.,  75.],\n",
+       "       [ 75.,  80.],\n",
+       "       [ 80.,  85.],\n",
+       "       [ 85.,  90.]], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>lon_bnds</span></div><div class='xr-var-dims'>(lon, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-9b34cd88-a223-4a5c-ac5d-02edc869c88d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-9b34cd88-a223-4a5c-ac5d-02edc869c88d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-94e17d0f-7ff2-4cce-b71b-d151baa90a85' class='xr-var-data-in' type='checkbox'><label for='data-94e17d0f-7ff2-4cce-b71b-d151baa90a85' 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>comment :</span></dt><dd>longitude bounds</dd></dl></div><div class='xr-var-data'><pre>array([[-180., -175.],\n",
+       "       [-175., -170.],\n",
+       "       [-170., -165.],\n",
+       "       [-165., -160.],\n",
+       "       [-160., -155.],\n",
+       "       [-155., -150.],\n",
+       "       [-150., -145.],\n",
+       "       [-145., -140.],\n",
+       "       [-140., -135.],\n",
+       "       [-135., -130.],\n",
+       "       [-130., -125.],\n",
+       "       [-125., -120.],\n",
+       "       [-120., -115.],\n",
+       "       [-115., -110.],\n",
+       "       [-110., -105.],\n",
+       "       [-105., -100.],\n",
+       "       [-100.,  -95.],\n",
+       "       [ -95.,  -90.],\n",
+       "       [ -90.,  -85.],\n",
+       "       [ -85.,  -80.],\n",
+       "       [ -80.,  -75.],\n",
+       "       [ -75.,  -70.],\n",
+       "       [ -70.,  -65.],\n",
+       "       [ -65.,  -60.],\n",
+       "       [ -60.,  -55.],\n",
+       "       [ -55.,  -50.],\n",
+       "       [ -50.,  -45.],\n",
+       "       [ -45.,  -40.],\n",
+       "       [ -40.,  -35.],\n",
+       "       [ -35.,  -30.],\n",
+       "       [ -30.,  -25.],\n",
+       "       [ -25.,  -20.],\n",
+       "       [ -20.,  -15.],\n",
+       "       [ -15.,  -10.],\n",
+       "       [ -10.,   -5.],\n",
+       "       [  -5.,    0.],\n",
+       "       [   0.,    5.],\n",
+       "       [   5.,   10.],\n",
+       "       [  10.,   15.],\n",
+       "       [  15.,   20.],\n",
+       "       [  20.,   25.],\n",
+       "       [  25.,   30.],\n",
+       "       [  30.,   35.],\n",
+       "       [  35.,   40.],\n",
+       "       [  40.,   45.],\n",
+       "       [  45.,   50.],\n",
+       "       [  50.,   55.],\n",
+       "       [  55.,   60.],\n",
+       "       [  60.,   65.],\n",
+       "       [  65.,   70.],\n",
+       "       [  70.,   75.],\n",
+       "       [  75.,   80.],\n",
+       "       [  80.,   85.],\n",
+       "       [  85.,   90.],\n",
+       "       [  90.,   95.],\n",
+       "       [  95.,  100.],\n",
+       "       [ 100.,  105.],\n",
+       "       [ 105.,  110.],\n",
+       "       [ 110.,  115.],\n",
+       "       [ 115.,  120.],\n",
+       "       [ 120.,  125.],\n",
+       "       [ 125.,  130.],\n",
+       "       [ 130.,  135.],\n",
+       "       [ 135.,  140.],\n",
+       "       [ 140.,  145.],\n",
+       "       [ 145.,  150.],\n",
+       "       [ 150.,  155.],\n",
+       "       [ 155.,  160.],\n",
+       "       [ 160.,  165.],\n",
+       "       [ 165.,  170.],\n",
+       "       [ 170.,  175.],\n",
+       "       [ 175.,  180.]], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>depth_bnds</span></div><div class='xr-var-dims'>(depth, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-e2b63bd8-6ca7-4858-aad7-3f031ff34ed8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-e2b63bd8-6ca7-4858-aad7-3f031ff34ed8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-2a2d2ad0-0002-40be-85bd-a41c9a2d4deb' class='xr-var-data-in' type='checkbox'><label for='data-2a2d2ad0-0002-40be-85bd-a41c9a2d4deb' 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>comment :</span></dt><dd>depth bounds</dd></dl></div><div class='xr-var-data'><pre>array([[   0. ,    2.5],\n",
+       "       [   2.5,    7.5],\n",
+       "       [   7.5,   12.5],\n",
+       "       [  12.5,   17.5],\n",
+       "       [  17.5,   22.5],\n",
+       "       [  22.5,   27.5],\n",
+       "       [  27.5,   32.5],\n",
+       "       [  32.5,   37.5],\n",
+       "       [  37.5,   42.5],\n",
+       "       [  42.5,   47.5],\n",
+       "       [  47.5,   52.5],\n",
+       "       [  52.5,   57.5],\n",
+       "       [  57.5,   62.5],\n",
+       "       [  62.5,   67.5],\n",
+       "       [  67.5,   72.5],\n",
+       "       [  72.5,   77.5],\n",
+       "       [  77.5,   82.5],\n",
+       "       [  82.5,   87.5],\n",
+       "       [  87.5,   92.5],\n",
+       "       [  92.5,   97.5],\n",
+       "       [  97.5,  112.5],\n",
+       "       [ 112.5,  137.5],\n",
+       "       [ 137.5,  162.5],\n",
+       "       [ 162.5,  187.5],\n",
+       "       [ 187.5,  212.5],\n",
+       "       [ 212.5,  237.5],\n",
+       "       [ 237.5,  262.5],\n",
+       "       [ 262.5,  287.5],\n",
+       "       [ 287.5,  312.5],\n",
+       "       [ 312.5,  337.5],\n",
+       "       [ 337.5,  362.5],\n",
+       "       [ 362.5,  387.5],\n",
+       "       [ 387.5,  412.5],\n",
+       "       [ 412.5,  437.5],\n",
+       "       [ 437.5,  462.5],\n",
+       "       [ 462.5,  487.5],\n",
+       "       [ 487.5,  525. ],\n",
+       "       [ 525. ,  575. ],\n",
+       "       [ 575. ,  625. ],\n",
+       "       [ 625. ,  675. ],\n",
+       "       [ 675. ,  725. ],\n",
+       "       [ 725. ,  775. ],\n",
+       "       [ 775. ,  825. ],\n",
+       "       [ 825. ,  875. ],\n",
+       "       [ 875. ,  925. ],\n",
+       "       [ 925. ,  975. ],\n",
+       "       [ 975. , 1025. ],\n",
+       "       [1025. , 1075. ],\n",
+       "       [1075. , 1125. ],\n",
+       "       [1125. , 1175. ],\n",
+       "       [1175. , 1225. ],\n",
+       "       [1225. , 1275. ],\n",
+       "       [1275. , 1325. ],\n",
+       "       [1325. , 1375. ],\n",
+       "       [1375. , 1425. ],\n",
+       "       [1425. , 1475. ],\n",
+       "       [1475. , 1500. ]], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>climatology_bounds</span></div><div class='xr-var-dims'>(time, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-803b068e-e9ee-4c78-9c80-f6b40b5ed367' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-803b068e-e9ee-4c78-9c80-f6b40b5ed367' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-db2e36df-4e5a-4fd1-aeb9-f16a9a060fd1' class='xr-var-data-in' type='checkbox'><label for='data-db2e36df-4e5a-4fd1-aeb9-f16a9a060fd1' 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>comment :</span></dt><dd>This variable defines the bounds of the climatological time period for each time</dd></dl></div><div class='xr-var-data'><pre>array([[  0., 404.]], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_mn</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-49772078-17a7-415d-af0c-a0f64e11133d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-49772078-17a7-415d-af0c-a0f64e11133d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-646b7444-cf13-42a9-9add-ba951f7c8732' class='xr-var-data-in' type='checkbox'><label for='data-646b7444-cf13-42a9-9add-ba951f7c8732' 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>standard_name :</span></dt><dd>sea_water_temperature</dd><dt><span>long_name :</span></dt><dd>Average of all unflagged interpolated values at each standard depth level for sea_water_temperature in each grid-square which contain at least one measurement.</dd><dt><span>cell_methods :</span></dt><dd>area: mean depth: mean time: mean within years time: mean over years</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>units :</span></dt><dd>degrees_celsius</dd></dl></div><div class='xr-var-data'><pre>[147744 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_dd</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-5215e935-611a-498c-a678-03fa1a326810' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-5215e935-611a-498c-a678-03fa1a326810' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-4b1b5fbd-bbc9-4d76-84e4-1c337c968e77' class='xr-var-data-in' type='checkbox'><label for='data-4b1b5fbd-bbc9-4d76-84e4-1c337c968e77' 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>standard_name :</span></dt><dd>sea_water_temperature number_of_observations</dd><dt><span>long_name :</span></dt><dd>The number of observations of sea_water_temperature in each grid-square at each standard depth level.</dd><dt><span>cell_methods :</span></dt><dd>area: sum depth: point time: sum</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>units :</span></dt><dd>1</dd></dl></div><div class='xr-var-data'><pre>[147744 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_sd</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-6b818b29-a3ec-49ba-98b4-1e5024996898' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6b818b29-a3ec-49ba-98b4-1e5024996898' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-36c7c511-d623-4e13-ba40-8cd11ce1fda1' class='xr-var-data-in' type='checkbox'><label for='data-36c7c511-d623-4e13-ba40-8cd11ce1fda1' 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>The standard deviation about the statistical mean of sea_water_temperature in each grid-square at each standard depth level.</dd><dt><span>cell_methods :</span></dt><dd>area: mean depth: mean time: standard_deviation</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>units :</span></dt><dd>degrees_celsius</dd></dl></div><div class='xr-var-data'><pre>[147744 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_se</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-405e5ea4-8c95-455b-b9b1-58523f2a8815' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-405e5ea4-8c95-455b-b9b1-58523f2a8815' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-82f49118-30eb-46f7-a8d2-aad17d184828' class='xr-var-data-in' type='checkbox'><label for='data-82f49118-30eb-46f7-a8d2-aad17d184828' 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>standard_name :</span></dt><dd>sea_water_temperature standard_error</dd><dt><span>long_name :</span></dt><dd>The standard error about the statistical mean of sea_water_temperature in each grid-square at each standard depth level.</dd><dt><span>cell_methods :</span></dt><dd>area: mean depth: mean time: mean</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>units :</span></dt><dd>degrees_celsius</dd></dl></div><div class='xr-var-data'><pre>[147744 values with dtype=float32]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-240f1c77-c625-4429-a87e-53086ebb96b3' class='xr-section-summary-in' type='checkbox'  ><label for='section-240f1c77-c625-4429-a87e-53086ebb96b3' class='xr-section-summary' >Attributes: <span>(49)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>Conventions :</span></dt><dd>CF-1.6, ACDD-1.3</dd><dt><span>title :</span></dt><dd>World Ocean Atlas 2018 : sea_water_temperature January 1955-2017 5.00 degree</dd><dt><span>summary :</span></dt><dd>PRERELEASE Climatological mean temperature for the global ocean from in situ profile data</dd><dt><span>references :</span></dt><dd>Locarnini, R. A., A. V. Mishonov, O. K. Baranova, T. P. Boyer, M. M. Zweng, H. E. Garcia, J. R. Reagan, D. Seidov, K. W. Weathers, C. R. Paver, I. V. Smolyar, 2018: World Ocean Atlas 2018, Volume 1: Temperature.  A. V. Mishonov, Technical Ed., NOAA Atlas NESDIS ##</dd><dt><span>institution :</span></dt><dd>National Centers for Environmental Information (NCEI)</dd><dt><span>comment :</span></dt><dd>global climatology as part of the World Ocean Atlas project</dd><dt><span>id :</span></dt><dd>woa18_decav_t01_5d.nc</dd><dt><span>naming_authority :</span></dt><dd>gov.noaa.ncei</dd><dt><span>sea_name :</span></dt><dd>World-Wide Distribution</dd><dt><span>time_coverage_start :</span></dt><dd>1955-01-01</dd><dt><span>time_coverage_end :</span></dt><dd>2017-01-31</dd><dt><span>time_coverage_duration :</span></dt><dd>P63Y</dd><dt><span>time_coverage_resolution :</span></dt><dd>P01M</dd><dt><span>geospatial_lat_min :</span></dt><dd>-90.0</dd><dt><span>geospatial_lat_max :</span></dt><dd>90.0</dd><dt><span>geospatial_lon_min :</span></dt><dd>-180.0</dd><dt><span>geospatial_lon_max :</span></dt><dd>180.0</dd><dt><span>geospatial_vertical_min :</span></dt><dd>0.0</dd><dt><span>geospatial_vertical_max :</span></dt><dd>1500.0</dd><dt><span>geospatial_lat_units :</span></dt><dd>degrees_north</dd><dt><span>geospatial_lat_resolution :</span></dt><dd>5.00 degrees</dd><dt><span>geospatial_lon_units :</span></dt><dd>degrees_east</dd><dt><span>geospatial_lon_resolution :</span></dt><dd>5.00 degrees</dd><dt><span>geospatial_vertical_units :</span></dt><dd>m</dd><dt><span>geospatial_vertical_resolution :</span></dt><dd>SPECIAL</dd><dt><span>geospatial_vertical_positive :</span></dt><dd>down</dd><dt><span>creator_name :</span></dt><dd>Ocean Climate Laboratory</dd><dt><span>creator_email :</span></dt><dd>NCEI.info@noaa.gov</dd><dt><span>creator_url :</span></dt><dd>http://www.ncei.noaa.gov</dd><dt><span>creator_type :</span></dt><dd>group</dd><dt><span>creator_institution :</span></dt><dd>National Centers for Environmental Information</dd><dt><span>project :</span></dt><dd>World Ocean Atlas Project</dd><dt><span>processing_level :</span></dt><dd>processed</dd><dt><span>keywords :</span></dt><dd>Oceans&lt; Ocean Temperature &gt; Water Temperature</dd><dt><span>keywords_vocabulary :</span></dt><dd>ISO 19115</dd><dt><span>standard_name_vocabulary :</span></dt><dd>CF Standard Name Table v49</dd><dt><span>contributor_name :</span></dt><dd>Ocean Climate Laboratory</dd><dt><span>contributor_role :</span></dt><dd>Calculation of climatologies</dd><dt><span>cdm_data_type :</span></dt><dd>Grid</dd><dt><span>publisher_name :</span></dt><dd>National Centers for Environmental Information (NCEI)</dd><dt><span>publisher_institution :</span></dt><dd>National Centers for Environmental Information</dd><dt><span>publisher_type :</span></dt><dd>institution</dd><dt><span>publisher_url :</span></dt><dd>http://www.ncei.noaa.gov/</dd><dt><span>publisher_email :</span></dt><dd>NCEI.info@noaa.gov</dd><dt><span>nodc_template_version :</span></dt><dd>NODC_NetCDF_Grid_Template_v2.0</dd><dt><span>license :</span></dt><dd>These data are openly available to the public. Please acknowledge the use of these data with the text given in the acknowledgment attribute.</dd><dt><span>metadata_link :</span></dt><dd>http://www.nodc.noaa.gov/OC5/WOA18/pr_woa18.html</dd><dt><span>date_created :</span></dt><dd>2018-02-19 </dd><dt><span>date_modified :</span></dt><dd>2018-02-19 </dd></dl></div></li></ul></div></div>"
+      ],
+      "text/plain": [
+       "<xarray.Dataset>\n",
+       "Dimensions:             (depth: 57, lat: 36, lon: 72, nbounds: 2, time: 1)\n",
+       "Coordinates:\n",
+       "  * lat                 (lat) float32 -87.5 -82.5 -77.5 -72.5 ... 77.5 82.5 87.5\n",
+       "  * lon                 (lon) float32 -177.5 -172.5 -167.5 ... 167.5 172.5 177.5\n",
+       "  * depth               (depth) float32 0.0 5.0 10.0 ... 1.45e+03 1.5e+03\n",
+       "  * time                (time) float32 372.5\n",
+       "Dimensions without coordinates: nbounds\n",
+       "Data variables:\n",
+       "    crs                 int32 ...\n",
+       "    lat_bnds            (lat, nbounds) float32 ...\n",
+       "    lon_bnds            (lon, nbounds) float32 ...\n",
+       "    depth_bnds          (depth, nbounds) float32 ...\n",
+       "    climatology_bounds  (time, nbounds) float32 ...\n",
+       "    t_mn                (time, depth, lat, lon) float32 ...\n",
+       "    t_dd                (time, depth, lat, lon) float64 ...\n",
+       "    t_sd                (time, depth, lat, lon) float32 ...\n",
+       "    t_se                (time, depth, lat, lon) float32 ...\n",
+       "Attributes:\n",
+       "    Conventions:                     CF-1.6, ACDD-1.3\n",
+       "    title:                           World Ocean Atlas 2018 : sea_water_tempe...\n",
+       "    summary:                         PRERELEASE Climatological mean temperatu...\n",
+       "    references:                      Locarnini, R. A., A. V. Mishonov, O. K. ...\n",
+       "    institution:                     National Centers for Environmental Infor...\n",
+       "    comment:                         global climatology as part of the World ...\n",
+       "    id:                              woa18_decav_t01_5d.nc\n",
+       "    naming_authority:                gov.noaa.ncei\n",
+       "    sea_name:                        World-Wide Distribution\n",
+       "    time_coverage_start:             1955-01-01\n",
+       "    time_coverage_end:               2017-01-31\n",
+       "    time_coverage_duration:          P63Y\n",
+       "    time_coverage_resolution:        P01M\n",
+       "    geospatial_lat_min:              -90.0\n",
+       "    geospatial_lat_max:              90.0\n",
+       "    geospatial_lon_min:              -180.0\n",
+       "    geospatial_lon_max:              180.0\n",
+       "    geospatial_vertical_min:         0.0\n",
+       "    geospatial_vertical_max:         1500.0\n",
+       "    geospatial_lat_units:            degrees_north\n",
+       "    geospatial_lat_resolution:       5.00 degrees\n",
+       "    geospatial_lon_units:            degrees_east\n",
+       "    geospatial_lon_resolution:       5.00 degrees\n",
+       "    geospatial_vertical_units:       m\n",
+       "    geospatial_vertical_resolution:  SPECIAL\n",
+       "    geospatial_vertical_positive:    down\n",
+       "    creator_name:                    Ocean Climate Laboratory\n",
+       "    creator_email:                   NCEI.info@noaa.gov\n",
+       "    creator_url:                     http://www.ncei.noaa.gov\n",
+       "    creator_type:                    group\n",
+       "    creator_institution:             National Centers for Environmental Infor...\n",
+       "    project:                         World Ocean Atlas Project\n",
+       "    processing_level:                processed\n",
+       "    keywords:                        Oceans< Ocean Temperature > Water Temper...\n",
+       "    keywords_vocabulary:             ISO 19115\n",
+       "    standard_name_vocabulary:        CF Standard Name Table v49\n",
+       "    contributor_name:                Ocean Climate Laboratory\n",
+       "    contributor_role:                Calculation of climatologies\n",
+       "    cdm_data_type:                   Grid\n",
+       "    publisher_name:                  National Centers for Environmental Infor...\n",
+       "    publisher_institution:           National Centers for Environmental Infor...\n",
+       "    publisher_type:                  institution\n",
+       "    publisher_url:                   http://www.ncei.noaa.gov/\n",
+       "    publisher_email:                 NCEI.info@noaa.gov\n",
+       "    nodc_template_version:           NODC_NetCDF_Grid_Template_v2.0\n",
+       "    license:                         These data are openly available to the p...\n",
+       "    metadata_link:                   http://www.nodc.noaa.gov/OC5/WOA18/pr_wo...\n",
+       "    date_created:                    2018-02-19 \n",
+       "    date_modified:                   2018-02-19 "
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "ds = xr.open_dataset(\"woa18_decav_t01_5d.nc\", decode_times=False)\n",
+    "ds"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
+       "<defs>\n",
+       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "</symbol>\n",
+       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "</symbol>\n",
+       "</defs>\n",
+       "</svg>\n",
+       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
+       " *\n",
+       " */\n",
+       "\n",
+       ":root {\n",
+       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
+       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
+       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
+       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
+       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
+       "  --xr-background-color: var(--jp-layout-color0, white);\n",
+       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
+       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
+       "}\n",
+       "\n",
+       "html[theme=dark],\n",
+       "body.vscode-dark {\n",
+       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
+       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
+       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
+       "  --xr-border-color: #1F1F1F;\n",
+       "  --xr-disabled-color: #515151;\n",
+       "  --xr-background-color: #111111;\n",
+       "  --xr-background-color-row-even: #111111;\n",
+       "  --xr-background-color-row-odd: #313131;\n",
+       "}\n",
+       "\n",
+       ".xr-wrap {\n",
+       "  display: block;\n",
+       "  min-width: 300px;\n",
+       "  max-width: 700px;\n",
+       "}\n",
+       "\n",
+       ".xr-text-repr-fallback {\n",
+       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-header {\n",
+       "  padding-top: 6px;\n",
+       "  padding-bottom: 6px;\n",
+       "  margin-bottom: 4px;\n",
+       "  border-bottom: solid 1px var(--xr-border-color);\n",
+       "}\n",
+       "\n",
+       ".xr-header > div,\n",
+       ".xr-header > ul {\n",
+       "  display: inline;\n",
+       "  margin-top: 0;\n",
+       "  margin-bottom: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-obj-type,\n",
+       ".xr-array-name {\n",
+       "  margin-left: 2px;\n",
+       "  margin-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-obj-type {\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-sections {\n",
+       "  padding-left: 0 !important;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input + label {\n",
+       "  color: var(--xr-disabled-color);\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input:enabled + label {\n",
+       "  cursor: pointer;\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input:enabled + label:hover {\n",
+       "  color: var(--xr-font-color0);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary {\n",
+       "  grid-column: 1;\n",
+       "  color: var(--xr-font-color2);\n",
+       "  font-weight: 500;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary > span {\n",
+       "  display: inline-block;\n",
+       "  padding-left: 0.5em;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:disabled + label {\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in + label:before {\n",
+       "  display: inline-block;\n",
+       "  content: '►';\n",
+       "  font-size: 11px;\n",
+       "  width: 15px;\n",
+       "  text-align: center;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:disabled + label:before {\n",
+       "  color: var(--xr-disabled-color);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked + label:before {\n",
+       "  content: '▼';\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked + label > span {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary,\n",
+       ".xr-section-inline-details {\n",
+       "  padding-top: 4px;\n",
+       "  padding-bottom: 4px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-inline-details {\n",
+       "  grid-column: 2 / -1;\n",
+       "}\n",
+       "\n",
+       ".xr-section-details {\n",
+       "  display: none;\n",
+       "  grid-column: 1 / -1;\n",
+       "  margin-bottom: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-array-wrap {\n",
+       "  grid-column: 1 / -1;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 20px auto;\n",
+       "}\n",
+       "\n",
+       ".xr-array-wrap > label {\n",
+       "  grid-column: 1;\n",
+       "  vertical-align: top;\n",
+       "}\n",
+       "\n",
+       ".xr-preview {\n",
+       "  color: var(--xr-font-color3);\n",
+       "}\n",
+       "\n",
+       ".xr-array-preview,\n",
+       ".xr-array-data {\n",
+       "  padding: 0 5px !important;\n",
+       "  grid-column: 2;\n",
+       "}\n",
+       "\n",
+       ".xr-array-data,\n",
+       ".xr-array-in:checked ~ .xr-array-preview {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-array-in:checked ~ .xr-array-data,\n",
+       ".xr-array-preview {\n",
+       "  display: inline-block;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list {\n",
+       "  display: inline-block !important;\n",
+       "  list-style: none;\n",
+       "  padding: 0 !important;\n",
+       "  margin: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list li {\n",
+       "  display: inline-block;\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list:before {\n",
+       "  content: '(';\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list:after {\n",
+       "  content: ')';\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list li:not(:last-child):after {\n",
+       "  content: ',';\n",
+       "  padding-right: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-has-index {\n",
+       "  font-weight: bold;\n",
+       "}\n",
+       "\n",
+       ".xr-var-list,\n",
+       ".xr-var-item {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-var-item > div,\n",
+       ".xr-var-item label,\n",
+       ".xr-var-item > .xr-var-name span {\n",
+       "  background-color: var(--xr-background-color-row-even);\n",
+       "  margin-bottom: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-var-item > .xr-var-name:hover span {\n",
+       "  padding-right: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-var-list > li:nth-child(odd) > div,\n",
+       ".xr-var-list > li:nth-child(odd) > label,\n",
+       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
+       "  background-color: var(--xr-background-color-row-odd);\n",
+       "}\n",
+       "\n",
+       ".xr-var-name {\n",
+       "  grid-column: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-var-dims {\n",
+       "  grid-column: 2;\n",
+       "}\n",
+       "\n",
+       ".xr-var-dtype {\n",
+       "  grid-column: 3;\n",
+       "  text-align: right;\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-var-preview {\n",
+       "  grid-column: 4;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name,\n",
+       ".xr-var-dims,\n",
+       ".xr-var-dtype,\n",
+       ".xr-preview,\n",
+       ".xr-attrs dt {\n",
+       "  white-space: nowrap;\n",
+       "  overflow: hidden;\n",
+       "  text-overflow: ellipsis;\n",
+       "  padding-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name:hover,\n",
+       ".xr-var-dims:hover,\n",
+       ".xr-var-dtype:hover,\n",
+       ".xr-attrs dt:hover {\n",
+       "  overflow: visible;\n",
+       "  width: auto;\n",
+       "  z-index: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-var-attrs,\n",
+       ".xr-var-data {\n",
+       "  display: none;\n",
+       "  background-color: var(--xr-background-color) !important;\n",
+       "  padding-bottom: 5px !important;\n",
+       "}\n",
+       "\n",
+       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
+       ".xr-var-data-in:checked ~ .xr-var-data {\n",
+       "  display: block;\n",
+       "}\n",
+       "\n",
+       ".xr-var-data > table {\n",
+       "  float: right;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name span,\n",
+       ".xr-var-data,\n",
+       ".xr-attrs {\n",
+       "  padding-left: 25px !important;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs,\n",
+       ".xr-var-attrs,\n",
+       ".xr-var-data {\n",
+       "  grid-column: 1 / -1;\n",
+       "}\n",
+       "\n",
+       "dl.xr-attrs {\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 125px auto;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt,\n",
+       ".xr-attrs dd {\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "  float: left;\n",
+       "  padding-right: 10px;\n",
+       "  width: auto;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt {\n",
+       "  font-weight: normal;\n",
+       "  grid-column: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt:hover span {\n",
+       "  display: inline-block;\n",
+       "  background: var(--xr-background-color);\n",
+       "  padding-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dd {\n",
+       "  grid-column: 2;\n",
+       "  white-space: pre-wrap;\n",
+       "  word-break: break-all;\n",
+       "}\n",
+       "\n",
+       ".xr-icon-database,\n",
+       ".xr-icon-file-text2 {\n",
+       "  display: inline-block;\n",
+       "  vertical-align: middle;\n",
+       "  width: 1em;\n",
+       "  height: 1.5em !important;\n",
+       "  stroke-width: 0;\n",
+       "  stroke: currentColor;\n",
+       "  fill: currentColor;\n",
+       "}\n",
+       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;time&#x27; (time: 1)&gt;\n",
+       "array([372.5], dtype=float32)\n",
+       "Coordinates:\n",
+       "  * time     (time) float32 372.5\n",
+       "Attributes:\n",
+       "    standard_name:  time\n",
+       "    long_name:      time\n",
+       "    units:          months since 1955-01-01 00:00:00\n",
+       "    axis:           T\n",
+       "    climatology:    climatology_bounds</pre><div class='xr-wrap' hidden><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'time'</div><ul class='xr-dim-list'><li><span class='xr-has-index'>time</span>: 1</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-685397a3-fe89-4423-96c4-09a0395c9fe4' class='xr-array-in' type='checkbox' checked><label for='section-685397a3-fe89-4423-96c4-09a0395c9fe4' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>372.5</span></div><div class='xr-array-data'><pre>array([372.5], dtype=float32)</pre></div></div></li><li class='xr-section-item'><input id='section-d2d11461-04ca-46f5-bc23-2e61a3b5903c' class='xr-section-summary-in' type='checkbox'  checked><label for='section-d2d11461-04ca-46f5-bc23-2e61a3b5903c' class='xr-section-summary' >Coordinates: <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 class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>372.5</div><input id='attrs-815a5ba0-2d96-4739-89a4-107c252a493c' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-815a5ba0-2d96-4739-89a4-107c252a493c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1b898a06-ffe0-4186-b03e-6ae2a585b974' class='xr-var-data-in' type='checkbox'><label for='data-1b898a06-ffe0-4186-b03e-6ae2a585b974' 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>standard_name :</span></dt><dd>time</dd><dt><span>long_name :</span></dt><dd>time</dd><dt><span>units :</span></dt><dd>months since 1955-01-01 00:00:00</dd><dt><span>axis :</span></dt><dd>T</dd><dt><span>climatology :</span></dt><dd>climatology_bounds</dd></dl></div><div class='xr-var-data'><pre>array([372.5], dtype=float32)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-3b8a2149-6c3d-471c-9881-033ce4e153d3' class='xr-section-summary-in' type='checkbox'  checked><label for='section-3b8a2149-6c3d-471c-9881-033ce4e153d3' class='xr-section-summary' >Attributes: <span>(5)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>standard_name :</span></dt><dd>time</dd><dt><span>long_name :</span></dt><dd>time</dd><dt><span>units :</span></dt><dd>months since 1955-01-01 00:00:00</dd><dt><span>axis :</span></dt><dd>T</dd><dt><span>climatology :</span></dt><dd>climatology_bounds</dd></dl></div></li></ul></div></div>"
+      ],
+      "text/plain": [
+       "<xarray.DataArray 'time' (time: 1)>\n",
+       "array([372.5], dtype=float32)\n",
+       "Coordinates:\n",
+       "  * time     (time) float32 372.5\n",
+       "Attributes:\n",
+       "    standard_name:  time\n",
+       "    long_name:      time\n",
+       "    units:          months since 1955-01-01 00:00:00\n",
+       "    axis:           T\n",
+       "    climatology:    climatology_bounds"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "ds.time"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "We have opened the data, but the time coordinate is just a number, not an actual datetime object.\n",
+    "We can work around this issue by explicitly specifying the `360_day` calendar (in which every month is assumed to have 30 days)."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
+       "<defs>\n",
+       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "</symbol>\n",
+       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "</symbol>\n",
+       "</defs>\n",
+       "</svg>\n",
+       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
+       " *\n",
+       " */\n",
+       "\n",
+       ":root {\n",
+       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
+       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
+       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
+       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
+       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
+       "  --xr-background-color: var(--jp-layout-color0, white);\n",
+       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
+       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
+       "}\n",
+       "\n",
+       "html[theme=dark],\n",
+       "body.vscode-dark {\n",
+       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
+       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
+       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
+       "  --xr-border-color: #1F1F1F;\n",
+       "  --xr-disabled-color: #515151;\n",
+       "  --xr-background-color: #111111;\n",
+       "  --xr-background-color-row-even: #111111;\n",
+       "  --xr-background-color-row-odd: #313131;\n",
+       "}\n",
+       "\n",
+       ".xr-wrap {\n",
+       "  display: block;\n",
+       "  min-width: 300px;\n",
+       "  max-width: 700px;\n",
+       "}\n",
+       "\n",
+       ".xr-text-repr-fallback {\n",
+       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-header {\n",
+       "  padding-top: 6px;\n",
+       "  padding-bottom: 6px;\n",
+       "  margin-bottom: 4px;\n",
+       "  border-bottom: solid 1px var(--xr-border-color);\n",
+       "}\n",
+       "\n",
+       ".xr-header > div,\n",
+       ".xr-header > ul {\n",
+       "  display: inline;\n",
+       "  margin-top: 0;\n",
+       "  margin-bottom: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-obj-type,\n",
+       ".xr-array-name {\n",
+       "  margin-left: 2px;\n",
+       "  margin-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-obj-type {\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-sections {\n",
+       "  padding-left: 0 !important;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input + label {\n",
+       "  color: var(--xr-disabled-color);\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input:enabled + label {\n",
+       "  cursor: pointer;\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input:enabled + label:hover {\n",
+       "  color: var(--xr-font-color0);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary {\n",
+       "  grid-column: 1;\n",
+       "  color: var(--xr-font-color2);\n",
+       "  font-weight: 500;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary > span {\n",
+       "  display: inline-block;\n",
+       "  padding-left: 0.5em;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:disabled + label {\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in + label:before {\n",
+       "  display: inline-block;\n",
+       "  content: '►';\n",
+       "  font-size: 11px;\n",
+       "  width: 15px;\n",
+       "  text-align: center;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:disabled + label:before {\n",
+       "  color: var(--xr-disabled-color);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked + label:before {\n",
+       "  content: '▼';\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked + label > span {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary,\n",
+       ".xr-section-inline-details {\n",
+       "  padding-top: 4px;\n",
+       "  padding-bottom: 4px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-inline-details {\n",
+       "  grid-column: 2 / -1;\n",
+       "}\n",
+       "\n",
+       ".xr-section-details {\n",
+       "  display: none;\n",
+       "  grid-column: 1 / -1;\n",
+       "  margin-bottom: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-array-wrap {\n",
+       "  grid-column: 1 / -1;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 20px auto;\n",
+       "}\n",
+       "\n",
+       ".xr-array-wrap > label {\n",
+       "  grid-column: 1;\n",
+       "  vertical-align: top;\n",
+       "}\n",
+       "\n",
+       ".xr-preview {\n",
+       "  color: var(--xr-font-color3);\n",
+       "}\n",
+       "\n",
+       ".xr-array-preview,\n",
+       ".xr-array-data {\n",
+       "  padding: 0 5px !important;\n",
+       "  grid-column: 2;\n",
+       "}\n",
+       "\n",
+       ".xr-array-data,\n",
+       ".xr-array-in:checked ~ .xr-array-preview {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-array-in:checked ~ .xr-array-data,\n",
+       ".xr-array-preview {\n",
+       "  display: inline-block;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list {\n",
+       "  display: inline-block !important;\n",
+       "  list-style: none;\n",
+       "  padding: 0 !important;\n",
+       "  margin: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list li {\n",
+       "  display: inline-block;\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list:before {\n",
+       "  content: '(';\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list:after {\n",
+       "  content: ')';\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list li:not(:last-child):after {\n",
+       "  content: ',';\n",
+       "  padding-right: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-has-index {\n",
+       "  font-weight: bold;\n",
+       "}\n",
+       "\n",
+       ".xr-var-list,\n",
+       ".xr-var-item {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-var-item > div,\n",
+       ".xr-var-item label,\n",
+       ".xr-var-item > .xr-var-name span {\n",
+       "  background-color: var(--xr-background-color-row-even);\n",
+       "  margin-bottom: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-var-item > .xr-var-name:hover span {\n",
+       "  padding-right: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-var-list > li:nth-child(odd) > div,\n",
+       ".xr-var-list > li:nth-child(odd) > label,\n",
+       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
+       "  background-color: var(--xr-background-color-row-odd);\n",
+       "}\n",
+       "\n",
+       ".xr-var-name {\n",
+       "  grid-column: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-var-dims {\n",
+       "  grid-column: 2;\n",
+       "}\n",
+       "\n",
+       ".xr-var-dtype {\n",
+       "  grid-column: 3;\n",
+       "  text-align: right;\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-var-preview {\n",
+       "  grid-column: 4;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name,\n",
+       ".xr-var-dims,\n",
+       ".xr-var-dtype,\n",
+       ".xr-preview,\n",
+       ".xr-attrs dt {\n",
+       "  white-space: nowrap;\n",
+       "  overflow: hidden;\n",
+       "  text-overflow: ellipsis;\n",
+       "  padding-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name:hover,\n",
+       ".xr-var-dims:hover,\n",
+       ".xr-var-dtype:hover,\n",
+       ".xr-attrs dt:hover {\n",
+       "  overflow: visible;\n",
+       "  width: auto;\n",
+       "  z-index: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-var-attrs,\n",
+       ".xr-var-data {\n",
+       "  display: none;\n",
+       "  background-color: var(--xr-background-color) !important;\n",
+       "  padding-bottom: 5px !important;\n",
+       "}\n",
+       "\n",
+       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
+       ".xr-var-data-in:checked ~ .xr-var-data {\n",
+       "  display: block;\n",
+       "}\n",
+       "\n",
+       ".xr-var-data > table {\n",
+       "  float: right;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name span,\n",
+       ".xr-var-data,\n",
+       ".xr-attrs {\n",
+       "  padding-left: 25px !important;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs,\n",
+       ".xr-var-attrs,\n",
+       ".xr-var-data {\n",
+       "  grid-column: 1 / -1;\n",
+       "}\n",
+       "\n",
+       "dl.xr-attrs {\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 125px auto;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt,\n",
+       ".xr-attrs dd {\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "  float: left;\n",
+       "  padding-right: 10px;\n",
+       "  width: auto;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt {\n",
+       "  font-weight: normal;\n",
+       "  grid-column: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt:hover span {\n",
+       "  display: inline-block;\n",
+       "  background: var(--xr-background-color);\n",
+       "  padding-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dd {\n",
+       "  grid-column: 2;\n",
+       "  white-space: pre-wrap;\n",
+       "  word-break: break-all;\n",
+       "}\n",
+       "\n",
+       ".xr-icon-database,\n",
+       ".xr-icon-file-text2 {\n",
+       "  display: inline-block;\n",
+       "  vertical-align: middle;\n",
+       "  width: 1em;\n",
+       "  height: 1.5em !important;\n",
+       "  stroke-width: 0;\n",
+       "  stroke: currentColor;\n",
+       "  fill: currentColor;\n",
+       "}\n",
+       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
+       "Dimensions:             (depth: 57, lat: 36, lon: 72, nbounds: 2, time: 1)\n",
+       "Coordinates:\n",
+       "  * lat                 (lat) float32 -87.5 -82.5 -77.5 -72.5 ... 77.5 82.5 87.5\n",
+       "  * lon                 (lon) float32 -177.5 -172.5 -167.5 ... 167.5 172.5 177.5\n",
+       "  * depth               (depth) float32 0.0 5.0 10.0 ... 1.45e+03 1.5e+03\n",
+       "  * time                (time) object 1986-01-16 00:00:00\n",
+       "Dimensions without coordinates: nbounds\n",
+       "Data variables:\n",
+       "    crs                 int32 ...\n",
+       "    lat_bnds            (lat, nbounds) float32 ...\n",
+       "    lon_bnds            (lon, nbounds) float32 ...\n",
+       "    depth_bnds          (depth, nbounds) float32 ...\n",
+       "    climatology_bounds  (time, nbounds) float32 ...\n",
+       "    t_mn                (time, depth, lat, lon) float32 ...\n",
+       "    t_dd                (time, depth, lat, lon) float64 ...\n",
+       "    t_sd                (time, depth, lat, lon) float32 ...\n",
+       "    t_se                (time, depth, lat, lon) float32 ...\n",
+       "Attributes:\n",
+       "    Conventions:                     CF-1.6, ACDD-1.3\n",
+       "    title:                           World Ocean Atlas 2018 : sea_water_tempe...\n",
+       "    summary:                         PRERELEASE Climatological mean temperatu...\n",
+       "    references:                      Locarnini, R. A., A. V. Mishonov, O. K. ...\n",
+       "    institution:                     National Centers for Environmental Infor...\n",
+       "    comment:                         global climatology as part of the World ...\n",
+       "    id:                              woa18_decav_t01_5d.nc\n",
+       "    naming_authority:                gov.noaa.ncei\n",
+       "    sea_name:                        World-Wide Distribution\n",
+       "    time_coverage_start:             1955-01-01\n",
+       "    time_coverage_end:               2017-01-31\n",
+       "    time_coverage_duration:          P63Y\n",
+       "    time_coverage_resolution:        P01M\n",
+       "    geospatial_lat_min:              -90.0\n",
+       "    geospatial_lat_max:              90.0\n",
+       "    geospatial_lon_min:              -180.0\n",
+       "    geospatial_lon_max:              180.0\n",
+       "    geospatial_vertical_min:         0.0\n",
+       "    geospatial_vertical_max:         1500.0\n",
+       "    geospatial_lat_units:            degrees_north\n",
+       "    geospatial_lat_resolution:       5.00 degrees\n",
+       "    geospatial_lon_units:            degrees_east\n",
+       "    geospatial_lon_resolution:       5.00 degrees\n",
+       "    geospatial_vertical_units:       m\n",
+       "    geospatial_vertical_resolution:  SPECIAL\n",
+       "    geospatial_vertical_positive:    down\n",
+       "    creator_name:                    Ocean Climate Laboratory\n",
+       "    creator_email:                   NCEI.info@noaa.gov\n",
+       "    creator_url:                     http://www.ncei.noaa.gov\n",
+       "    creator_type:                    group\n",
+       "    creator_institution:             National Centers for Environmental Infor...\n",
+       "    project:                         World Ocean Atlas Project\n",
+       "    processing_level:                processed\n",
+       "    keywords:                        Oceans&lt; Ocean Temperature &gt; Water Temper...\n",
+       "    keywords_vocabulary:             ISO 19115\n",
+       "    standard_name_vocabulary:        CF Standard Name Table v49\n",
+       "    contributor_name:                Ocean Climate Laboratory\n",
+       "    contributor_role:                Calculation of climatologies\n",
+       "    cdm_data_type:                   Grid\n",
+       "    publisher_name:                  National Centers for Environmental Infor...\n",
+       "    publisher_institution:           National Centers for Environmental Infor...\n",
+       "    publisher_type:                  institution\n",
+       "    publisher_url:                   http://www.ncei.noaa.gov/\n",
+       "    publisher_email:                 NCEI.info@noaa.gov\n",
+       "    nodc_template_version:           NODC_NetCDF_Grid_Template_v2.0\n",
+       "    license:                         These data are openly available to the p...\n",
+       "    metadata_link:                   http://www.nodc.noaa.gov/OC5/WOA18/pr_wo...\n",
+       "    date_created:                    2018-02-19 \n",
+       "    date_modified:                   2018-02-19 </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-d87e2520-66a4-46f6-994c-e6422437828d' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-d87e2520-66a4-46f6-994c-e6422437828d' 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'>depth</span>: 57</li><li><span class='xr-has-index'>lat</span>: 36</li><li><span class='xr-has-index'>lon</span>: 72</li><li><span>nbounds</span>: 2</li><li><span class='xr-has-index'>time</span>: 1</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-db145c48-8fe6-4664-a6b3-6f5981df6543' class='xr-section-summary-in' type='checkbox'  checked><label for='section-db145c48-8fe6-4664-a6b3-6f5981df6543' class='xr-section-summary' >Coordinates: <span>(4)</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'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>-87.5 -82.5 -77.5 ... 82.5 87.5</div><input id='attrs-13732ee2-2407-467e-835e-185400e4308b' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-13732ee2-2407-467e-835e-185400e4308b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-20d2f962-ce45-49fd-bcaf-c327e04891a5' class='xr-var-data-in' type='checkbox'><label for='data-20d2f962-ce45-49fd-bcaf-c327e04891a5' 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>standard_name :</span></dt><dd>latitude</dd><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd><dt><span>axis :</span></dt><dd>Y</dd><dt><span>bounds :</span></dt><dd>lat_bnds</dd></dl></div><div class='xr-var-data'><pre>array([-87.5, -82.5, -77.5, -72.5, -67.5, -62.5, -57.5, -52.5, -47.5, -42.5,\n",
+       "       -37.5, -32.5, -27.5, -22.5, -17.5, -12.5,  -7.5,  -2.5,   2.5,   7.5,\n",
+       "        12.5,  17.5,  22.5,  27.5,  32.5,  37.5,  42.5,  47.5,  52.5,  57.5,\n",
+       "        62.5,  67.5,  72.5,  77.5,  82.5,  87.5], dtype=float32)</pre></div></li><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'>float32</div><div class='xr-var-preview xr-preview'>-177.5 -172.5 ... 172.5 177.5</div><input id='attrs-b83a83a2-c7e8-4061-bd55-d5683709442d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-b83a83a2-c7e8-4061-bd55-d5683709442d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-209e8405-22e9-477e-a5d7-b3c184095ffa' class='xr-var-data-in' type='checkbox'><label for='data-209e8405-22e9-477e-a5d7-b3c184095ffa' 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>standard_name :</span></dt><dd>longitude</dd><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd><dt><span>axis :</span></dt><dd>X</dd><dt><span>bounds :</span></dt><dd>lon_bnds</dd></dl></div><div class='xr-var-data'><pre>array([-177.5, -172.5, -167.5, -162.5, -157.5, -152.5, -147.5, -142.5, -137.5,\n",
+       "       -132.5, -127.5, -122.5, -117.5, -112.5, -107.5, -102.5,  -97.5,  -92.5,\n",
+       "        -87.5,  -82.5,  -77.5,  -72.5,  -67.5,  -62.5,  -57.5,  -52.5,  -47.5,\n",
+       "        -42.5,  -37.5,  -32.5,  -27.5,  -22.5,  -17.5,  -12.5,   -7.5,   -2.5,\n",
+       "          2.5,    7.5,   12.5,   17.5,   22.5,   27.5,   32.5,   37.5,   42.5,\n",
+       "         47.5,   52.5,   57.5,   62.5,   67.5,   72.5,   77.5,   82.5,   87.5,\n",
+       "         92.5,   97.5,  102.5,  107.5,  112.5,  117.5,  122.5,  127.5,  132.5,\n",
+       "        137.5,  142.5,  147.5,  152.5,  157.5,  162.5,  167.5,  172.5,  177.5],\n",
+       "      dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>depth</span></div><div class='xr-var-dims'>(depth)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>0.0 5.0 10.0 ... 1.45e+03 1.5e+03</div><input id='attrs-6c6473da-1978-4526-bda5-73d4f36d2362' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6c6473da-1978-4526-bda5-73d4f36d2362' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-de608ee1-e018-4a05-8938-f75b17dd6904' class='xr-var-data-in' type='checkbox'><label for='data-de608ee1-e018-4a05-8938-f75b17dd6904' 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>standard_name :</span></dt><dd>depth</dd><dt><span>bounds :</span></dt><dd>depth_bnds</dd><dt><span>positive :</span></dt><dd>down</dd><dt><span>units :</span></dt><dd>meters</dd><dt><span>axis :</span></dt><dd>Z</dd></dl></div><div class='xr-var-data'><pre>array([   0.,    5.,   10.,   15.,   20.,   25.,   30.,   35.,   40.,   45.,\n",
+       "         50.,   55.,   60.,   65.,   70.,   75.,   80.,   85.,   90.,   95.,\n",
+       "        100.,  125.,  150.,  175.,  200.,  225.,  250.,  275.,  300.,  325.,\n",
+       "        350.,  375.,  400.,  425.,  450.,  475.,  500.,  550.,  600.,  650.,\n",
+       "        700.,  750.,  800.,  850.,  900.,  950., 1000., 1050., 1100., 1150.,\n",
+       "       1200., 1250., 1300., 1350., 1400., 1450., 1500.], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>1986-01-16 00:00:00</div><input id='attrs-f8e91c7d-11dd-4c3e-85fb-6934d9e95b81' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-f8e91c7d-11dd-4c3e-85fb-6934d9e95b81' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-d47008bd-18d8-4b00-a18d-0a88676d2bd3' class='xr-var-data-in' type='checkbox'><label for='data-d47008bd-18d8-4b00-a18d-0a88676d2bd3' 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>standard_name :</span></dt><dd>time</dd><dt><span>long_name :</span></dt><dd>time</dd><dt><span>axis :</span></dt><dd>T</dd><dt><span>climatology :</span></dt><dd>climatology_bounds</dd></dl></div><div class='xr-var-data'><pre>array([cftime.Datetime360Day(1986, 1, 16, 0, 0, 0, 0)], dtype=object)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-941d91eb-3e69-4387-a962-5d2a82eb902e' class='xr-section-summary-in' type='checkbox'  checked><label for='section-941d91eb-3e69-4387-a962-5d2a82eb902e' class='xr-section-summary' >Data variables: <span>(9)</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>crs</span></div><div class='xr-var-dims'>()</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-2f5ed9b3-1489-40b5-81dc-2aad8dcdc41e' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-2f5ed9b3-1489-40b5-81dc-2aad8dcdc41e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-efd0c790-03c2-43df-bf88-0edd0cba6d61' class='xr-var-data-in' type='checkbox'><label for='data-efd0c790-03c2-43df-bf88-0edd0cba6d61' 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>grid_mapping_name :</span></dt><dd>latitude_longitude</dd><dt><span>epsg_code :</span></dt><dd>EPSG:4326</dd><dt><span>longitude_of_prime_meridian :</span></dt><dd>0.0</dd><dt><span>semi_major_axis :</span></dt><dd>6378137.0</dd><dt><span>inverse_flattening :</span></dt><dd>298.25723</dd></dl></div><div class='xr-var-data'><pre>array(-2147483647, dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>lat_bnds</span></div><div class='xr-var-dims'>(lat, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-90f54c97-9f2e-4e5a-b619-07a9f9022942' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-90f54c97-9f2e-4e5a-b619-07a9f9022942' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e014661c-b7e9-42e5-a96f-247c2f3a58d1' class='xr-var-data-in' type='checkbox'><label for='data-e014661c-b7e9-42e5-a96f-247c2f3a58d1' 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>comment :</span></dt><dd>latitude bounds</dd></dl></div><div class='xr-var-data'><pre>array([[-90., -85.],\n",
+       "       [-85., -80.],\n",
+       "       [-80., -75.],\n",
+       "       [-75., -70.],\n",
+       "       [-70., -65.],\n",
+       "       [-65., -60.],\n",
+       "       [-60., -55.],\n",
+       "       [-55., -50.],\n",
+       "       [-50., -45.],\n",
+       "       [-45., -40.],\n",
+       "       [-40., -35.],\n",
+       "       [-35., -30.],\n",
+       "       [-30., -25.],\n",
+       "       [-25., -20.],\n",
+       "       [-20., -15.],\n",
+       "       [-15., -10.],\n",
+       "       [-10.,  -5.],\n",
+       "       [ -5.,   0.],\n",
+       "       [  0.,   5.],\n",
+       "       [  5.,  10.],\n",
+       "       [ 10.,  15.],\n",
+       "       [ 15.,  20.],\n",
+       "       [ 20.,  25.],\n",
+       "       [ 25.,  30.],\n",
+       "       [ 30.,  35.],\n",
+       "       [ 35.,  40.],\n",
+       "       [ 40.,  45.],\n",
+       "       [ 45.,  50.],\n",
+       "       [ 50.,  55.],\n",
+       "       [ 55.,  60.],\n",
+       "       [ 60.,  65.],\n",
+       "       [ 65.,  70.],\n",
+       "       [ 70.,  75.],\n",
+       "       [ 75.,  80.],\n",
+       "       [ 80.,  85.],\n",
+       "       [ 85.,  90.]], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>lon_bnds</span></div><div class='xr-var-dims'>(lon, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-13708517-fc33-4ae0-ac80-a0fb1d76ea05' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-13708517-fc33-4ae0-ac80-a0fb1d76ea05' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5645741c-27a7-4d3f-a361-d34d4652401b' class='xr-var-data-in' type='checkbox'><label for='data-5645741c-27a7-4d3f-a361-d34d4652401b' 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>comment :</span></dt><dd>longitude bounds</dd></dl></div><div class='xr-var-data'><pre>array([[-180., -175.],\n",
+       "       [-175., -170.],\n",
+       "       [-170., -165.],\n",
+       "       [-165., -160.],\n",
+       "       [-160., -155.],\n",
+       "       [-155., -150.],\n",
+       "       [-150., -145.],\n",
+       "       [-145., -140.],\n",
+       "       [-140., -135.],\n",
+       "       [-135., -130.],\n",
+       "       [-130., -125.],\n",
+       "       [-125., -120.],\n",
+       "       [-120., -115.],\n",
+       "       [-115., -110.],\n",
+       "       [-110., -105.],\n",
+       "       [-105., -100.],\n",
+       "       [-100.,  -95.],\n",
+       "       [ -95.,  -90.],\n",
+       "       [ -90.,  -85.],\n",
+       "       [ -85.,  -80.],\n",
+       "       [ -80.,  -75.],\n",
+       "       [ -75.,  -70.],\n",
+       "       [ -70.,  -65.],\n",
+       "       [ -65.,  -60.],\n",
+       "       [ -60.,  -55.],\n",
+       "       [ -55.,  -50.],\n",
+       "       [ -50.,  -45.],\n",
+       "       [ -45.,  -40.],\n",
+       "       [ -40.,  -35.],\n",
+       "       [ -35.,  -30.],\n",
+       "       [ -30.,  -25.],\n",
+       "       [ -25.,  -20.],\n",
+       "       [ -20.,  -15.],\n",
+       "       [ -15.,  -10.],\n",
+       "       [ -10.,   -5.],\n",
+       "       [  -5.,    0.],\n",
+       "       [   0.,    5.],\n",
+       "       [   5.,   10.],\n",
+       "       [  10.,   15.],\n",
+       "       [  15.,   20.],\n",
+       "       [  20.,   25.],\n",
+       "       [  25.,   30.],\n",
+       "       [  30.,   35.],\n",
+       "       [  35.,   40.],\n",
+       "       [  40.,   45.],\n",
+       "       [  45.,   50.],\n",
+       "       [  50.,   55.],\n",
+       "       [  55.,   60.],\n",
+       "       [  60.,   65.],\n",
+       "       [  65.,   70.],\n",
+       "       [  70.,   75.],\n",
+       "       [  75.,   80.],\n",
+       "       [  80.,   85.],\n",
+       "       [  85.,   90.],\n",
+       "       [  90.,   95.],\n",
+       "       [  95.,  100.],\n",
+       "       [ 100.,  105.],\n",
+       "       [ 105.,  110.],\n",
+       "       [ 110.,  115.],\n",
+       "       [ 115.,  120.],\n",
+       "       [ 120.,  125.],\n",
+       "       [ 125.,  130.],\n",
+       "       [ 130.,  135.],\n",
+       "       [ 135.,  140.],\n",
+       "       [ 140.,  145.],\n",
+       "       [ 145.,  150.],\n",
+       "       [ 150.,  155.],\n",
+       "       [ 155.,  160.],\n",
+       "       [ 160.,  165.],\n",
+       "       [ 165.,  170.],\n",
+       "       [ 170.,  175.],\n",
+       "       [ 175.,  180.]], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>depth_bnds</span></div><div class='xr-var-dims'>(depth, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-a806e5fd-c972-428b-b906-a22e6e1b6eff' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a806e5fd-c972-428b-b906-a22e6e1b6eff' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-58a8fe4e-7858-41c6-af2b-34bcb7f9cfa9' class='xr-var-data-in' type='checkbox'><label for='data-58a8fe4e-7858-41c6-af2b-34bcb7f9cfa9' 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>comment :</span></dt><dd>depth bounds</dd></dl></div><div class='xr-var-data'><pre>array([[   0. ,    2.5],\n",
+       "       [   2.5,    7.5],\n",
+       "       [   7.5,   12.5],\n",
+       "       [  12.5,   17.5],\n",
+       "       [  17.5,   22.5],\n",
+       "       [  22.5,   27.5],\n",
+       "       [  27.5,   32.5],\n",
+       "       [  32.5,   37.5],\n",
+       "       [  37.5,   42.5],\n",
+       "       [  42.5,   47.5],\n",
+       "       [  47.5,   52.5],\n",
+       "       [  52.5,   57.5],\n",
+       "       [  57.5,   62.5],\n",
+       "       [  62.5,   67.5],\n",
+       "       [  67.5,   72.5],\n",
+       "       [  72.5,   77.5],\n",
+       "       [  77.5,   82.5],\n",
+       "       [  82.5,   87.5],\n",
+       "       [  87.5,   92.5],\n",
+       "       [  92.5,   97.5],\n",
+       "       [  97.5,  112.5],\n",
+       "       [ 112.5,  137.5],\n",
+       "       [ 137.5,  162.5],\n",
+       "       [ 162.5,  187.5],\n",
+       "       [ 187.5,  212.5],\n",
+       "       [ 212.5,  237.5],\n",
+       "       [ 237.5,  262.5],\n",
+       "       [ 262.5,  287.5],\n",
+       "       [ 287.5,  312.5],\n",
+       "       [ 312.5,  337.5],\n",
+       "       [ 337.5,  362.5],\n",
+       "       [ 362.5,  387.5],\n",
+       "       [ 387.5,  412.5],\n",
+       "       [ 412.5,  437.5],\n",
+       "       [ 437.5,  462.5],\n",
+       "       [ 462.5,  487.5],\n",
+       "       [ 487.5,  525. ],\n",
+       "       [ 525. ,  575. ],\n",
+       "       [ 575. ,  625. ],\n",
+       "       [ 625. ,  675. ],\n",
+       "       [ 675. ,  725. ],\n",
+       "       [ 725. ,  775. ],\n",
+       "       [ 775. ,  825. ],\n",
+       "       [ 825. ,  875. ],\n",
+       "       [ 875. ,  925. ],\n",
+       "       [ 925. ,  975. ],\n",
+       "       [ 975. , 1025. ],\n",
+       "       [1025. , 1075. ],\n",
+       "       [1075. , 1125. ],\n",
+       "       [1125. , 1175. ],\n",
+       "       [1175. , 1225. ],\n",
+       "       [1225. , 1275. ],\n",
+       "       [1275. , 1325. ],\n",
+       "       [1325. , 1375. ],\n",
+       "       [1375. , 1425. ],\n",
+       "       [1425. , 1475. ],\n",
+       "       [1475. , 1500. ]], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>climatology_bounds</span></div><div class='xr-var-dims'>(time, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-e632b152-fa3b-4845-b1db-05d71cca6aed' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-e632b152-fa3b-4845-b1db-05d71cca6aed' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f849b8c0-8901-4af5-862e-88030891c546' class='xr-var-data-in' type='checkbox'><label for='data-f849b8c0-8901-4af5-862e-88030891c546' 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>comment :</span></dt><dd>This variable defines the bounds of the climatological time period for each time</dd></dl></div><div class='xr-var-data'><pre>array([[  0., 404.]], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_mn</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-f7915561-176d-4865-ae57-2254dbf538de' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-f7915561-176d-4865-ae57-2254dbf538de' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-0c0160d9-89d9-4afd-b858-c8eebf90b11e' class='xr-var-data-in' type='checkbox'><label for='data-0c0160d9-89d9-4afd-b858-c8eebf90b11e' 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>standard_name :</span></dt><dd>sea_water_temperature</dd><dt><span>long_name :</span></dt><dd>Average of all unflagged interpolated values at each standard depth level for sea_water_temperature in each grid-square which contain at least one measurement.</dd><dt><span>cell_methods :</span></dt><dd>area: mean depth: mean time: mean within years time: mean over years</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>units :</span></dt><dd>degrees_celsius</dd></dl></div><div class='xr-var-data'><pre>[147744 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_dd</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-0468fb9e-4595-41e7-8449-db2e02c6d202' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-0468fb9e-4595-41e7-8449-db2e02c6d202' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-3cc28f19-0a92-43c2-bc6a-5d5c95601029' class='xr-var-data-in' type='checkbox'><label for='data-3cc28f19-0a92-43c2-bc6a-5d5c95601029' 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>standard_name :</span></dt><dd>sea_water_temperature number_of_observations</dd><dt><span>long_name :</span></dt><dd>The number of observations of sea_water_temperature in each grid-square at each standard depth level.</dd><dt><span>cell_methods :</span></dt><dd>area: sum depth: point time: sum</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>units :</span></dt><dd>1</dd></dl></div><div class='xr-var-data'><pre>[147744 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_sd</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-eba19532-0d8e-42e1-ba51-16bdf0209d92' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-eba19532-0d8e-42e1-ba51-16bdf0209d92' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f3c73fde-c474-4bc8-ae74-d87450fec4a6' class='xr-var-data-in' type='checkbox'><label for='data-f3c73fde-c474-4bc8-ae74-d87450fec4a6' 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>The standard deviation about the statistical mean of sea_water_temperature in each grid-square at each standard depth level.</dd><dt><span>cell_methods :</span></dt><dd>area: mean depth: mean time: standard_deviation</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>units :</span></dt><dd>degrees_celsius</dd></dl></div><div class='xr-var-data'><pre>[147744 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_se</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-e2efc985-d085-4c6f-8d3c-005520938512' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-e2efc985-d085-4c6f-8d3c-005520938512' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-6fd42d44-822f-4af5-a8ed-4b6ac0facb32' class='xr-var-data-in' type='checkbox'><label for='data-6fd42d44-822f-4af5-a8ed-4b6ac0facb32' 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>standard_name :</span></dt><dd>sea_water_temperature standard_error</dd><dt><span>long_name :</span></dt><dd>The standard error about the statistical mean of sea_water_temperature in each grid-square at each standard depth level.</dd><dt><span>cell_methods :</span></dt><dd>area: mean depth: mean time: mean</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>units :</span></dt><dd>degrees_celsius</dd></dl></div><div class='xr-var-data'><pre>[147744 values with dtype=float32]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-9506b52e-50cc-4d5d-84e7-12854b1549e9' class='xr-section-summary-in' type='checkbox'  ><label for='section-9506b52e-50cc-4d5d-84e7-12854b1549e9' class='xr-section-summary' >Attributes: <span>(49)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>Conventions :</span></dt><dd>CF-1.6, ACDD-1.3</dd><dt><span>title :</span></dt><dd>World Ocean Atlas 2018 : sea_water_temperature January 1955-2017 5.00 degree</dd><dt><span>summary :</span></dt><dd>PRERELEASE Climatological mean temperature for the global ocean from in situ profile data</dd><dt><span>references :</span></dt><dd>Locarnini, R. A., A. V. Mishonov, O. K. Baranova, T. P. Boyer, M. M. Zweng, H. E. Garcia, J. R. Reagan, D. Seidov, K. W. Weathers, C. R. Paver, I. V. Smolyar, 2018: World Ocean Atlas 2018, Volume 1: Temperature.  A. V. Mishonov, Technical Ed., NOAA Atlas NESDIS ##</dd><dt><span>institution :</span></dt><dd>National Centers for Environmental Information (NCEI)</dd><dt><span>comment :</span></dt><dd>global climatology as part of the World Ocean Atlas project</dd><dt><span>id :</span></dt><dd>woa18_decav_t01_5d.nc</dd><dt><span>naming_authority :</span></dt><dd>gov.noaa.ncei</dd><dt><span>sea_name :</span></dt><dd>World-Wide Distribution</dd><dt><span>time_coverage_start :</span></dt><dd>1955-01-01</dd><dt><span>time_coverage_end :</span></dt><dd>2017-01-31</dd><dt><span>time_coverage_duration :</span></dt><dd>P63Y</dd><dt><span>time_coverage_resolution :</span></dt><dd>P01M</dd><dt><span>geospatial_lat_min :</span></dt><dd>-90.0</dd><dt><span>geospatial_lat_max :</span></dt><dd>90.0</dd><dt><span>geospatial_lon_min :</span></dt><dd>-180.0</dd><dt><span>geospatial_lon_max :</span></dt><dd>180.0</dd><dt><span>geospatial_vertical_min :</span></dt><dd>0.0</dd><dt><span>geospatial_vertical_max :</span></dt><dd>1500.0</dd><dt><span>geospatial_lat_units :</span></dt><dd>degrees_north</dd><dt><span>geospatial_lat_resolution :</span></dt><dd>5.00 degrees</dd><dt><span>geospatial_lon_units :</span></dt><dd>degrees_east</dd><dt><span>geospatial_lon_resolution :</span></dt><dd>5.00 degrees</dd><dt><span>geospatial_vertical_units :</span></dt><dd>m</dd><dt><span>geospatial_vertical_resolution :</span></dt><dd>SPECIAL</dd><dt><span>geospatial_vertical_positive :</span></dt><dd>down</dd><dt><span>creator_name :</span></dt><dd>Ocean Climate Laboratory</dd><dt><span>creator_email :</span></dt><dd>NCEI.info@noaa.gov</dd><dt><span>creator_url :</span></dt><dd>http://www.ncei.noaa.gov</dd><dt><span>creator_type :</span></dt><dd>group</dd><dt><span>creator_institution :</span></dt><dd>National Centers for Environmental Information</dd><dt><span>project :</span></dt><dd>World Ocean Atlas Project</dd><dt><span>processing_level :</span></dt><dd>processed</dd><dt><span>keywords :</span></dt><dd>Oceans&lt; Ocean Temperature &gt; Water Temperature</dd><dt><span>keywords_vocabulary :</span></dt><dd>ISO 19115</dd><dt><span>standard_name_vocabulary :</span></dt><dd>CF Standard Name Table v49</dd><dt><span>contributor_name :</span></dt><dd>Ocean Climate Laboratory</dd><dt><span>contributor_role :</span></dt><dd>Calculation of climatologies</dd><dt><span>cdm_data_type :</span></dt><dd>Grid</dd><dt><span>publisher_name :</span></dt><dd>National Centers for Environmental Information (NCEI)</dd><dt><span>publisher_institution :</span></dt><dd>National Centers for Environmental Information</dd><dt><span>publisher_type :</span></dt><dd>institution</dd><dt><span>publisher_url :</span></dt><dd>http://www.ncei.noaa.gov/</dd><dt><span>publisher_email :</span></dt><dd>NCEI.info@noaa.gov</dd><dt><span>nodc_template_version :</span></dt><dd>NODC_NetCDF_Grid_Template_v2.0</dd><dt><span>license :</span></dt><dd>These data are openly available to the public. Please acknowledge the use of these data with the text given in the acknowledgment attribute.</dd><dt><span>metadata_link :</span></dt><dd>http://www.nodc.noaa.gov/OC5/WOA18/pr_woa18.html</dd><dt><span>date_created :</span></dt><dd>2018-02-19 </dd><dt><span>date_modified :</span></dt><dd>2018-02-19 </dd></dl></div></li></ul></div></div>"
+      ],
+      "text/plain": [
+       "<xarray.Dataset>\n",
+       "Dimensions:             (depth: 57, lat: 36, lon: 72, nbounds: 2, time: 1)\n",
+       "Coordinates:\n",
+       "  * lat                 (lat) float32 -87.5 -82.5 -77.5 -72.5 ... 77.5 82.5 87.5\n",
+       "  * lon                 (lon) float32 -177.5 -172.5 -167.5 ... 167.5 172.5 177.5\n",
+       "  * depth               (depth) float32 0.0 5.0 10.0 ... 1.45e+03 1.5e+03\n",
+       "  * time                (time) object 1986-01-16 00:00:00\n",
+       "Dimensions without coordinates: nbounds\n",
+       "Data variables:\n",
+       "    crs                 int32 ...\n",
+       "    lat_bnds            (lat, nbounds) float32 ...\n",
+       "    lon_bnds            (lon, nbounds) float32 ...\n",
+       "    depth_bnds          (depth, nbounds) float32 ...\n",
+       "    climatology_bounds  (time, nbounds) float32 ...\n",
+       "    t_mn                (time, depth, lat, lon) float32 ...\n",
+       "    t_dd                (time, depth, lat, lon) float64 ...\n",
+       "    t_sd                (time, depth, lat, lon) float32 ...\n",
+       "    t_se                (time, depth, lat, lon) float32 ...\n",
+       "Attributes:\n",
+       "    Conventions:                     CF-1.6, ACDD-1.3\n",
+       "    title:                           World Ocean Atlas 2018 : sea_water_tempe...\n",
+       "    summary:                         PRERELEASE Climatological mean temperatu...\n",
+       "    references:                      Locarnini, R. A., A. V. Mishonov, O. K. ...\n",
+       "    institution:                     National Centers for Environmental Infor...\n",
+       "    comment:                         global climatology as part of the World ...\n",
+       "    id:                              woa18_decav_t01_5d.nc\n",
+       "    naming_authority:                gov.noaa.ncei\n",
+       "    sea_name:                        World-Wide Distribution\n",
+       "    time_coverage_start:             1955-01-01\n",
+       "    time_coverage_end:               2017-01-31\n",
+       "    time_coverage_duration:          P63Y\n",
+       "    time_coverage_resolution:        P01M\n",
+       "    geospatial_lat_min:              -90.0\n",
+       "    geospatial_lat_max:              90.0\n",
+       "    geospatial_lon_min:              -180.0\n",
+       "    geospatial_lon_max:              180.0\n",
+       "    geospatial_vertical_min:         0.0\n",
+       "    geospatial_vertical_max:         1500.0\n",
+       "    geospatial_lat_units:            degrees_north\n",
+       "    geospatial_lat_resolution:       5.00 degrees\n",
+       "    geospatial_lon_units:            degrees_east\n",
+       "    geospatial_lon_resolution:       5.00 degrees\n",
+       "    geospatial_vertical_units:       m\n",
+       "    geospatial_vertical_resolution:  SPECIAL\n",
+       "    geospatial_vertical_positive:    down\n",
+       "    creator_name:                    Ocean Climate Laboratory\n",
+       "    creator_email:                   NCEI.info@noaa.gov\n",
+       "    creator_url:                     http://www.ncei.noaa.gov\n",
+       "    creator_type:                    group\n",
+       "    creator_institution:             National Centers for Environmental Infor...\n",
+       "    project:                         World Ocean Atlas Project\n",
+       "    processing_level:                processed\n",
+       "    keywords:                        Oceans< Ocean Temperature > Water Temper...\n",
+       "    keywords_vocabulary:             ISO 19115\n",
+       "    standard_name_vocabulary:        CF Standard Name Table v49\n",
+       "    contributor_name:                Ocean Climate Laboratory\n",
+       "    contributor_role:                Calculation of climatologies\n",
+       "    cdm_data_type:                   Grid\n",
+       "    publisher_name:                  National Centers for Environmental Infor...\n",
+       "    publisher_institution:           National Centers for Environmental Infor...\n",
+       "    publisher_type:                  institution\n",
+       "    publisher_url:                   http://www.ncei.noaa.gov/\n",
+       "    publisher_email:                 NCEI.info@noaa.gov\n",
+       "    nodc_template_version:           NODC_NetCDF_Grid_Template_v2.0\n",
+       "    license:                         These data are openly available to the p...\n",
+       "    metadata_link:                   http://www.nodc.noaa.gov/OC5/WOA18/pr_wo...\n",
+       "    date_created:                    2018-02-19 \n",
+       "    date_modified:                   2018-02-19 "
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "ds.time.attrs['calendar'] = '360_day'\n",
+    "ds = xr.decode_cf(ds)\n",
+    "ds"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
+       "<defs>\n",
+       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "</symbol>\n",
+       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "</symbol>\n",
+       "</defs>\n",
+       "</svg>\n",
+       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
+       " *\n",
+       " */\n",
+       "\n",
+       ":root {\n",
+       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
+       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
+       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
+       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
+       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
+       "  --xr-background-color: var(--jp-layout-color0, white);\n",
+       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
+       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
+       "}\n",
+       "\n",
+       "html[theme=dark],\n",
+       "body.vscode-dark {\n",
+       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
+       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
+       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
+       "  --xr-border-color: #1F1F1F;\n",
+       "  --xr-disabled-color: #515151;\n",
+       "  --xr-background-color: #111111;\n",
+       "  --xr-background-color-row-even: #111111;\n",
+       "  --xr-background-color-row-odd: #313131;\n",
+       "}\n",
+       "\n",
+       ".xr-wrap {\n",
+       "  display: block;\n",
+       "  min-width: 300px;\n",
+       "  max-width: 700px;\n",
+       "}\n",
+       "\n",
+       ".xr-text-repr-fallback {\n",
+       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-header {\n",
+       "  padding-top: 6px;\n",
+       "  padding-bottom: 6px;\n",
+       "  margin-bottom: 4px;\n",
+       "  border-bottom: solid 1px var(--xr-border-color);\n",
+       "}\n",
+       "\n",
+       ".xr-header > div,\n",
+       ".xr-header > ul {\n",
+       "  display: inline;\n",
+       "  margin-top: 0;\n",
+       "  margin-bottom: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-obj-type,\n",
+       ".xr-array-name {\n",
+       "  margin-left: 2px;\n",
+       "  margin-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-obj-type {\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-sections {\n",
+       "  padding-left: 0 !important;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input + label {\n",
+       "  color: var(--xr-disabled-color);\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input:enabled + label {\n",
+       "  cursor: pointer;\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input:enabled + label:hover {\n",
+       "  color: var(--xr-font-color0);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary {\n",
+       "  grid-column: 1;\n",
+       "  color: var(--xr-font-color2);\n",
+       "  font-weight: 500;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary > span {\n",
+       "  display: inline-block;\n",
+       "  padding-left: 0.5em;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:disabled + label {\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in + label:before {\n",
+       "  display: inline-block;\n",
+       "  content: '►';\n",
+       "  font-size: 11px;\n",
+       "  width: 15px;\n",
+       "  text-align: center;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:disabled + label:before {\n",
+       "  color: var(--xr-disabled-color);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked + label:before {\n",
+       "  content: '▼';\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked + label > span {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary,\n",
+       ".xr-section-inline-details {\n",
+       "  padding-top: 4px;\n",
+       "  padding-bottom: 4px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-inline-details {\n",
+       "  grid-column: 2 / -1;\n",
+       "}\n",
+       "\n",
+       ".xr-section-details {\n",
+       "  display: none;\n",
+       "  grid-column: 1 / -1;\n",
+       "  margin-bottom: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-array-wrap {\n",
+       "  grid-column: 1 / -1;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 20px auto;\n",
+       "}\n",
+       "\n",
+       ".xr-array-wrap > label {\n",
+       "  grid-column: 1;\n",
+       "  vertical-align: top;\n",
+       "}\n",
+       "\n",
+       ".xr-preview {\n",
+       "  color: var(--xr-font-color3);\n",
+       "}\n",
+       "\n",
+       ".xr-array-preview,\n",
+       ".xr-array-data {\n",
+       "  padding: 0 5px !important;\n",
+       "  grid-column: 2;\n",
+       "}\n",
+       "\n",
+       ".xr-array-data,\n",
+       ".xr-array-in:checked ~ .xr-array-preview {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-array-in:checked ~ .xr-array-data,\n",
+       ".xr-array-preview {\n",
+       "  display: inline-block;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list {\n",
+       "  display: inline-block !important;\n",
+       "  list-style: none;\n",
+       "  padding: 0 !important;\n",
+       "  margin: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list li {\n",
+       "  display: inline-block;\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list:before {\n",
+       "  content: '(';\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list:after {\n",
+       "  content: ')';\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list li:not(:last-child):after {\n",
+       "  content: ',';\n",
+       "  padding-right: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-has-index {\n",
+       "  font-weight: bold;\n",
+       "}\n",
+       "\n",
+       ".xr-var-list,\n",
+       ".xr-var-item {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-var-item > div,\n",
+       ".xr-var-item label,\n",
+       ".xr-var-item > .xr-var-name span {\n",
+       "  background-color: var(--xr-background-color-row-even);\n",
+       "  margin-bottom: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-var-item > .xr-var-name:hover span {\n",
+       "  padding-right: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-var-list > li:nth-child(odd) > div,\n",
+       ".xr-var-list > li:nth-child(odd) > label,\n",
+       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
+       "  background-color: var(--xr-background-color-row-odd);\n",
+       "}\n",
+       "\n",
+       ".xr-var-name {\n",
+       "  grid-column: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-var-dims {\n",
+       "  grid-column: 2;\n",
+       "}\n",
+       "\n",
+       ".xr-var-dtype {\n",
+       "  grid-column: 3;\n",
+       "  text-align: right;\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-var-preview {\n",
+       "  grid-column: 4;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name,\n",
+       ".xr-var-dims,\n",
+       ".xr-var-dtype,\n",
+       ".xr-preview,\n",
+       ".xr-attrs dt {\n",
+       "  white-space: nowrap;\n",
+       "  overflow: hidden;\n",
+       "  text-overflow: ellipsis;\n",
+       "  padding-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name:hover,\n",
+       ".xr-var-dims:hover,\n",
+       ".xr-var-dtype:hover,\n",
+       ".xr-attrs dt:hover {\n",
+       "  overflow: visible;\n",
+       "  width: auto;\n",
+       "  z-index: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-var-attrs,\n",
+       ".xr-var-data {\n",
+       "  display: none;\n",
+       "  background-color: var(--xr-background-color) !important;\n",
+       "  padding-bottom: 5px !important;\n",
+       "}\n",
+       "\n",
+       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
+       ".xr-var-data-in:checked ~ .xr-var-data {\n",
+       "  display: block;\n",
+       "}\n",
+       "\n",
+       ".xr-var-data > table {\n",
+       "  float: right;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name span,\n",
+       ".xr-var-data,\n",
+       ".xr-attrs {\n",
+       "  padding-left: 25px !important;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs,\n",
+       ".xr-var-attrs,\n",
+       ".xr-var-data {\n",
+       "  grid-column: 1 / -1;\n",
+       "}\n",
+       "\n",
+       "dl.xr-attrs {\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 125px auto;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt,\n",
+       ".xr-attrs dd {\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "  float: left;\n",
+       "  padding-right: 10px;\n",
+       "  width: auto;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt {\n",
+       "  font-weight: normal;\n",
+       "  grid-column: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt:hover span {\n",
+       "  display: inline-block;\n",
+       "  background: var(--xr-background-color);\n",
+       "  padding-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dd {\n",
+       "  grid-column: 2;\n",
+       "  white-space: pre-wrap;\n",
+       "  word-break: break-all;\n",
+       "}\n",
+       "\n",
+       ".xr-icon-database,\n",
+       ".xr-icon-file-text2 {\n",
+       "  display: inline-block;\n",
+       "  vertical-align: middle;\n",
+       "  width: 1em;\n",
+       "  height: 1.5em !important;\n",
+       "  stroke-width: 0;\n",
+       "  stroke: currentColor;\n",
+       "  fill: currentColor;\n",
+       "}\n",
+       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;time&#x27; (time: 1)&gt;\n",
+       "array([cftime.Datetime360Day(1986, 1, 16, 0, 0, 0, 0)], dtype=object)\n",
+       "Coordinates:\n",
+       "  * time     (time) object 1986-01-16 00:00:00\n",
+       "Attributes:\n",
+       "    standard_name:  time\n",
+       "    long_name:      time\n",
+       "    axis:           T\n",
+       "    climatology:    climatology_bounds</pre><div class='xr-wrap' hidden><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'time'</div><ul class='xr-dim-list'><li><span class='xr-has-index'>time</span>: 1</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-67d27c6d-8e66-4e2b-9ea2-9541da1e2d6b' class='xr-array-in' type='checkbox' checked><label for='section-67d27c6d-8e66-4e2b-9ea2-9541da1e2d6b' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>1986-01-16 00:00:00</span></div><div class='xr-array-data'><pre>array([cftime.Datetime360Day(1986, 1, 16, 0, 0, 0, 0)], dtype=object)</pre></div></div></li><li class='xr-section-item'><input id='section-992a6115-cb70-4ece-87ba-9bdeebbae39e' class='xr-section-summary-in' type='checkbox'  checked><label for='section-992a6115-cb70-4ece-87ba-9bdeebbae39e' class='xr-section-summary' >Coordinates: <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 class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>1986-01-16 00:00:00</div><input id='attrs-66f2d87e-8f9b-4daf-9c36-4e13b2c9a321' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-66f2d87e-8f9b-4daf-9c36-4e13b2c9a321' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-4c89d1fd-2e31-438c-9c4a-feb691c9aabf' class='xr-var-data-in' type='checkbox'><label for='data-4c89d1fd-2e31-438c-9c4a-feb691c9aabf' 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>standard_name :</span></dt><dd>time</dd><dt><span>long_name :</span></dt><dd>time</dd><dt><span>axis :</span></dt><dd>T</dd><dt><span>climatology :</span></dt><dd>climatology_bounds</dd></dl></div><div class='xr-var-data'><pre>array([cftime.Datetime360Day(1986, 1, 16, 0, 0, 0, 0)], dtype=object)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-77098066-3ca0-47cf-b583-e4f751bc8cac' class='xr-section-summary-in' type='checkbox'  checked><label for='section-77098066-3ca0-47cf-b583-e4f751bc8cac' 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>standard_name :</span></dt><dd>time</dd><dt><span>long_name :</span></dt><dd>time</dd><dt><span>axis :</span></dt><dd>T</dd><dt><span>climatology :</span></dt><dd>climatology_bounds</dd></dl></div></li></ul></div></div>"
+      ],
+      "text/plain": [
+       "<xarray.DataArray 'time' (time: 1)>\n",
+       "array([cftime.Datetime360Day(1986, 1, 16, 0, 0, 0, 0)], dtype=object)\n",
+       "Coordinates:\n",
+       "  * time     (time) object 1986-01-16 00:00:00\n",
+       "Attributes:\n",
+       "    standard_name:  time\n",
+       "    long_name:      time\n",
+       "    axis:           T\n",
+       "    climatology:    climatology_bounds"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "ds.time"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "We will need this trick for later.\n",
+    "\n",
+    "## Step 2: Define the Input URL Pattern\n",
+    "\n",
+    "We can browse through the files on the website and see how they are organized.\n",
+    "\n",
+    "```\n",
+    "https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/temperature/decav/5deg/woa18_decav_t01_5d.nc\n",
+    "https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/temperature/decav/5deg/woa18_decav_t02_5d.nc\n",
+    "...\n",
+    "https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/salinity/decav/5deg/woa18_decav_s01_5d.nc\n",
+    "https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/salinity/decav/5deg/woa18_decav_s02_5d.nc\n",
+    "...\n",
+    "```\n",
+    "\n",
+    "From this we can deduce the general pattern.\n",
+    "We encode this patern as a python [format string](https://docs.python.org/3/library/string.html#format-string-syntax)."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "fmt_string=\"https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/{variable}/decav/5deg/woa18_decav_{variable[0]}{month:02d}_5d.nc\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "We can now use the pangeo-forge `pattern` to generate the file names.\n",
+    "We will use a `VariableSequencePattern`, which takes two keys: one called `variable` and another one (of any name) corresponding to the sequence."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "VariableSequencePattern(fmt_string='https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/{variable}/decav/5deg/woa18_decav_{variable[0]}{month:02d}_5d.nc', keys={'variable': ['temperature', 'salinity'], 'month': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]})"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "from pangeo_forge.patterns import VariableSequencePattern\n",
+    "\n",
+    "months = list(range(1, 13))\n",
+    "variables = ['temperature', 'salinity']\n",
+    "pattern = VariableSequencePattern(\n",
+    "    fmt_string=\"https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/{variable}/decav/5deg/woa18_decav_{variable[0]}{month:02d}_5d.nc\",\n",
+    "    keys={'variable': variables, 'month': months}\n",
+    ")\n",
+    "pattern"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "This pattern is used internally by pangeo-forge to iterate through the inputs."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "('temperature', 1) https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/temperature/decav/5deg/woa18_decav_t01_5d.nc\n"
+     ]
+    }
+   ],
+   "source": [
+    "for key, value in pattern:\n",
+    "    break\n",
+    "print(key, value)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Step 3: Write the Recipe\n",
+    "\n",
+    "Now that we have a `VariableSequencePattern`, we are ready to write our `NetCDFtoZarrMultiVarSequentialRecipe`."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Define an Input Preprocessor Function\n",
+    "\n",
+    "Above we noted that the time was encoded wrong in the original data.\n",
+    "We might have also noticed that many variables that seems like coordinates (e.g. `lat_bnds`) were in the Data Variables part of the dataset.\n",
+    "We will write a function that fixes both these issues."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def fix_encoding_and_attrs(ds, fname):\n",
+    "    ds.time.attrs['calendar'] = '360_day'\n",
+    "    ds = xr.decode_cf(ds)\n",
+    "    ds = ds.set_coords(['crs', 'lat_bnds', 'lon_bnds', 'depth_bnds', 'climatology_bounds'])\n",
+    "    return ds"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Define the Recipe Object"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "NetCDFtoZarrMultiVarSequentialRecipe(sequence_dim='time', inputs_per_chunk=1, nitems_per_input=1, target=<pangeo_forge.storage.UninitializedTarget object at 0x7fe160265160>, input_cache=<pangeo_forge.storage.UninitializedTarget object at 0x7fe160265820>, require_cache=True, consolidate_zarr=True, xarray_open_kwargs={'decode_times': False}, xarray_concat_kwargs={}, delete_input_encoding=True, fsspec_open_kwargs={}, process_input=<function fix_encoding_and_attrs at 0x7fe16026b9d0>, process_chunk=None, target_chunks=None, input_pattern=VariableSequencePattern(fmt_string='https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/{variable}/decav/5deg/woa18_decav_{variable[0]}{month:02d}_5d.nc', keys={'variable': ['temperature', 'salinity'], 'month': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]}))"
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "from pangeo_forge.recipe import NetCDFtoZarrMultiVarSequentialRecipe\n",
+    "\n",
+    "recipe = NetCDFtoZarrMultiVarSequentialRecipe(\n",
+    "    input_pattern=pattern,\n",
+    "    sequence_dim=\"time\",\n",
+    "    xarray_open_kwargs={'decode_times': False},\n",
+    "    process_input=fix_encoding_and_attrs\n",
+    ")\n",
+    "recipe"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Assign Storage\n",
+    "\n",
+    "The recipe needs a place to cache the inputs and store the target data."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import tempfile\n",
+    "from fsspec.implementations.local import LocalFileSystem\n",
+    "from pangeo_forge.storage import FSSpecTarget, CacheFSSpecTarget\n",
+    "\n",
+    "fs_local = LocalFileSystem()\n",
+    "\n",
+    "cache_dir = tempfile.TemporaryDirectory()\n",
+    "cache_target = CacheFSSpecTarget(fs_local, cache_dir.name)\n",
+    "\n",
+    "target_dir = tempfile.TemporaryDirectory()\n",
+    "target = FSSpecTarget(fs_local, target_dir.name)\n",
+    "\n",
+    "recipe.input_cache = cache_target\n",
+    "recipe.target = target"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Step 4: Run the Recipe\n",
+    "\n",
+    "In {doc}`netcdf_zarr_sequential` we went through each step of recipe execution in detail.\n",
+    "Here we will not do that. He we will let Prefect do the work for us."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "<Flow: name=\"Rechunker\">"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "from pangeo_forge.executors import PrefectPipelineExecutor\n",
+    "executor = PrefectPipelineExecutor()\n",
+    "flow = executor.pipelines_to_plan(recipe.to_pipelines())\n",
+    "flow"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
+       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
+       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
+       "<!-- Generated by graphviz version 2.42.3 (20191010.1750)\n",
+       " -->\n",
+       "<!-- Title: %3 Pages: 1 -->\n",
+       "<svg width=\"334pt\" height=\"364pt\"\n",
+       " viewBox=\"0.00 0.00 334.00 364.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 360)\">\n",
+       "<title>%3</title>\n",
+       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-360 330,-360 330,4 -4,4\"/>\n",
+       "<!-- 140606369058336 -->\n",
+       "<g id=\"node1\" class=\"node\">\n",
+       "<title>140606369058336</title>\n",
+       "<ellipse fill=\"none\" stroke=\"black\" cx=\"73\" cy=\"-178\" rx=\"60.39\" ry=\"18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"73\" y=\"-174.3\" font-family=\"Times,serif\" font-size=\"14.00\">Constant[list]</text>\n",
+       "</g>\n",
+       "<!-- 140606369057952 -->\n",
+       "<g id=\"node3\" class=\"node\">\n",
+       "<title>140606369057952</title>\n",
+       "<polygon fill=\"none\" stroke=\"black\" points=\"182,-109 0,-109 0,-73 182,-73 182,-109\"/>\n",
+       "<text text-anchor=\"middle\" x=\"91\" y=\"-87.3\" font-family=\"Times,serif\" font-size=\"14.00\">MappedTaskWrapper &lt;map&gt;</text>\n",
+       "</g>\n",
+       "<!-- 140606369058336&#45;&gt;140606369057952 -->\n",
+       "<g id=\"edge5\" class=\"edge\">\n",
+       "<title>140606369058336&#45;&gt;140606369057952</title>\n",
+       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M76.64,-159.8C79.11,-148.16 82.41,-132.55 85.23,-119.24\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"88.72,-119.68 87.36,-109.18 81.87,-118.23 88.72,-119.68\"/>\n",
+       "<text text-anchor=\"middle\" x=\"94.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">key</text>\n",
+       "</g>\n",
+       "<!-- 140606369056608 -->\n",
+       "<g id=\"node2\" class=\"node\">\n",
+       "<title>140606369056608</title>\n",
+       "<ellipse fill=\"none\" stroke=\"black\" cx=\"235\" cy=\"-338\" rx=\"60.39\" ry=\"18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"235\" y=\"-334.3\" font-family=\"Times,serif\" font-size=\"14.00\">Constant[list]</text>\n",
+       "</g>\n",
+       "<!-- 140606369056848 -->\n",
+       "<g id=\"node4\" class=\"node\">\n",
+       "<title>140606369056848</title>\n",
+       "<polygon fill=\"none\" stroke=\"black\" points=\"326,-269 144,-269 144,-233 326,-233 326,-269\"/>\n",
+       "<text text-anchor=\"middle\" x=\"235\" y=\"-247.3\" font-family=\"Times,serif\" font-size=\"14.00\">MappedTaskWrapper &lt;map&gt;</text>\n",
+       "</g>\n",
+       "<!-- 140606369056608&#45;&gt;140606369056848 -->\n",
+       "<g id=\"edge1\" class=\"edge\">\n",
+       "<title>140606369056608&#45;&gt;140606369056848</title>\n",
+       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M235,-319.8C235,-308.16 235,-292.55 235,-279.24\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"238.5,-279.18 235,-269.18 231.5,-279.18 238.5,-279.18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"245.5\" y=\"-290.8\" font-family=\"Times,serif\" font-size=\"14.00\">key</text>\n",
+       "</g>\n",
+       "<!-- 140606369056560 -->\n",
+       "<g id=\"node6\" class=\"node\">\n",
+       "<title>140606369056560</title>\n",
+       "<ellipse fill=\"none\" stroke=\"black\" cx=\"91\" cy=\"-18\" rx=\"83.39\" ry=\"18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"91\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">SingleTaskWrapper</text>\n",
+       "</g>\n",
+       "<!-- 140606369057952&#45;&gt;140606369056560 -->\n",
+       "<g id=\"edge4\" class=\"edge\">\n",
+       "<title>140606369057952&#45;&gt;140606369056560</title>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M91,-72.81C91,-64.79 91,-55.05 91,-46.07\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"94.5,-46.03 91,-36.03 87.5,-46.03 94.5,-46.03\"/>\n",
+       "</g>\n",
+       "<!-- 140606369056464 -->\n",
+       "<g id=\"node5\" class=\"node\">\n",
+       "<title>140606369056464</title>\n",
+       "<ellipse fill=\"none\" stroke=\"black\" cx=\"235\" cy=\"-178\" rx=\"83.39\" ry=\"18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"235\" y=\"-174.3\" font-family=\"Times,serif\" font-size=\"14.00\">SingleTaskWrapper</text>\n",
+       "</g>\n",
+       "<!-- 140606369056848&#45;&gt;140606369056464 -->\n",
+       "<g id=\"edge3\" class=\"edge\">\n",
+       "<title>140606369056848&#45;&gt;140606369056464</title>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M235,-232.81C235,-224.79 235,-215.05 235,-206.07\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"238.5,-206.03 235,-196.03 231.5,-206.03 238.5,-206.03\"/>\n",
+       "</g>\n",
+       "<!-- 140606369056464&#45;&gt;140606369057952 -->\n",
+       "<g id=\"edge2\" class=\"edge\">\n",
+       "<title>140606369056464&#45;&gt;140606369057952</title>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M207.58,-160.81C185.19,-147.6 153.33,-128.79 128.57,-114.18\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"130.19,-111.07 119.8,-109 126.64,-117.1 130.19,-111.07\"/>\n",
+       "</g>\n",
+       "</g>\n",
+       "</svg>\n"
+      ],
+      "text/plain": [
+       "<graphviz.dot.Digraph at 0x7fe1602f16a0>"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "flow.visualize()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[2021-02-11 14:45:59-0500] INFO - prefect.FlowRunner | Beginning Flow run for 'Rechunker'\n",
+      "[2021-02-11 14:45:59-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper': Starting task run...\n",
+      "[2021-02-11 14:46:00-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper': Finished task run for task with final state: 'Mapped'\n",
+      "[2021-02-11 14:46:00-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[0]': Starting task run...\n",
+      "[2021-02-11 14:46:01-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[0]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:01-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[1]': Starting task run...\n",
+      "[2021-02-11 14:46:02-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[1]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:02-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[2]': Starting task run...\n",
+      "[2021-02-11 14:46:03-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[2]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:03-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[3]': Starting task run...\n",
+      "[2021-02-11 14:46:04-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[3]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:04-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[4]': Starting task run...\n",
+      "[2021-02-11 14:46:05-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[4]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:05-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[5]': Starting task run...\n",
+      "[2021-02-11 14:46:06-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[5]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:06-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[6]': Starting task run...\n",
+      "[2021-02-11 14:46:07-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[6]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:07-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[7]': Starting task run...\n",
+      "[2021-02-11 14:46:08-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[7]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:08-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[8]': Starting task run...\n",
+      "[2021-02-11 14:46:09-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[8]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:09-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[9]': Starting task run...\n",
+      "[2021-02-11 14:46:10-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[9]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:10-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[10]': Starting task run...\n",
+      "[2021-02-11 14:46:11-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[10]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:11-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[11]': Starting task run...\n",
+      "[2021-02-11 14:46:12-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[11]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:12-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[12]': Starting task run...\n",
+      "[2021-02-11 14:46:14-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[12]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:14-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[13]': Starting task run...\n",
+      "[2021-02-11 14:46:15-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[13]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:15-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[14]': Starting task run...\n",
+      "[2021-02-11 14:46:16-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[14]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:16-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[15]': Starting task run...\n",
+      "[2021-02-11 14:46:17-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[15]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:17-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[16]': Starting task run...\n",
+      "[2021-02-11 14:46:19-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[16]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:19-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[17]': Starting task run...\n",
+      "[2021-02-11 14:46:20-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[17]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:20-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[18]': Starting task run...\n",
+      "[2021-02-11 14:46:21-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[18]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:21-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[19]': Starting task run...\n",
+      "[2021-02-11 14:46:22-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[19]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:22-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[20]': Starting task run...\n",
+      "[2021-02-11 14:46:24-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[20]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:24-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[21]': Starting task run...\n",
+      "[2021-02-11 14:46:25-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[21]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:25-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[22]': Starting task run...\n",
+      "[2021-02-11 14:46:26-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[22]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:26-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[23]': Starting task run...\n",
+      "[2021-02-11 14:46:27-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[23]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:27-0500] INFO - prefect.TaskRunner | Task 'SingleTaskWrapper': Starting task run...\n",
+      "[2021-02-11 14:46:27-0500] INFO - prefect.TaskRunner | Task 'SingleTaskWrapper': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:27-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper': Starting task run...\n",
+      "[2021-02-11 14:46:27-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper': Finished task run for task with final state: 'Mapped'\n",
+      "[2021-02-11 14:46:27-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[0]': Starting task run...\n",
+      "[2021-02-11 14:46:27-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[0]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:28-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[1]': Starting task run...\n",
+      "[2021-02-11 14:46:28-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[1]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:28-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[2]': Starting task run...\n",
+      "[2021-02-11 14:46:28-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[2]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:28-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[3]': Starting task run...\n",
+      "[2021-02-11 14:46:28-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[3]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:28-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[4]': Starting task run...\n",
+      "[2021-02-11 14:46:28-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[4]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:28-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[5]': Starting task run...\n",
+      "[2021-02-11 14:46:28-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[5]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:29-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[6]': Starting task run...\n",
+      "[2021-02-11 14:46:29-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[6]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:29-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[7]': Starting task run...\n",
+      "[2021-02-11 14:46:29-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[7]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:29-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[8]': Starting task run...\n",
+      "[2021-02-11 14:46:29-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[8]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:29-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[9]': Starting task run...\n",
+      "[2021-02-11 14:46:29-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[9]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:29-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[10]': Starting task run...\n",
+      "[2021-02-11 14:46:30-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[10]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:30-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[11]': Starting task run...\n",
+      "[2021-02-11 14:46:30-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[11]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:30-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[12]': Starting task run...\n",
+      "[2021-02-11 14:46:30-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[12]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:30-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[13]': Starting task run...\n",
+      "[2021-02-11 14:46:30-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[13]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:31-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[14]': Starting task run...\n",
+      "[2021-02-11 14:46:31-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[14]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:31-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[15]': Starting task run...\n",
+      "[2021-02-11 14:46:31-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[15]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:31-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[16]': Starting task run...\n",
+      "[2021-02-11 14:46:31-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[16]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:31-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[17]': Starting task run...\n",
+      "[2021-02-11 14:46:31-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[17]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:32-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[18]': Starting task run...\n",
+      "[2021-02-11 14:46:32-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[18]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:32-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[19]': Starting task run...\n",
+      "[2021-02-11 14:46:32-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[19]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:32-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[20]': Starting task run...\n",
+      "[2021-02-11 14:46:32-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[20]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:32-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[21]': Starting task run...\n",
+      "[2021-02-11 14:46:32-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[21]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:32-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[22]': Starting task run...\n",
+      "[2021-02-11 14:46:33-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[22]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:33-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[23]': Starting task run...\n",
+      "[2021-02-11 14:46:33-0500] INFO - prefect.TaskRunner | Task 'MappedTaskWrapper[23]': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:33-0500] INFO - prefect.TaskRunner | Task 'SingleTaskWrapper': Starting task run...\n",
+      "[2021-02-11 14:46:33-0500] INFO - prefect.TaskRunner | Task 'SingleTaskWrapper': Finished task run for task with final state: 'Success'\n",
+      "[2021-02-11 14:46:33-0500] INFO - prefect.FlowRunner | Flow run SUCCESS: all reference tasks succeeded\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<Success: \"All reference tasks succeeded.\">"
+      ]
+     },
+     "execution_count": 16,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "flow.run()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Step 5: Check the Target\n",
+    "\n",
+    "All the data should be there!"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
+       "<defs>\n",
+       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "</symbol>\n",
+       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "<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>\n",
+       "</symbol>\n",
+       "</defs>\n",
+       "</svg>\n",
+       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
+       " *\n",
+       " */\n",
+       "\n",
+       ":root {\n",
+       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
+       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
+       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
+       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
+       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
+       "  --xr-background-color: var(--jp-layout-color0, white);\n",
+       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
+       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
+       "}\n",
+       "\n",
+       "html[theme=dark],\n",
+       "body.vscode-dark {\n",
+       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
+       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
+       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
+       "  --xr-border-color: #1F1F1F;\n",
+       "  --xr-disabled-color: #515151;\n",
+       "  --xr-background-color: #111111;\n",
+       "  --xr-background-color-row-even: #111111;\n",
+       "  --xr-background-color-row-odd: #313131;\n",
+       "}\n",
+       "\n",
+       ".xr-wrap {\n",
+       "  display: block;\n",
+       "  min-width: 300px;\n",
+       "  max-width: 700px;\n",
+       "}\n",
+       "\n",
+       ".xr-text-repr-fallback {\n",
+       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-header {\n",
+       "  padding-top: 6px;\n",
+       "  padding-bottom: 6px;\n",
+       "  margin-bottom: 4px;\n",
+       "  border-bottom: solid 1px var(--xr-border-color);\n",
+       "}\n",
+       "\n",
+       ".xr-header > div,\n",
+       ".xr-header > ul {\n",
+       "  display: inline;\n",
+       "  margin-top: 0;\n",
+       "  margin-bottom: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-obj-type,\n",
+       ".xr-array-name {\n",
+       "  margin-left: 2px;\n",
+       "  margin-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-obj-type {\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-sections {\n",
+       "  padding-left: 0 !important;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input + label {\n",
+       "  color: var(--xr-disabled-color);\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input:enabled + label {\n",
+       "  cursor: pointer;\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-section-item input:enabled + label:hover {\n",
+       "  color: var(--xr-font-color0);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary {\n",
+       "  grid-column: 1;\n",
+       "  color: var(--xr-font-color2);\n",
+       "  font-weight: 500;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary > span {\n",
+       "  display: inline-block;\n",
+       "  padding-left: 0.5em;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:disabled + label {\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in + label:before {\n",
+       "  display: inline-block;\n",
+       "  content: '►';\n",
+       "  font-size: 11px;\n",
+       "  width: 15px;\n",
+       "  text-align: center;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:disabled + label:before {\n",
+       "  color: var(--xr-disabled-color);\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked + label:before {\n",
+       "  content: '▼';\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked + label > span {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary,\n",
+       ".xr-section-inline-details {\n",
+       "  padding-top: 4px;\n",
+       "  padding-bottom: 4px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-inline-details {\n",
+       "  grid-column: 2 / -1;\n",
+       "}\n",
+       "\n",
+       ".xr-section-details {\n",
+       "  display: none;\n",
+       "  grid-column: 1 / -1;\n",
+       "  margin-bottom: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-array-wrap {\n",
+       "  grid-column: 1 / -1;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 20px auto;\n",
+       "}\n",
+       "\n",
+       ".xr-array-wrap > label {\n",
+       "  grid-column: 1;\n",
+       "  vertical-align: top;\n",
+       "}\n",
+       "\n",
+       ".xr-preview {\n",
+       "  color: var(--xr-font-color3);\n",
+       "}\n",
+       "\n",
+       ".xr-array-preview,\n",
+       ".xr-array-data {\n",
+       "  padding: 0 5px !important;\n",
+       "  grid-column: 2;\n",
+       "}\n",
+       "\n",
+       ".xr-array-data,\n",
+       ".xr-array-in:checked ~ .xr-array-preview {\n",
+       "  display: none;\n",
+       "}\n",
+       "\n",
+       ".xr-array-in:checked ~ .xr-array-data,\n",
+       ".xr-array-preview {\n",
+       "  display: inline-block;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list {\n",
+       "  display: inline-block !important;\n",
+       "  list-style: none;\n",
+       "  padding: 0 !important;\n",
+       "  margin: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list li {\n",
+       "  display: inline-block;\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list:before {\n",
+       "  content: '(';\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list:after {\n",
+       "  content: ')';\n",
+       "}\n",
+       "\n",
+       ".xr-dim-list li:not(:last-child):after {\n",
+       "  content: ',';\n",
+       "  padding-right: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-has-index {\n",
+       "  font-weight: bold;\n",
+       "}\n",
+       "\n",
+       ".xr-var-list,\n",
+       ".xr-var-item {\n",
+       "  display: contents;\n",
+       "}\n",
+       "\n",
+       ".xr-var-item > div,\n",
+       ".xr-var-item label,\n",
+       ".xr-var-item > .xr-var-name span {\n",
+       "  background-color: var(--xr-background-color-row-even);\n",
+       "  margin-bottom: 0;\n",
+       "}\n",
+       "\n",
+       ".xr-var-item > .xr-var-name:hover span {\n",
+       "  padding-right: 5px;\n",
+       "}\n",
+       "\n",
+       ".xr-var-list > li:nth-child(odd) > div,\n",
+       ".xr-var-list > li:nth-child(odd) > label,\n",
+       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
+       "  background-color: var(--xr-background-color-row-odd);\n",
+       "}\n",
+       "\n",
+       ".xr-var-name {\n",
+       "  grid-column: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-var-dims {\n",
+       "  grid-column: 2;\n",
+       "}\n",
+       "\n",
+       ".xr-var-dtype {\n",
+       "  grid-column: 3;\n",
+       "  text-align: right;\n",
+       "  color: var(--xr-font-color2);\n",
+       "}\n",
+       "\n",
+       ".xr-var-preview {\n",
+       "  grid-column: 4;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name,\n",
+       ".xr-var-dims,\n",
+       ".xr-var-dtype,\n",
+       ".xr-preview,\n",
+       ".xr-attrs dt {\n",
+       "  white-space: nowrap;\n",
+       "  overflow: hidden;\n",
+       "  text-overflow: ellipsis;\n",
+       "  padding-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name:hover,\n",
+       ".xr-var-dims:hover,\n",
+       ".xr-var-dtype:hover,\n",
+       ".xr-attrs dt:hover {\n",
+       "  overflow: visible;\n",
+       "  width: auto;\n",
+       "  z-index: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-var-attrs,\n",
+       ".xr-var-data {\n",
+       "  display: none;\n",
+       "  background-color: var(--xr-background-color) !important;\n",
+       "  padding-bottom: 5px !important;\n",
+       "}\n",
+       "\n",
+       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
+       ".xr-var-data-in:checked ~ .xr-var-data {\n",
+       "  display: block;\n",
+       "}\n",
+       "\n",
+       ".xr-var-data > table {\n",
+       "  float: right;\n",
+       "}\n",
+       "\n",
+       ".xr-var-name span,\n",
+       ".xr-var-data,\n",
+       ".xr-attrs {\n",
+       "  padding-left: 25px !important;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs,\n",
+       ".xr-var-attrs,\n",
+       ".xr-var-data {\n",
+       "  grid-column: 1 / -1;\n",
+       "}\n",
+       "\n",
+       "dl.xr-attrs {\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "  display: grid;\n",
+       "  grid-template-columns: 125px auto;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt,\n",
+       ".xr-attrs dd {\n",
+       "  padding: 0;\n",
+       "  margin: 0;\n",
+       "  float: left;\n",
+       "  padding-right: 10px;\n",
+       "  width: auto;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt {\n",
+       "  font-weight: normal;\n",
+       "  grid-column: 1;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dt:hover span {\n",
+       "  display: inline-block;\n",
+       "  background: var(--xr-background-color);\n",
+       "  padding-right: 10px;\n",
+       "}\n",
+       "\n",
+       ".xr-attrs dd {\n",
+       "  grid-column: 2;\n",
+       "  white-space: pre-wrap;\n",
+       "  word-break: break-all;\n",
+       "}\n",
+       "\n",
+       ".xr-icon-database,\n",
+       ".xr-icon-file-text2 {\n",
+       "  display: inline-block;\n",
+       "  vertical-align: middle;\n",
+       "  width: 1em;\n",
+       "  height: 1.5em !important;\n",
+       "  stroke-width: 0;\n",
+       "  stroke: currentColor;\n",
+       "  fill: currentColor;\n",
+       "}\n",
+       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
+       "Dimensions:             (depth: 57, lat: 36, lon: 72, nbounds: 2, time: 12)\n",
+       "Coordinates:\n",
+       "    climatology_bounds  (time, nbounds) float32 dask.array&lt;chunksize=(1, 2), meta=np.ndarray&gt;\n",
+       "    crs                 int32 ...\n",
+       "  * depth               (depth) float32 0.0 5.0 10.0 ... 1.45e+03 1.5e+03\n",
+       "    depth_bnds          (depth, nbounds) float32 dask.array&lt;chunksize=(57, 2), meta=np.ndarray&gt;\n",
+       "  * lat                 (lat) float32 -87.5 -82.5 -77.5 -72.5 ... 77.5 82.5 87.5\n",
+       "    lat_bnds            (lat, nbounds) float32 dask.array&lt;chunksize=(36, 2), meta=np.ndarray&gt;\n",
+       "  * lon                 (lon) float32 -177.5 -172.5 -167.5 ... 167.5 172.5 177.5\n",
+       "    lon_bnds            (lon, nbounds) float32 dask.array&lt;chunksize=(72, 2), meta=np.ndarray&gt;\n",
+       "  * time                (time) object 1986-01-16 00:00:00 ... 1986-12-16 00:0...\n",
+       "Dimensions without coordinates: nbounds\n",
+       "Data variables:\n",
+       "    s_dd                (time, depth, lat, lon) float64 dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;\n",
+       "    s_mn                (time, depth, lat, lon) float32 dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;\n",
+       "    s_sd                (time, depth, lat, lon) float32 dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;\n",
+       "    s_se                (time, depth, lat, lon) float32 dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;\n",
+       "    t_dd                (time, depth, lat, lon) float64 dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;\n",
+       "    t_mn                (time, depth, lat, lon) float32 dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;\n",
+       "    t_sd                (time, depth, lat, lon) float32 dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;\n",
+       "    t_se                (time, depth, lat, lon) float32 dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;\n",
+       "Attributes:\n",
+       "    Conventions:                     CF-1.6, ACDD-1.3\n",
+       "    cdm_data_type:                   Grid\n",
+       "    comment:                         global climatology as part of the World ...\n",
+       "    contributor_name:                Ocean Climate Laboratory\n",
+       "    contributor_role:                Calculation of climatologies\n",
+       "    creator_email:                   NCEI.info@noaa.gov\n",
+       "    creator_institution:             National Centers for Environmental Infor...\n",
+       "    creator_name:                    Ocean Climate Laboratory\n",
+       "    creator_type:                    group\n",
+       "    creator_url:                     http://www.ncei.noaa.gov\n",
+       "    date_created:                    2018-02-19 \n",
+       "    date_modified:                   2018-02-19 \n",
+       "    geospatial_lat_max:              90.0\n",
+       "    geospatial_lat_min:              -90.0\n",
+       "    geospatial_lat_resolution:       5.00 degrees\n",
+       "    geospatial_lat_units:            degrees_north\n",
+       "    geospatial_lon_max:              180.0\n",
+       "    geospatial_lon_min:              -180.0\n",
+       "    geospatial_lon_resolution:       5.00 degrees\n",
+       "    geospatial_lon_units:            degrees_east\n",
+       "    geospatial_vertical_max:         1500.0\n",
+       "    geospatial_vertical_min:         0.0\n",
+       "    geospatial_vertical_positive:    down\n",
+       "    geospatial_vertical_resolution:  SPECIAL\n",
+       "    geospatial_vertical_units:       m\n",
+       "    id:                              woa18_decav_t01_5d.nc\n",
+       "    institution:                     National Centers for Environmental Infor...\n",
+       "    keywords:                        Oceans&lt; Ocean Temperature &gt; Water Temper...\n",
+       "    keywords_vocabulary:             ISO 19115\n",
+       "    license:                         These data are openly available to the p...\n",
+       "    metadata_link:                   http://www.nodc.noaa.gov/OC5/WOA18/pr_wo...\n",
+       "    naming_authority:                gov.noaa.ncei\n",
+       "    nodc_template_version:           NODC_NetCDF_Grid_Template_v2.0\n",
+       "    processing_level:                processed\n",
+       "    project:                         World Ocean Atlas Project\n",
+       "    publisher_email:                 NCEI.info@noaa.gov\n",
+       "    publisher_institution:           National Centers for Environmental Infor...\n",
+       "    publisher_name:                  National Centers for Environmental Infor...\n",
+       "    publisher_type:                  institution\n",
+       "    publisher_url:                   http://www.ncei.noaa.gov/\n",
+       "    references:                      Locarnini, R. A., A. V. Mishonov, O. K. ...\n",
+       "    sea_name:                        World-Wide Distribution\n",
+       "    standard_name_vocabulary:        CF Standard Name Table v49\n",
+       "    summary:                         PRERELEASE Climatological mean temperatu...\n",
+       "    time_coverage_duration:          P63Y\n",
+       "    time_coverage_end:               2017-01-31\n",
+       "    time_coverage_resolution:        P01M\n",
+       "    time_coverage_start:             1955-01-01\n",
+       "    title:                           World Ocean Atlas 2018 : sea_water_tempe...</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-34476824-3325-4fb6-9109-e5c12344d9a0' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-34476824-3325-4fb6-9109-e5c12344d9a0' 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'>depth</span>: 57</li><li><span class='xr-has-index'>lat</span>: 36</li><li><span class='xr-has-index'>lon</span>: 72</li><li><span>nbounds</span>: 2</li><li><span class='xr-has-index'>time</span>: 12</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-cf5df9a5-cc45-4b30-a8f1-8f6a3a75eb2a' class='xr-section-summary-in' type='checkbox'  checked><label for='section-cf5df9a5-cc45-4b30-a8f1-8f6a3a75eb2a' class='xr-section-summary' >Coordinates: <span>(9)</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>climatology_bounds</span></div><div class='xr-var-dims'>(time, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(1, 2), meta=np.ndarray&gt;</div><input id='attrs-7e62ed8f-0a42-40e9-91ff-adeb173cc024' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-7e62ed8f-0a42-40e9-91ff-adeb173cc024' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-9b7bc68e-f37b-4724-b8a3-c61349f82885' class='xr-var-data-in' type='checkbox'><label for='data-9b7bc68e-f37b-4724-b8a3-c61349f82885' 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>comment :</span></dt><dd>This variable defines the bounds of the climatological time period for each time</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 96 B </td> <td> 8 B </td></tr>\n",
+       "    <tr><th> Shape </th><td> (12, 2) </td> <td> (1, 2) </td></tr>\n",
+       "    <tr><th> Count </th><td> 13 Tasks </td><td> 12 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float32 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"91\" height=\"170\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"41\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"10\" x2=\"41\" y2=\"10\" />\n",
+       "  <line x1=\"0\" y1=\"20\" x2=\"41\" y2=\"20\" />\n",
+       "  <line x1=\"0\" y1=\"30\" x2=\"41\" y2=\"30\" />\n",
+       "  <line x1=\"0\" y1=\"40\" x2=\"41\" y2=\"40\" />\n",
+       "  <line x1=\"0\" y1=\"50\" x2=\"41\" y2=\"50\" />\n",
+       "  <line x1=\"0\" y1=\"60\" x2=\"41\" y2=\"60\" />\n",
+       "  <line x1=\"0\" y1=\"70\" x2=\"41\" y2=\"70\" />\n",
+       "  <line x1=\"0\" y1=\"80\" x2=\"41\" y2=\"80\" />\n",
+       "  <line x1=\"0\" y1=\"90\" x2=\"41\" y2=\"90\" />\n",
+       "  <line x1=\"0\" y1=\"100\" x2=\"41\" y2=\"100\" />\n",
+       "  <line x1=\"0\" y1=\"110\" x2=\"41\" y2=\"110\" />\n",
+       "  <line x1=\"0\" y1=\"120\" x2=\"41\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"41\" y1=\"0\" x2=\"41\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 41.20382942136741,0.0 41.20382942136741,120.0 0.0,120.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"20.601915\" y=\"140.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >2</text>\n",
+       "  <text x=\"61.203829\" y=\"60.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,61.203829,60.000000)\">12</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></div></li><li class='xr-var-item'><div class='xr-var-name'><span>crs</span></div><div class='xr-var-dims'>()</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-4fe8039e-c0e1-4b69-916e-c9daaf700b28' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-4fe8039e-c0e1-4b69-916e-c9daaf700b28' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-33234486-39ec-4af1-8c8e-36d855a52c97' class='xr-var-data-in' type='checkbox'><label for='data-33234486-39ec-4af1-8c8e-36d855a52c97' 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>epsg_code :</span></dt><dd>EPSG:4326</dd><dt><span>grid_mapping_name :</span></dt><dd>latitude_longitude</dd><dt><span>inverse_flattening :</span></dt><dd>298.2572326660156</dd><dt><span>longitude_of_prime_meridian :</span></dt><dd>0.0</dd><dt><span>semi_major_axis :</span></dt><dd>6378137.0</dd></dl></div><div class='xr-var-data'><pre>array(-2147483647, dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>depth</span></div><div class='xr-var-dims'>(depth)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>0.0 5.0 10.0 ... 1.45e+03 1.5e+03</div><input id='attrs-c65e605f-6465-4d1f-aa54-b2e7176ece11' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-c65e605f-6465-4d1f-aa54-b2e7176ece11' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e14f331a-7e7e-4f36-8f55-2a452fa2106f' class='xr-var-data-in' type='checkbox'><label for='data-e14f331a-7e7e-4f36-8f55-2a452fa2106f' 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>axis :</span></dt><dd>Z</dd><dt><span>bounds :</span></dt><dd>depth_bnds</dd><dt><span>positive :</span></dt><dd>down</dd><dt><span>standard_name :</span></dt><dd>depth</dd><dt><span>units :</span></dt><dd>meters</dd></dl></div><div class='xr-var-data'><pre>array([   0.,    5.,   10.,   15.,   20.,   25.,   30.,   35.,   40.,   45.,\n",
+       "         50.,   55.,   60.,   65.,   70.,   75.,   80.,   85.,   90.,   95.,\n",
+       "        100.,  125.,  150.,  175.,  200.,  225.,  250.,  275.,  300.,  325.,\n",
+       "        350.,  375.,  400.,  425.,  450.,  475.,  500.,  550.,  600.,  650.,\n",
+       "        700.,  750.,  800.,  850.,  900.,  950., 1000., 1050., 1100., 1150.,\n",
+       "       1200., 1250., 1300., 1350., 1400., 1450., 1500.], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>depth_bnds</span></div><div class='xr-var-dims'>(depth, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(57, 2), meta=np.ndarray&gt;</div><input id='attrs-4cbab4cb-3ae6-478c-9685-c1070afca296' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-4cbab4cb-3ae6-478c-9685-c1070afca296' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-d18b282a-3f24-4541-80ab-c6b70f21605d' class='xr-var-data-in' type='checkbox'><label for='data-d18b282a-3f24-4541-80ab-c6b70f21605d' 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>comment :</span></dt><dd>depth bounds</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 456 B </td> <td> 456 B </td></tr>\n",
+       "    <tr><th> Shape </th><td> (57, 2) </td> <td> (57, 2) </td></tr>\n",
+       "    <tr><th> Count </th><td> 2 Tasks </td><td> 1 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float32 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"82\" height=\"170\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"32\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"120\" x2=\"32\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"32\" y1=\"0\" x2=\"32\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 32.33516421179213,0.0 32.33516421179213,120.0 0.0,120.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"16.167582\" y=\"140.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >2</text>\n",
+       "  <text x=\"52.335164\" y=\"60.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,52.335164,60.000000)\">57</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></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'>float32</div><div class='xr-var-preview xr-preview'>-87.5 -82.5 -77.5 ... 82.5 87.5</div><input id='attrs-cc674347-c8d4-4fdc-9016-7fe1ec85adcd' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-cc674347-c8d4-4fdc-9016-7fe1ec85adcd' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-cd2e2c0c-2b29-4660-952e-f7897ea4fccd' class='xr-var-data-in' type='checkbox'><label for='data-cd2e2c0c-2b29-4660-952e-f7897ea4fccd' 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>axis :</span></dt><dd>Y</dd><dt><span>bounds :</span></dt><dd>lat_bnds</dd><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>standard_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>array([-87.5, -82.5, -77.5, -72.5, -67.5, -62.5, -57.5, -52.5, -47.5, -42.5,\n",
+       "       -37.5, -32.5, -27.5, -22.5, -17.5, -12.5,  -7.5,  -2.5,   2.5,   7.5,\n",
+       "        12.5,  17.5,  22.5,  27.5,  32.5,  37.5,  42.5,  47.5,  52.5,  57.5,\n",
+       "        62.5,  67.5,  72.5,  77.5,  82.5,  87.5], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>lat_bnds</span></div><div class='xr-var-dims'>(lat, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(36, 2), meta=np.ndarray&gt;</div><input id='attrs-aac58288-3aeb-4fc3-8e5e-9e0cd49326ef' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-aac58288-3aeb-4fc3-8e5e-9e0cd49326ef' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-113f6107-e9fb-437d-ab5c-a4dcdf059075' class='xr-var-data-in' type='checkbox'><label for='data-113f6107-e9fb-437d-ab5c-a4dcdf059075' 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>comment :</span></dt><dd>latitude bounds</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 288 B </td> <td> 288 B </td></tr>\n",
+       "    <tr><th> Shape </th><td> (36, 2) </td> <td> (36, 2) </td></tr>\n",
+       "    <tr><th> Count </th><td> 2 Tasks </td><td> 1 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float32 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"85\" height=\"170\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"35\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"120\" x2=\"35\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"35\" y1=\"0\" x2=\"35\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 35.14482853053541,0.0 35.14482853053541,120.0 0.0,120.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"17.572414\" y=\"140.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >2</text>\n",
+       "  <text x=\"55.144829\" y=\"60.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,55.144829,60.000000)\">36</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></div></li><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'>float32</div><div class='xr-var-preview xr-preview'>-177.5 -172.5 ... 172.5 177.5</div><input id='attrs-78efd441-2a6e-4b8e-8750-606ddf95917f' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-78efd441-2a6e-4b8e-8750-606ddf95917f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a3113d2b-8d88-455c-a1f4-b3202bd43680' class='xr-var-data-in' type='checkbox'><label for='data-a3113d2b-8d88-455c-a1f4-b3202bd43680' 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>axis :</span></dt><dd>X</dd><dt><span>bounds :</span></dt><dd>lon_bnds</dd><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>standard_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>array([-177.5, -172.5, -167.5, -162.5, -157.5, -152.5, -147.5, -142.5, -137.5,\n",
+       "       -132.5, -127.5, -122.5, -117.5, -112.5, -107.5, -102.5,  -97.5,  -92.5,\n",
+       "        -87.5,  -82.5,  -77.5,  -72.5,  -67.5,  -62.5,  -57.5,  -52.5,  -47.5,\n",
+       "        -42.5,  -37.5,  -32.5,  -27.5,  -22.5,  -17.5,  -12.5,   -7.5,   -2.5,\n",
+       "          2.5,    7.5,   12.5,   17.5,   22.5,   27.5,   32.5,   37.5,   42.5,\n",
+       "         47.5,   52.5,   57.5,   62.5,   67.5,   72.5,   77.5,   82.5,   87.5,\n",
+       "         92.5,   97.5,  102.5,  107.5,  112.5,  117.5,  122.5,  127.5,  132.5,\n",
+       "        137.5,  142.5,  147.5,  152.5,  157.5,  162.5,  167.5,  172.5,  177.5],\n",
+       "      dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>lon_bnds</span></div><div class='xr-var-dims'>(lon, nbounds)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(72, 2), meta=np.ndarray&gt;</div><input id='attrs-34078883-59be-4d56-ab67-30634ce4fdca' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-34078883-59be-4d56-ab67-30634ce4fdca' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c3840282-4e5c-471f-85d7-a9babf910dbc' class='xr-var-data-in' type='checkbox'><label for='data-c3840282-4e5c-471f-85d7-a9babf910dbc' 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>comment :</span></dt><dd>longitude bounds</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 576 B </td> <td> 576 B </td></tr>\n",
+       "    <tr><th> Shape </th><td> (72, 2) </td> <td> (72, 2) </td></tr>\n",
+       "    <tr><th> Count </th><td> 2 Tasks </td><td> 1 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float32 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"80\" height=\"170\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"30\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"120\" x2=\"30\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"30\" y1=\"0\" x2=\"30\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 30.931822596185057,0.0 30.931822596185057,120.0 0.0,120.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"15.465911\" y=\"140.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >2</text>\n",
+       "  <text x=\"50.931823\" y=\"60.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,50.931823,60.000000)\">72</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>1986-01-16 00:00:00 ... 1986-12-...</div><input id='attrs-336d08c8-fde5-4510-a132-2f3cac59aec5' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-336d08c8-fde5-4510-a132-2f3cac59aec5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-b2e4c823-814f-4989-974b-b477d6989847' class='xr-var-data-in' type='checkbox'><label for='data-b2e4c823-814f-4989-974b-b477d6989847' 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>axis :</span></dt><dd>T</dd><dt><span>climatology :</span></dt><dd>climatology_bounds</dd><dt><span>long_name :</span></dt><dd>time</dd><dt><span>standard_name :</span></dt><dd>time</dd></dl></div><div class='xr-var-data'><pre>array([cftime.Datetime360Day(1986, 1, 16, 0, 0, 0, 0),\n",
+       "       cftime.Datetime360Day(1986, 2, 16, 0, 0, 0, 0),\n",
+       "       cftime.Datetime360Day(1986, 3, 16, 0, 0, 0, 0),\n",
+       "       cftime.Datetime360Day(1986, 4, 16, 0, 0, 0, 0),\n",
+       "       cftime.Datetime360Day(1986, 5, 16, 0, 0, 0, 0),\n",
+       "       cftime.Datetime360Day(1986, 6, 16, 0, 0, 0, 0),\n",
+       "       cftime.Datetime360Day(1986, 7, 16, 0, 0, 0, 0),\n",
+       "       cftime.Datetime360Day(1986, 8, 16, 0, 0, 0, 0),\n",
+       "       cftime.Datetime360Day(1986, 9, 16, 0, 0, 0, 0),\n",
+       "       cftime.Datetime360Day(1986, 10, 16, 0, 0, 0, 0),\n",
+       "       cftime.Datetime360Day(1986, 11, 16, 0, 0, 0, 0),\n",
+       "       cftime.Datetime360Day(1986, 12, 16, 0, 0, 0, 0)], dtype=object)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-4d804b75-68cb-43cb-a618-9f146de18e52' class='xr-section-summary-in' type='checkbox'  checked><label for='section-4d804b75-68cb-43cb-a618-9f146de18e52' class='xr-section-summary' >Data variables: <span>(8)</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>s_dd</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;</div><input id='attrs-3c721c76-31c6-43e4-955a-4a0f29bd4d44' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-3c721c76-31c6-43e4-955a-4a0f29bd4d44' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-51282ef2-ebd1-430d-b377-834652da4027' class='xr-var-data-in' type='checkbox'><label for='data-51282ef2-ebd1-430d-b377-834652da4027' 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>cell_methods :</span></dt><dd>area: sum depth: point time: sum</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>long_name :</span></dt><dd>The number of observations of sea_water_salinity in each grid-square at each standard depth level.</dd><dt><span>standard_name :</span></dt><dd>sea_water_salinity number_of_observations</dd><dt><span>units :</span></dt><dd>1</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 14.18 MB </td> <td> 1.18 MB </td></tr>\n",
+       "    <tr><th> Shape </th><td> (12, 57, 36, 72) </td> <td> (1, 57, 36, 72) </td></tr>\n",
+       "    <tr><th> Count </th><td> 13 Tasks </td><td> 12 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float64 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"447\" height=\"165\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"41\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"27\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"3\" y1=\"0\" x2=\"3\" y2=\"27\" />\n",
+       "  <line x1=\"6\" y1=\"0\" x2=\"6\" y2=\"27\" />\n",
+       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"27\" />\n",
+       "  <line x1=\"13\" y1=\"0\" x2=\"13\" y2=\"27\" />\n",
+       "  <line x1=\"17\" y1=\"0\" x2=\"17\" y2=\"27\" />\n",
+       "  <line x1=\"20\" y1=\"0\" x2=\"20\" y2=\"27\" />\n",
+       "  <line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"27\" />\n",
+       "  <line x1=\"27\" y1=\"0\" x2=\"27\" y2=\"27\" />\n",
+       "  <line x1=\"30\" y1=\"0\" x2=\"30\" y2=\"27\" />\n",
+       "  <line x1=\"34\" y1=\"0\" x2=\"34\" y2=\"27\" />\n",
+       "  <line x1=\"37\" y1=\"0\" x2=\"37\" y2=\"27\" />\n",
+       "  <line x1=\"41\" y1=\"0\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 41.20382942136741,0.0 41.20382942136741,27.054035963169408 0.0,27.054035963169408\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"20.601915\" y=\"47.054036\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >12</text>\n",
+       "  <text x=\"61.203829\" y=\"13.527018\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,61.203829,13.527018)\">1</text>\n",
+       "\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"111\" y1=\"60\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"111\" y2=\"60\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 166.88235294117646,55.88235294117647 166.88235294117646,115.88235294117646 111.0,60.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"231\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"231\" y1=\"0\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 231.0,0.0 286.88235294117646,55.88235294117647 166.88235294117646,55.88235294117647\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"115\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"286\" y1=\"55\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"166.88235294117646,55.88235294117647 286.88235294117646,55.88235294117647 286.88235294117646,115.88235294117646 166.88235294117646,115.88235294117646\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"226.882353\" y=\"135.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >72</text>\n",
+       "  <text x=\"306.882353\" y=\"85.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,306.882353,85.882353)\">36</text>\n",
+       "  <text x=\"128.941176\" y=\"107.941176\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,128.941176,107.941176)\">57</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></div></li><li class='xr-var-item'><div class='xr-var-name'><span>s_mn</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;</div><input id='attrs-eebc7acd-3731-4d8d-81c8-7092acf625a4' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-eebc7acd-3731-4d8d-81c8-7092acf625a4' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-b3a79c5d-aea0-462a-bcd1-8b0eaf61248a' class='xr-var-data-in' type='checkbox'><label for='data-b3a79c5d-aea0-462a-bcd1-8b0eaf61248a' 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>cell_methods :</span></dt><dd>area: mean depth: mean time: mean within years time: mean over years</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>long_name :</span></dt><dd>Average of all unflagged interpolated values at each standard depth level for sea_water_salinity in each grid-square which contain at least one measurement.</dd><dt><span>standard_name :</span></dt><dd>sea_water_salinity</dd><dt><span>units :</span></dt><dd>1e-3</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 7.09 MB </td> <td> 590.98 kB </td></tr>\n",
+       "    <tr><th> Shape </th><td> (12, 57, 36, 72) </td> <td> (1, 57, 36, 72) </td></tr>\n",
+       "    <tr><th> Count </th><td> 13 Tasks </td><td> 12 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float32 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"447\" height=\"165\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"41\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"27\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"3\" y1=\"0\" x2=\"3\" y2=\"27\" />\n",
+       "  <line x1=\"6\" y1=\"0\" x2=\"6\" y2=\"27\" />\n",
+       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"27\" />\n",
+       "  <line x1=\"13\" y1=\"0\" x2=\"13\" y2=\"27\" />\n",
+       "  <line x1=\"17\" y1=\"0\" x2=\"17\" y2=\"27\" />\n",
+       "  <line x1=\"20\" y1=\"0\" x2=\"20\" y2=\"27\" />\n",
+       "  <line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"27\" />\n",
+       "  <line x1=\"27\" y1=\"0\" x2=\"27\" y2=\"27\" />\n",
+       "  <line x1=\"30\" y1=\"0\" x2=\"30\" y2=\"27\" />\n",
+       "  <line x1=\"34\" y1=\"0\" x2=\"34\" y2=\"27\" />\n",
+       "  <line x1=\"37\" y1=\"0\" x2=\"37\" y2=\"27\" />\n",
+       "  <line x1=\"41\" y1=\"0\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 41.20382942136741,0.0 41.20382942136741,27.054035963169408 0.0,27.054035963169408\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"20.601915\" y=\"47.054036\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >12</text>\n",
+       "  <text x=\"61.203829\" y=\"13.527018\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,61.203829,13.527018)\">1</text>\n",
+       "\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"111\" y1=\"60\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"111\" y2=\"60\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 166.88235294117646,55.88235294117647 166.88235294117646,115.88235294117646 111.0,60.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"231\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"231\" y1=\"0\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 231.0,0.0 286.88235294117646,55.88235294117647 166.88235294117646,55.88235294117647\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"115\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"286\" y1=\"55\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"166.88235294117646,55.88235294117647 286.88235294117646,55.88235294117647 286.88235294117646,115.88235294117646 166.88235294117646,115.88235294117646\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"226.882353\" y=\"135.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >72</text>\n",
+       "  <text x=\"306.882353\" y=\"85.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,306.882353,85.882353)\">36</text>\n",
+       "  <text x=\"128.941176\" y=\"107.941176\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,128.941176,107.941176)\">57</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></div></li><li class='xr-var-item'><div class='xr-var-name'><span>s_sd</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;</div><input id='attrs-5a820b6a-222b-4d27-87bb-227c1b5a4615' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-5a820b6a-222b-4d27-87bb-227c1b5a4615' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-cee5827c-bc4f-43b7-afc3-4b13216a840f' class='xr-var-data-in' type='checkbox'><label for='data-cee5827c-bc4f-43b7-afc3-4b13216a840f' 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>cell_methods :</span></dt><dd>area: mean depth: mean time: standard_deviation</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>long_name :</span></dt><dd>The standard deviation about the statistical mean of sea_water_salinity in each grid-square at each standard depth level.</dd><dt><span>units :</span></dt><dd>1e-3</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 7.09 MB </td> <td> 590.98 kB </td></tr>\n",
+       "    <tr><th> Shape </th><td> (12, 57, 36, 72) </td> <td> (1, 57, 36, 72) </td></tr>\n",
+       "    <tr><th> Count </th><td> 13 Tasks </td><td> 12 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float32 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"447\" height=\"165\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"41\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"27\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"3\" y1=\"0\" x2=\"3\" y2=\"27\" />\n",
+       "  <line x1=\"6\" y1=\"0\" x2=\"6\" y2=\"27\" />\n",
+       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"27\" />\n",
+       "  <line x1=\"13\" y1=\"0\" x2=\"13\" y2=\"27\" />\n",
+       "  <line x1=\"17\" y1=\"0\" x2=\"17\" y2=\"27\" />\n",
+       "  <line x1=\"20\" y1=\"0\" x2=\"20\" y2=\"27\" />\n",
+       "  <line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"27\" />\n",
+       "  <line x1=\"27\" y1=\"0\" x2=\"27\" y2=\"27\" />\n",
+       "  <line x1=\"30\" y1=\"0\" x2=\"30\" y2=\"27\" />\n",
+       "  <line x1=\"34\" y1=\"0\" x2=\"34\" y2=\"27\" />\n",
+       "  <line x1=\"37\" y1=\"0\" x2=\"37\" y2=\"27\" />\n",
+       "  <line x1=\"41\" y1=\"0\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 41.20382942136741,0.0 41.20382942136741,27.054035963169408 0.0,27.054035963169408\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"20.601915\" y=\"47.054036\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >12</text>\n",
+       "  <text x=\"61.203829\" y=\"13.527018\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,61.203829,13.527018)\">1</text>\n",
+       "\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"111\" y1=\"60\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"111\" y2=\"60\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 166.88235294117646,55.88235294117647 166.88235294117646,115.88235294117646 111.0,60.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"231\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"231\" y1=\"0\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 231.0,0.0 286.88235294117646,55.88235294117647 166.88235294117646,55.88235294117647\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"115\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"286\" y1=\"55\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"166.88235294117646,55.88235294117647 286.88235294117646,55.88235294117647 286.88235294117646,115.88235294117646 166.88235294117646,115.88235294117646\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"226.882353\" y=\"135.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >72</text>\n",
+       "  <text x=\"306.882353\" y=\"85.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,306.882353,85.882353)\">36</text>\n",
+       "  <text x=\"128.941176\" y=\"107.941176\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,128.941176,107.941176)\">57</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></div></li><li class='xr-var-item'><div class='xr-var-name'><span>s_se</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;</div><input id='attrs-523a68e6-4e20-41bb-8aae-2f702819b88c' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-523a68e6-4e20-41bb-8aae-2f702819b88c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-72ee833d-fa39-469a-af1a-ed605bfa50e0' class='xr-var-data-in' type='checkbox'><label for='data-72ee833d-fa39-469a-af1a-ed605bfa50e0' 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>cell_methods :</span></dt><dd>area: mean depth: mean time: mean</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>long_name :</span></dt><dd>The standard error about the statistical mean of sea_water_salinity in each grid-square at each standard depth level.</dd><dt><span>standard_name :</span></dt><dd>sea_water_salinity standard_error</dd><dt><span>units :</span></dt><dd>1e-3</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 7.09 MB </td> <td> 590.98 kB </td></tr>\n",
+       "    <tr><th> Shape </th><td> (12, 57, 36, 72) </td> <td> (1, 57, 36, 72) </td></tr>\n",
+       "    <tr><th> Count </th><td> 13 Tasks </td><td> 12 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float32 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"447\" height=\"165\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"41\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"27\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"3\" y1=\"0\" x2=\"3\" y2=\"27\" />\n",
+       "  <line x1=\"6\" y1=\"0\" x2=\"6\" y2=\"27\" />\n",
+       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"27\" />\n",
+       "  <line x1=\"13\" y1=\"0\" x2=\"13\" y2=\"27\" />\n",
+       "  <line x1=\"17\" y1=\"0\" x2=\"17\" y2=\"27\" />\n",
+       "  <line x1=\"20\" y1=\"0\" x2=\"20\" y2=\"27\" />\n",
+       "  <line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"27\" />\n",
+       "  <line x1=\"27\" y1=\"0\" x2=\"27\" y2=\"27\" />\n",
+       "  <line x1=\"30\" y1=\"0\" x2=\"30\" y2=\"27\" />\n",
+       "  <line x1=\"34\" y1=\"0\" x2=\"34\" y2=\"27\" />\n",
+       "  <line x1=\"37\" y1=\"0\" x2=\"37\" y2=\"27\" />\n",
+       "  <line x1=\"41\" y1=\"0\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 41.20382942136741,0.0 41.20382942136741,27.054035963169408 0.0,27.054035963169408\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"20.601915\" y=\"47.054036\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >12</text>\n",
+       "  <text x=\"61.203829\" y=\"13.527018\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,61.203829,13.527018)\">1</text>\n",
+       "\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"111\" y1=\"60\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"111\" y2=\"60\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 166.88235294117646,55.88235294117647 166.88235294117646,115.88235294117646 111.0,60.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"231\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"231\" y1=\"0\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 231.0,0.0 286.88235294117646,55.88235294117647 166.88235294117646,55.88235294117647\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"115\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"286\" y1=\"55\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"166.88235294117646,55.88235294117647 286.88235294117646,55.88235294117647 286.88235294117646,115.88235294117646 166.88235294117646,115.88235294117646\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"226.882353\" y=\"135.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >72</text>\n",
+       "  <text x=\"306.882353\" y=\"85.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,306.882353,85.882353)\">36</text>\n",
+       "  <text x=\"128.941176\" y=\"107.941176\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,128.941176,107.941176)\">57</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_dd</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;</div><input id='attrs-aa79b9e0-177f-4644-b295-134eccbf72fe' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-aa79b9e0-177f-4644-b295-134eccbf72fe' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-2db33637-2661-4c61-af2e-5e7266e8a78b' class='xr-var-data-in' type='checkbox'><label for='data-2db33637-2661-4c61-af2e-5e7266e8a78b' 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>cell_methods :</span></dt><dd>area: sum depth: point time: sum</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>long_name :</span></dt><dd>The number of observations of sea_water_temperature in each grid-square at each standard depth level.</dd><dt><span>standard_name :</span></dt><dd>sea_water_temperature number_of_observations</dd><dt><span>units :</span></dt><dd>1</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 14.18 MB </td> <td> 1.18 MB </td></tr>\n",
+       "    <tr><th> Shape </th><td> (12, 57, 36, 72) </td> <td> (1, 57, 36, 72) </td></tr>\n",
+       "    <tr><th> Count </th><td> 13 Tasks </td><td> 12 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float64 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"447\" height=\"165\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"41\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"27\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"3\" y1=\"0\" x2=\"3\" y2=\"27\" />\n",
+       "  <line x1=\"6\" y1=\"0\" x2=\"6\" y2=\"27\" />\n",
+       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"27\" />\n",
+       "  <line x1=\"13\" y1=\"0\" x2=\"13\" y2=\"27\" />\n",
+       "  <line x1=\"17\" y1=\"0\" x2=\"17\" y2=\"27\" />\n",
+       "  <line x1=\"20\" y1=\"0\" x2=\"20\" y2=\"27\" />\n",
+       "  <line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"27\" />\n",
+       "  <line x1=\"27\" y1=\"0\" x2=\"27\" y2=\"27\" />\n",
+       "  <line x1=\"30\" y1=\"0\" x2=\"30\" y2=\"27\" />\n",
+       "  <line x1=\"34\" y1=\"0\" x2=\"34\" y2=\"27\" />\n",
+       "  <line x1=\"37\" y1=\"0\" x2=\"37\" y2=\"27\" />\n",
+       "  <line x1=\"41\" y1=\"0\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 41.20382942136741,0.0 41.20382942136741,27.054035963169408 0.0,27.054035963169408\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"20.601915\" y=\"47.054036\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >12</text>\n",
+       "  <text x=\"61.203829\" y=\"13.527018\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,61.203829,13.527018)\">1</text>\n",
+       "\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"111\" y1=\"60\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"111\" y2=\"60\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 166.88235294117646,55.88235294117647 166.88235294117646,115.88235294117646 111.0,60.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"231\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"231\" y1=\"0\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 231.0,0.0 286.88235294117646,55.88235294117647 166.88235294117646,55.88235294117647\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"115\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"286\" y1=\"55\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"166.88235294117646,55.88235294117647 286.88235294117646,55.88235294117647 286.88235294117646,115.88235294117646 166.88235294117646,115.88235294117646\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"226.882353\" y=\"135.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >72</text>\n",
+       "  <text x=\"306.882353\" y=\"85.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,306.882353,85.882353)\">36</text>\n",
+       "  <text x=\"128.941176\" y=\"107.941176\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,128.941176,107.941176)\">57</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_mn</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;</div><input id='attrs-630376eb-1bb0-42e9-a80f-78abd9bd91bc' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-630376eb-1bb0-42e9-a80f-78abd9bd91bc' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ed55fd2e-2eda-4218-a327-271a831bb58b' class='xr-var-data-in' type='checkbox'><label for='data-ed55fd2e-2eda-4218-a327-271a831bb58b' 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>cell_methods :</span></dt><dd>area: mean depth: mean time: mean within years time: mean over years</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>long_name :</span></dt><dd>Average of all unflagged interpolated values at each standard depth level for sea_water_temperature in each grid-square which contain at least one measurement.</dd><dt><span>standard_name :</span></dt><dd>sea_water_temperature</dd><dt><span>units :</span></dt><dd>degrees_celsius</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 7.09 MB </td> <td> 590.98 kB </td></tr>\n",
+       "    <tr><th> Shape </th><td> (12, 57, 36, 72) </td> <td> (1, 57, 36, 72) </td></tr>\n",
+       "    <tr><th> Count </th><td> 13 Tasks </td><td> 12 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float32 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"447\" height=\"165\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"41\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"27\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"3\" y1=\"0\" x2=\"3\" y2=\"27\" />\n",
+       "  <line x1=\"6\" y1=\"0\" x2=\"6\" y2=\"27\" />\n",
+       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"27\" />\n",
+       "  <line x1=\"13\" y1=\"0\" x2=\"13\" y2=\"27\" />\n",
+       "  <line x1=\"17\" y1=\"0\" x2=\"17\" y2=\"27\" />\n",
+       "  <line x1=\"20\" y1=\"0\" x2=\"20\" y2=\"27\" />\n",
+       "  <line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"27\" />\n",
+       "  <line x1=\"27\" y1=\"0\" x2=\"27\" y2=\"27\" />\n",
+       "  <line x1=\"30\" y1=\"0\" x2=\"30\" y2=\"27\" />\n",
+       "  <line x1=\"34\" y1=\"0\" x2=\"34\" y2=\"27\" />\n",
+       "  <line x1=\"37\" y1=\"0\" x2=\"37\" y2=\"27\" />\n",
+       "  <line x1=\"41\" y1=\"0\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 41.20382942136741,0.0 41.20382942136741,27.054035963169408 0.0,27.054035963169408\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"20.601915\" y=\"47.054036\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >12</text>\n",
+       "  <text x=\"61.203829\" y=\"13.527018\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,61.203829,13.527018)\">1</text>\n",
+       "\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"111\" y1=\"60\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"111\" y2=\"60\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 166.88235294117646,55.88235294117647 166.88235294117646,115.88235294117646 111.0,60.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"231\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"231\" y1=\"0\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 231.0,0.0 286.88235294117646,55.88235294117647 166.88235294117646,55.88235294117647\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"115\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"286\" y1=\"55\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"166.88235294117646,55.88235294117647 286.88235294117646,55.88235294117647 286.88235294117646,115.88235294117646 166.88235294117646,115.88235294117646\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"226.882353\" y=\"135.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >72</text>\n",
+       "  <text x=\"306.882353\" y=\"85.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,306.882353,85.882353)\">36</text>\n",
+       "  <text x=\"128.941176\" y=\"107.941176\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,128.941176,107.941176)\">57</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_sd</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;</div><input id='attrs-b8f64f2a-922b-4410-8845-6e3f519318cf' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-b8f64f2a-922b-4410-8845-6e3f519318cf' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5680eaa6-a3a3-4b52-a5cb-3739d07497eb' class='xr-var-data-in' type='checkbox'><label for='data-5680eaa6-a3a3-4b52-a5cb-3739d07497eb' 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>cell_methods :</span></dt><dd>area: mean depth: mean time: standard_deviation</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>long_name :</span></dt><dd>The standard deviation about the statistical mean of sea_water_temperature in each grid-square at each standard depth level.</dd><dt><span>units :</span></dt><dd>degrees_celsius</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 7.09 MB </td> <td> 590.98 kB </td></tr>\n",
+       "    <tr><th> Shape </th><td> (12, 57, 36, 72) </td> <td> (1, 57, 36, 72) </td></tr>\n",
+       "    <tr><th> Count </th><td> 13 Tasks </td><td> 12 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float32 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"447\" height=\"165\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"41\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"27\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"3\" y1=\"0\" x2=\"3\" y2=\"27\" />\n",
+       "  <line x1=\"6\" y1=\"0\" x2=\"6\" y2=\"27\" />\n",
+       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"27\" />\n",
+       "  <line x1=\"13\" y1=\"0\" x2=\"13\" y2=\"27\" />\n",
+       "  <line x1=\"17\" y1=\"0\" x2=\"17\" y2=\"27\" />\n",
+       "  <line x1=\"20\" y1=\"0\" x2=\"20\" y2=\"27\" />\n",
+       "  <line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"27\" />\n",
+       "  <line x1=\"27\" y1=\"0\" x2=\"27\" y2=\"27\" />\n",
+       "  <line x1=\"30\" y1=\"0\" x2=\"30\" y2=\"27\" />\n",
+       "  <line x1=\"34\" y1=\"0\" x2=\"34\" y2=\"27\" />\n",
+       "  <line x1=\"37\" y1=\"0\" x2=\"37\" y2=\"27\" />\n",
+       "  <line x1=\"41\" y1=\"0\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 41.20382942136741,0.0 41.20382942136741,27.054035963169408 0.0,27.054035963169408\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"20.601915\" y=\"47.054036\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >12</text>\n",
+       "  <text x=\"61.203829\" y=\"13.527018\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,61.203829,13.527018)\">1</text>\n",
+       "\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"111\" y1=\"60\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"111\" y2=\"60\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 166.88235294117646,55.88235294117647 166.88235294117646,115.88235294117646 111.0,60.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"231\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"231\" y1=\"0\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 231.0,0.0 286.88235294117646,55.88235294117647 166.88235294117646,55.88235294117647\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"115\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"286\" y1=\"55\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"166.88235294117646,55.88235294117647 286.88235294117646,55.88235294117647 286.88235294117646,115.88235294117646 166.88235294117646,115.88235294117646\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"226.882353\" y=\"135.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >72</text>\n",
+       "  <text x=\"306.882353\" y=\"85.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,306.882353,85.882353)\">36</text>\n",
+       "  <text x=\"128.941176\" y=\"107.941176\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,128.941176,107.941176)\">57</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></div></li><li class='xr-var-item'><div class='xr-var-name'><span>t_se</span></div><div class='xr-var-dims'>(time, depth, lat, lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(1, 57, 36, 72), meta=np.ndarray&gt;</div><input id='attrs-fea696d5-00f6-4158-b156-5e9139095cda' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-fea696d5-00f6-4158-b156-5e9139095cda' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f1f4713e-1cb0-4427-8e27-86bb6fb1065d' class='xr-var-data-in' type='checkbox'><label for='data-f1f4713e-1cb0-4427-8e27-86bb6fb1065d' 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>cell_methods :</span></dt><dd>area: mean depth: mean time: mean</dd><dt><span>grid_mapping :</span></dt><dd>crs</dd><dt><span>long_name :</span></dt><dd>The standard error about the statistical mean of sea_water_temperature in each grid-square at each standard depth level.</dd><dt><span>standard_name :</span></dt><dd>sea_water_temperature standard_error</dd><dt><span>units :</span></dt><dd>degrees_celsius</dd></dl></div><div class='xr-var-data'><table>\n",
+       "<tr>\n",
+       "<td>\n",
+       "<table>\n",
+       "  <thead>\n",
+       "    <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr><th> Bytes </th><td> 7.09 MB </td> <td> 590.98 kB </td></tr>\n",
+       "    <tr><th> Shape </th><td> (12, 57, 36, 72) </td> <td> (1, 57, 36, 72) </td></tr>\n",
+       "    <tr><th> Count </th><td> 13 Tasks </td><td> 12 Chunks </td></tr>\n",
+       "    <tr><th> Type </th><td> float32 </td><td> numpy.ndarray </td></tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</td>\n",
+       "<td>\n",
+       "<svg width=\"447\" height=\"165\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"41\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"27\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"3\" y1=\"0\" x2=\"3\" y2=\"27\" />\n",
+       "  <line x1=\"6\" y1=\"0\" x2=\"6\" y2=\"27\" />\n",
+       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"27\" />\n",
+       "  <line x1=\"13\" y1=\"0\" x2=\"13\" y2=\"27\" />\n",
+       "  <line x1=\"17\" y1=\"0\" x2=\"17\" y2=\"27\" />\n",
+       "  <line x1=\"20\" y1=\"0\" x2=\"20\" y2=\"27\" />\n",
+       "  <line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"27\" />\n",
+       "  <line x1=\"27\" y1=\"0\" x2=\"27\" y2=\"27\" />\n",
+       "  <line x1=\"30\" y1=\"0\" x2=\"30\" y2=\"27\" />\n",
+       "  <line x1=\"34\" y1=\"0\" x2=\"34\" y2=\"27\" />\n",
+       "  <line x1=\"37\" y1=\"0\" x2=\"37\" y2=\"27\" />\n",
+       "  <line x1=\"41\" y1=\"0\" x2=\"41\" y2=\"27\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 41.20382942136741,0.0 41.20382942136741,27.054035963169408 0.0,27.054035963169408\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"20.601915\" y=\"47.054036\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >12</text>\n",
+       "  <text x=\"61.203829\" y=\"13.527018\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,61.203829,13.527018)\">1</text>\n",
+       "\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"111\" y1=\"60\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"111\" y2=\"60\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 166.88235294117646,55.88235294117647 166.88235294117646,115.88235294117646 111.0,60.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"231\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"111\" y1=\"0\" x2=\"166\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"231\" y1=\"0\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"111.0,0.0 231.0,0.0 286.88235294117646,55.88235294117647 166.88235294117646,55.88235294117647\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"286\" y2=\"55\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"166\" y1=\"115\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"166\" y1=\"55\" x2=\"166\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"286\" y1=\"55\" x2=\"286\" y2=\"115\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"166.88235294117646,55.88235294117647 286.88235294117646,55.88235294117647 286.88235294117646,115.88235294117646 166.88235294117646,115.88235294117646\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"226.882353\" y=\"135.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >72</text>\n",
+       "  <text x=\"306.882353\" y=\"85.882353\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,306.882353,85.882353)\">36</text>\n",
+       "  <text x=\"128.941176\" y=\"107.941176\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,128.941176,107.941176)\">57</text>\n",
+       "</svg>\n",
+       "</td>\n",
+       "</tr>\n",
+       "</table></div></li></ul></div></li><li class='xr-section-item'><input id='section-6978a0bb-cd2c-4c0c-9b3a-d34a98ab0593' class='xr-section-summary-in' type='checkbox'  ><label for='section-6978a0bb-cd2c-4c0c-9b3a-d34a98ab0593' class='xr-section-summary' >Attributes: <span>(49)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>Conventions :</span></dt><dd>CF-1.6, ACDD-1.3</dd><dt><span>cdm_data_type :</span></dt><dd>Grid</dd><dt><span>comment :</span></dt><dd>global climatology as part of the World Ocean Atlas project</dd><dt><span>contributor_name :</span></dt><dd>Ocean Climate Laboratory</dd><dt><span>contributor_role :</span></dt><dd>Calculation of climatologies</dd><dt><span>creator_email :</span></dt><dd>NCEI.info@noaa.gov</dd><dt><span>creator_institution :</span></dt><dd>National Centers for Environmental Information</dd><dt><span>creator_name :</span></dt><dd>Ocean Climate Laboratory</dd><dt><span>creator_type :</span></dt><dd>group</dd><dt><span>creator_url :</span></dt><dd>http://www.ncei.noaa.gov</dd><dt><span>date_created :</span></dt><dd>2018-02-19 </dd><dt><span>date_modified :</span></dt><dd>2018-02-19 </dd><dt><span>geospatial_lat_max :</span></dt><dd>90.0</dd><dt><span>geospatial_lat_min :</span></dt><dd>-90.0</dd><dt><span>geospatial_lat_resolution :</span></dt><dd>5.00 degrees</dd><dt><span>geospatial_lat_units :</span></dt><dd>degrees_north</dd><dt><span>geospatial_lon_max :</span></dt><dd>180.0</dd><dt><span>geospatial_lon_min :</span></dt><dd>-180.0</dd><dt><span>geospatial_lon_resolution :</span></dt><dd>5.00 degrees</dd><dt><span>geospatial_lon_units :</span></dt><dd>degrees_east</dd><dt><span>geospatial_vertical_max :</span></dt><dd>1500.0</dd><dt><span>geospatial_vertical_min :</span></dt><dd>0.0</dd><dt><span>geospatial_vertical_positive :</span></dt><dd>down</dd><dt><span>geospatial_vertical_resolution :</span></dt><dd>SPECIAL</dd><dt><span>geospatial_vertical_units :</span></dt><dd>m</dd><dt><span>id :</span></dt><dd>woa18_decav_t01_5d.nc</dd><dt><span>institution :</span></dt><dd>National Centers for Environmental Information (NCEI)</dd><dt><span>keywords :</span></dt><dd>Oceans&lt; Ocean Temperature &gt; Water Temperature</dd><dt><span>keywords_vocabulary :</span></dt><dd>ISO 19115</dd><dt><span>license :</span></dt><dd>These data are openly available to the public. Please acknowledge the use of these data with the text given in the acknowledgment attribute.</dd><dt><span>metadata_link :</span></dt><dd>http://www.nodc.noaa.gov/OC5/WOA18/pr_woa18.html</dd><dt><span>naming_authority :</span></dt><dd>gov.noaa.ncei</dd><dt><span>nodc_template_version :</span></dt><dd>NODC_NetCDF_Grid_Template_v2.0</dd><dt><span>processing_level :</span></dt><dd>processed</dd><dt><span>project :</span></dt><dd>World Ocean Atlas Project</dd><dt><span>publisher_email :</span></dt><dd>NCEI.info@noaa.gov</dd><dt><span>publisher_institution :</span></dt><dd>National Centers for Environmental Information</dd><dt><span>publisher_name :</span></dt><dd>National Centers for Environmental Information (NCEI)</dd><dt><span>publisher_type :</span></dt><dd>institution</dd><dt><span>publisher_url :</span></dt><dd>http://www.ncei.noaa.gov/</dd><dt><span>references :</span></dt><dd>Locarnini, R. A., A. V. Mishonov, O. K. Baranova, T. P. Boyer, M. M. Zweng, H. E. Garcia, J. R. Reagan, D. Seidov, K. W. Weathers, C. R. Paver, I. V. Smolyar, 2018: World Ocean Atlas 2018, Volume 1: Temperature.  A. V. Mishonov, Technical Ed., NOAA Atlas NESDIS ##</dd><dt><span>sea_name :</span></dt><dd>World-Wide Distribution</dd><dt><span>standard_name_vocabulary :</span></dt><dd>CF Standard Name Table v49</dd><dt><span>summary :</span></dt><dd>PRERELEASE Climatological mean temperature for the global ocean from in situ profile data</dd><dt><span>time_coverage_duration :</span></dt><dd>P63Y</dd><dt><span>time_coverage_end :</span></dt><dd>2017-01-31</dd><dt><span>time_coverage_resolution :</span></dt><dd>P01M</dd><dt><span>time_coverage_start :</span></dt><dd>1955-01-01</dd><dt><span>title :</span></dt><dd>World Ocean Atlas 2018 : sea_water_temperature January 1955-2017 5.00 degree</dd></dl></div></li></ul></div></div>"
+      ],
+      "text/plain": [
+       "<xarray.Dataset>\n",
+       "Dimensions:             (depth: 57, lat: 36, lon: 72, nbounds: 2, time: 12)\n",
+       "Coordinates:\n",
+       "    climatology_bounds  (time, nbounds) float32 dask.array<chunksize=(1, 2), meta=np.ndarray>\n",
+       "    crs                 int32 ...\n",
+       "  * depth               (depth) float32 0.0 5.0 10.0 ... 1.45e+03 1.5e+03\n",
+       "    depth_bnds          (depth, nbounds) float32 dask.array<chunksize=(57, 2), meta=np.ndarray>\n",
+       "  * lat                 (lat) float32 -87.5 -82.5 -77.5 -72.5 ... 77.5 82.5 87.5\n",
+       "    lat_bnds            (lat, nbounds) float32 dask.array<chunksize=(36, 2), meta=np.ndarray>\n",
+       "  * lon                 (lon) float32 -177.5 -172.5 -167.5 ... 167.5 172.5 177.5\n",
+       "    lon_bnds            (lon, nbounds) float32 dask.array<chunksize=(72, 2), meta=np.ndarray>\n",
+       "  * time                (time) object 1986-01-16 00:00:00 ... 1986-12-16 00:0...\n",
+       "Dimensions without coordinates: nbounds\n",
+       "Data variables:\n",
+       "    s_dd                (time, depth, lat, lon) float64 dask.array<chunksize=(1, 57, 36, 72), meta=np.ndarray>\n",
+       "    s_mn                (time, depth, lat, lon) float32 dask.array<chunksize=(1, 57, 36, 72), meta=np.ndarray>\n",
+       "    s_sd                (time, depth, lat, lon) float32 dask.array<chunksize=(1, 57, 36, 72), meta=np.ndarray>\n",
+       "    s_se                (time, depth, lat, lon) float32 dask.array<chunksize=(1, 57, 36, 72), meta=np.ndarray>\n",
+       "    t_dd                (time, depth, lat, lon) float64 dask.array<chunksize=(1, 57, 36, 72), meta=np.ndarray>\n",
+       "    t_mn                (time, depth, lat, lon) float32 dask.array<chunksize=(1, 57, 36, 72), meta=np.ndarray>\n",
+       "    t_sd                (time, depth, lat, lon) float32 dask.array<chunksize=(1, 57, 36, 72), meta=np.ndarray>\n",
+       "    t_se                (time, depth, lat, lon) float32 dask.array<chunksize=(1, 57, 36, 72), meta=np.ndarray>\n",
+       "Attributes:\n",
+       "    Conventions:                     CF-1.6, ACDD-1.3\n",
+       "    cdm_data_type:                   Grid\n",
+       "    comment:                         global climatology as part of the World ...\n",
+       "    contributor_name:                Ocean Climate Laboratory\n",
+       "    contributor_role:                Calculation of climatologies\n",
+       "    creator_email:                   NCEI.info@noaa.gov\n",
+       "    creator_institution:             National Centers for Environmental Infor...\n",
+       "    creator_name:                    Ocean Climate Laboratory\n",
+       "    creator_type:                    group\n",
+       "    creator_url:                     http://www.ncei.noaa.gov\n",
+       "    date_created:                    2018-02-19 \n",
+       "    date_modified:                   2018-02-19 \n",
+       "    geospatial_lat_max:              90.0\n",
+       "    geospatial_lat_min:              -90.0\n",
+       "    geospatial_lat_resolution:       5.00 degrees\n",
+       "    geospatial_lat_units:            degrees_north\n",
+       "    geospatial_lon_max:              180.0\n",
+       "    geospatial_lon_min:              -180.0\n",
+       "    geospatial_lon_resolution:       5.00 degrees\n",
+       "    geospatial_lon_units:            degrees_east\n",
+       "    geospatial_vertical_max:         1500.0\n",
+       "    geospatial_vertical_min:         0.0\n",
+       "    geospatial_vertical_positive:    down\n",
+       "    geospatial_vertical_resolution:  SPECIAL\n",
+       "    geospatial_vertical_units:       m\n",
+       "    id:                              woa18_decav_t01_5d.nc\n",
+       "    institution:                     National Centers for Environmental Infor...\n",
+       "    keywords:                        Oceans< Ocean Temperature > Water Temper...\n",
+       "    keywords_vocabulary:             ISO 19115\n",
+       "    license:                         These data are openly available to the p...\n",
+       "    metadata_link:                   http://www.nodc.noaa.gov/OC5/WOA18/pr_wo...\n",
+       "    naming_authority:                gov.noaa.ncei\n",
+       "    nodc_template_version:           NODC_NetCDF_Grid_Template_v2.0\n",
+       "    processing_level:                processed\n",
+       "    project:                         World Ocean Atlas Project\n",
+       "    publisher_email:                 NCEI.info@noaa.gov\n",
+       "    publisher_institution:           National Centers for Environmental Infor...\n",
+       "    publisher_name:                  National Centers for Environmental Infor...\n",
+       "    publisher_type:                  institution\n",
+       "    publisher_url:                   http://www.ncei.noaa.gov/\n",
+       "    references:                      Locarnini, R. A., A. V. Mishonov, O. K. ...\n",
+       "    sea_name:                        World-Wide Distribution\n",
+       "    standard_name_vocabulary:        CF Standard Name Table v49\n",
+       "    summary:                         PRERELEASE Climatological mean temperatu...\n",
+       "    time_coverage_duration:          P63Y\n",
+       "    time_coverage_end:               2017-01-31\n",
+       "    time_coverage_resolution:        P01M\n",
+       "    time_coverage_start:             1955-01-01\n",
+       "    title:                           World Ocean Atlas 2018 : sea_water_tempe..."
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "ds = xr.open_zarr(target_dir.name)\n",
+    "ds"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Just to check, we will make some pretty plots."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "/opt/miniconda3/envs/pangeo2020/lib/python3.8/site-packages/dask/array/numpy_compat.py:41: RuntimeWarning: invalid value encountered in true_divide\n",
+      "  x = np.divide(x1, x2, out)\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<matplotlib.collections.QuadMesh at 0x7fe178ff0fa0>"
+      ]
+     },
+     "execution_count": 21,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 2 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "ds.t_mn.isel(depth=0).mean(dim='lon').plot(x='time', vmin=-2, vmax=35)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "/opt/miniconda3/envs/pangeo2020/lib/python3.8/site-packages/dask/array/numpy_compat.py:41: RuntimeWarning: invalid value encountered in true_divide\n",
+      "  x = np.divide(x1, x2, out)\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<matplotlib.collections.QuadMesh at 0x7fe178ccbee0>"
+      ]
+     },
+     "execution_count": 23,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 2 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "ds.s_mn.isel(depth=0).mean(dim='time').plot()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "🎉 Yay! Our recipe worked!"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/docs/tutorials/ncei-woa-screenshot.png b/docs/tutorials/ncei-woa-screenshot.png
new file mode 100644
index 00000000..056a776a
Binary files /dev/null and b/docs/tutorials/ncei-woa-screenshot.png differ
diff --git a/pangeo_forge/patterns.py b/pangeo_forge/patterns.py
new file mode 100644
index 00000000..111efcfa
--- /dev/null
+++ b/pangeo_forge/patterns.py
@@ -0,0 +1,76 @@
+"""
+Filename patterns.
+"""
+
+import itertools
+from abc import ABC
+from dataclasses import dataclass
+from typing import Dict, Generator, Hashable, Iterable, List, Tuple
+
+
+class BasePattern(ABC):
+    def __iter__(self) -> Generator[Tuple[Hashable, str], None, None]:
+        pass
+
+
+@dataclass
+class URLPattern(BasePattern):
+    """A generic pattern for representing a URL pattern
+
+    :param fmt_string: A string that will be used to generate the URLs
+    :param keys: Keys used to populate the template
+    """
+
+    fmt_string: str
+    keys: Dict[str, Iterable]
+
+    def __post_init__(self):
+        pass
+        # TODO: make a better check
+        # this check does not work if you have to use the keys multiple times in the format string
+        # fmt_string_keys = [
+        #     t[1] for t in string.Formatter().parse(self.fmt_string) if t[1] is not None
+        # ]
+        # e.g. '{variable}/{variable[0]}.nc'
+        # if not set(fmt_string_keys) == set(self.keys):
+        #    raise KeyError("Specified keys don't match fmt_string")
+
+    def __iter__(self):
+        for keys in itertools.product(*self.keys.values()):
+            format_kwargs = {k: v for k, v in zip(self.keys, keys)}
+            yield keys, self.fmt_string.format(**format_kwargs)
+
+
+@dataclass
+class VariableSequencePattern(URLPattern):
+    """A pattern for representing a dataset stored in a sequence (e.g. time)
+    with different variables in different files.
+
+    :param fmt_string: A string that will be used to generate the URLs
+    :param keys: Keys used to populate the template. One key must be called ``variable``.
+       The other can have any name. Only two keys are allowed.
+    """
+
+    def __post_init__(self):
+
+        if not len(self.keys) == 2:
+            raise ValueError("Exactly two keys are required for VariableSequencePattern")
+        if "variable" not in self.keys:
+            raise ValueError("keys must contain `variable` for VariableSequencePattern")
+        self._sequence_key = [k for k in self.keys if k != "variable"][0]
+
+        super().__post_init__()
+
+
+@dataclass
+class ExplicitURLSequence(BasePattern):
+    """A pattern for representing a dataset stored in a sequence of URLs.
+
+    :param urls: list of URLs.
+    """
+
+    urls: List[str]
+
+    def __iter__(self):
+        for n, item in enumerate(self.urls):
+            yield n, item
diff --git a/pangeo_forge/recipe.py b/pangeo_forge/recipe.py
index a2d8cb05..542bfc8b 100644
--- a/pangeo_forge/recipe.py
+++ b/pangeo_forge/recipe.py
@@ -6,13 +6,14 @@
 from abc import ABC, abstractmethod
 from contextlib import contextmanager
 from dataclasses import dataclass, field
-from typing import Callable, Hashable, Iterable, NoReturn, Optional
+from typing import Callable, Dict, Hashable, Iterable, NoReturn, Optional
 
 import fsspec
 import xarray as xr
 import zarr
 from rechunker.types import MultiStagePipeline, ParallelPipelines, Stage
 
+from .patterns import ExplicitURLSequence, VariableSequencePattern
 from .storage import AbstractTarget, UninitializedTarget
 from .utils import chunked_iterable, fix_scalar_attr_encoding
 
@@ -109,6 +110,12 @@ def to_pipelines(self) -> ParallelPipelines:
         pipelines.append(pipeline)
         return pipelines
 
+    # https://stackoverflow.com/questions/59986413/achieving-multiple-inheritance-using-python-dataclasses
+    def __post_init__(self):
+        # just intercept the __post_init__ calls so they
+        # aren't relayed to `object`
+        pass
+
 
 # Notes about dataclasses:
 # - https://www.python.org/dev/peps/pep-0557/#inheritance
@@ -116,17 +123,12 @@ def to_pipelines(self) -> ParallelPipelines:
 
 
 @dataclass
-class NetCDFtoZarrSequentialRecipe(BaseRecipe):
+class NetCDFtoZarrRecipe(BaseRecipe):
     """This class represents a dataset composed of many individual NetCDF files.
-    The files are arraged in a sequence along a single dimension, called the
-    `sequence_dim`. Each file may contain multiple variables.
+    This class uses Xarray to read and write data and writes its output to Zarr.
+    The files are assumed to be arranged in a sequence along dimension ``sequence_dim``
+    (commonly "time".)
 
-    The dataset is assembled by concatenating all of these files along `sequence_dim`.
-    The target is written in Zarr format.
-
-    This class uses Xarray to read and write data.
-
-    :param input_urls: The inputs used to generate the dataset.
     :param sequence_dim: The dimension name along which the inputs will be concatenated.
     :param inputs_per_chunk: The number of inputs to use in each chunk.
     :param nitems_per_input: The length of each input along the `sequence_dim` dimension.
@@ -146,10 +148,10 @@ class NetCDFtoZarrSequentialRecipe(BaseRecipe):
       `(ds: xr.Dataset, filename: str) -> ds: xr.Dataset`.
     :param process_chunk: Function to call on each concatenated chunk, with signature
       `(ds: xr.Dataset) -> ds: xr.Dataset`.
+    :param target_chunks: Desired chunk structure for the targret dataset.
     """
 
-    input_urls: Iterable[str] = field(repr=False)
-    sequence_dim: str
+    sequence_dim: Optional[str] = None
     inputs_per_chunk: int = 1
     nitems_per_input: int = 1
     target: Optional[AbstractTarget] = field(default_factory=UninitializedTarget)
@@ -162,11 +164,23 @@ class NetCDFtoZarrSequentialRecipe(BaseRecipe):
     fsspec_open_kwargs: dict = field(default_factory=dict)
     process_input: Optional[Callable[[xr.Dataset, str], xr.Dataset]] = None
     process_chunk: Optional[Callable[[xr.Dataset], xr.Dataset]] = None
+    target_chunks: Optional[Dict[str, int]] = None
 
     def __post_init__(self):
-        self._chunks_inputs = {
-            k: v for k, v in enumerate(chunked_iterable(self.input_urls, self.inputs_per_chunk))
-        }
+        if self.target_chunks:
+            sequence_dim_chunks = self.target_chunks.get(self.sequence_dim)
+            if sequence_dim_chunks:
+                if sequence_dim_chunks > self.nitems_per_input:
+                    raise ValueError(
+                        f"`sequence_dim_chunks` ({sequence_dim_chunks}) must be ",
+                        f"<= `nitems_per_input` ({self.nitems_per_input})",
+                    )
+                if self.nitems_per_input % sequence_dim_chunks > 0:
+                    raise ValueError(
+                        "`sequence_dim_chunks` ({sequence_dim_chunks}) must "
+                        f"evenly divide `nitems_per_input` ({self.nitems_per_input})"
+                    )
+        # TODO: more input validation
 
     @property
     def prepare_target(self) -> Callable:
@@ -176,26 +190,52 @@ def _prepare_target():
                 ds = self.open_target()
                 logger.info("Found an existing dataset in target")
                 logger.debug(f"{ds}")
+
+                if self.target_chunks:
+                    # TODO: check that target_chunks id compatibile with the
+                    # existing chunks
+                    pass
+
             except (FileNotFoundError, IOError, zarr.errors.GroupNotFoundError):
-                first_chunk_key = next(self.iter_chunks())
-                # for input_url in self.inputs_for_chunk(first_chunk_key):
-                #    self.cache_input(input_url)
-                ds = self.open_chunk(first_chunk_key).chunk()
+
+                init_dsets = []
+                for chunk_key in self._init_chunks:
+                    chunk_ds = self.open_chunk(
+                        chunk_key
+                    ).chunk()  # make sure data are not in memory
+                    init_dsets.append(chunk_ds)
+                # TODO: create csutomizable option for this step
+                # How to combine attrs is particularly important. It seems like
+                # xarray is missing a "minimal" option to only keep the attrs
+                # that are the same among all input variables.
+                ds = xr.merge(
+                    init_dsets, compat="identical", join="exact", combine_attrs="override"
+                )
 
                 # make sure the concat dim has a valid fill_value to avoid
                 # overruns when writing chunk
-                ds[self.sequence_dim].encoding = {"_FillValue": -1}
+                # this is problematic because this value will always come out as NaN
+                # when we open up the target
+                # ds[self.sequence_dim].encoding = {"_FillValue": -1}
                 # actually not necessary if we use decode_times=False
+
+                if self.target_chunks:
+                    # target_chunks has undergone some validation in __post_init__
+                    ds = ds.chunk(self.target_chunks)
+
                 self.initialize_target(ds)
 
+            # Regardless of whether there is an existing dataset or we are creating a new one,
+            # we need to expand the sequence_dim to hold the entire expected size of the data
             self.expand_target_dim(self.sequence_dim, self.sequence_len())
 
         return _prepare_target
 
     @property
     def cache_input(self) -> Callable:
-        def cache_func(fname: str) -> None:
-            logger.info(f"Caching input '{fname}'")
+        def cache_func(input_key: Hashable) -> None:
+            logger.info(f"Caching input {input_key}")
+            fname = self._inputs[input_key]
             with input_opener(fname, mode="rb", **self.fsspec_open_kwargs) as source:
                 with self.input_cache.open(fname, mode="wb") as target:
                     target.write(source.read())
@@ -249,9 +289,10 @@ def input_opener(self, fname: str):
                 with input_opener(fname, mode="rb", **self.file_system_kwargs) as f:
                     yield f
 
-    def open_input(self, fname: str):
+    def open_input(self, input_key: Hashable):
+        fname = self._inputs[input_key]
         with self.input_opener(fname) as f:
-            logger.info(f"Opening input with Xarray '{fname}'")
+            logger.info(f"Opening input with Xarray {input_key}: '{fname}'")
             ds = xr.open_dataset(f, **self.xarray_open_kwargs)
             # explicitly load into memory
             ds = ds.load()
@@ -306,6 +347,11 @@ def expand_target_dim(self, dim, dimsize):
             shape[axis] = dimsize
             arr.resize(shape)
 
+        # now explicity write the sequence coordinate to avoid missing data
+        # when reopening
+        if dim in zgroup:
+            zgroup[dim][:] = 0
+
     def inputs_for_chunk(self, chunk_key):
         return self._chunks_inputs[chunk_key]
 
@@ -321,14 +367,10 @@ def region_for_chunk(self, chunk_key):
         # return a dict suitable to pass to xr.to_zarr(region=...)
         # specifies where in the overall array to put this chunk's data
         stride = self.nitems_per_input * self.inputs_per_chunk
-        start = chunk_key * stride
+        start = self.chunk_position(chunk_key) * stride
         region_slice = slice(start, start + self.nitems_for_chunk(chunk_key))
         return {self.sequence_dim: region_slice}
 
-    def sequence_len(self):
-        # tells the total size of dataset along the sequence dimension
-        return sum([self.nitems_for_chunk(k) for k in self.iter_chunks()])
-
     def sequence_chunks(self):
         # chunking
         return {self.sequence_dim: self.inputs_per_chunk * self.nitems_per_input}
@@ -336,3 +378,76 @@ def sequence_chunks(self):
     def iter_chunks(self):
         for k in self._chunks_inputs:
             yield k
+
+
+@dataclass
+class NetCDFtoZarrSequentialRecipe(NetCDFtoZarrRecipe):
+    """There is only one sequence of input files. Each file can contain
+    many variables.
+
+    :param input_urls: The inputs used to generate the dataset.
+    """
+
+    input_urls: Iterable[str] = field(repr=False, default_factory=list)
+
+    def __post_init__(self):
+        super().__post_init__()
+        input_pattern = ExplicitURLSequence(self.input_urls)
+        self._inputs = {k: v for k, v in input_pattern}
+        self._chunks_inputs = {
+            k: v for k, v in enumerate(chunked_iterable(self._inputs, self.inputs_per_chunk))
+        }
+        # just the first chunk is needed to initialize the recipe
+        self._init_chunks = [next(iter(self._chunks_inputs))]
+
+    def chunk_position(self, chunk_key):
+        return chunk_key
+
+    def sequence_len(self):
+        # tells the total size of dataset along the sequence dimension
+        return sum([self.nitems_for_chunk(k) for k in self.iter_chunks()])
+
+
+@dataclass
+class NetCDFtoZarrMultiVarSequentialRecipe(NetCDFtoZarrRecipe):
+    """There are muliples sequences of input files (but all along the same dimension.)
+    Different variables live in different files.
+
+    :param input_pattern: An pattern used to generate the input file names.
+    """
+
+    input_pattern: VariableSequencePattern = field(default_factory=VariableSequencePattern)
+
+    def __post_init__(self):
+        super().__post_init__()
+        self._variables = self.input_pattern.keys["variable"]
+        self._inputs = {k: v for k, v in self.input_pattern}
+        # input keys are tuples like
+        #  ("temp", 0)
+        #  ("temp", 1)
+        #  ...
+        #  ("salt", n)
+        # chunk_keys will be similarly named, but the index will have a different meaning
+
+        chunks_inputs = {}
+        # generate this iteratively
+        for vname in self._variables:
+            # a hacky way to filter
+            sequence_keys = [k[1] for k in self._inputs if k[0] == vname]
+            for chunk_key, chunk_inputs in enumerate(
+                chunked_iterable(sequence_keys, self.inputs_per_chunk)
+            ):
+                chunks_inputs[(vname, chunk_key)] = [
+                    (vname, input_sequence_key) for input_sequence_key in chunk_inputs
+                ]
+        self._chunks_inputs = chunks_inputs
+
+        # should be the first chunk from each variable
+        self._init_chunks = [chunk_key for chunk_key in self._chunks_inputs if chunk_key[1] == 0]
+
+    def chunk_position(self, chunk_key):
+        return chunk_key[1]
+
+    def sequence_len(self):
+        n_sequence = len(self.input_pattern.keys[self.input_pattern._sequence_key])
+        return self.nitems_per_input * n_sequence


Test patch:
diff --git a/tests/conftest.py b/tests/conftest.py
index db8b57cc..d3005652 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -10,6 +10,7 @@
 import xarray as xr
 
 from pangeo_forge import recipe
+from pangeo_forge.patterns import VariableSequencePattern
 from pangeo_forge.storage import CacheFSSpecTarget, FSSpecTarget, UninitializedTarget
 
 
@@ -26,6 +27,8 @@ def get_open_port():
 def daily_xarray_dataset():
     """Return a synthetic random xarray dataset."""
     np.random.seed(1)
+    # TODO: change nt to 11 in order to catch the edge case where
+    # items_per_input does not evenly divide the length of the sequence dimension
     nt, ny, nx = 10, 18, 36
     time = pd.date_range(start="2010-01-01", periods=nt, freq="D")
     lon = (np.arange(nx) + 0.5) * 360 / nx
@@ -39,7 +42,7 @@ def daily_xarray_dataset():
     bar_attrs = {"long_name": "Beautiful Bar"}
     dims = ("time", "lat", "lon")
     ds = xr.Dataset(
-        {"foo": (dims, foo, foo_attrs), "bar": (dims, bar, bar_attrs)},
+        {"bar": (dims, bar, bar_attrs), "foo": (dims, foo, foo_attrs)},
         coords={
             "time": ("time", time),
             "lat": ("lat", lat, lat_attrs),
@@ -50,27 +53,65 @@ def daily_xarray_dataset():
     return ds
 
 
+def _split_up_files_by_day(ds, day_param):
+    gb = ds.resample(time=day_param)
+    _, datasets = zip(*gb)
+    fnames = [f"{n:03d}.nc" for n in range(len(datasets))]
+    return datasets, fnames
+
+
+def _split_up_files_by_variable_and_day(ds, day_param):
+    all_dsets = []
+    all_fnames = []
+    fnames_by_variable = {}
+    for varname in ds.data_vars:
+        var_dsets, fnames = _split_up_files_by_day(ds[[varname]], day_param)
+        fnames = [f"{varname}_{fname}" for fname in fnames]
+        all_dsets += var_dsets
+        all_fnames += fnames
+        fnames_by_variable[varname] = fnames
+    return all_dsets, all_fnames, fnames_by_variable
+
+
 @pytest.fixture(scope="session", params=["D", "2D"])
 def netcdf_local_paths(daily_xarray_dataset, tmpdir_factory, request):
     """Return a list of paths pointing to netcdf files."""
     tmp_path = tmpdir_factory.mktemp("netcdf_data")
-    items_per_file = {"D": 1, "2D": 2}
-    daily_xarray_dataset.attrs["items_per_file"] = items_per_file[request.param]
-    gb = daily_xarray_dataset.resample(time=request.param)
-    _, datasets = zip(*gb)
-    fnames = [f"{n:03d}.nc" for n in range(len(datasets))]
-    paths = [tmp_path.join(fname) for fname in fnames]
-    xr.save_mfdataset(datasets, [str(path) for path in paths])
-    return paths
+    # copy needed to avoid polluting metadata across multiple tests
+    datasets, fnames = _split_up_files_by_day(daily_xarray_dataset.copy(), request.param)
+    full_paths = [tmp_path.join(fname) for fname in fnames]
+    xr.save_mfdataset(datasets, [str(path) for path in full_paths])
+    items_per_file = {"D": 1, "2D": 2}[request.param]
+    return full_paths, items_per_file
+
 
+# TODO: this is quite repetetive of the fixture above. Replace with parametrization.
+@pytest.fixture(scope="session", params=["D", "2D"])
+def netcdf_local_paths_by_variable(daily_xarray_dataset, tmpdir_factory, request):
+    """Return a list of paths pointing to netcdf files."""
+    tmp_path = tmpdir_factory.mktemp("netcdf_data")
+    datasets, fnames, fnames_by_variable = _split_up_files_by_variable_and_day(
+        daily_xarray_dataset.copy(), request.param
+    )
+    full_paths = [tmp_path.join(fname) for fname in fnames]
+    xr.save_mfdataset(datasets, [str(path) for path in full_paths])
+    items_per_file = {"D": 1, "2D": 2}[request.param]
+    path_format = str(tmp_path) + "/{variable}_{n:03d}.nc"
+    print(path_format)
+    return full_paths, items_per_file, fnames_by_variable, path_format
 
+
+# TODO: refactor to allow netcdf_local_paths_by_variable to be passed without
+# duplicating the whole test.
 @pytest.fixture()
 def netcdf_http_server(netcdf_local_paths, request):
+    paths, items_per_file = netcdf_local_paths
+
     def make_netcdf_http_server(username="", password=""):
-        first_path = netcdf_local_paths[0]
+        first_path = paths[0]
         # assume that all files are in the same directory
         basedir = first_path.dirpath()
-        fnames = [path.basename for path in netcdf_local_paths]
+        fnames = [path.basename for path in paths]
 
         this_dir = os.path.dirname(os.path.abspath(__file__))
         port = get_open_port()
@@ -92,7 +133,7 @@ def teardown():
             p.kill()
 
         request.addfinalizer(teardown)
-        return url, fnames
+        return url, fnames, items_per_file
 
     return make_netcdf_http_server
 
@@ -121,11 +162,31 @@ def uninitialized_target():
 
 @pytest.fixture
 def netCDFtoZarr_sequential_recipe(daily_xarray_dataset, netcdf_local_paths, tmp_target, tmp_cache):
+    paths, items_per_file = netcdf_local_paths
     r = recipe.NetCDFtoZarrSequentialRecipe(
-        input_urls=netcdf_local_paths,
+        input_urls=paths,
+        sequence_dim="time",
+        inputs_per_chunk=1,
+        nitems_per_input=items_per_file,
+        target=tmp_target,
+        input_cache=tmp_cache,
+    )
+    return r, daily_xarray_dataset, tmp_target
+
+
+@pytest.fixture
+def netCDFtoZarr_sequential_multi_variable_recipe(
+    daily_xarray_dataset, netcdf_local_paths_by_variable, tmp_target, tmp_cache
+):
+    paths, items_per_file, fnames_by_variable, path_format = netcdf_local_paths_by_variable
+    pattern = VariableSequencePattern(
+        path_format, keys={"variable": ["foo", "bar"], "n": list(range(len(paths) / 2))}
+    )
+    r = recipe.NetCDFtoZarrMultiVarSequentialRecipe(
+        input_pattern=pattern,
         sequence_dim="time",
         inputs_per_chunk=1,
-        nitems_per_input=daily_xarray_dataset.attrs["items_per_file"],
+        nitems_per_input=items_per_file,
         target=tmp_target,
         input_cache=tmp_cache,
     )
diff --git a/tests/test_fixtures.py b/tests/test_fixtures.py
index f0df8629..d09d877c 100644
--- a/tests/test_fixtures.py
+++ b/tests/test_fixtures.py
@@ -7,19 +7,26 @@
 
 
 def test_fixture_local_files(daily_xarray_dataset, netcdf_local_paths):
-    paths = [str(path) for path in netcdf_local_paths]
+    paths, items_per_file = netcdf_local_paths
+    paths = [str(path) for path in paths]
     ds = xr.open_mfdataset(paths, combine="nested", concat_dim="time")
     assert ds.identical(daily_xarray_dataset)
 
 
+# TODO: this is quite repetetive of the test above. Replace with parametrization.
+def test_fixture_local_files_by_variable(daily_xarray_dataset, netcdf_local_paths_by_variable):
+    paths, items_per_file, fnames_by_variable, path_format = netcdf_local_paths_by_variable
+    paths = [str(path) for path in paths]
+    ds = xr.open_mfdataset(paths, combine="by_coords", concat_dim="time")
+    assert ds.identical(daily_xarray_dataset)
+
+
 def test_fixture_http_files(daily_xarray_dataset, netcdf_http_server):
-    url, paths = netcdf_http_server()
+    url, paths, items_per_file = netcdf_http_server()
     urls = ["/".join([url, str(path)]) for path in paths]
     open_files = [fsspec.open(url).open() for url in urls]
     ds = xr.open_mfdataset(open_files, combine="nested", concat_dim="time").load()
     ds = fix_scalar_attr_encoding(ds)
-    print(ds)
-    print(daily_xarray_dataset)
     assert ds.identical(daily_xarray_dataset)
 
 
diff --git a/tests/test_patterns.py b/tests/test_patterns.py
new file mode 100644
index 00000000..b058d5f5
--- /dev/null
+++ b/tests/test_patterns.py
@@ -0,0 +1,44 @@
+import pytest
+
+from pangeo_forge.patterns import ExplicitURLSequence, URLPattern, VariableSequencePattern
+
+
+def test_url_pattern():
+    pattern = URLPattern("{foo}:{bar}", {"foo": [1, 2], "bar": ["a", "b", "c"]})
+    assert list(pattern) == [
+        ((1, "a"), "1:a"),
+        ((1, "b"), "1:b"),
+        ((1, "c"), "1:c"),
+        ((2, "a"), "2:a"),
+        ((2, "b"), "2:b"),
+        ((2, "c"), "2:c"),
+    ]
+
+
+def test_variable_sequence_pattern():
+    pattern = VariableSequencePattern(
+        "{variable}:{time}", {"variable": ["temp", "salt"], "time": [1, 2, 3]}
+    )
+    assert list(pattern) == [
+        (("temp", 1), "temp:1"),
+        (("temp", 2), "temp:2"),
+        (("temp", 3), "temp:3"),
+        (("salt", 1), "salt:1"),
+        (("salt", 2), "salt:2"),
+        (("salt", 3), "salt:3"),
+    ]
+    assert pattern._sequence_key == "time"
+
+    with pytest.raises(ValueError, match=r".*`variable`.*"):
+        _ = VariableSequencePattern("{foo}:{bar}", {"foo": ["temp", "salt"], "time": [1, 2, 3]})
+
+    with pytest.raises(ValueError, match=r".*two keys.*"):
+        _ = VariableSequencePattern(
+            "{variable}:{time}:{foo}",
+            {"variable": ["temp", "salt"], "time": [1, 2, 3], "foo": ["a"]},
+        )
+
+
+def test_explicit_url_sequence():
+    seq = ExplicitURLSequence(["a", "b", "c"])
+    assert list(seq) == [(0, "a"), (1, "b"), (2, "c")]
diff --git a/tests/test_recipe.py b/tests/test_recipe.py
index 1cf2a51c..761c5a40 100644
--- a/tests/test_recipe.py
+++ b/tests/test_recipe.py
@@ -1,8 +1,11 @@
+from contextlib import nullcontext as does_not_raise
+
 import aiohttp
 import pytest
 import xarray as xr
 
 from pangeo_forge import recipe
+from pangeo_forge.patterns import VariableSequencePattern
 from pangeo_forge.storage import UninitializedTargetError
 
 dummy_fnames = ["a.nc", "b.nc", "c.nc"]
@@ -15,32 +18,13 @@ def incr_date(ds, filename=""):
     return ds
 
 
-@pytest.mark.skip(reason="Removed this class for now")
-@pytest.mark.parametrize(
-    "file_urls, files_per_chunk, expected_keys, expected_filenames",
-    [
-        (dummy_fnames, 1, [0, 1, 2], [("a.nc",), ("b.nc",), ("c.nc",)]),
-        (dummy_fnames, 2, [0, 1], [("a.nc", "b.nc",), ("c.nc",),],),  # noqa: E231
-    ],
-)
-def test_sequence_recipe(file_urls, files_per_chunk, expected_keys, expected_filenames, tmp_target):
-
-    r = recipe.SequenceRecipe(
-        input_urls=file_urls,
-        sequence_dim="time",
-        inputs_per_chunk=files_per_chunk,
-        target=tmp_target,
-        chunk_preprocess_funcs=[],
-    )
-
-    assert r.sequence_len() == len(file_urls)
-
-    chunk_keys = list(r.iter_chunks())
-    assert chunk_keys == expected_keys
-
-    for k, expected in zip(r.iter_chunks(), expected_filenames):
-        fnames = r.inputs_for_chunk(k)
-        assert fnames == expected
+def _manually_execute_recipe(r):
+    for input_key in r.iter_inputs():
+        r.cache_input(input_key)
+    r.prepare_target()
+    for chunk_key in r.iter_chunks():
+        r.store_chunk(chunk_key)
+    r.finalize_target()
 
 
 @pytest.mark.parametrize(
@@ -50,13 +34,13 @@ def test_NetCDFtoZarrSequentialRecipeHttpAuth(
     daily_xarray_dataset, netcdf_http_server, tmp_target, tmp_cache, username, password
 ):
 
-    url, fnames = netcdf_http_server("foo", "bar")
+    url, fnames, items_per_file = netcdf_http_server("foo", "bar")
     urls = [f"{url}/{fname}" for fname in fnames]
     r = recipe.NetCDFtoZarrSequentialRecipe(
         input_urls=urls,
         sequence_dim="time",
         inputs_per_chunk=1,
-        nitems_per_input=daily_xarray_dataset.attrs["items_per_file"],
+        nitems_per_input=items_per_file,
         target=tmp_target,
         input_cache=tmp_cache,
         fsspec_open_kwargs={"client_kwargs": {"auth": aiohttp.BasicAuth(username, password)}},
@@ -66,13 +50,7 @@ def test_NetCDFtoZarrSequentialRecipeHttpAuth(
         with pytest.raises(aiohttp.client_exceptions.ClientResponseError):
             r.cache_input(next(r.iter_inputs()))
     else:
-        # this is the cannonical way to manually execute a recipe
-        for input_key in r.iter_inputs():
-            r.cache_input(input_key)
-        r.prepare_target()
-        for chunk_key in r.iter_chunks():
-            r.store_chunk(chunk_key)
-        r.finalize_target()
+        _manually_execute_recipe(r)
 
         ds_target = xr.open_zarr(tmp_target.get_mapper(), consolidated=True).load()
         ds_expected = daily_xarray_dataset.compute()
@@ -83,32 +61,62 @@ def test_NetCDFtoZarrSequentialRecipeHttpAuth(
     "process_input, process_chunk",
     [(None, None), (incr_date, None), (None, incr_date), (incr_date, incr_date)],
 )
+@pytest.mark.parametrize("inputs_per_chunk", [1, 2])
+@pytest.mark.parametrize(
+    "target_chunks,chunk_expectation",
+    [
+        (None, does_not_raise()),
+        ({"lon": 12}, does_not_raise()),
+        ({"lon": 12, "time": 1}, does_not_raise()),
+        ({"lon": 12, "time": 3}, pytest.raises(ValueError)),
+    ],
+)
 def test_NetCDFtoZarrSequentialRecipe(
-    daily_xarray_dataset, netcdf_local_paths, tmp_target, tmp_cache, process_input, process_chunk
+    daily_xarray_dataset,
+    netcdf_local_paths,
+    tmp_target,
+    tmp_cache,
+    process_input,
+    process_chunk,
+    inputs_per_chunk,
+    target_chunks,
+    chunk_expectation,
 ):
 
     # the same recipe is created as a fixture in conftest.py
     # I left it here explicitly because it makes the test easier to read.
-    r = recipe.NetCDFtoZarrSequentialRecipe(
-        input_urls=netcdf_local_paths,
-        sequence_dim="time",
-        inputs_per_chunk=1,
-        nitems_per_input=daily_xarray_dataset.attrs["items_per_file"],
-        target=tmp_target,
-        input_cache=tmp_cache,
-        process_input=process_input,
-        process_chunk=process_chunk,
-    )
-
-    # this is the cannonical way to manually execute a recipe
-    for input_key in r.iter_inputs():
-        r.cache_input(input_key)
-    r.prepare_target()
-    for chunk_key in r.iter_chunks():
-        r.store_chunk(chunk_key)
-    r.finalize_target()
-
-    ds_target = xr.open_zarr(tmp_target.get_mapper(), consolidated=True).load()
+    paths, items_per_file = netcdf_local_paths
+    with chunk_expectation as excinfo:
+        r = recipe.NetCDFtoZarrSequentialRecipe(
+            input_urls=paths,
+            sequence_dim="time",
+            inputs_per_chunk=inputs_per_chunk,
+            nitems_per_input=items_per_file,
+            target=tmp_target,
+            input_cache=tmp_cache,
+            process_input=process_input,
+            process_chunk=process_chunk,
+            target_chunks=target_chunks,
+        )
+    if excinfo:
+        # don't continue if we got an exception
+        return
+
+    _manually_execute_recipe(r)
+
+    ds_target = xr.open_zarr(tmp_target.get_mapper(), consolidated=True)
+
+    # chunk validation
+    sequence_chunks = ds_target.chunks["time"]
+    if target_chunks is None:
+        target_chunks = {}
+    seq_chunk_len = target_chunks.pop("time", None) or (items_per_file * inputs_per_chunk)
+    # we expect all chunks but the last to have the expected size
+    assert all([item == seq_chunk_len for item in sequence_chunks[:-1]])
+    for other_dim, chunk_len in target_chunks.items():
+        all([item == chunk_len for item in ds_target.chunks[other_dim][:-1]])
+
+    ds_target.load()
     ds_expected = daily_xarray_dataset.compute()
 
     if process_input is not None:
@@ -129,13 +137,33 @@ def test_NetCDFtoZarrSequentialRecipeNoTarget(
     daily_xarray_dataset, netcdf_local_paths, tmp_target, tmp_cache
 ):
 
+    paths, items_per_file = netcdf_local_paths
     r = recipe.NetCDFtoZarrSequentialRecipe(
-        input_urls=netcdf_local_paths,
-        sequence_dim="time",
-        inputs_per_chunk=1,
-        nitems_per_input=daily_xarray_dataset.attrs["items_per_file"],
+        input_urls=paths, sequence_dim="time", inputs_per_chunk=1, nitems_per_input=items_per_file,
     )
 
-    # this is the cannonical way to manually execute a recipe
     with pytest.raises(UninitializedTargetError):
         r.cache_input(next(r.iter_inputs()))
+
+
+def test_NetCDFtoZarrMultiVarSequentialRecipe(
+    daily_xarray_dataset, netcdf_local_paths_by_variable, tmp_target, tmp_cache
+):
+    paths, items_per_file, fnames_by_variable, path_format = netcdf_local_paths_by_variable
+    pattern = VariableSequencePattern(
+        path_format, keys={"variable": ["foo", "bar"], "n": list(range(len(paths) // 2))}
+    )
+    r = recipe.NetCDFtoZarrMultiVarSequentialRecipe(
+        input_pattern=pattern,
+        sequence_dim="time",
+        inputs_per_chunk=1,
+        nitems_per_input=items_per_file,
+        target=tmp_target,
+        input_cache=tmp_cache,
+    )
+    _manually_execute_recipe(r)
+
+    ds_target = xr.open_zarr(tmp_target.get_mapper(), consolidated=True).compute()
+    print(ds_target)
+    print(daily_xarray_dataset)
+    assert ds_target.identical(daily_xarray_dataset)