Skip to content

Instantly share code, notes, and snippets.

@douglatornell
Created February 15, 2024 21:50
Show Gist options
  • Save douglatornell/95c55fd80b20ac74eeceb45f89199ba0 to your computer and use it in GitHub Desktop.
Save douglatornell/95c55fd80b20ac74eeceb45f89199ba0 to your computer and use it in GitHub Desktop.
Demonstrate Using xarray to Work with Atmospheric Forcing Datasets
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"source": [
"# Demonstrate Using `xarray` to Work with Atmospheric Forcing Datasets\n",
"\n",
"* `.isel()` and `slice()` for selection of sections from datasets\n",
"* xarray `.plot()` methods and colour bar labeling\n",
"* tuple unpacking to provide arguments\n",
"* testing new `continental2.5` tolerances in `salishsea_tools.geo_tools.find_closest_model_point()`\n",
"* comparing `mesh_mask201702.nc` (for 201905 hindcast) and `mesh_mask202108.nc` (for 202111 hindcast)"
],
"metadata": {
"collapsed": false
},
"id": "e5090b90aec3d6b"
},
{
"cell_type": "code",
"execution_count": 1,
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:04.372543593Z",
"start_time": "2024-02-15T21:49:04.101120054Z"
}
},
"outputs": [],
"source": [
"from pathlib import Path\n",
"\n",
"import xarray\n",
"\n",
"from salishsea_tools import geo_tools"
]
},
{
"cell_type": "markdown",
"source": [
"Load an HRDPS continental 2.5 km resolution rotated lat/lon grid atmospheric forcing dataset:"
],
"metadata": {
"collapsed": false
},
"id": "9a286a1396af4361"
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "<xarray.Dataset>\nDimensions: (y: 230, x: 190, time_counter: 24)\nCoordinates:\n * y (y) int64 0 1 2 3 4 5 6 7 ... 223 224 225 226 227 228 229\n * x (x) int64 0 1 2 3 4 5 6 7 ... 183 184 185 186 187 188 189\n * time_counter (time_counter) datetime64[ns] 2023-02-23 ... 2023-02-23...\n nav_lon (y, x) float64 ...\n nav_lat (y, x) float64 ...\nData variables:\n LHTFL_surface (time_counter, y, x) float32 ...\n PRATE_surface (time_counter, y, x) float32 ...\n RH_2maboveground (time_counter, y, x) float32 ...\n atmpres (time_counter, y, x) float32 ...\n precip (time_counter, y, x) float32 ...\n qair (time_counter, y, x) float32 ...\n solar (time_counter, y, x) float32 ...\n tair (time_counter, y, x) float32 ...\n therm_rad (time_counter, y, x) float32 ...\n u_wind (time_counter, y, x) float64 ...\n v_wind (time_counter, y, x) float64 ...\nAttributes: (12/15)\n GRIB_edition: 2\n GRIB_centre: cwao\n GRIB_centreDescription: Canadian Meteorological Service - Montreal\n GRIB_subCentre: 0\n Conventions: CF-1.7\n institution: UBC EOAS\n ... ...\n creator_name: SalishSeaCast Project Contributors\n creator_email: sallen at eoas.ubc.ca\n creator_url: https://salishsea.eos.ubc.ca\n drawLandMask: over\n coverage_content_type: modelResult\n history: [Mon 2023-03-13 19:39:47 -07:00] python3 -m nowc...",
"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\nhtml[theme=dark],\nbody[data-theme=dark],\nbody.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 !important;\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-index-preview {\n grid-column: 2 / 5;\n color: var(--xr-font-color2);\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.xr-index-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.xr-index-data-in:checked ~ .xr-index-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-index-name div,\n.xr-index-data,\n.xr-attrs {\n padding-left: 25px !important;\n}\n\n.xr-attrs,\n.xr-var-attrs,\n.xr-var-data,\n.xr-index-data {\n grid-column: 1 / -1;\n}\n\ndl.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.xr-no-icon {\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;\nDimensions: (y: 230, x: 190, time_counter: 24)\nCoordinates:\n * y (y) int64 0 1 2 3 4 5 6 7 ... 223 224 225 226 227 228 229\n * x (x) int64 0 1 2 3 4 5 6 7 ... 183 184 185 186 187 188 189\n * time_counter (time_counter) datetime64[ns] 2023-02-23 ... 2023-02-23...\n nav_lon (y, x) float64 ...\n nav_lat (y, x) float64 ...\nData variables:\n LHTFL_surface (time_counter, y, x) float32 ...\n PRATE_surface (time_counter, y, x) float32 ...\n RH_2maboveground (time_counter, y, x) float32 ...\n atmpres (time_counter, y, x) float32 ...\n precip (time_counter, y, x) float32 ...\n qair (time_counter, y, x) float32 ...\n solar (time_counter, y, x) float32 ...\n tair (time_counter, y, x) float32 ...\n therm_rad (time_counter, y, x) float32 ...\n u_wind (time_counter, y, x) float64 ...\n v_wind (time_counter, y, x) float64 ...\nAttributes: (12/15)\n GRIB_edition: 2\n GRIB_centre: cwao\n GRIB_centreDescription: Canadian Meteorological Service - Montreal\n GRIB_subCentre: 0\n Conventions: CF-1.7\n institution: UBC EOAS\n ... ...\n creator_name: SalishSeaCast Project Contributors\n creator_email: sallen at eoas.ubc.ca\n creator_url: https://salishsea.eos.ubc.ca\n drawLandMask: over\n coverage_content_type: modelResult\n history: [Mon 2023-03-13 19:39:47 -07:00] python3 -m nowc...</pre><div class='xr-wrap' style='display:none'><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-e014a782-1634-4eff-9424-fb2f5259ea4b' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-e014a782-1634-4eff-9424-fb2f5259ea4b' 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'>y</span>: 230</li><li><span class='xr-has-index'>x</span>: 190</li><li><span class='xr-has-index'>time_counter</span>: 24</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-cf7c27f1-28a9-47ba-b18c-8db3fe767d56' class='xr-section-summary-in' type='checkbox' checked><label for='section-cf7c27f1-28a9-47ba-b18c-8db3fe767d56' class='xr-section-summary' >Coordinates: <span>(5)</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'>y</span></div><div class='xr-var-dims'>(y)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 225 226 227 228 229</div><input id='attrs-f7a69ebf-caff-41c1-b77e-11c48b17edb9' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-f7a69ebf-caff-41c1-b77e-11c48b17edb9' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-39aa8f32-f739-4f1d-9970-fafc86076fae' class='xr-var-data-in' type='checkbox'><label for='data-39aa8f32-f739-4f1d-9970-fafc86076fae' 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>ioos_category :</span></dt><dd>location</dd><dt><span>long_name :</span></dt><dd>Y</dd><dt><span>standard_name :</span></dt><dd>y</dd><dt><span>units :</span></dt><dd>count</dd><dt><span>comment :</span></dt><dd>Y values are grid indices in the model y-direction; geo-location data for the SalishSeaCast sub-domain of the ECCC MSC 2.5km resolution HRDPS continental model grid is available in the ubcSSaSurfaceAtmosphereFieldsV22-02 dataset.</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, ..., 227, 228, 229])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>x</span></div><div class='xr-var-dims'>(x)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 185 186 187 188 189</div><input id='attrs-cc1be6e3-b329-4ea0-bfe7-466a1404f93e' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-cc1be6e3-b329-4ea0-bfe7-466a1404f93e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-fdbf70f2-0c8a-47d9-94cc-1668b744e8e2' class='xr-var-data-in' type='checkbox'><label for='data-fdbf70f2-0c8a-47d9-94cc-1668b744e8e2' 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>ioos_category :</span></dt><dd>location</dd><dt><span>long_name :</span></dt><dd>X</dd><dt><span>standard_name :</span></dt><dd>x</dd><dt><span>units :</span></dt><dd>count</dd><dt><span>comment :</span></dt><dd>X values are grid indices in the model x-direction; geo-location data for the SalishSeaCast sub-domain of the ECCC MSC 2.5km resolution HRDPS continental model grid is available in the ubcSSaSurfaceAtmosphereFieldsV22-02 dataset.</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,\n 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,\n 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,\n 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,\n 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,\n 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,\n 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,\n 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,\n 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,\n 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,\n 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,\n 182, 183, 184, 185, 186, 187, 188, 189])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time_counter</span></div><div class='xr-var-dims'>(time_counter)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2023-02-23 ... 2023-02-23T23:00:00</div><input id='attrs-e717b8d6-a61b-42a7-841c-100f19b8cee8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-e717b8d6-a61b-42a7-841c-100f19b8cee8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-95545c9f-8c2e-40d2-bd11-6f8ffcc94e95' class='xr-var-data-in' type='checkbox'><label for='data-95545c9f-8c2e-40d2-bd11-6f8ffcc94e95' 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>ioos_category :</span></dt><dd>Time</dd><dt><span>long_name :</span></dt><dd>Time Axis</dd><dt><span>standard_name :</span></dt><dd>time</dd><dt><span>time_origin :</span></dt><dd>01-JAN-1970 00:00</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2023-02-23T00:00:00.000000000&#x27;, &#x27;2023-02-23T01:00:00.000000000&#x27;,\n &#x27;2023-02-23T02:00:00.000000000&#x27;, &#x27;2023-02-23T03:00:00.000000000&#x27;,\n &#x27;2023-02-23T04:00:00.000000000&#x27;, &#x27;2023-02-23T05:00:00.000000000&#x27;,\n &#x27;2023-02-23T06:00:00.000000000&#x27;, &#x27;2023-02-23T07:00:00.000000000&#x27;,\n &#x27;2023-02-23T08:00:00.000000000&#x27;, &#x27;2023-02-23T09:00:00.000000000&#x27;,\n &#x27;2023-02-23T10:00:00.000000000&#x27;, &#x27;2023-02-23T11:00:00.000000000&#x27;,\n &#x27;2023-02-23T12:00:00.000000000&#x27;, &#x27;2023-02-23T13:00:00.000000000&#x27;,\n &#x27;2023-02-23T14:00:00.000000000&#x27;, &#x27;2023-02-23T15:00:00.000000000&#x27;,\n &#x27;2023-02-23T16:00:00.000000000&#x27;, &#x27;2023-02-23T17:00:00.000000000&#x27;,\n &#x27;2023-02-23T18:00:00.000000000&#x27;, &#x27;2023-02-23T19:00:00.000000000&#x27;,\n &#x27;2023-02-23T20:00:00.000000000&#x27;, &#x27;2023-02-23T21:00:00.000000000&#x27;,\n &#x27;2023-02-23T22:00:00.000000000&#x27;, &#x27;2023-02-23T23:00:00.000000000&#x27;],\n dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>nav_lon</span></div><div class='xr-var-dims'>(y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-fe801632-87c4-48d7-8fb0-38e855a1a3c6' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-fe801632-87c4-48d7-8fb0-38e855a1a3c6' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-eafc53ac-b9ca-4bb2-91be-7b08897ea97e' class='xr-var-data-in' type='checkbox'><label for='data-eafc53ac-b9ca-4bb2-91be-7b08897ea97e' 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>units :</span></dt><dd>degrees_east</dd><dt><span>standard_name :</span></dt><dd>longitude</dd><dt><span>long_name :</span></dt><dd>Longitude</dd><dt><span>ioos_category :</span></dt><dd>location</dd></dl></div><div class='xr-var-data'><pre>[43700 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>nav_lat</span></div><div class='xr-var-dims'>(y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-4a098a66-10c9-46e9-aceb-24e8ef9bf448' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-4a098a66-10c9-46e9-aceb-24e8ef9bf448' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c9664142-4d53-4e83-9e4d-36f8e9bdccff' class='xr-var-data-in' type='checkbox'><label for='data-c9664142-4d53-4e83-9e4d-36f8e9bdccff' 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>units :</span></dt><dd>degrees_north</dd><dt><span>standard_name :</span></dt><dd>latitude</dd><dt><span>long_name :</span></dt><dd>Latitude</dd><dt><span>ioos_category :</span></dt><dd>location</dd></dl></div><div class='xr-var-data'><pre>[43700 values with dtype=float64]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-889dd1a0-2308-49ab-88dd-bea07e581e8d' class='xr-section-summary-in' type='checkbox' checked><label for='section-889dd1a0-2308-49ab-88dd-bea07e581e8d' class='xr-section-summary' >Data variables: <span>(11)</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>LHTFL_surface</span></div><div class='xr-var-dims'>(time_counter, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-83e9b6ec-9342-4f95-a304-17b818b4a887' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-83e9b6ec-9342-4f95-a304-17b818b4a887' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-d7b484f7-109a-49da-9ed3-6f4b10988dcb' class='xr-var-data-in' type='checkbox'><label for='data-d7b484f7-109a-49da-9ed3-6f4b10988dcb' 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>GRIB_paramId :</span></dt><dd>260002</dd><dt><span>GRIB_dataType :</span></dt><dd>af</dd><dt><span>GRIB_numberOfPoints :</span></dt><dd>43700LL</dd><dt><span>GRIB_typeOfLevel :</span></dt><dd>surface</dd><dt><span>GRIB_stepUnits :</span></dt><dd>1</dd><dt><span>GRIB_stepType :</span></dt><dd>instant</dd><dt><span>GRIB_gridType :</span></dt><dd>rotated_ll</dd><dt><span>GRIB_NV :</span></dt><dd>0</dd><dt><span>GRIB_Nx :</span></dt><dd>230LL</dd><dt><span>GRIB_Ny :</span></dt><dd>190LL</dd><dt><span>GRIB_angleOfRotationInDegrees :</span></dt><dd>0.0</dd><dt><span>GRIB_cfName :</span></dt><dd>unknown</dd><dt><span>GRIB_cfVarName :</span></dt><dd>lhtfl</dd><dt><span>GRIB_gridDefinitionDescription :</span></dt><dd>Rotated latitude/longitude</dd><dt><span>GRIB_iDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_iScansNegatively :</span></dt><dd>0</dd><dt><span>GRIB_jDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_jPointsAreConsecutive :</span></dt><dd>0</dd><dt><span>GRIB_jScansPositively :</span></dt><dd>1</dd><dt><span>GRIB_latitudeOfFirstGridPointInDegrees :</span></dt><dd>-12.302501</dd><dt><span>GRIB_latitudeOfLastGridPointInDegrees :</span></dt><dd>16.700001</dd><dt><span>GRIB_latitudeOfSouthernPoleInDegrees :</span></dt><dd>-36.08852</dd><dt><span>GRIB_longitudeOfFirstGridPointInDegrees :</span></dt><dd>345.17878</dd><dt><span>GRIB_longitudeOfLastGridPointInDegrees :</span></dt><dd>42.306283</dd><dt><span>GRIB_longitudeOfSouthernPoleInDegrees :</span></dt><dd>245.305142</dd><dt><span>GRIB_missingValue :</span></dt><dd>3.4028234663852886e+38</dd><dt><span>GRIB_name :</span></dt><dd>Latent heat net flux</dd><dt><span>GRIB_shortName :</span></dt><dd>lhtfl</dd><dt><span>GRIB_units :</span></dt><dd>W m**-2</dd><dt><span>long_name :</span></dt><dd>Latent heat net flux</dd><dt><span>units :</span></dt><dd>W m-2</dd><dt><span>standard_name :</span></dt><dd>surface_downward_latent_heat_flux</dd><dt><span>ioos_category :</span></dt><dd>atmospheric</dd><dt><span>comment :</span></dt><dd>For Vancouver Harbour and Lower Fraser River FVCOM model</dd></dl></div><div class='xr-var-data'><pre>[1048800 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PRATE_surface</span></div><div class='xr-var-dims'>(time_counter, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-e482bfe5-a0a9-4dee-a2bf-bad30abae35e' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-e482bfe5-a0a9-4dee-a2bf-bad30abae35e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-85cbf538-b9cc-4c8b-836f-c0452cb72005' class='xr-var-data-in' type='checkbox'><label for='data-85cbf538-b9cc-4c8b-836f-c0452cb72005' 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>GRIB_paramId :</span></dt><dd>3059</dd><dt><span>GRIB_dataType :</span></dt><dd>af</dd><dt><span>GRIB_numberOfPoints :</span></dt><dd>43700LL</dd><dt><span>GRIB_typeOfLevel :</span></dt><dd>surface</dd><dt><span>GRIB_stepUnits :</span></dt><dd>1</dd><dt><span>GRIB_stepType :</span></dt><dd>instant</dd><dt><span>GRIB_gridType :</span></dt><dd>rotated_ll</dd><dt><span>GRIB_NV :</span></dt><dd>0</dd><dt><span>GRIB_Nx :</span></dt><dd>230LL</dd><dt><span>GRIB_Ny :</span></dt><dd>190LL</dd><dt><span>GRIB_angleOfRotationInDegrees :</span></dt><dd>0.0</dd><dt><span>GRIB_cfName :</span></dt><dd>unknown</dd><dt><span>GRIB_cfVarName :</span></dt><dd>prate</dd><dt><span>GRIB_gridDefinitionDescription :</span></dt><dd>Rotated latitude/longitude</dd><dt><span>GRIB_iDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_iScansNegatively :</span></dt><dd>0</dd><dt><span>GRIB_jDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_jPointsAreConsecutive :</span></dt><dd>0</dd><dt><span>GRIB_jScansPositively :</span></dt><dd>1</dd><dt><span>GRIB_latitudeOfFirstGridPointInDegrees :</span></dt><dd>-12.302501</dd><dt><span>GRIB_latitudeOfLastGridPointInDegrees :</span></dt><dd>16.700001</dd><dt><span>GRIB_latitudeOfSouthernPoleInDegrees :</span></dt><dd>-36.08852</dd><dt><span>GRIB_longitudeOfFirstGridPointInDegrees :</span></dt><dd>345.17878</dd><dt><span>GRIB_longitudeOfLastGridPointInDegrees :</span></dt><dd>42.306283</dd><dt><span>GRIB_longitudeOfSouthernPoleInDegrees :</span></dt><dd>245.305142</dd><dt><span>GRIB_missingValue :</span></dt><dd>3.4028234663852886e+38</dd><dt><span>GRIB_name :</span></dt><dd>Precipitation rate</dd><dt><span>GRIB_shortName :</span></dt><dd>prate</dd><dt><span>GRIB_units :</span></dt><dd>kg m**-2 s**-1</dd><dt><span>long_name :</span></dt><dd>Precipitation rate</dd><dt><span>units :</span></dt><dd>kg m-2 s-1</dd><dt><span>standard_name :</span></dt><dd>precipitation_flux</dd><dt><span>ioos_category :</span></dt><dd>atmospheric</dd><dt><span>comment :</span></dt><dd>For Vancouver Harbour and Lower Fraser River FVCOM model</dd></dl></div><div class='xr-var-data'><pre>[1048800 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>RH_2maboveground</span></div><div class='xr-var-dims'>(time_counter, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-4eab3dd3-b4ac-46b1-b8bb-77d21c5ac6a5' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-4eab3dd3-b4ac-46b1-b8bb-77d21c5ac6a5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-31dd4553-1c0b-4360-a3d1-3a6b92af8c4e' class='xr-var-data-in' type='checkbox'><label for='data-31dd4553-1c0b-4360-a3d1-3a6b92af8c4e' 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>GRIB_paramId :</span></dt><dd>260242</dd><dt><span>GRIB_dataType :</span></dt><dd>af</dd><dt><span>GRIB_numberOfPoints :</span></dt><dd>43700LL</dd><dt><span>GRIB_typeOfLevel :</span></dt><dd>heightAboveGround</dd><dt><span>GRIB_stepUnits :</span></dt><dd>1</dd><dt><span>GRIB_stepType :</span></dt><dd>instant</dd><dt><span>GRIB_gridType :</span></dt><dd>rotated_ll</dd><dt><span>GRIB_NV :</span></dt><dd>0</dd><dt><span>GRIB_Nx :</span></dt><dd>230LL</dd><dt><span>GRIB_Ny :</span></dt><dd>190LL</dd><dt><span>GRIB_angleOfRotationInDegrees :</span></dt><dd>0.0</dd><dt><span>GRIB_cfName :</span></dt><dd>relative_humidity</dd><dt><span>GRIB_cfVarName :</span></dt><dd>r2</dd><dt><span>GRIB_gridDefinitionDescription :</span></dt><dd>Rotated latitude/longitude</dd><dt><span>GRIB_iDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_iScansNegatively :</span></dt><dd>0</dd><dt><span>GRIB_jDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_jPointsAreConsecutive :</span></dt><dd>0</dd><dt><span>GRIB_jScansPositively :</span></dt><dd>1</dd><dt><span>GRIB_latitudeOfFirstGridPointInDegrees :</span></dt><dd>-12.302501</dd><dt><span>GRIB_latitudeOfLastGridPointInDegrees :</span></dt><dd>16.700001</dd><dt><span>GRIB_latitudeOfSouthernPoleInDegrees :</span></dt><dd>-36.08852</dd><dt><span>GRIB_longitudeOfFirstGridPointInDegrees :</span></dt><dd>345.17878</dd><dt><span>GRIB_longitudeOfLastGridPointInDegrees :</span></dt><dd>42.306283</dd><dt><span>GRIB_longitudeOfSouthernPoleInDegrees :</span></dt><dd>245.305142</dd><dt><span>GRIB_missingValue :</span></dt><dd>3.4028234663852886e+38</dd><dt><span>GRIB_name :</span></dt><dd>2 metre relative humidity</dd><dt><span>GRIB_shortName :</span></dt><dd>2r</dd><dt><span>GRIB_units :</span></dt><dd>%</dd><dt><span>long_name :</span></dt><dd>2 metre relative humidity</dd><dt><span>units :</span></dt><dd>%</dd><dt><span>standard_name :</span></dt><dd>relative_humidity</dd><dt><span>ioos_category :</span></dt><dd>atmospheric</dd><dt><span>comment :</span></dt><dd>For Vancouver Harbour and Lower Fraser River FVCOM model</dd></dl></div><div class='xr-var-data'><pre>[1048800 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>atmpres</span></div><div class='xr-var-dims'>(time_counter, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-b2393d1c-ef50-4d99-97d0-d4fb9d9d11fd' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-b2393d1c-ef50-4d99-97d0-d4fb9d9d11fd' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-3896dfac-dc67-4297-8786-fa265a6155ad' class='xr-var-data-in' type='checkbox'><label for='data-3896dfac-dc67-4297-8786-fa265a6155ad' 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>GRIB_paramId :</span></dt><dd>260074</dd><dt><span>GRIB_dataType :</span></dt><dd>af</dd><dt><span>GRIB_numberOfPoints :</span></dt><dd>43700LL</dd><dt><span>GRIB_typeOfLevel :</span></dt><dd>meanSea</dd><dt><span>GRIB_stepUnits :</span></dt><dd>1</dd><dt><span>GRIB_stepType :</span></dt><dd>instant</dd><dt><span>GRIB_gridType :</span></dt><dd>rotated_ll</dd><dt><span>GRIB_NV :</span></dt><dd>0</dd><dt><span>GRIB_Nx :</span></dt><dd>230LL</dd><dt><span>GRIB_Ny :</span></dt><dd>190LL</dd><dt><span>GRIB_angleOfRotationInDegrees :</span></dt><dd>0.0</dd><dt><span>GRIB_cfName :</span></dt><dd>unknown</dd><dt><span>GRIB_cfVarName :</span></dt><dd>prmsl</dd><dt><span>GRIB_gridDefinitionDescription :</span></dt><dd>Rotated latitude/longitude</dd><dt><span>GRIB_iDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_iScansNegatively :</span></dt><dd>0</dd><dt><span>GRIB_jDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_jPointsAreConsecutive :</span></dt><dd>0</dd><dt><span>GRIB_jScansPositively :</span></dt><dd>1</dd><dt><span>GRIB_latitudeOfFirstGridPointInDegrees :</span></dt><dd>-12.302501</dd><dt><span>GRIB_latitudeOfLastGridPointInDegrees :</span></dt><dd>16.700001</dd><dt><span>GRIB_latitudeOfSouthernPoleInDegrees :</span></dt><dd>-36.08852</dd><dt><span>GRIB_longitudeOfFirstGridPointInDegrees :</span></dt><dd>345.17878</dd><dt><span>GRIB_longitudeOfLastGridPointInDegrees :</span></dt><dd>42.306283</dd><dt><span>GRIB_longitudeOfSouthernPoleInDegrees :</span></dt><dd>245.305142</dd><dt><span>GRIB_missingValue :</span></dt><dd>3.4028234663852886e+38</dd><dt><span>GRIB_name :</span></dt><dd>Pressure reduced to MSL</dd><dt><span>GRIB_shortName :</span></dt><dd>prmsl</dd><dt><span>GRIB_units :</span></dt><dd>Pa</dd><dt><span>long_name :</span></dt><dd>Air Pressure at MSL</dd><dt><span>units :</span></dt><dd>Pa</dd><dt><span>standard_name :</span></dt><dd>air_pressure_at_mean_sea_level</dd><dt><span>ioos_category :</span></dt><dd>atmospheric</dd></dl></div><div class='xr-var-data'><pre>[1048800 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>precip</span></div><div class='xr-var-dims'>(time_counter, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-38781a9b-2074-4aa3-a2c4-e3e0cbc00359' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-38781a9b-2074-4aa3-a2c4-e3e0cbc00359' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ed180d12-6f3c-4b10-aab7-0dab70408b27' class='xr-var-data-in' type='checkbox'><label for='data-ed180d12-6f3c-4b10-aab7-0dab70408b27' 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>GRIB_paramId :</span></dt><dd>0</dd><dt><span>GRIB_dataType :</span></dt><dd>af</dd><dt><span>GRIB_numberOfPoints :</span></dt><dd>43700LL</dd><dt><span>GRIB_typeOfLevel :</span></dt><dd>surface</dd><dt><span>GRIB_stepUnits :</span></dt><dd>1</dd><dt><span>GRIB_stepType :</span></dt><dd>accum</dd><dt><span>GRIB_gridType :</span></dt><dd>rotated_ll</dd><dt><span>GRIB_NV :</span></dt><dd>0</dd><dt><span>GRIB_Nx :</span></dt><dd>230LL</dd><dt><span>GRIB_Ny :</span></dt><dd>190LL</dd><dt><span>GRIB_angleOfRotationInDegrees :</span></dt><dd>0.0</dd><dt><span>GRIB_cfName :</span></dt><dd>unknown</dd><dt><span>GRIB_cfVarName :</span></dt><dd>unknown</dd><dt><span>GRIB_gridDefinitionDescription :</span></dt><dd>Rotated latitude/longitude</dd><dt><span>GRIB_iDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_iScansNegatively :</span></dt><dd>0</dd><dt><span>GRIB_jDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_jPointsAreConsecutive :</span></dt><dd>0</dd><dt><span>GRIB_jScansPositively :</span></dt><dd>1</dd><dt><span>GRIB_latitudeOfFirstGridPointInDegrees :</span></dt><dd>-12.302501</dd><dt><span>GRIB_latitudeOfLastGridPointInDegrees :</span></dt><dd>16.700001</dd><dt><span>GRIB_latitudeOfSouthernPoleInDegrees :</span></dt><dd>-36.08852</dd><dt><span>GRIB_longitudeOfFirstGridPointInDegrees :</span></dt><dd>345.17878</dd><dt><span>GRIB_longitudeOfLastGridPointInDegrees :</span></dt><dd>42.306283</dd><dt><span>GRIB_longitudeOfSouthernPoleInDegrees :</span></dt><dd>245.305142</dd><dt><span>GRIB_missingValue :</span></dt><dd>3.4028234663852886e+38</dd><dt><span>GRIB_name :</span></dt><dd>unknown</dd><dt><span>GRIB_shortName :</span></dt><dd>unknown</dd><dt><span>GRIB_units :</span></dt><dd>unknown</dd><dt><span>long_name :</span></dt><dd>Precipitation Flux</dd><dt><span>units :</span></dt><dd>kg m-2 s-1</dd><dt><span>standard_name :</span></dt><dd>precipitation_flux</dd><dt><span>ioos_category :</span></dt><dd>atmospheric</dd></dl></div><div class='xr-var-data'><pre>[1048800 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>qair</span></div><div class='xr-var-dims'>(time_counter, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-d81db939-b48e-470d-bf53-b94e151124ef' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d81db939-b48e-470d-bf53-b94e151124ef' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-09e066fb-38f3-42a9-b8f6-f946ea99473f' class='xr-var-data-in' type='checkbox'><label for='data-09e066fb-38f3-42a9-b8f6-f946ea99473f' 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>GRIB_paramId :</span></dt><dd>174096</dd><dt><span>GRIB_dataType :</span></dt><dd>af</dd><dt><span>GRIB_numberOfPoints :</span></dt><dd>43700LL</dd><dt><span>GRIB_typeOfLevel :</span></dt><dd>heightAboveGround</dd><dt><span>GRIB_stepUnits :</span></dt><dd>1</dd><dt><span>GRIB_stepType :</span></dt><dd>instant</dd><dt><span>GRIB_gridType :</span></dt><dd>rotated_ll</dd><dt><span>GRIB_NV :</span></dt><dd>0</dd><dt><span>GRIB_Nx :</span></dt><dd>230LL</dd><dt><span>GRIB_Ny :</span></dt><dd>190LL</dd><dt><span>GRIB_angleOfRotationInDegrees :</span></dt><dd>0.0</dd><dt><span>GRIB_cfName :</span></dt><dd>specific_humidity</dd><dt><span>GRIB_cfVarName :</span></dt><dd>sh2</dd><dt><span>GRIB_gridDefinitionDescription :</span></dt><dd>Rotated latitude/longitude</dd><dt><span>GRIB_iDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_iScansNegatively :</span></dt><dd>0</dd><dt><span>GRIB_jDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_jPointsAreConsecutive :</span></dt><dd>0</dd><dt><span>GRIB_jScansPositively :</span></dt><dd>1</dd><dt><span>GRIB_latitudeOfFirstGridPointInDegrees :</span></dt><dd>-12.302501</dd><dt><span>GRIB_latitudeOfLastGridPointInDegrees :</span></dt><dd>16.700001</dd><dt><span>GRIB_latitudeOfSouthernPoleInDegrees :</span></dt><dd>-36.08852</dd><dt><span>GRIB_longitudeOfFirstGridPointInDegrees :</span></dt><dd>345.17878</dd><dt><span>GRIB_longitudeOfLastGridPointInDegrees :</span></dt><dd>42.306283</dd><dt><span>GRIB_longitudeOfSouthernPoleInDegrees :</span></dt><dd>245.305142</dd><dt><span>GRIB_missingValue :</span></dt><dd>3.4028234663852886e+38</dd><dt><span>GRIB_name :</span></dt><dd>2 metre specific humidity</dd><dt><span>GRIB_shortName :</span></dt><dd>2sh</dd><dt><span>GRIB_units :</span></dt><dd>kg kg**-1</dd><dt><span>long_name :</span></dt><dd>Specific Humidity at 2m</dd><dt><span>units :</span></dt><dd>kg kg-1</dd><dt><span>standard_name :</span></dt><dd>specific_humidity</dd><dt><span>ioos_category :</span></dt><dd>atmospheric</dd></dl></div><div class='xr-var-data'><pre>[1048800 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>solar</span></div><div class='xr-var-dims'>(time_counter, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-47ce979e-c34c-4267-950d-1abec32ec5b3' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-47ce979e-c34c-4267-950d-1abec32ec5b3' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-0db68a76-c424-4688-9483-21622616d7f9' class='xr-var-data-in' type='checkbox'><label for='data-0db68a76-c424-4688-9483-21622616d7f9' 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>GRIB_paramId :</span></dt><dd>169</dd><dt><span>GRIB_dataType :</span></dt><dd>af</dd><dt><span>GRIB_numberOfPoints :</span></dt><dd>43700LL</dd><dt><span>GRIB_typeOfLevel :</span></dt><dd>surface</dd><dt><span>GRIB_stepUnits :</span></dt><dd>1</dd><dt><span>GRIB_stepType :</span></dt><dd>accum</dd><dt><span>GRIB_gridType :</span></dt><dd>rotated_ll</dd><dt><span>GRIB_NV :</span></dt><dd>0</dd><dt><span>GRIB_Nx :</span></dt><dd>230LL</dd><dt><span>GRIB_Ny :</span></dt><dd>190LL</dd><dt><span>GRIB_angleOfRotationInDegrees :</span></dt><dd>0.0</dd><dt><span>GRIB_cfName :</span></dt><dd>surface_downwelling_shortwave_flux_in_air</dd><dt><span>GRIB_cfVarName :</span></dt><dd>ssrd</dd><dt><span>GRIB_gridDefinitionDescription :</span></dt><dd>Rotated latitude/longitude</dd><dt><span>GRIB_iDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_iScansNegatively :</span></dt><dd>0</dd><dt><span>GRIB_jDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_jPointsAreConsecutive :</span></dt><dd>0</dd><dt><span>GRIB_jScansPositively :</span></dt><dd>1</dd><dt><span>GRIB_latitudeOfFirstGridPointInDegrees :</span></dt><dd>-12.302501</dd><dt><span>GRIB_latitudeOfLastGridPointInDegrees :</span></dt><dd>16.700001</dd><dt><span>GRIB_latitudeOfSouthernPoleInDegrees :</span></dt><dd>-36.08852</dd><dt><span>GRIB_longitudeOfFirstGridPointInDegrees :</span></dt><dd>345.17878</dd><dt><span>GRIB_longitudeOfLastGridPointInDegrees :</span></dt><dd>42.306283</dd><dt><span>GRIB_longitudeOfSouthernPoleInDegrees :</span></dt><dd>245.305142</dd><dt><span>GRIB_missingValue :</span></dt><dd>3.4028234663852886e+38</dd><dt><span>GRIB_name :</span></dt><dd>Surface solar radiation downwards</dd><dt><span>GRIB_shortName :</span></dt><dd>ssrd</dd><dt><span>GRIB_units :</span></dt><dd>J m**-2</dd><dt><span>long_name :</span></dt><dd>Downward Short-Wave (Solar) Radiation Flux</dd><dt><span>units :</span></dt><dd>W m-2</dd><dt><span>standard_name :</span></dt><dd>surface_downwelling_shortwave_flux_in_air</dd><dt><span>ioos_category :</span></dt><dd>atmospheric</dd></dl></div><div class='xr-var-data'><pre>[1048800 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>tair</span></div><div class='xr-var-dims'>(time_counter, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-024e7c49-b8fb-4f95-b1c2-f347ce9b94f1' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-024e7c49-b8fb-4f95-b1c2-f347ce9b94f1' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-b703d3ae-98e3-4da3-81cc-4f64b7148c87' class='xr-var-data-in' type='checkbox'><label for='data-b703d3ae-98e3-4da3-81cc-4f64b7148c87' 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>GRIB_paramId :</span></dt><dd>167</dd><dt><span>GRIB_dataType :</span></dt><dd>af</dd><dt><span>GRIB_numberOfPoints :</span></dt><dd>43700LL</dd><dt><span>GRIB_typeOfLevel :</span></dt><dd>heightAboveGround</dd><dt><span>GRIB_stepUnits :</span></dt><dd>1</dd><dt><span>GRIB_stepType :</span></dt><dd>instant</dd><dt><span>GRIB_gridType :</span></dt><dd>rotated_ll</dd><dt><span>GRIB_NV :</span></dt><dd>0</dd><dt><span>GRIB_Nx :</span></dt><dd>230LL</dd><dt><span>GRIB_Ny :</span></dt><dd>190LL</dd><dt><span>GRIB_angleOfRotationInDegrees :</span></dt><dd>0.0</dd><dt><span>GRIB_cfName :</span></dt><dd>air_temperature</dd><dt><span>GRIB_cfVarName :</span></dt><dd>t2m</dd><dt><span>GRIB_gridDefinitionDescription :</span></dt><dd>Rotated latitude/longitude</dd><dt><span>GRIB_iDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_iScansNegatively :</span></dt><dd>0</dd><dt><span>GRIB_jDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_jPointsAreConsecutive :</span></dt><dd>0</dd><dt><span>GRIB_jScansPositively :</span></dt><dd>1</dd><dt><span>GRIB_latitudeOfFirstGridPointInDegrees :</span></dt><dd>-12.302501</dd><dt><span>GRIB_latitudeOfLastGridPointInDegrees :</span></dt><dd>16.700001</dd><dt><span>GRIB_latitudeOfSouthernPoleInDegrees :</span></dt><dd>-36.08852</dd><dt><span>GRIB_longitudeOfFirstGridPointInDegrees :</span></dt><dd>345.17878</dd><dt><span>GRIB_longitudeOfLastGridPointInDegrees :</span></dt><dd>42.306283</dd><dt><span>GRIB_longitudeOfSouthernPoleInDegrees :</span></dt><dd>245.305142</dd><dt><span>GRIB_missingValue :</span></dt><dd>3.4028234663852886e+38</dd><dt><span>GRIB_name :</span></dt><dd>2 metre temperature</dd><dt><span>GRIB_shortName :</span></dt><dd>2t</dd><dt><span>GRIB_units :</span></dt><dd>K</dd><dt><span>long_name :</span></dt><dd>Air Temperature at 2m</dd><dt><span>units :</span></dt><dd>K</dd><dt><span>standard_name :</span></dt><dd>air_temperature</dd><dt><span>ioos_category :</span></dt><dd>atmospheric</dd></dl></div><div class='xr-var-data'><pre>[1048800 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>therm_rad</span></div><div class='xr-var-dims'>(time_counter, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-6e1812a7-c1fb-4f3c-a307-06308f9c5fc4' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6e1812a7-c1fb-4f3c-a307-06308f9c5fc4' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-747de7f5-c701-4c8d-9d88-3fd18b626f28' class='xr-var-data-in' type='checkbox'><label for='data-747de7f5-c701-4c8d-9d88-3fd18b626f28' 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>GRIB_paramId :</span></dt><dd>175</dd><dt><span>GRIB_dataType :</span></dt><dd>af</dd><dt><span>GRIB_numberOfPoints :</span></dt><dd>43700LL</dd><dt><span>GRIB_typeOfLevel :</span></dt><dd>surface</dd><dt><span>GRIB_stepUnits :</span></dt><dd>1</dd><dt><span>GRIB_stepType :</span></dt><dd>accum</dd><dt><span>GRIB_gridType :</span></dt><dd>rotated_ll</dd><dt><span>GRIB_NV :</span></dt><dd>0</dd><dt><span>GRIB_Nx :</span></dt><dd>230LL</dd><dt><span>GRIB_Ny :</span></dt><dd>190LL</dd><dt><span>GRIB_angleOfRotationInDegrees :</span></dt><dd>0.0</dd><dt><span>GRIB_cfName :</span></dt><dd>unknown</dd><dt><span>GRIB_cfVarName :</span></dt><dd>strd</dd><dt><span>GRIB_gridDefinitionDescription :</span></dt><dd>Rotated latitude/longitude</dd><dt><span>GRIB_iDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_iScansNegatively :</span></dt><dd>0</dd><dt><span>GRIB_jDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_jPointsAreConsecutive :</span></dt><dd>0</dd><dt><span>GRIB_jScansPositively :</span></dt><dd>1</dd><dt><span>GRIB_latitudeOfFirstGridPointInDegrees :</span></dt><dd>-12.302501</dd><dt><span>GRIB_latitudeOfLastGridPointInDegrees :</span></dt><dd>16.700001</dd><dt><span>GRIB_latitudeOfSouthernPoleInDegrees :</span></dt><dd>-36.08852</dd><dt><span>GRIB_longitudeOfFirstGridPointInDegrees :</span></dt><dd>345.17878</dd><dt><span>GRIB_longitudeOfLastGridPointInDegrees :</span></dt><dd>42.306283</dd><dt><span>GRIB_longitudeOfSouthernPoleInDegrees :</span></dt><dd>245.305142</dd><dt><span>GRIB_missingValue :</span></dt><dd>3.4028234663852886e+38</dd><dt><span>GRIB_name :</span></dt><dd>Surface thermal radiation downwards</dd><dt><span>GRIB_shortName :</span></dt><dd>strd</dd><dt><span>GRIB_units :</span></dt><dd>J m**-2</dd><dt><span>long_name :</span></dt><dd>Downward Long-Wave (Thermal) Radiation Flux</dd><dt><span>units :</span></dt><dd>W m-2</dd><dt><span>standard_name :</span></dt><dd>surface_downwelling_longwave_flux_in_air</dd><dt><span>ioos_category :</span></dt><dd>atmospheric</dd></dl></div><div class='xr-var-data'><pre>[1048800 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>u_wind</span></div><div class='xr-var-dims'>(time_counter, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-d8082eda-2090-4e30-9d9c-df94eda67c8a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d8082eda-2090-4e30-9d9c-df94eda67c8a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1bccd03b-75f6-4f40-84b9-a784f89487f4' class='xr-var-data-in' type='checkbox'><label for='data-1bccd03b-75f6-4f40-84b9-a784f89487f4' 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>GRIB_paramId :</span></dt><dd>165</dd><dt><span>GRIB_dataType :</span></dt><dd>af</dd><dt><span>GRIB_numberOfPoints :</span></dt><dd>43700LL</dd><dt><span>GRIB_typeOfLevel :</span></dt><dd>heightAboveGround</dd><dt><span>GRIB_stepUnits :</span></dt><dd>1</dd><dt><span>GRIB_stepType :</span></dt><dd>instant</dd><dt><span>GRIB_gridType :</span></dt><dd>rotated_ll</dd><dt><span>GRIB_NV :</span></dt><dd>0</dd><dt><span>GRIB_Nx :</span></dt><dd>230LL</dd><dt><span>GRIB_Ny :</span></dt><dd>190LL</dd><dt><span>GRIB_angleOfRotationInDegrees :</span></dt><dd>0.0</dd><dt><span>GRIB_cfName :</span></dt><dd>eastward_wind</dd><dt><span>GRIB_cfVarName :</span></dt><dd>u10</dd><dt><span>GRIB_gridDefinitionDescription :</span></dt><dd>Rotated latitude/longitude</dd><dt><span>GRIB_iDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_iScansNegatively :</span></dt><dd>0</dd><dt><span>GRIB_jDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_jPointsAreConsecutive :</span></dt><dd>0</dd><dt><span>GRIB_jScansPositively :</span></dt><dd>1</dd><dt><span>GRIB_latitudeOfFirstGridPointInDegrees :</span></dt><dd>-12.302501</dd><dt><span>GRIB_latitudeOfLastGridPointInDegrees :</span></dt><dd>16.700001</dd><dt><span>GRIB_latitudeOfSouthernPoleInDegrees :</span></dt><dd>-36.08852</dd><dt><span>GRIB_longitudeOfFirstGridPointInDegrees :</span></dt><dd>345.17878</dd><dt><span>GRIB_longitudeOfLastGridPointInDegrees :</span></dt><dd>42.306283</dd><dt><span>GRIB_longitudeOfSouthernPoleInDegrees :</span></dt><dd>245.305142</dd><dt><span>GRIB_missingValue :</span></dt><dd>3.4028234663852886e+38</dd><dt><span>GRIB_name :</span></dt><dd>10 metre U wind component</dd><dt><span>GRIB_shortName :</span></dt><dd>10u</dd><dt><span>GRIB_units :</span></dt><dd>m s**-1</dd><dt><span>long_name :</span></dt><dd>U-Component of Wind at 10m</dd><dt><span>units :</span></dt><dd>m s-1</dd><dt><span>standard_name :</span></dt><dd>eastward_wind</dd><dt><span>ioos_category :</span></dt><dd>atmospheric</dd></dl></div><div class='xr-var-data'><pre>[1048800 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>v_wind</span></div><div class='xr-var-dims'>(time_counter, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-3cd13e54-39c3-4968-bd05-bd370e22c915' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-3cd13e54-39c3-4968-bd05-bd370e22c915' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-4c1c1e97-bd96-49f0-853d-907031cb09d3' class='xr-var-data-in' type='checkbox'><label for='data-4c1c1e97-bd96-49f0-853d-907031cb09d3' 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>GRIB_paramId :</span></dt><dd>166</dd><dt><span>GRIB_dataType :</span></dt><dd>af</dd><dt><span>GRIB_numberOfPoints :</span></dt><dd>43700LL</dd><dt><span>GRIB_typeOfLevel :</span></dt><dd>heightAboveGround</dd><dt><span>GRIB_stepUnits :</span></dt><dd>1</dd><dt><span>GRIB_stepType :</span></dt><dd>instant</dd><dt><span>GRIB_gridType :</span></dt><dd>rotated_ll</dd><dt><span>GRIB_NV :</span></dt><dd>0</dd><dt><span>GRIB_Nx :</span></dt><dd>230LL</dd><dt><span>GRIB_Ny :</span></dt><dd>190LL</dd><dt><span>GRIB_angleOfRotationInDegrees :</span></dt><dd>0.0</dd><dt><span>GRIB_cfName :</span></dt><dd>northward_wind</dd><dt><span>GRIB_cfVarName :</span></dt><dd>v10</dd><dt><span>GRIB_gridDefinitionDescription :</span></dt><dd>Rotated latitude/longitude</dd><dt><span>GRIB_iDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_iScansNegatively :</span></dt><dd>0</dd><dt><span>GRIB_jDirectionIncrementInDegrees :</span></dt><dd>0.0225</dd><dt><span>GRIB_jPointsAreConsecutive :</span></dt><dd>0</dd><dt><span>GRIB_jScansPositively :</span></dt><dd>1</dd><dt><span>GRIB_latitudeOfFirstGridPointInDegrees :</span></dt><dd>-12.302501</dd><dt><span>GRIB_latitudeOfLastGridPointInDegrees :</span></dt><dd>16.700001</dd><dt><span>GRIB_latitudeOfSouthernPoleInDegrees :</span></dt><dd>-36.08852</dd><dt><span>GRIB_longitudeOfFirstGridPointInDegrees :</span></dt><dd>345.17878</dd><dt><span>GRIB_longitudeOfLastGridPointInDegrees :</span></dt><dd>42.306283</dd><dt><span>GRIB_longitudeOfSouthernPoleInDegrees :</span></dt><dd>245.305142</dd><dt><span>GRIB_missingValue :</span></dt><dd>3.4028234663852886e+38</dd><dt><span>GRIB_name :</span></dt><dd>10 metre V wind component</dd><dt><span>GRIB_shortName :</span></dt><dd>10v</dd><dt><span>GRIB_units :</span></dt><dd>m s**-1</dd><dt><span>long_name :</span></dt><dd>V-Component of Wind at 10m</dd><dt><span>units :</span></dt><dd>m s-1</dd><dt><span>standard_name :</span></dt><dd>northward_wind</dd><dt><span>ioos_category :</span></dt><dd>atmospheric</dd></dl></div><div class='xr-var-data'><pre>[1048800 values with dtype=float64]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-77df446b-d2ac-4259-977c-b48125e30c00' class='xr-section-summary-in' type='checkbox' ><label for='section-77df446b-d2ac-4259-977c-b48125e30c00' class='xr-section-summary' >Indexes: <span>(3)</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-index-name'><div>y</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-83a380af-1989-430b-92d6-5043a4e89f2e' class='xr-index-data-in' type='checkbox'/><label for='index-83a380af-1989-430b-92d6-5043a4e89f2e' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\n ...\n 220, 221, 222, 223, 224, 225, 226, 227, 228, 229],\n dtype=&#x27;int64&#x27;, name=&#x27;y&#x27;, length=230))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>x</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-d081cccc-fa06-4c53-b379-1f07464b4292' class='xr-index-data-in' type='checkbox'/><label for='index-d081cccc-fa06-4c53-b379-1f07464b4292' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\n ...\n 180, 181, 182, 183, 184, 185, 186, 187, 188, 189],\n dtype=&#x27;int64&#x27;, name=&#x27;x&#x27;, length=190))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>time_counter</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-d3077a14-def0-4858-9553-b4bdc50aeaac' class='xr-index-data-in' type='checkbox'/><label for='index-d3077a14-def0-4858-9553-b4bdc50aeaac' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2023-02-23 00:00:00&#x27;, &#x27;2023-02-23 01:00:00&#x27;,\n &#x27;2023-02-23 02:00:00&#x27;, &#x27;2023-02-23 03:00:00&#x27;,\n &#x27;2023-02-23 04:00:00&#x27;, &#x27;2023-02-23 05:00:00&#x27;,\n &#x27;2023-02-23 06:00:00&#x27;, &#x27;2023-02-23 07:00:00&#x27;,\n &#x27;2023-02-23 08:00:00&#x27;, &#x27;2023-02-23 09:00:00&#x27;,\n &#x27;2023-02-23 10:00:00&#x27;, &#x27;2023-02-23 11:00:00&#x27;,\n &#x27;2023-02-23 12:00:00&#x27;, &#x27;2023-02-23 13:00:00&#x27;,\n &#x27;2023-02-23 14:00:00&#x27;, &#x27;2023-02-23 15:00:00&#x27;,\n &#x27;2023-02-23 16:00:00&#x27;, &#x27;2023-02-23 17:00:00&#x27;,\n &#x27;2023-02-23 18:00:00&#x27;, &#x27;2023-02-23 19:00:00&#x27;,\n &#x27;2023-02-23 20:00:00&#x27;, &#x27;2023-02-23 21:00:00&#x27;,\n &#x27;2023-02-23 22:00:00&#x27;, &#x27;2023-02-23 23:00:00&#x27;],\n dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;time_counter&#x27;, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-8e9da175-7a0f-44d4-b14e-d8a55d4faf5d' class='xr-section-summary-in' type='checkbox' ><label for='section-8e9da175-7a0f-44d4-b14e-d8a55d4faf5d' class='xr-section-summary' >Attributes: <span>(15)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>GRIB_edition :</span></dt><dd>2</dd><dt><span>GRIB_centre :</span></dt><dd>cwao</dd><dt><span>GRIB_centreDescription :</span></dt><dd>Canadian Meteorological Service - Montreal</dd><dt><span>GRIB_subCentre :</span></dt><dd>0</dd><dt><span>Conventions :</span></dt><dd>CF-1.7</dd><dt><span>institution :</span></dt><dd>UBC EOAS</dd><dt><span>title :</span></dt><dd>HRDPS, Salish Sea, Atmospheric Forcing Fields, Hourly, v22-02</dd><dt><span>project :</span></dt><dd>UBC EOAS SalishSeaCast</dd><dt><span>institution_fullname :</span></dt><dd>Earth, Ocean &amp; Atmospheric Sciences, University of British Columbia</dd><dt><span>creator_name :</span></dt><dd>SalishSeaCast Project Contributors</dd><dt><span>creator_email :</span></dt><dd>sallen at eoas.ubc.ca</dd><dt><span>creator_url :</span></dt><dd>https://salishsea.eos.ubc.ca</dd><dt><span>drawLandMask :</span></dt><dd>over</dd><dt><span>coverage_content_type :</span></dt><dd>modelResult</dd><dt><span>history :</span></dt><dd>[Mon 2023-03-13 19:39:47 -07:00] python3 -m nowcast.workers.grib_to_netcdf $NOWCAST_YAML nowcast+ --run-date 2023-02-23</dd></dl></div></li></ul></div></div>"
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"con_25_path = Path(\"/results/forcing/atmospheric/continental2.5/nemo_forcing/hrdps_y2023m02d23.nc\")\n",
"\n",
"con_25_ds = xarray.open_dataset(con_25_path)\n",
"\n",
"con_25_ds"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:05.569084760Z",
"start_time": "2024-02-15T21:49:04.329604169Z"
}
},
"id": "57a065dc16c3f874",
"execution_count": 2
},
{
"cell_type": "markdown",
"source": [
"Use Python slices to define the y and x extents of the grid region that we want to look at the winds on:"
],
"metadata": {
"collapsed": false
},
"id": "1a565187a3b302c3"
},
{
"cell_type": "code",
"outputs": [],
"source": [
"wind_y_slice = slice(119, 140)\n",
"wind_x_slice = slice(143, 163)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:05.570588083Z",
"start_time": "2024-02-15T21:49:05.568437267Z"
}
},
"id": "edd49c6e044579c2",
"execution_count": 3
},
{
"cell_type": "markdown",
"source": [
"Select u and v wind arrays from the dataset.\n",
"Note that xarray datasets allow access to variables with dotted notation\n",
"(e.g. `con_25_ds.u_wind`).\n",
"Keyword notation works too (e.g. `con_25_ds[\"u_wind\"]`).\n",
"\n",
"We're using grid indices, so use `.isel()` rather than `.sel()`."
],
"metadata": {
"collapsed": false
},
"id": "9a1d610819bc725c"
},
{
"cell_type": "code",
"outputs": [],
"source": [
"u_wind = con_25_ds.u_wind.isel(time_counter=0, y=wind_y_slice, x=wind_x_slice)\n",
"v_wind = con_25_ds.v_wind.isel(time_counter=0, y=wind_y_slice, x=wind_x_slice)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:05.621926230Z",
"start_time": "2024-02-15T21:49:05.570580533Z"
}
},
"id": "b3c44da0b4b24550",
"execution_count": 4
},
{
"cell_type": "markdown",
"source": [
"Calculate the wind speed and plot it.\n",
"xarray recognized that we have calculated a 2-D array\n",
"(note the parens around the wind speed calculation)\n",
"and so uses `pcolormesh()` to product the plot.\n",
"We can pass the colour bar label through to `cbar` as a dict of keyword arguments (kwargs). "
],
"metadata": {
"collapsed": false
},
"id": "fce45c19760460cd"
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "<matplotlib.collections.QuadMesh at 0x778d7d945a30>"
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 2 Axes>",
"image/png": "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"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"((u_wind**2 + v_wind**2)**(1/2)).plot(cbar_kwargs={\"label\": \"Wind Speed [m/s]\"})"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:06.158570661Z",
"start_time": "2024-02-15T21:49:05.591644309Z"
}
},
"id": "da0d37f8a4b220c0",
"execution_count": 5
},
{
"cell_type": "markdown",
"source": [
"Load the 201702 mesh mask.\n",
"Note that using `Path` object to handle file system paths and file names instead of leaving them as strings\n",
"means that we can use `/` to join path sections."
],
"metadata": {
"collapsed": false
},
"id": "ddedd5e5d417cbe1"
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "<xarray.Dataset>\nDimensions: (y: 898, x: 398, t: 1, z: 40)\nDimensions without coordinates: y, x, t, z\nData variables: (12/43)\n nav_lon (y, x) float32 ...\n nav_lat (y, x) float32 ...\n time_counter (t) datetime64[ns] ...\n tmask (t, z, y, x) int8 ...\n umask (t, z, y, x) int8 ...\n vmask (t, z, y, x) int8 ...\n ... ...\n gdepv (t, z, y, x) float32 ...\n gdepw_0 (t, z, y, x) float32 ...\n gdept_1d (t, z) float64 ...\n gdepw_1d (t, z) float64 ...\n e3t_1d (t, z) float64 ...\n e3w_1d (t, z) float64 ...\nAttributes: (12/18)\n DOMAIN_number_total: 1\n DOMAIN_number: 0\n DOMAIN_dimensions_ids: [1 2]\n DOMAIN_size_global: [398 898]\n DOMAIN_size_local: [398 898]\n DOMAIN_position_first: [1 1]\n ... ...\n Conventions: CF-1.6\n title: Salish Sea NEMO bathymetry_201702 Bathymetry Mes...\n institution: Dept of Earth, Ocean & Atmospheric Sciences, Uni...\n source: NEMO-3.6 Salish Sea configuration\n references: https://salishsea.eos.ubc.ca/erddap/info/\\nhttps...\n history: [2019-03-14 15:00] ncks -4 -L4 -O mesh_mask.nc m...",
"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\nhtml[theme=dark],\nbody[data-theme=dark],\nbody.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 !important;\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-index-preview {\n grid-column: 2 / 5;\n color: var(--xr-font-color2);\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.xr-index-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.xr-index-data-in:checked ~ .xr-index-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-index-name div,\n.xr-index-data,\n.xr-attrs {\n padding-left: 25px !important;\n}\n\n.xr-attrs,\n.xr-var-attrs,\n.xr-var-data,\n.xr-index-data {\n grid-column: 1 / -1;\n}\n\ndl.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.xr-no-icon {\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;\nDimensions: (y: 898, x: 398, t: 1, z: 40)\nDimensions without coordinates: y, x, t, z\nData variables: (12/43)\n nav_lon (y, x) float32 ...\n nav_lat (y, x) float32 ...\n time_counter (t) datetime64[ns] ...\n tmask (t, z, y, x) int8 ...\n umask (t, z, y, x) int8 ...\n vmask (t, z, y, x) int8 ...\n ... ...\n gdepv (t, z, y, x) float32 ...\n gdepw_0 (t, z, y, x) float32 ...\n gdept_1d (t, z) float64 ...\n gdepw_1d (t, z) float64 ...\n e3t_1d (t, z) float64 ...\n e3w_1d (t, z) float64 ...\nAttributes: (12/18)\n DOMAIN_number_total: 1\n DOMAIN_number: 0\n DOMAIN_dimensions_ids: [1 2]\n DOMAIN_size_global: [398 898]\n DOMAIN_size_local: [398 898]\n DOMAIN_position_first: [1 1]\n ... ...\n Conventions: CF-1.6\n title: Salish Sea NEMO bathymetry_201702 Bathymetry Mes...\n institution: Dept of Earth, Ocean &amp; Atmospheric Sciences, Uni...\n source: NEMO-3.6 Salish Sea configuration\n references: https://salishsea.eos.ubc.ca/erddap/info/\\nhttps...\n history: [2019-03-14 15:00] ncks -4 -L4 -O mesh_mask.nc m...</pre><div class='xr-wrap' style='display:none'><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-5269367d-57a0-4baa-95eb-b6ffdc67d5f0' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-5269367d-57a0-4baa-95eb-b6ffdc67d5f0' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span>y</span>: 898</li><li><span>x</span>: 398</li><li><span>t</span>: 1</li><li><span>z</span>: 40</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-c5d6f1dd-df6c-43e0-a0a3-c3ad65f26376' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-c5d6f1dd-df6c-43e0-a0a3-c3ad65f26376' class='xr-section-summary' title='Expand/collapse section'>Coordinates: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'></ul></div></li><li class='xr-section-item'><input id='section-8430d96b-bfd8-43d4-9e36-a30dec45499a' class='xr-section-summary-in' type='checkbox' ><label for='section-8430d96b-bfd8-43d4-9e36-a30dec45499a' class='xr-section-summary' >Data variables: <span>(43)</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>nav_lon</span></div><div class='xr-var-dims'>(y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-5d0f8175-45d4-4fe1-b5c8-3f9b1598e40b' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-5d0f8175-45d4-4fe1-b5c8-3f9b1598e40b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e4b5bb4f-2710-4f12-a247-d154e97ffbbb' class='xr-var-data-in' type='checkbox'><label for='data-e4b5bb4f-2710-4f12-a247-d154e97ffbbb' 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>nav_lon</dd><dt><span>long_name :</span></dt><dd>longitude of T-grid points</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>nav_lat</span></div><div class='xr-var-dims'>(y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-21c2339a-852c-41da-aad9-683fe57e0e08' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-21c2339a-852c-41da-aad9-683fe57e0e08' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ad7ba8fe-b96b-491c-b491-e71087c84a20' class='xr-var-data-in' type='checkbox'><label for='data-ad7ba8fe-b96b-491c-b491-e71087c84a20' 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>nav_lat</dd><dt><span>long_name :</span></dt><dd>latitude of T-grid points</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>time_counter</span></div><div class='xr-var-dims'>(t)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-578f233a-d155-4b1b-9845-4bf80fa54c16' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-578f233a-d155-4b1b-9845-4bf80fa54c16' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-00fe1514-6045-4b42-b6d6-8c15c5172e36' class='xr-var-data-in' type='checkbox'><label for='data-00fe1514-6045-4b42-b6d6-8c15c5172e36' 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_counter</dd><dt><span>long_name :</span></dt><dd>time</dd><dt><span>time_origin :</span></dt><dd>2014-09-12 00:30:00</dd></dl></div><div class='xr-var-data'><pre>[1 values with dtype=datetime64[ns]]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>tmask</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>int8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-5ef0f885-cbbc-4aaa-862b-1bccc20e3b53' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-5ef0f885-cbbc-4aaa-862b-1bccc20e3b53' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-3e20be9c-0af4-40f0-8e2a-3e3bcc68b8e7' class='xr-var-data-in' type='checkbox'><label for='data-3e20be9c-0af4-40f0-8e2a-3e3bcc68b8e7' 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>tmask</dd><dt><span>long_name :</span></dt><dd>mask for T-grid and W-grid</dd><dt><span>flag_values :</span></dt><dd>0, 1</dd><dt><span>flag_meanings :</span></dt><dd>land, water</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=int8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>umask</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>int8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-339bb646-2a09-4cd4-a5b1-49d69ee7826d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-339bb646-2a09-4cd4-a5b1-49d69ee7826d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8c08d73c-8def-46d8-9a9d-fea336f55a81' class='xr-var-data-in' type='checkbox'><label for='data-8c08d73c-8def-46d8-9a9d-fea336f55a81' 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>umask</dd><dt><span>long_name :</span></dt><dd>mask for U-grid</dd><dt><span>flag_values :</span></dt><dd>0, 1</dd><dt><span>flag_meanings :</span></dt><dd>land, water</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=int8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>vmask</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>int8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-0a7cf570-7707-4597-857a-b73060d900d5' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-0a7cf570-7707-4597-857a-b73060d900d5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-06242c7b-429d-4612-bec3-6de7065452f7' class='xr-var-data-in' type='checkbox'><label for='data-06242c7b-429d-4612-bec3-6de7065452f7' 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>vmask</dd><dt><span>long_name :</span></dt><dd>mask for V-grid</dd><dt><span>flag_values :</span></dt><dd>0, 1</dd><dt><span>flag_meanings :</span></dt><dd>land, water</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=int8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>fmask</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>int8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-6710e3cc-e83f-4d77-a758-6ea115b10a85' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6710e3cc-e83f-4d77-a758-6ea115b10a85' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1c91f117-846e-4eea-a0d6-f21f8db352e5' class='xr-var-data-in' type='checkbox'><label for='data-1c91f117-846e-4eea-a0d6-f21f8db352e5' 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>fmask</dd><dt><span>long_name :</span></dt><dd>mask for vorticity-grid</dd><dt><span>flag_values :</span></dt><dd>0, 1</dd><dt><span>flag_meanings :</span></dt><dd>land, water</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=int8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>tmaskutil</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>int8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-a5a854b1-281b-4d4a-a67a-faf55b5a812d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a5a854b1-281b-4d4a-a67a-faf55b5a812d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-91861aa0-ef76-4b4a-9419-68fda3631710' class='xr-var-data-in' type='checkbox'><label for='data-91861aa0-ef76-4b4a-9419-68fda3631710' 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>tmaskutil</dd><dt><span>long_name :</span></dt><dd>dry land mask for T-grid and W-grid</dd><dt><span>flag_values :</span></dt><dd>0, 1</dd><dt><span>flag_meanings :</span></dt><dd>land, water</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=int8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>umaskutil</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>int8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-6d1f50b7-1f47-4242-bb65-488d01a9293a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6d1f50b7-1f47-4242-bb65-488d01a9293a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-9f888402-e69a-45b0-ac2d-ce9b8de0180d' class='xr-var-data-in' type='checkbox'><label for='data-9f888402-e69a-45b0-ac2d-ce9b8de0180d' 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>umaskutil</dd><dt><span>long_name :</span></dt><dd>dry land mask for U-grid</dd><dt><span>flag_values :</span></dt><dd>0, 1</dd><dt><span>flag_meanings :</span></dt><dd>land, water</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=int8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>vmaskutil</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>int8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-ecce57ed-b5e0-49f1-9eed-862f208fa39f' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-ecce57ed-b5e0-49f1-9eed-862f208fa39f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-689e7c7f-d6bd-40f3-ac60-dce059ecd212' class='xr-var-data-in' type='checkbox'><label for='data-689e7c7f-d6bd-40f3-ac60-dce059ecd212' 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>vmaskutil</dd><dt><span>long_name :</span></dt><dd>dry land mask for V-grid</dd><dt><span>flag_values :</span></dt><dd>0, 1</dd><dt><span>flag_meanings :</span></dt><dd>land, water</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=int8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>fmaskutil</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>int8</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-afbf0e6b-d54f-436b-b99e-ea9502536786' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-afbf0e6b-d54f-436b-b99e-ea9502536786' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-67861799-e788-4543-a79b-2d376974b0d5' class='xr-var-data-in' type='checkbox'><label for='data-67861799-e788-4543-a79b-2d376974b0d5' 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>fmaskutil</dd><dt><span>long_name :</span></dt><dd>dry land mask for vorticity-grid</dd><dt><span>flag_values :</span></dt><dd>0, 1</dd><dt><span>flag_meanings :</span></dt><dd>land, water</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=int8]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>glamt</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-8d634ebe-5872-4d7e-82a3-30e0fada1768' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-8d634ebe-5872-4d7e-82a3-30e0fada1768' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c70daa2a-b870-40b5-a668-62bb8948a37d' class='xr-var-data-in' type='checkbox'><label for='data-c70daa2a-b870-40b5-a668-62bb8948a37d' 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>glamt</dd><dt><span>long_name :</span></dt><dd>longitude of T-grid points</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>glamu</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-d1640274-0b65-4b9e-9112-20754f724b01' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d1640274-0b65-4b9e-9112-20754f724b01' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-bd2c9738-fdf8-45b0-9f1b-3bdcd78a7fa6' class='xr-var-data-in' type='checkbox'><label for='data-bd2c9738-fdf8-45b0-9f1b-3bdcd78a7fa6' 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>glamu</dd><dt><span>long_name :</span></dt><dd>longitude of U-grid points</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>glamv</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-2ecedd50-ccc5-416e-b00c-ba7aabf81f24' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-2ecedd50-ccc5-416e-b00c-ba7aabf81f24' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e4a07912-2259-48a2-a3f0-c4de89996a38' class='xr-var-data-in' type='checkbox'><label for='data-e4a07912-2259-48a2-a3f0-c4de89996a38' 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>glamv</dd><dt><span>long_name :</span></dt><dd>longitude of V-grid points</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>glamf</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-133895fd-125a-4558-a89e-32b22a248eeb' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-133895fd-125a-4558-a89e-32b22a248eeb' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-68e4cf3d-7518-4f34-8148-b53b682d3d9f' class='xr-var-data-in' type='checkbox'><label for='data-68e4cf3d-7518-4f34-8148-b53b682d3d9f' 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>glamf</dd><dt><span>long_name :</span></dt><dd>longitude of vorticity-grid points</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gphit</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-9feb1b4d-3c77-40ad-9250-5042454ab228' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-9feb1b4d-3c77-40ad-9250-5042454ab228' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-378736db-8b8c-489f-ad7a-14996785dd91' class='xr-var-data-in' type='checkbox'><label for='data-378736db-8b8c-489f-ad7a-14996785dd91' 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>gphit</dd><dt><span>long_name :</span></dt><dd>latitude of T-grid points</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gphiu</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-7daa6a90-d292-4206-9a41-bb6a25364924' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-7daa6a90-d292-4206-9a41-bb6a25364924' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a8c07187-050c-4b16-bac1-eb2a2332b733' class='xr-var-data-in' type='checkbox'><label for='data-a8c07187-050c-4b16-bac1-eb2a2332b733' 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>gphiu</dd><dt><span>long_name :</span></dt><dd>latitude of U-grid points</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gphiv</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-98baa78a-b05d-44a5-8cbe-6968d6ed529f' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-98baa78a-b05d-44a5-8cbe-6968d6ed529f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-df8b3551-5cb4-4c0c-846f-e1d34ea47fed' class='xr-var-data-in' type='checkbox'><label for='data-df8b3551-5cb4-4c0c-846f-e1d34ea47fed' 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>gphiv</dd><dt><span>long_name :</span></dt><dd>latitude of V-grid points</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gphif</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-e636b7a0-5e14-4d4f-a2e3-b20318bd87b5' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-e636b7a0-5e14-4d4f-a2e3-b20318bd87b5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-60adfd86-9e70-402c-a3bd-4bef11886bce' class='xr-var-data-in' type='checkbox'><label for='data-60adfd86-9e70-402c-a3bd-4bef11886bce' 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>gphif</dd><dt><span>long_name :</span></dt><dd>latitude of vorticity-grid points</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e1t</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-23cb2ce4-aa8d-40fd-b7f6-3af4bbc29e36' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-23cb2ce4-aa8d-40fd-b7f6-3af4bbc29e36' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8c330489-022e-4a35-a98d-9a21fbb031df' class='xr-var-data-in' type='checkbox'><label for='data-8c330489-022e-4a35-a98d-9a21fbb031df' 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>e1t</dd><dt><span>long_name :</span></dt><dd>grid spacing on T-grid in u direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e1u</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-a64851cd-81b9-4cd9-9c4e-82df22ca956d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a64851cd-81b9-4cd9-9c4e-82df22ca956d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-9fc24426-68e1-46b7-9e24-3b6947769cc1' class='xr-var-data-in' type='checkbox'><label for='data-9fc24426-68e1-46b7-9e24-3b6947769cc1' 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>e1u</dd><dt><span>long_name :</span></dt><dd>grid spacing on U-grid in u direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e1v</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-54b40898-3399-4abb-9766-67db925c0daa' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-54b40898-3399-4abb-9766-67db925c0daa' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-b56ea619-fef8-4b8f-bfbf-c173196c8f9f' class='xr-var-data-in' type='checkbox'><label for='data-b56ea619-fef8-4b8f-bfbf-c173196c8f9f' 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>e1v</dd><dt><span>long_name :</span></dt><dd>grid spacing on V-grid in u direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e1f</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-06db45b3-f51e-47a2-8b90-f3ab8072e744' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-06db45b3-f51e-47a2-8b90-f3ab8072e744' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8bb60a11-6156-40bd-a595-bda26882bc0d' class='xr-var-data-in' type='checkbox'><label for='data-8bb60a11-6156-40bd-a595-bda26882bc0d' 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>e1f</dd><dt><span>long_name :</span></dt><dd>grid spacing on vorticity-grid in u direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e2t</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-1f097f75-9182-4069-9fb8-f07001c80e8e' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-1f097f75-9182-4069-9fb8-f07001c80e8e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-68ccb0ec-9eea-4979-9b34-bd6841658719' class='xr-var-data-in' type='checkbox'><label for='data-68ccb0ec-9eea-4979-9b34-bd6841658719' 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>e2t</dd><dt><span>long_name :</span></dt><dd>grid spacing on T-grid in v direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e2u</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-680c8c6c-54a9-4c0d-aa8b-7fb0871627f7' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-680c8c6c-54a9-4c0d-aa8b-7fb0871627f7' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-cbbc7565-05fe-48ad-80e1-97bf22877855' class='xr-var-data-in' type='checkbox'><label for='data-cbbc7565-05fe-48ad-80e1-97bf22877855' 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>e2u</dd><dt><span>long_name :</span></dt><dd>grid spacing on U-grid in v direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e2v</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-a7e1b2ef-2465-42f7-a385-c91d3499591b' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a7e1b2ef-2465-42f7-a385-c91d3499591b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5b9e2980-ffdc-4704-a9c5-762cefe8e666' class='xr-var-data-in' type='checkbox'><label for='data-5b9e2980-ffdc-4704-a9c5-762cefe8e666' 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>e2v</dd><dt><span>long_name :</span></dt><dd>grid spacing on V-grid in v direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e2f</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-90521ef4-c8aa-4727-8e2f-735362eea175' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-90521ef4-c8aa-4727-8e2f-735362eea175' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-01a55287-bebc-477c-bd8b-7f104296735f' class='xr-var-data-in' type='checkbox'><label for='data-01a55287-bebc-477c-bd8b-7f104296735f' 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>e2f</dd><dt><span>long_name :</span></dt><dd>grid spacing on vorticity-grid in v direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ff</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-81d60915-ee4e-4ce0-9068-177d88bd27b8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-81d60915-ee4e-4ce0-9068-177d88bd27b8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-3a1881fd-e72b-450c-84ad-6083a12fe9c6' class='xr-var-data-in' type='checkbox'><label for='data-3a1881fd-e72b-450c-84ad-6083a12fe9c6' 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>ff</dd><dt><span>long_name :</span></dt><dd>Coriolis parameter on vorticity-grid</dd><dt><span>units :</span></dt><dd>1/s</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>mbathy</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-6db556f9-7031-4213-ba7c-166abc2e4a57' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6db556f9-7031-4213-ba7c-166abc2e4a57' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c94bc47f-ee75-4329-a1ea-cbcf837c3acc' class='xr-var-data-in' type='checkbox'><label for='data-c94bc47f-ee75-4329-a1ea-cbcf837c3acc' 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>mbathy</dd><dt><span>long_name :</span></dt><dd>fortran index of deepest water cell, T-grid</dd><dt><span>units :</span></dt><dd>count</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=int16]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>misf</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-71ba9fe2-1788-4bf6-a628-9baf12140c89' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-71ba9fe2-1788-4bf6-a628-9baf12140c89' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8d1bc9f9-e7bc-46c3-ad0c-940eee2fac34' class='xr-var-data-in' type='checkbox'><label for='data-8d1bc9f9-e7bc-46c3-ad0c-940eee2fac34' 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>misf</dd><dt><span>long_name :</span></dt><dd>fortran index of shallowest water, T-grid</dd><dt><span>units :</span></dt><dd>count</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=int16]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>isfdraft</span></div><div class='xr-var-dims'>(t, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-f5b93663-93f7-411a-b430-bb5f5adbfe5a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-f5b93663-93f7-411a-b430-bb5f5adbfe5a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e2dd0386-6602-4d9f-9bec-f416c385e1eb' class='xr-var-data-in' type='checkbox'><label for='data-e2dd0386-6602-4d9f-9bec-f416c385e1eb' 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>isfdraft</dd><dt><span>long_name :</span></dt><dd>thickness of land-fast ice below sea level</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[357404 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e3t_0</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-46300a3e-a6f4-4f41-928f-019f88e65740' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-46300a3e-a6f4-4f41-928f-019f88e65740' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e1e5c228-6a06-4c39-b739-6fa435a9edf9' class='xr-var-data-in' type='checkbox'><label for='data-e1e5c228-6a06-4c39-b739-6fa435a9edf9' 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>e3t_0</dd><dt><span>long_name :</span></dt><dd>grid spacing on T-grid in w direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e3u_0</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-9716dc87-98c8-45b1-a98c-b9d7bce3c584' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-9716dc87-98c8-45b1-a98c-b9d7bce3c584' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-044f78fb-95a6-4c2c-8451-3841a284c7fd' class='xr-var-data-in' type='checkbox'><label for='data-044f78fb-95a6-4c2c-8451-3841a284c7fd' 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>e3u_0</dd><dt><span>long_name :</span></dt><dd>grid spacing on U-grid in w direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e3v_0</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-113b8c8e-9ce6-4d62-bdfd-dc0b20b8a18e' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-113b8c8e-9ce6-4d62-bdfd-dc0b20b8a18e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-fe503cbf-caf2-4ac6-8530-c9fb2da2baaf' class='xr-var-data-in' type='checkbox'><label for='data-fe503cbf-caf2-4ac6-8530-c9fb2da2baaf' 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>e3v_0</dd><dt><span>long_name :</span></dt><dd>grid spacing on V-grid in w direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e3w_0</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-c6a3c393-6d65-488d-b913-22c57f04d9bc' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-c6a3c393-6d65-488d-b913-22c57f04d9bc' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a25083d6-cc7e-4b63-980d-22608931a7be' class='xr-var-data-in' type='checkbox'><label for='data-a25083d6-cc7e-4b63-980d-22608931a7be' 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>e3w_0</dd><dt><span>long_name :</span></dt><dd>grid spacing on W-grid in w direction</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gdept_0</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-d27d376c-c448-48b8-a691-c36ff5f7b8e9' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d27d376c-c448-48b8-a691-c36ff5f7b8e9' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-42bac1b1-23fe-4842-a127-dd22eb47784a' class='xr-var-data-in' type='checkbox'><label for='data-42bac1b1-23fe-4842-a127-dd22eb47784a' 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>gdept_0</dd><dt><span>long_name :</span></dt><dd>depth of T-grid points</dd><dt><span>units :</span></dt><dd>m</dd><dt><span>positive :</span></dt><dd>down</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gdepu</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-fbe5f7dc-5e48-42a5-9c14-d75003f777de' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-fbe5f7dc-5e48-42a5-9c14-d75003f777de' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-472b4a7d-f59e-48bb-9452-2deb4c8602f5' class='xr-var-data-in' type='checkbox'><label for='data-472b4a7d-f59e-48bb-9452-2deb4c8602f5' 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>gdepu</dd><dt><span>long_name :</span></dt><dd>depth of U-grid points</dd><dt><span>units :</span></dt><dd>m</dd><dt><span>positive :</span></dt><dd>down</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gdepv</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-de9f5855-68c7-4ab9-a685-213e4498d7cf' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-de9f5855-68c7-4ab9-a685-213e4498d7cf' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ca815118-269c-44a6-a9d7-78e99ebe3bad' class='xr-var-data-in' type='checkbox'><label for='data-ca815118-269c-44a6-a9d7-78e99ebe3bad' 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>gdepv</dd><dt><span>long_name :</span></dt><dd>depth of V-grid points</dd><dt><span>units :</span></dt><dd>m</dd><dt><span>positive :</span></dt><dd>down</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gdepw_0</span></div><div class='xr-var-dims'>(t, z, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-8e528eae-f066-4c0d-8909-2bb8dcb8fbdd' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-8e528eae-f066-4c0d-8909-2bb8dcb8fbdd' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a4888da9-6ac6-49e0-93c7-bf6f2e99d85e' class='xr-var-data-in' type='checkbox'><label for='data-a4888da9-6ac6-49e0-93c7-bf6f2e99d85e' 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>gdepw_0</dd><dt><span>long_name :</span></dt><dd>depth of W-grid points</dd><dt><span>units :</span></dt><dd>m</dd><dt><span>positive :</span></dt><dd>down</dd></dl></div><div class='xr-var-data'><pre>[14296160 values with dtype=float32]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gdept_1d</span></div><div class='xr-var-dims'>(t, z)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-598b66f4-5076-4914-a15b-f196b3244af1' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-598b66f4-5076-4914-a15b-f196b3244af1' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7d5b118c-e057-4eec-95e5-2b77591e7e7b' class='xr-var-data-in' type='checkbox'><label for='data-7d5b118c-e057-4eec-95e5-2b77591e7e7b' 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>gdept_1d</dd><dt><span>long_name :</span></dt><dd>nominal depth of T-grid points</dd><dt><span>units :</span></dt><dd>m</dd><dt><span>positive :</span></dt><dd>down</dd></dl></div><div class='xr-var-data'><pre>[40 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gdepw_1d</span></div><div class='xr-var-dims'>(t, z)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-a02ba37d-f781-4303-9c5c-d73ccfeaffef' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a02ba37d-f781-4303-9c5c-d73ccfeaffef' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-eee73c2e-052d-473d-a366-83a648c546db' class='xr-var-data-in' type='checkbox'><label for='data-eee73c2e-052d-473d-a366-83a648c546db' 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>gdepw_1d</dd><dt><span>long_name :</span></dt><dd>nominal depth of W-grid points</dd><dt><span>units :</span></dt><dd>m</dd><dt><span>positive :</span></dt><dd>down</dd></dl></div><div class='xr-var-data'><pre>[40 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e3t_1d</span></div><div class='xr-var-dims'>(t, z)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-d78a8785-b78a-4514-b1b5-3f6164c27996' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d78a8785-b78a-4514-b1b5-3f6164c27996' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-06b20cea-5489-403e-b720-a63b3ff23379' class='xr-var-data-in' type='checkbox'><label for='data-06b20cea-5489-403e-b720-a63b3ff23379' 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>e3t_1d</dd><dt><span>long_name :</span></dt><dd>nominal vertical grid spacing on T-grid</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[40 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>e3w_1d</span></div><div class='xr-var-dims'>(t, z)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-668330a5-a4df-4b0d-9f51-7c9ae52651c9' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-668330a5-a4df-4b0d-9f51-7c9ae52651c9' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-09b8d2f9-8f9d-4246-be50-0f0b3bfbc371' class='xr-var-data-in' type='checkbox'><label for='data-09b8d2f9-8f9d-4246-be50-0f0b3bfbc371' 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>e3w_1d</dd><dt><span>long_name :</span></dt><dd>nominal vertical grid spacing on W-grid</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><pre>[40 values with dtype=float64]</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-463d3fbf-5075-4f1f-b6c9-638ccc9add4d' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-463d3fbf-5075-4f1f-b6c9-638ccc9add4d' class='xr-section-summary' title='Expand/collapse section'>Indexes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'></ul></div></li><li class='xr-section-item'><input id='section-6e151d21-09c3-4c26-bb2c-31a526cf2bb1' class='xr-section-summary-in' type='checkbox' ><label for='section-6e151d21-09c3-4c26-bb2c-31a526cf2bb1' class='xr-section-summary' >Attributes: <span>(18)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>DOMAIN_number_total :</span></dt><dd>1</dd><dt><span>DOMAIN_number :</span></dt><dd>0</dd><dt><span>DOMAIN_dimensions_ids :</span></dt><dd>[1 2]</dd><dt><span>DOMAIN_size_global :</span></dt><dd>[398 898]</dd><dt><span>DOMAIN_size_local :</span></dt><dd>[398 898]</dd><dt><span>DOMAIN_position_first :</span></dt><dd>[1 1]</dd><dt><span>DOMAIN_position_last :</span></dt><dd>[398 898]</dd><dt><span>DOMAIN_halo_size_start :</span></dt><dd>[0 0]</dd><dt><span>DOMAIN_halo_size_end :</span></dt><dd>[0 0]</dd><dt><span>DOMAIN_type :</span></dt><dd>BOX</dd><dt><span>file_name :</span></dt><dd>NEMO-forcing/grid/mesh_mask201702.nc</dd><dt><span>TimeStamp :</span></dt><dd>14/03/2019 15:00:00 -0700</dd><dt><span>Conventions :</span></dt><dd>CF-1.6</dd><dt><span>title :</span></dt><dd>Salish Sea NEMO bathymetry_201702 Bathymetry Mesh Mask</dd><dt><span>institution :</span></dt><dd>Dept of Earth, Ocean &amp; Atmospheric Sciences, University of British Columbia</dd><dt><span>source :</span></dt><dd>NEMO-3.6 Salish Sea configuration</dd><dt><span>references :</span></dt><dd>https://salishsea.eos.ubc.ca/erddap/info/\nhttps://bitbucket.org/salishsea/nemo-forcing/src/tip/grid/bathymetery_201702.nc\n</dd><dt><span>history :</span></dt><dd>[2019-03-14 15:00] ncks -4 -L4 -O mesh_mask.nc mesh_mask201702.nc\n[2019-03-16 17:30] Added metadata to variable in preparation for creation of ERDDAP datasets.</dd></dl></div></li></ul></div></div>"
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grid_repo = Path(\"/media/doug/warehouse/MEOPAR/grid\")\n",
"mesh_1702 = xarray.open_dataset(grid_repo / \"mesh_mask201702.nc\")\n",
"\n",
"mesh_1702"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:06.283584728Z",
"start_time": "2024-02-15T21:49:06.149200506Z"
}
},
"id": "282f9f0e9a34028e",
"execution_count": 6
},
{
"cell_type": "markdown",
"source": [
"Define the y and x boundaries of the grid section we're interested in as tuples:"
],
"metadata": {
"collapsed": false
},
"id": "33ad1258466ae8cc"
},
{
"cell_type": "code",
"outputs": [],
"source": [
"mesh_y_bounds = (450, 550)\n",
"mesh_x_bounds = (110, 350)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:06.284014228Z",
"start_time": "2024-02-15T21:49:06.171831467Z"
}
},
"id": "81936d9ec3eb9a47",
"execution_count": 7
},
{
"cell_type": "markdown",
"source": [
"The notation `*mesh_y_bounds` unpacks the values from the tuple into separate values,\n",
"which is what `slice()` expects.\n",
"Again, we have a 2-D array, so xarray plots it using `pcolormesh()`.\n",
"This time we didn't do any calculations on the array we selected from the dataset,\n",
"so xarray can find the `long_name` attribute of the `tmask` variable to use for the colour bar label."
],
"metadata": {
"collapsed": false
},
"id": "30448be0b4738001"
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "<matplotlib.collections.QuadMesh at 0x778d7d7d71a0>"
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 2 Axes>",
"image/png": "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aJ+dsTRw6du3r9atW6fZs2dr3rx5SkhIUGZmpn7+8587jpk1a5ZOnTql1NRUff/997r++uuVk5Oj8PBwC3sOAIB/ad68uXr37q3c3FyNHDnSsT83N1fDhw93es6NN96o1157TT/88INat24t6WxmpEmTJurQocNF3/Oqq67Srl27lJubq88++0yGYejqq6/Wrbfeet5RnouxGYYvPxjbvLKyMkVGRmqQhquZLcTq7iAAsaYL3OHr9RYXu699of/e+O6VlVfr0i4HdPz48QaNYrj1Hv/5uxT/wuNq0jLM7XbsJ0/r2wf+16W+rl27VuPGjdPSpUvVv39/ZWdn64UXXtDevXsVHx+v2bNn69ChQ47ZvT/88IO6deumG264Qb/73e905MgRTZo0SUlJSXrhhRfc7rsZPKsIAAALWPF06DFjxujo0aOaN2+eiouLlZiYqA0bNjhqS4uLi1VUVOQ4vnXr1srNzdW0adPUp08ftW3bVqNHj9YTTzzR4Pd877339N5776m0tFR2u73Oaw0p8D0XgQsAAEEkNTVVqampTl9bvnx5vX1du3atM0nGFb/73e80b9489enTRzExMW6nh2ojcAFMqhkyJ2UEwGUBXawhLV26VMuXL9e4ceM81iaBCwAAFrAiVdTYKisrPb58iaXruAAAELSC4OnQkyZN0qpVqzzaJiMuAADAK06fPq3s7Gy9++676tGjh0JC6s7uzcjIcLlNAhfAQ1Jie1Lnggbz1WXoPXkPn9vWuZ/V2Xu5cj38v77M9p/NzPm+bdeuXbr22mslSXv27KnzmruFugQuAABYwWy6xw9SRZs2bfJ4m9S4AAAAv8GICwAAVgiCERdJ2rZtm1577TUVFRWpsrKyzmtvvvmmy+0RuACAhWrXZ1hd72KmVsSVcz1Rk+K/dS211HrCs9vn+7g1a9Zo/PjxSk5OVm5urpKTk/Xll1+qpKSkzvOSXEGqCAAAeMX8+fP1zDPP6O2331bz5s317LPPav/+/Ro9erTjadGuInABAMAChmF+83Vff/217rjjDklSaGioTpw4IZvNphkzZig7O9utNkkVAR7UkOmewPlYNUW6se7Thr6Pr04V97ggqHFp06aNysvLJUnt27fXnj171L17dx07dkwnT550q00CFwAA4BUDBw5Ubm6uunfvrtGjR+uhhx7S+++/r9zcXP34xz92q00CFwAArBAExblZWVk6ffq0JGn27NkKCQnRli1bNGrUKD3++ONutUngAgCABWzG2c3M+b6uTZs2jn83adJEs2bN0qxZs0y1SeACAEHInboWZzUnnqqPcbZ8vy9NFfeKIKhx8QZmFQEAAL/BiAsAAFYIghoXbyBwAQDACqSK3ELgAnhR7bw8a7rAFzTWsv6ebDsg61vgNgIXAACsEKAjLqNGjWrwsTxkEQAAfxGggUtkZKTj34ZhaN26dYqMjFSfPn0kSdu3b9exY8dcCnBqI3ABAAAe89JLLzn+/cgjj2j06NFaunSpmjZtKkmqrq5WamqqIiIi3GqfwAVoJNS7oLH4+/0VNDUtQTCr6MUXX9SWLVscQYskNW3aVDNnztSAAQP01FNPudwm67gAAGCBmpVzzWy+rqqqSvv376+3f//+/bLb7W61yYgLAADwivvuu0/333+/vvrqK91www2SpI8++khPPvmk7rvvPrfaJHABLOBseXOgRs194UrKJFDupaBJE0kBW5xb29NPP63o6Gg988wzKi4uliTFxMRo1qxZevjhh91q0+VU0b333qsPPvjArTcDAADBo+bBiocOHdKxY8d07NgxHTp0SLNmzapT9+JSm66eUF5eruTkZHXu3Fnz58/XoUOH3HpjAACCmU0ma1ys/gAuioiIcHsmUW0up4reeOMNHT16VCtXrtTy5cs1d+5c3XrrrZo4caKGDx+ukJAQ050CAAD+6brrrtN7772nSy+9VL169ZLNdv4Qa8eOHS6371aNS9u2bfXQQw/poYceUkFBgV588UWNGzdOrVu31i9+8Qulpqaqc+fO7jQNAAhCQVXbUiNAp0MPHz5coaGhkqQRI0Z4vH1TxbnFxcXKyclRTk6OmjZtqttvv1179+7V1VdfrUWLFmnGjBme6icAAIElQItz586dK+nsQnODBg1Sjx49dOmll3qsfZdrXM6cOaM33nhDd955p+Lj4/Xaa69pxowZKi4u1ooVK5STk6NXXnlF8+bN81gnAQCAf2natKlSUlJ07Ngxj7br8ohLTEyM7Ha77rnnHn388ce69tpr6x2TkpKiSy65xAPdAwAgQAXoiEtt3bt314EDB5SQkOCxNl0OXJ555hndfffdCgsLO+8xl156qQoLC011DACCXaCszXKuoKxnccLs6rf+sHLu73//e/3qV7/S//7v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6+zr2rWr8eijj1rUI/8wd+5co2fPnk5fs9vtRnR0tPHkk0869p0+fdqIjIw0li5d2kg99H2SjHXr1jl+bsh1O3bsmBESEmKsWbPGccyhQ4eMJk2aGO+8806j9d3XnHstDcMwJkyYYAwfPvy853AtnSstLTUkGfn5+YZhcF/CPwXsiEvN47vPfRz3hR7fjf/68ssvFRsbq4SEBP3sZz/TgQNnn75aWFiokpKSOtc1NDRUSUlJXNcLaMh12759u86cOVPnmNjYWCUmJnJtncjLy9Pll1+uLl266IEHHlBpaanjNa6lc8ePH5cktWnTRhL3JfxTwAYu7jy+G2ddf/31evnll7Vx40a98MILKikp0YABA3T06FHHteO6uqYh162kpETNmzfXpZdeet5jcNbQoUP16quv6v3339cf/vAHbdu2TbfccosqKiokcS2dMQxDM2fO1E033aTExERJ3JfwTwG/5L+rj+/G2T8KNbp3767+/fvryiuv1IoVKxwFkFxX97hz3bi29Y0ZM8bx78TERPXp00fx8fH6+9//rlGjRp33vGC+llOnTtWuXbu0ZcuWeq9xX8KfBOyIizuP74ZzrVq1Uvfu3fXll186ZhdxXV3TkOsWHR2tyspKff/99+c9Bs7FxMQoPj5eX375pSSu5bmmTZum9evXa9OmTerQoYNjP/cl/FHABi61H99dW25urgYMGGBRr/xTRUWF9u/fr5iYGCUkJCg6OrrOda2srFR+fj7X9QIact169+6tkJCQOscUFxdrz549XNuLOHr0qA4ePKiYmBhJXMsahmFo6tSpevPNN/X+++8rISGhzuvcl/BLlpUFN4I1a9YYISEhxrJly4x9+/YZaWlpRqtWrYxvvvnG6q75tIcfftjIy8szDhw4YHz00UfGnXfeaYSHhzuu25NPPmlERkYab775prF7927jnnvuMWJiYoyysjKLe26t8vJyo6CgwCgoKDAkGRkZGUZBQYHx7bffGobRsOs2efJko0OHDsa7775r7Nixw7jllluMnj17GlVVVVZ9LEtc6FqWl5cbDz/8sLF161ajsLDQ2LRpk9G/f3+jffv2XMtz/M///I8RGRlp5OXlGcXFxY7t5MmTjmO4L+FvAjpwMQzDeP755434+HijefPmxnXXXeeYBojzGzNmjBETE2OEhIQYsbGxxqhRo4y9e/c6Xrfb7cbcuXON6OhoIzQ01Lj55puN3bt3W9hj37Bp0yZDUr1twoQJhmE07LqdOnXKmDp1qtGmTRujRYsWxp133mkUFRVZ8GmsdaFrefLkSSM5Odm47LLLjJCQEKNjx47GhAkT6l0nrqXh9BpKMl566SXHMdyX8Dc2wzCMxh7lAQAAcEfA1rgAAIDAQ+ACAAD8BoELAADwGwQuAADAbxC4AAAAv0HgAgAA/AaBCwAA8BsELgAAwG8QuAAAAL9B4AIAAPwGgQsQRP7f//t/io6O1vz58x37/u///k/NmzdXTk6OhT0DgIbhWUVAkNmwYYNGjBihrVu3qmvXrurVq5fuuOMOZWZmWt01ALgoAhcgCE2ZMkXvvvuu+vbtq507d2rbtm0KCwuzulsAcFEELkAQOnXqlBITE3Xw4EF98skn6tGjh9VdAoAGocYFCEIHDhzQ4cOHZbfb9e2331rdHQBoMEZcgCBTWVmpfv366dprr1XXrl2VkZGh3bt3KyoqyuquAcBFEbgAQebXv/61Xn/9de3cuVOtW7fW4MGDFR4errffftvqrgHARZEqAoJIXl6eMjMz9corrygiIkJNmjTRK6+8oi1btmjJkiVWdw8ALooRFwAA4DcYcQEAAH6DwAUAAPgNAhcAAOA3CFwAAIDfIHABAAB+g8AFAAD4DQIXAADgNwhcAACA3yBwAQAAfoPABQAA+A0CFwAA4DcIXAAAgN/4/2a2TaitIoFPAAAAAElFTkSuQmCC"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mesh_1702.tmask.isel(t=0, z=0, y=slice(*mesh_y_bounds), x=slice(*mesh_x_bounds)).plot()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:06.379131885Z",
"start_time": "2024-02-15T21:49:06.174265256Z"
}
},
"id": "36c6a6e75f7c6082",
"execution_count": 8
},
{
"cell_type": "markdown",
"source": [
"Build tuples for the region of interest corners using values from the y and x bounds tuples: "
],
"metadata": {
"collapsed": false
},
"id": "9f5630f0f227d116"
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "((450, 110), (450, 350), (550, 110), (550, 350))"
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ll = mesh_y_bounds[0], mesh_x_bounds[0]\n",
"lr = mesh_y_bounds[0], mesh_x_bounds[1]\n",
"ul = mesh_y_bounds[1], mesh_x_bounds[0]\n",
"ur = mesh_y_bounds[1], mesh_x_bounds[1]\n",
"\n",
"ll, lr, ul, ur"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:06.379738933Z",
"start_time": "2024-02-15T21:49:06.337582346Z"
}
},
"id": "be8e6162b4465749",
"execution_count": 9
},
{
"cell_type": "markdown",
"source": [
"Tuple unpacking (e.g. `*ll`) lets us do array indexing to access the lon and lat of a corner.\n",
"`mesh_1702.nav_lon[*ll]` returns a 1-element array, so we have to use `.item()` to see its value."
],
"metadata": {
"collapsed": false
},
"id": "31b41288f52df05f"
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "(-124.32567596435547, 48.845733642578125)"
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mesh_1702.nav_lon[*ll].item(), mesh_1702.nav_lat[*ll].item()"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:06.432917031Z",
"start_time": "2024-02-15T21:49:06.340078365Z"
}
},
"id": "82fb974e602e5591",
"execution_count": 10
},
{
"cell_type": "markdown",
"source": [
"Now we can use the newly updated `geo_tools.find_closest_model_point()` to find the y/x grid indices\n",
"of the point on the HRDPS grid that is closest to the lon/lat of a corner.\n",
"We don't need to use `.item()` here because `geo_tools.find_closest_model_point()` knows how to work \n",
"with arrays, even if they contain only 1 element."
],
"metadata": {
"collapsed": false
},
"id": "32c8313166c3f54d"
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "(111, 77)"
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ll_j, ll_i = geo_tools.find_closest_model_point(\n",
" mesh_1702.nav_lon[*ll], mesh_1702.nav_lat[*ll],\n",
" con_25_ds.nav_lon-360, con_25_ds.nav_lat,\n",
" grid=\"continental2.5\"\n",
")\n",
"\n",
"ll_j, ll_i"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:06.435801255Z",
"start_time": "2024-02-15T21:49:06.367232336Z"
}
},
"id": "b273323e889445d6",
"execution_count": 11
},
{
"cell_type": "markdown",
"source": [
"`mesh_mask201702.nc` and `mesh_mask202108.nc` are mostly\n",
"(maybe completely) the same in the surface y-x plane,\n",
"but they definitely differ in places in the z dimension."
],
"metadata": {
"collapsed": false
},
"id": "7d30a95cbaaf58e2"
},
{
"cell_type": "code",
"outputs": [],
"source": [
"mesh_2108 = xarray.open_dataset(grid_repo / \"mesh_mask202108.nc\")"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:06.436763120Z",
"start_time": "2024-02-15T21:49:06.409218790Z"
}
},
"id": "68b6d20af40246ce",
"execution_count": 12
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "(111, 77)"
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ll_j, ll_i = geo_tools.find_closest_model_point(\n",
" mesh_2108.nav_lon[*ll].item(), mesh_2108.nav_lat[*ll].item(),\n",
" con_25_ds.nav_lon-360, con_25_ds.nav_lat,\n",
" grid=\"continental2.5\"\n",
")\n",
"\n",
"ll_j, ll_i"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:06.471505733Z",
"start_time": "2024-02-15T21:49:06.422879122Z"
}
},
"id": "caf9f05e0464976d",
"execution_count": 13
},
{
"cell_type": "markdown",
"source": [
"As a check, here's the lower-left grid indices of the pre-Feb-2023 HRDPS\n",
"2.5 km resolution west domain polar stereographic gird:"
],
"metadata": {
"collapsed": false
},
"id": "354f60db4f210fa1"
},
{
"cell_type": "code",
"outputs": [],
"source": [
"ops_path = Path(\"/results/forcing/atmospheric/GEM2.5/operational/ops_y2015m03d01.nc\")\n",
"\n",
"ops_ds = xarray.open_dataset(ops_path)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:07.200113055Z",
"start_time": "2024-02-15T21:49:06.437203419Z"
}
},
"id": "815366d9c2c30f18",
"execution_count": 14
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "(130, 118)"
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ll_j, ll_i = geo_tools.find_closest_model_point(\n",
" mesh_2108.nav_lon[*ll], mesh_2108.nav_lat[*ll],\n",
" ops_ds.nav_lon-360, ops_ds.nav_lat,\n",
" grid=\"GEM2.5\"\n",
")\n",
"\n",
"ll_j, ll_i"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:07.397415840Z",
"start_time": "2024-02-15T21:49:07.203205147Z"
}
},
"id": "1c7aa574e8bbd60d",
"execution_count": 15
},
{
"cell_type": "code",
"outputs": [],
"source": [],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-02-15T21:49:07.398534286Z",
"start_time": "2024-02-15T21:49:07.396505825Z"
}
},
"id": "9248a1ac3214de2c",
"execution_count": 15
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment