{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "cKnWTixv0F-d" }, "source": [ "# STOFS 3D" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[](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": [ "
<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 -...<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 -...<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 -...<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...