{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "cKnWTixv0F-d" }, "source": [ "# STOFS 3D" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/asascience-open/xarray-subset-grid/blob/main/docs/examples/stofs_3d.ipynb)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Install required libraries\n", "# !pip install -q xarray_subset_grid@git+https://github.com/asascience-open/xarray-subset-grid.git\n", "# !pip install -q s3fs cftime xarray cf-xarray fsspec dask h5netcdf" ] }, { "cell_type": "markdown", "metadata": { "id": "Fw4rqcNkE3CM" }, "source": [ "We use the Stofs-3d-Atl Out2d file to compute a subset selector and then reuse it to subset other files like temperature, salinity, etc. \n", "In this example, we reuse it for temperature." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 576 }, "id": "dOBQPslc0F-f", "outputId": "90e88961-67f5-48cf-ec1d-dd7aed9f390a" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 4GB\n",
       "Dimensions:                  (time: 24, one: 1, nSCHISM_hgrid_node: 2973769,\n",
       "                              nSCHISM_hgrid_face: 5728020,\n",
       "                              nSCHISM_hgrid_edge: 8701944,\n",
       "                              nMaxSCHISM_hgrid_face_nodes: 4, two: 2)\n",
       "Coordinates:\n",
       "  * time                     (time) datetime64[ns] 192B 2024-07-17T01:00:00 ....\n",
       "    SCHISM_hgrid_node_x      (nSCHISM_hgrid_node) float64 24MB dask.array<chunksize=(495629,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_node_y      (nSCHISM_hgrid_node) float64 24MB dask.array<chunksize=(495629,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_x      (nSCHISM_hgrid_face) float64 46MB dask.array<chunksize=(520730,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_y      (nSCHISM_hgrid_face) float64 46MB dask.array<chunksize=(520730,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_edge_x      (nSCHISM_hgrid_edge) float64 70MB dask.array<chunksize=(511880,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_edge_y      (nSCHISM_hgrid_edge) float64 70MB dask.array<chunksize=(511880,), meta=np.ndarray>\n",
       "Dimensions without coordinates: one, nSCHISM_hgrid_node, nSCHISM_hgrid_face,\n",
       "                                nSCHISM_hgrid_edge,\n",
       "                                nMaxSCHISM_hgrid_face_nodes, two\n",
       "Data variables: (12/17)\n",
       "    minimum_depth            (one) float64 8B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    SCHISM_hgrid             (one) |S1 1B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    crs                      (one) int32 4B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    depth                    (nSCHISM_hgrid_node) float32 12MB dask.array<chunksize=(991257,), meta=np.ndarray>\n",
       "    bottom_index_node        (nSCHISM_hgrid_node) int32 12MB dask.array<chunksize=(991257,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_nodes  (nSCHISM_hgrid_face, nMaxSCHISM_hgrid_face_nodes) float64 183MB dask.array<chunksize=(1145604, 1), meta=np.ndarray>\n",
       "    ...                       ...\n",
       "    windSpeedX               (time, nSCHISM_hgrid_node) float32 285MB dask.array<chunksize=(1, 991257), meta=np.ndarray>\n",
       "    windSpeedY               (time, nSCHISM_hgrid_node) float32 285MB dask.array<chunksize=(1, 991257), meta=np.ndarray>\n",
       "    windStressX              (time, nSCHISM_hgrid_node) float32 285MB dask.array<chunksize=(1, 991257), meta=np.ndarray>\n",
       "    windStressY              (time, nSCHISM_hgrid_node) float32 285MB dask.array<chunksize=(1, 991257), meta=np.ndarray>\n",
       "    dryFlagElement           (time, nSCHISM_hgrid_face) float32 550MB dask.array<chunksize=(1, 954670), meta=np.ndarray>\n",
       "    dryFlagSide              (time, nSCHISM_hgrid_edge) float32 835MB dask.array<chunksize=(1, 966883), meta=np.ndarray>\n",
       "Attributes:\n",
       "    NCO:      netCDF Operators version 4.9.7 (Homepage = http://nco.sf.net, C...\n",
       "    history:  Wed Jul 17 02:17:50 2024: ncatted -a units,windSpeedY,o,c,m/s -...
" ], "text/plain": [ " Size: 4GB\n", "Dimensions: (time: 24, one: 1, nSCHISM_hgrid_node: 2973769,\n", " nSCHISM_hgrid_face: 5728020,\n", " nSCHISM_hgrid_edge: 8701944,\n", " nMaxSCHISM_hgrid_face_nodes: 4, two: 2)\n", "Coordinates:\n", " * time (time) datetime64[ns] 192B 2024-07-17T01:00:00 ....\n", " SCHISM_hgrid_node_x (nSCHISM_hgrid_node) float64 24MB dask.array\n", " SCHISM_hgrid_node_y (nSCHISM_hgrid_node) float64 24MB dask.array\n", " SCHISM_hgrid_face_x (nSCHISM_hgrid_face) float64 46MB dask.array\n", " SCHISM_hgrid_face_y (nSCHISM_hgrid_face) float64 46MB dask.array\n", " SCHISM_hgrid_edge_x (nSCHISM_hgrid_edge) float64 70MB dask.array\n", " SCHISM_hgrid_edge_y (nSCHISM_hgrid_edge) float64 70MB dask.array\n", "Dimensions without coordinates: one, nSCHISM_hgrid_node, nSCHISM_hgrid_face,\n", " nSCHISM_hgrid_edge,\n", " nMaxSCHISM_hgrid_face_nodes, two\n", "Data variables: (12/17)\n", " minimum_depth (one) float64 8B dask.array\n", " SCHISM_hgrid (one) |S1 1B dask.array\n", " crs (one) int32 4B dask.array\n", " depth (nSCHISM_hgrid_node) float32 12MB dask.array\n", " bottom_index_node (nSCHISM_hgrid_node) int32 12MB dask.array\n", " SCHISM_hgrid_face_nodes (nSCHISM_hgrid_face, nMaxSCHISM_hgrid_face_nodes) float64 183MB dask.array\n", " ... ...\n", " windSpeedX (time, nSCHISM_hgrid_node) float32 285MB dask.array\n", " windSpeedY (time, nSCHISM_hgrid_node) float32 285MB dask.array\n", " windStressX (time, nSCHISM_hgrid_node) float32 285MB dask.array\n", " windStressY (time, nSCHISM_hgrid_node) float32 285MB dask.array\n", " dryFlagElement (time, nSCHISM_hgrid_face) float32 550MB dask.array\n", " dryFlagSide (time, nSCHISM_hgrid_edge) float32 835MB dask.array\n", "Attributes:\n", " NCO: netCDF Operators version 4.9.7 (Homepage = http://nco.sf.net, C...\n", " history: Wed Jul 17 02:17:50 2024: ncatted -a units,windSpeedY,o,c,m/s -..." ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import cf_xarray #noqa\n", "import fsspec\n", "import xarray as xr\n", "\n", "import xarray_subset_grid\n", "\n", "# Open the dataset from NODD s3 bucket directly\n", "fs = fsspec.filesystem(\"s3\", anon=True)\n", "ds = xr.open_dataset(\n", " fs.open(\n", " \"s3://noaa-nos-stofs3d-pds/STOFS-3D-Atl-shadow-VIMS/20240716/out2d_20240717.nc\"\n", " ),\n", " chunks={},\n", " engine='h5netcdf',\n", " drop_variables=['nvel']\n", ")\n", "\n", "ds" ] }, { "cell_type": "markdown", "metadata": { "id": "anjPHNNM0F-h" }, "source": [ "Fix any inconsistencies with regards to the dataset's UGRID specifications. (Make the dataset CF compliant)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "id": "Wwf2y4mP0F-i" }, "outputs": [], "source": [ "ds = xarray_subset_grid.grids.ugrid.assign_ugrid_topology(ds)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "id": "VmXKT-Ey0F-j", "outputId": "1aa05ec2-a985-443f-e15e-2d07b93395d1" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'Dataset size: 4.293908965 Gb'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f\"Dataset size: {ds.nbytes * 1.0e-9} Gb\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example BBOX\n", "\n", "Drawn with https://geojson.io\n", "\n", "![image.png](example_data/image.png)" ] }, { "cell_type": "markdown", "metadata": { "id": "Or4QgmoD0F-k" }, "source": [ "Compute the subset selection ahead of time, because STOFS doesn't include the grid in all of its output files. \n", "Specify the selector name for easier accessibility. (optional)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "7uF3xT9U0F-l", "outputId": "f9d50e0b-3b58-4ce7-b3f8-dde54b35f3e5" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 6.54 s, sys: 829 ms, total: 7.37 s\n", "Wall time: 11.8 s\n" ] }, { "data": { "text/plain": [ " - northeastUSA" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "bbox = (-70, 40, -60, 50)\n", "name = 'northeastUSA'\n", "\n", "bbox_selector = ds.xsg.grid.compute_bbox_subset_selector(ds, bbox, name)\n", "bbox_selector" ] }, { "cell_type": "markdown", "metadata": { "id": "A4Iveume0F-m" }, "source": [ "Then we can slice this dataset to make sure it works. This is FAST because the hard part is already done" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 611 }, "id": "fMZWy3zp0F-n", "outputId": "85e957cf-1f88-48dd-f308-fc573f0351c5" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 301 ms, sys: 2.83 ms, total: 304 ms\n", "Wall time: 301 ms\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 1GB\n",
       "Dimensions:                  (time: 24, one: 1, nSCHISM_hgrid_node: 142475,\n",
       "                              nSCHISM_hgrid_face: 274187,\n",
       "                              nSCHISM_hgrid_edge: 8701944,\n",
       "                              nMaxSCHISM_hgrid_face_nodes: 4, two: 2)\n",
       "Coordinates:\n",
       "  * time                     (time) datetime64[ns] 192B 2024-07-17T01:00:00 ....\n",
       "    SCHISM_hgrid_node_x      (nSCHISM_hgrid_node) float64 1MB dask.array<chunksize=(7165,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_node_y      (nSCHISM_hgrid_node) float64 1MB dask.array<chunksize=(7165,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_x      (nSCHISM_hgrid_face) float64 2MB dask.array<chunksize=(166039,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_y      (nSCHISM_hgrid_face) float64 2MB dask.array<chunksize=(166039,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_edge_x      (nSCHISM_hgrid_edge) float64 70MB dask.array<chunksize=(511880,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_edge_y      (nSCHISM_hgrid_edge) float64 70MB dask.array<chunksize=(511880,), meta=np.ndarray>\n",
       "Dimensions without coordinates: one, nSCHISM_hgrid_node, nSCHISM_hgrid_face,\n",
       "                                nSCHISM_hgrid_edge,\n",
       "                                nMaxSCHISM_hgrid_face_nodes, two\n",
       "Data variables: (12/17)\n",
       "    minimum_depth            (one) float64 8B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    SCHISM_hgrid             (one) |S1 1B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    crs                      (one) int32 4B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    depth                    (nSCHISM_hgrid_node) float32 570kB dask.array<chunksize=(142475,), meta=np.ndarray>\n",
       "    bottom_index_node        (nSCHISM_hgrid_node) int32 570kB dask.array<chunksize=(142475,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_nodes  (nSCHISM_hgrid_face, nMaxSCHISM_hgrid_face_nodes) float64 9MB dask.array<chunksize=(265743, 1), meta=np.ndarray>\n",
       "    ...                       ...\n",
       "    windSpeedX               (time, nSCHISM_hgrid_node) float32 14MB dask.array<chunksize=(1, 142475), meta=np.ndarray>\n",
       "    windSpeedY               (time, nSCHISM_hgrid_node) float32 14MB dask.array<chunksize=(1, 142475), meta=np.ndarray>\n",
       "    windStressX              (time, nSCHISM_hgrid_node) float32 14MB dask.array<chunksize=(1, 142475), meta=np.ndarray>\n",
       "    windStressY              (time, nSCHISM_hgrid_node) float32 14MB dask.array<chunksize=(1, 142475), meta=np.ndarray>\n",
       "    dryFlagElement           (time, nSCHISM_hgrid_face) float32 26MB dask.array<chunksize=(1, 253878), meta=np.ndarray>\n",
       "    dryFlagSide              (time, nSCHISM_hgrid_edge) float32 835MB dask.array<chunksize=(1, 966883), meta=np.ndarray>\n",
       "Attributes:\n",
       "    NCO:      netCDF Operators version 4.9.7 (Homepage = http://nco.sf.net, C...\n",
       "    history:  Wed Jul 17 02:17:50 2024: ncatted -a units,windSpeedY,o,c,m/s -...
" ], "text/plain": [ " Size: 1GB\n", "Dimensions: (time: 24, one: 1, nSCHISM_hgrid_node: 142475,\n", " nSCHISM_hgrid_face: 274187,\n", " nSCHISM_hgrid_edge: 8701944,\n", " nMaxSCHISM_hgrid_face_nodes: 4, two: 2)\n", "Coordinates:\n", " * time (time) datetime64[ns] 192B 2024-07-17T01:00:00 ....\n", " SCHISM_hgrid_node_x (nSCHISM_hgrid_node) float64 1MB dask.array\n", " SCHISM_hgrid_node_y (nSCHISM_hgrid_node) float64 1MB dask.array\n", " SCHISM_hgrid_face_x (nSCHISM_hgrid_face) float64 2MB dask.array\n", " SCHISM_hgrid_face_y (nSCHISM_hgrid_face) float64 2MB dask.array\n", " SCHISM_hgrid_edge_x (nSCHISM_hgrid_edge) float64 70MB dask.array\n", " SCHISM_hgrid_edge_y (nSCHISM_hgrid_edge) float64 70MB dask.array\n", "Dimensions without coordinates: one, nSCHISM_hgrid_node, nSCHISM_hgrid_face,\n", " nSCHISM_hgrid_edge,\n", " nMaxSCHISM_hgrid_face_nodes, two\n", "Data variables: (12/17)\n", " minimum_depth (one) float64 8B dask.array\n", " SCHISM_hgrid (one) |S1 1B dask.array\n", " crs (one) int32 4B dask.array\n", " depth (nSCHISM_hgrid_node) float32 570kB dask.array\n", " bottom_index_node (nSCHISM_hgrid_node) int32 570kB dask.array\n", " SCHISM_hgrid_face_nodes (nSCHISM_hgrid_face, nMaxSCHISM_hgrid_face_nodes) float64 9MB dask.array\n", " ... ...\n", " windSpeedX (time, nSCHISM_hgrid_node) float32 14MB dask.array\n", " windSpeedY (time, nSCHISM_hgrid_node) float32 14MB dask.array\n", " windStressX (time, nSCHISM_hgrid_node) float32 14MB dask.array\n", " windStressY (time, nSCHISM_hgrid_node) float32 14MB dask.array\n", " dryFlagElement (time, nSCHISM_hgrid_face) float32 26MB dask.array\n", " dryFlagSide (time, nSCHISM_hgrid_edge) float32 835MB dask.array\n", "Attributes:\n", " NCO: netCDF Operators version 4.9.7 (Homepage = http://nco.sf.net, C...\n", " history: Wed Jul 17 02:17:50 2024: ncatted -a units,windSpeedY,o,c,m/s -..." ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "ds_subset_control = bbox_selector.select(ds)\n", "ds_subset_control" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "id": "mnGd_r7a0F-n", "outputId": "627fc705-6b1c-4d1b-eef2-439ea802ace0" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'Dataset size: 1.2661721650000002 Gb'" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f\"Dataset size: {ds_subset_control.nbytes * 1.0e-9} Gb\"" ] }, { "cell_type": "markdown", "metadata": { "id": "Tmd9BgNc0F-o" }, "source": [ "We can save the selector to disk. (as a pickle file) \n", "Use the `save_to_bytes` function to return the selector as a bytes object. \n", "To get a unique filename, you can use the `get_hashname` function." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "id": "QgtvWOM40F-o", "outputId": "5cc6003c-6e46-436f-8a64-8b17a4af39df" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'northeastUSA_bb3d126e.pkl'" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "selector_bytes = bbox_selector.save_to_bytes()\n", "filepath = bbox_selector.get_hashname()\n", "\n", "with open(filepath, 'wb') as f:\n", " f.write(selector_bytes)" ] }, { "cell_type": "markdown", "metadata": { "id": "4pwdYVPJFQwZ" }, "source": [ "Open a selector using a bytes object.\n", "This retains the subclass of the selector (i.e, UGridSelector, SGridSelector, etc)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "2Qpfhqez190z", "outputId": "f9c3fc0d-8c65-4b4c-a58e-3e5fdc503236" }, "outputs": [ { "data": { "text/plain": [ " - northeastUSA" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from xarray_subset_grid import Selector\n", "\n", "selector_bytes = open(filepath, 'rb').read()\n", "\n", "loaded_bbox_selector = Selector(selector_bytes)\n", "\n", "loaded_bbox_selector" ] }, { "cell_type": "markdown", "metadata": { "id": "TbaU-82Y1YN6" }, "source": [ "Test if both the selectors are same." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "VeinLqPr1bF5", "outputId": "1913721d-e39f-4a09-9a59-f83e4001769b" }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bbox_selector == loaded_bbox_selector" ] }, { "cell_type": "markdown", "metadata": { "id": "ebvSzaIE0F-o" }, "source": [ "Now we can load in a STOFS 3D - temperature file from a different day and subset it!" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 576 }, "id": "e1J5_Gxj0F-o", "outputId": "3c335e74-a57c-4689-a00e-fd23b011bde6" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 4GB\n",
       "Dimensions:                  (time: 24, one: 1, nSCHISM_hgrid_node: 2973769,\n",
       "                              nSCHISM_hgrid_face: 5728020,\n",
       "                              nSCHISM_hgrid_edge: 8701944,\n",
       "                              nMaxSCHISM_hgrid_face_nodes: 4, two: 2)\n",
       "Coordinates:\n",
       "  * time                     (time) datetime64[ns] 192B 2024-07-17T01:00:00 ....\n",
       "    SCHISM_hgrid_node_x      (nSCHISM_hgrid_node) float64 24MB dask.array<chunksize=(495629,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_node_y      (nSCHISM_hgrid_node) float64 24MB dask.array<chunksize=(495629,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_x      (nSCHISM_hgrid_face) float64 46MB dask.array<chunksize=(520730,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_y      (nSCHISM_hgrid_face) float64 46MB dask.array<chunksize=(520730,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_edge_x      (nSCHISM_hgrid_edge) float64 70MB dask.array<chunksize=(511880,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_edge_y      (nSCHISM_hgrid_edge) float64 70MB dask.array<chunksize=(511880,), meta=np.ndarray>\n",
       "Dimensions without coordinates: one, nSCHISM_hgrid_node, nSCHISM_hgrid_face,\n",
       "                                nSCHISM_hgrid_edge,\n",
       "                                nMaxSCHISM_hgrid_face_nodes, two\n",
       "Data variables: (12/17)\n",
       "    minimum_depth            (one) float64 8B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    SCHISM_hgrid             (one) |S1 1B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    crs                      (one) int32 4B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    depth                    (nSCHISM_hgrid_node) float32 12MB dask.array<chunksize=(991257,), meta=np.ndarray>\n",
       "    bottom_index_node        (nSCHISM_hgrid_node) int32 12MB dask.array<chunksize=(991257,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_nodes  (nSCHISM_hgrid_face, nMaxSCHISM_hgrid_face_nodes) float64 183MB dask.array<chunksize=(1145604, 1), meta=np.ndarray>\n",
       "    ...                       ...\n",
       "    windSpeedX               (time, nSCHISM_hgrid_node) float32 285MB dask.array<chunksize=(1, 991257), meta=np.ndarray>\n",
       "    windSpeedY               (time, nSCHISM_hgrid_node) float32 285MB dask.array<chunksize=(1, 991257), meta=np.ndarray>\n",
       "    windStressX              (time, nSCHISM_hgrid_node) float32 285MB dask.array<chunksize=(1, 991257), meta=np.ndarray>\n",
       "    windStressY              (time, nSCHISM_hgrid_node) float32 285MB dask.array<chunksize=(1, 991257), meta=np.ndarray>\n",
       "    dryFlagElement           (time, nSCHISM_hgrid_face) float32 550MB dask.array<chunksize=(1, 954670), meta=np.ndarray>\n",
       "    dryFlagSide              (time, nSCHISM_hgrid_edge) float32 835MB dask.array<chunksize=(1, 966883), meta=np.ndarray>\n",
       "Attributes:\n",
       "    NCO:      netCDF Operators version 4.9.7 (Homepage = http://nco.sf.net, C...\n",
       "    history:  Wed Jul 17 02:17:50 2024: ncatted -a units,windSpeedY,o,c,m/s -...
" ], "text/plain": [ " Size: 4GB\n", "Dimensions: (time: 24, one: 1, nSCHISM_hgrid_node: 2973769,\n", " nSCHISM_hgrid_face: 5728020,\n", " nSCHISM_hgrid_edge: 8701944,\n", " nMaxSCHISM_hgrid_face_nodes: 4, two: 2)\n", "Coordinates:\n", " * time (time) datetime64[ns] 192B 2024-07-17T01:00:00 ....\n", " SCHISM_hgrid_node_x (nSCHISM_hgrid_node) float64 24MB dask.array\n", " SCHISM_hgrid_node_y (nSCHISM_hgrid_node) float64 24MB dask.array\n", " SCHISM_hgrid_face_x (nSCHISM_hgrid_face) float64 46MB dask.array\n", " SCHISM_hgrid_face_y (nSCHISM_hgrid_face) float64 46MB dask.array\n", " SCHISM_hgrid_edge_x (nSCHISM_hgrid_edge) float64 70MB dask.array\n", " SCHISM_hgrid_edge_y (nSCHISM_hgrid_edge) float64 70MB dask.array\n", "Dimensions without coordinates: one, nSCHISM_hgrid_node, nSCHISM_hgrid_face,\n", " nSCHISM_hgrid_edge,\n", " nMaxSCHISM_hgrid_face_nodes, two\n", "Data variables: (12/17)\n", " minimum_depth (one) float64 8B dask.array\n", " SCHISM_hgrid (one) |S1 1B dask.array\n", " crs (one) int32 4B dask.array\n", " depth (nSCHISM_hgrid_node) float32 12MB dask.array\n", " bottom_index_node (nSCHISM_hgrid_node) int32 12MB dask.array\n", " SCHISM_hgrid_face_nodes (nSCHISM_hgrid_face, nMaxSCHISM_hgrid_face_nodes) float64 183MB dask.array\n", " ... ...\n", " windSpeedX (time, nSCHISM_hgrid_node) float32 285MB dask.array\n", " windSpeedY (time, nSCHISM_hgrid_node) float32 285MB dask.array\n", " windStressX (time, nSCHISM_hgrid_node) float32 285MB dask.array\n", " windStressY (time, nSCHISM_hgrid_node) float32 285MB dask.array\n", " dryFlagElement (time, nSCHISM_hgrid_face) float32 550MB dask.array\n", " dryFlagSide (time, nSCHISM_hgrid_edge) float32 835MB dask.array\n", "Attributes:\n", " NCO: netCDF Operators version 4.9.7 (Homepage = http://nco.sf.net, C...\n", " history: Wed Jul 17 02:17:50 2024: ncatted -a units,windSpeedY,o,c,m/s -..." ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds_temp = xr.open_dataset(\n", " fs.open(\n", " \"s3://noaa-nos-stofs3d-pds/STOFS-3D-Atl-shadow-VIMS/20240728/temperature_20240728.nc\"\n", " ),\n", " chunks={},\n", " drop_variables=['nvel']\n", ")\n", "\n", "ds_temp = xarray_subset_grid.grids.ugrid.assign_ugrid_topology(ds_temp)\n", "ds" ] }, { "cell_type": "markdown", "metadata": { "id": "w89jrnv90F-p" }, "source": [ "And then slice it with the same selector!" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 692 }, "id": "lZbYtR8o0F-p", "outputId": "7bd6f508-4433-495b-9f9a-3badaa56359e" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 171 ms, sys: 129 µs, total: 172 ms\n", "Wall time: 172 ms\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 965MB\n",
       "Dimensions:                  (time: 24, one: 1, nSCHISM_hgrid_node: 142475,\n",
       "                              nSCHISM_hgrid_face: 274187,\n",
       "                              nSCHISM_hgrid_edge: 8701944,\n",
       "                              nMaxSCHISM_hgrid_face_nodes: 4, two: 2,\n",
       "                              nSCHISM_vgrid_layers: 49)\n",
       "Coordinates:\n",
       "  * time                     (time) datetime64[ns] 192B 2024-07-28T01:00:00 ....\n",
       "    SCHISM_hgrid_node_x      (nSCHISM_hgrid_node) float64 1MB dask.array<chunksize=(7165,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_node_y      (nSCHISM_hgrid_node) float64 1MB dask.array<chunksize=(7165,), meta=np.ndarray>\n",
       "Dimensions without coordinates: one, nSCHISM_hgrid_node, nSCHISM_hgrid_face,\n",
       "                                nSCHISM_hgrid_edge,\n",
       "                                nMaxSCHISM_hgrid_face_nodes, two,\n",
       "                                nSCHISM_vgrid_layers\n",
       "Data variables:\n",
       "    minimum_depth            (one) float64 8B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    SCHISM_hgrid             (one) |S1 1B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    crs                      (one) int32 4B dask.array<chunksize=(1,), meta=np.ndarray>\n",
       "    depth                    (nSCHISM_hgrid_node) float32 570kB dask.array<chunksize=(142475,), meta=np.ndarray>\n",
       "    bottom_index_node        (nSCHISM_hgrid_node) int32 570kB dask.array<chunksize=(142475,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_x      (nSCHISM_hgrid_face) float64 2MB dask.array<chunksize=(166039,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_y      (nSCHISM_hgrid_face) float64 2MB dask.array<chunksize=(166039,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_edge_x      (nSCHISM_hgrid_edge) float64 70MB dask.array<chunksize=(511880,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_edge_y      (nSCHISM_hgrid_edge) float64 70MB dask.array<chunksize=(511880,), meta=np.ndarray>\n",
       "    SCHISM_hgrid_face_nodes  (nSCHISM_hgrid_face, nMaxSCHISM_hgrid_face_nodes) float64 9MB dask.array<chunksize=(265743, 1), meta=np.ndarray>\n",
       "    SCHISM_hgrid_edge_nodes  (nSCHISM_hgrid_edge, two) float64 139MB dask.array<chunksize=(1740389, 1), meta=np.ndarray>\n",
       "    temperature              (time, nSCHISM_hgrid_node, nSCHISM_vgrid_layers) float32 670MB dask.array<chunksize=(1, 142475, 49), meta=np.ndarray>\n",
       "Attributes:\n",
       "    NCO:      netCDF Operators version 4.9.7 (Homepage = http://nco.sf.net, C...\n",
       "    history:  Mon Jul 29 02:42:02 2024: ncatted -a units,temperature,o,c,Degr...
" ], "text/plain": [ " Size: 965MB\n", "Dimensions: (time: 24, one: 1, nSCHISM_hgrid_node: 142475,\n", " nSCHISM_hgrid_face: 274187,\n", " nSCHISM_hgrid_edge: 8701944,\n", " nMaxSCHISM_hgrid_face_nodes: 4, two: 2,\n", " nSCHISM_vgrid_layers: 49)\n", "Coordinates:\n", " * time (time) datetime64[ns] 192B 2024-07-28T01:00:00 ....\n", " SCHISM_hgrid_node_x (nSCHISM_hgrid_node) float64 1MB dask.array\n", " SCHISM_hgrid_node_y (nSCHISM_hgrid_node) float64 1MB dask.array\n", "Dimensions without coordinates: one, nSCHISM_hgrid_node, nSCHISM_hgrid_face,\n", " nSCHISM_hgrid_edge,\n", " nMaxSCHISM_hgrid_face_nodes, two,\n", " nSCHISM_vgrid_layers\n", "Data variables:\n", " minimum_depth (one) float64 8B dask.array\n", " SCHISM_hgrid (one) |S1 1B dask.array\n", " crs (one) int32 4B dask.array\n", " depth (nSCHISM_hgrid_node) float32 570kB dask.array\n", " bottom_index_node (nSCHISM_hgrid_node) int32 570kB dask.array\n", " SCHISM_hgrid_face_x (nSCHISM_hgrid_face) float64 2MB dask.array\n", " SCHISM_hgrid_face_y (nSCHISM_hgrid_face) float64 2MB dask.array\n", " SCHISM_hgrid_edge_x (nSCHISM_hgrid_edge) float64 70MB dask.array\n", " SCHISM_hgrid_edge_y (nSCHISM_hgrid_edge) float64 70MB dask.array\n", " SCHISM_hgrid_face_nodes (nSCHISM_hgrid_face, nMaxSCHISM_hgrid_face_nodes) float64 9MB dask.array\n", " SCHISM_hgrid_edge_nodes (nSCHISM_hgrid_edge, two) float64 139MB dask.array\n", " temperature (time, nSCHISM_hgrid_node, nSCHISM_vgrid_layers) float32 670MB dask.array\n", "Attributes:\n", " NCO: netCDF Operators version 4.9.7 (Homepage = http://nco.sf.net, C...\n", " history: Mon Jul 29 02:42:02 2024: ncatted -a units,temperature,o,c,Degr..." ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "ds_temp_subset = loaded_bbox_selector.select(ds_temp)\n", "ds_temp_subset" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 489 }, "id": "Kn8H9L-82vDi", "outputId": "58cac6b1-7692-41e8-ac91-c06066a27dab" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAHHCAYAAACiOWx7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC4NklEQVR4nOydd3hU1dbG35lJJr1SEiItYKQXpRdBLlxCF8GCICJw5coNEQi99y5SRInYsMBF+bxwVRTFCIgQEVAEBKQLKgEUkpA27ZzvD25GhoS9TmZPS7J+z5NHc/bZ5ZyE2Strrf0unaqqKhiGYRiGYRghem8vgGEYhmEYpjTARhPDMAzDMIwG2GhiGIZhGIbRABtNDMMwDMMwGmCjiWEYhmEYRgNsNDEMwzAMw2iAjSaGYRiGYRgNsNHEMAzDMAyjATaaGIZhGIZhNMBGE1PqqVmzJp555hlvL4NhGIYp47DRxJQK9u3bh9mzZyMzM9PbS/EoBw4cwKhRo9CgQQOEhISgevXqePzxx3Hq1Kli7z9x4gS6deuG0NBQREdHY/Dgwbh27ZrDPSdPnsTEiRPRtGlThIWFoUqVKujZsycOHjxIrufvf/87dDodRo0apfkZFEXB0qVLER8fj8DAQDRu3Bj//ve/i9yn0+nu+vX3v/+dnKek7+qDDz5A69atERkZiQoVKqBjx47Ytm2bvb1mzZrCNRV+rV+/3t7no48+wgMPPIDAwEBUr14ds2bNgtVqdZj38uXLmDx5Mjp16oSwsDDodDrs2rVL28u8jTfeeAP16tVDYGAgEhIS8NJLLxV732+//YbHH38ckZGRCA8Px8MPP4xz585pnsdkMmHSpEmIi4tDUFAQWrVqhR07dhR77759+9C+fXsEBwcjNjYWzz//PHJyckr8bAzjs6gMUwpYtmyZCkA9f/58kbaCggLVbDZ7flEeoH///mpsbKyanJysvvbaa+q8efPUmJgYNSQkRD169KjDvZcuXVIrVqyo1q5dW121apW6YMECNSoqSm3SpIlqMpns940bN06NjIxUhw8frr766qvq0qVL1dq1a6sGg0HdsWPHXdfy4YcfqiEhISoANSkpSfMzTJ48WQWgPvvss+q6devUnj17qgDUf//73w73vfvuu0W+Ro8erQJQly5d6tJ3tXr1ahWA2rNnT3Xt2rXqihUr1CZNmqgA1A8//FBVVVXdsmWLw1qefPJJFYC6YsUKh+tnz55VVVVVP/30U1Wn06mdOnVS161bpyYnJ6t6vV597rnnHObeuXOnCkBNSEhQ27RpowJQd+7cqfl9qqqqpqamqgDU/v37q+vWrVMHDx6sAlAXL17scN/NmzfVhIQEtXLlyuqSJUvUF198Ua1WrZpatWpV9Y8//tA014ABA1Q/Pz91/Pjx6quvvqq2adNG9fPzU/fs2eNw3w8//KAGBgaq999/v7p27Vp12rRpakBAgNqtW7cSPRvD+DJsNDGlApHRVJbZu3evg8Gjqqp66tQpNSAgQB00aJDD9ZEjR6pBQUHqL7/8Yr+2Y8cOFYD66quv2q8dPHhQvXnzpkPfP/74Q61UqZLarl27YteRn5+v1qxZU507d26JjKZff/1V9ff3d7hfURT1wQcfVKtWraparVZh/+HDh6s6nU69dOkSOVdJ3lVCQoLaokULVVEU+7WsrCw1NDRU7dOnT7HjU7+D9evXV5s0aaJaLBb7tWnTpqk6nU49ceKE/Vp2drb6559/qqqqqps3by6x0ZSXl6dWqFBB7dmzp8P1QYMGqSEhIer169ft15YsWaICUL/77jv7tRMnTqgGg0GdMmUKOdf+/ftVAOqyZcvs1/Lz89XatWurbdq0cbi3e/fuapUqVdSsrCz7tddee00FoH7++eean49hfBk2mhifZ9asWSqAIl+Fm1eNGjXUIUOG2O9/6623VADqnj171OTkZLVixYpqRESEOmLECNVkMqk3btxQBw8erEZGRqqRkZHqhAkTHDZPVVVVm82mrlixQq1fv74aEBCgVq5cWR0xYoTDhuRNHnjgAfWBBx5wuFa5cmX1scceK3Lvfffdp3bu3Jkcs1+/fmp0dHSxbXPmzFGrV6+u5uXllchoevnll1UA6k8//eRwfePGjfaf0d0oKChQIyMj1YceekjTXHejuHcVExNTxOhQVVWNjY1Vn3jiiWLHERlNP/30kwpAffnllx2u//bbbyoAdd68ecWOSRlN165dU0+cOKHm5ubar23btk0FoG7bts3h3n379qkA1Hfffdd+rUWLFmqLFi2KjNu1a1e1du3aDtd++eUXB+NOVVV1woQJqsFgcDCEVFVVFy5cqAJQL168qKrqLYPTz89PnTBhgsN9JpNJDQ0NVYcPH17s8zFMaYNzmhifp1+/fnjyyScBACtWrMC7776Ld999F5UqVRL2S05OxunTpzFnzhz06dMH69atw4wZM9C7d2/YbDYsXLgQ7du3x7Jly/Duu+869P3nP/+JCRMmoF27dli1ahWGDh2KDRs2IDExERaLRTivyWTCH3/8oenLGVRVxZUrV1CxYkX7td9++w1Xr15F8+bNi9zfsmVL/PDDD+S4GRkZDmMWcvHiRSxevBhLlixBUFBQidb6ww8/ICQkBPXq1SuypsL2u/Hpp58iMzMTgwYNKtGct1PcuwKAhx56CNu3b8dLL72ECxcu4OTJk0hKSkJWVhZGjx5d4nkKn+PO9x8XF4eqVatqev/FsWbNGtSrVw/fffcdOVezZs2g1+vt7Yqi4MiRI3f9nTh79ixu3rxpv/b0008X+Tn98MMPuO+++xAeHl6kPwAcPnwYAHD06FFYrdYicxmNRjRt2tTp52cYX8PP2wtgGIrGjRvjgQcewL///W/07dsXNWvW1NQvJiYGn376KXQ6Hf71r3/hzJkzWLZsGf75z39i7dq1AIARI0agZs2aePPNN/H0008DAL755hu8/vrr2LBhAwYOHGgfr1OnTujWrRs2b97scP1O/v3vf2Po0KGa1qiqqqb7bmfDhg347bffMHfuXPu1y5cvAwCqVKlS5P4qVarg+vXrMJlMCAgIKHbMPXv2ID09HdOnTy/SNm7cONx///0YMGBAidd6+fJlxMTEQKfTFVkTAPz+++937bthwwYEBATg0UcfLfG8t49x57sCgNWrV+OPP/7A888/j+effx4AULFiRaSlpaFNmzYlnod6/6LndGYug8GAypUrO1w3Go2oUKGCfa7Cn/nd1gTcev916tQRzkX1L7zv9ut33rtnzx4tj8YwPg8bTUyZZfjw4Q6bdatWrZCeno7hw4fbrxkMBjRv3hyHDh2yX9u8eTMiIiLw97//3cEb1KxZM4SGhmLnzp1CoykxMfGup4tkKfSItGnTBkOGDLFfz8/PB4BijaLAwED7PcW1X716FQMHDkR8fDwmTpzo0LZz5058+OGH2L9/v1Prvduct6+pOLKzs7Ft2zb06NEDkZGRTs19t3cFAMHBwahTpw6qVq2KXr164ebNm1ixYgX69euHPXv24N577y3RXNT7z87OduoZZs+ejdmzZxeZy2g0Fnt/YGCgfS1afycKKe4En9afHzXX3X7ODFPa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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ds_temp_subset.isel(time=0).temperature.plot()" ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.9" } }, "nbformat": 4, "nbformat_minor": 0 }