{ "cells": [ { "cell_type": "markdown", "id": "9805db07", "metadata": { "tags": [] }, "source": [ "# 01 - Compute Long Term Averages\n", "For each case, compute the global 3D (`nlat`, `nlon`, `z_t`) mean" ] }, { "cell_type": "markdown", "id": "89d2a8f2", "metadata": {}, "source": [ "## Imports\n", "We include the lines at the beginning to make sure that any updates we make to the `analysis_config.yml` file are reflected in real time for this notebook" ] }, { "cell_type": "code", "execution_count": 1, "id": "cf252e5e", "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "\n", "import intake\n", "import ast\n", "import yaml\n", "from distributed import Client\n", "from ncar_jobqueue import NCARCluster\n", "import xarray as xr\n", "from config import analysis_config" ] }, { "cell_type": "markdown", "id": "812c62d2", "metadata": {}, "source": [ "## Spin up a Dask Cluster" ] }, { "cell_type": "code", "execution_count": 4, "id": "85054be4", "metadata": {}, "outputs": [], "source": [ "cluster = NCARCluster()\n", "cluster.scale(20)\n", "client = Client(cluster)" ] }, { "cell_type": "code", "execution_count": 5, "id": "49fe45d9-278e-42bc-a25c-00c4c54ce7b5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Client-1dcbcc90-1b50-11ec-a00d-3cecef1aca66
\n", "Connection method: Cluster object | \n", "Cluster type: dask_jobqueue.PBSCluster | \n", " \n", "
\n", " Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/8787/status\n", " | \n", "\n", " |
d49b1dd6
\n", "\n", " Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/8787/status\n", " | \n", "\n", " Workers: 0\n", " | \n", "
\n", " Total threads: 0\n", " | \n", "\n", " Total memory: 0 B\n", " | \n", "
Scheduler-634ffb9a-5903-401d-b456-fb1cf05d6a48
\n", "\n", " Comm: tcp://10.12.206.39:39709\n", " | \n", "\n", " Workers: 0\n", " | \n", "
\n", " Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/8787/status\n", " | \n", "\n", " Total threads: 0\n", " | \n", "
\n", " Started: Just now\n", " | \n", "\n", " Total memory: 0 B\n", " | \n", "
\n", " | unique | \n", "
---|---|
component | \n", "1 | \n", "
stream | \n", "4 | \n", "
date | \n", "2501 | \n", "
case | \n", "3 | \n", "
member_id | \n", "2 | \n", "
frequency | \n", "4 | \n", "
variables | \n", "545 | \n", "
path | \n", "11103 | \n", "
None catalog with 3 dataset(s) from 3600 asset(s):
\n", " | unique | \n", "
---|---|
component | \n", "1 | \n", "
stream | \n", "1 | \n", "
date | \n", "1200 | \n", "
case | \n", "3 | \n", "
member_id | \n", "2 | \n", "
frequency | \n", "1 | \n", "
variables | \n", "434 | \n", "
path | \n", "3600 | \n", "
<xarray.Dataset>\n", "Dimensions: (time: 240, nlat: 384, nlon: 320, z_t: 60, z_t_150m: 15)\n", "Coordinates:\n", " * time (time) object 0081-02-01 00:00:00 ... 0101-01-01 00:00:00\n", " * z_t (z_t) float32 500.0 1.5e+03 ... 5.125e+05 5.375e+05\n", " * z_t_150m (z_t_150m) float32 500.0 1.5e+03 ... 1.35e+04 1.45e+04\n", " ULONG (nlat, nlon) float64 dask.array<chunksize=(384, 320), meta=np.ndarray>\n", " ULAT (nlat, nlon) float64 dask.array<chunksize=(384, 320), meta=np.ndarray>\n", " TLONG (nlat, nlon) float64 dask.array<chunksize=(384, 320), meta=np.ndarray>\n", " TLAT (nlat, nlon) float64 dask.array<chunksize=(384, 320), meta=np.ndarray>\n", "Dimensions without coordinates: nlat, nlon\n", "Data variables: (12/27)\n", " SFWF (time, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " photoC_TOT_zint (time, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " SiO3 (time, z_t, nlat, nlon) float32 dask.array<chunksize=(1, 60, 384, 320), meta=np.ndarray>\n", " BSF (time, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " photoC_sp_zint (time, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " photoC_diat_zint (time, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " ... ...\n", " CaCO3_FLUX_100m (time, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " diaz_Nfix (time, z_t_150m, nlat, nlon) float32 dask.array<chunksize=(1, 15, 384, 320), meta=np.ndarray>\n", " SHF (time, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " DOCr (time, z_t, nlat, nlon) float32 dask.array<chunksize=(1, 60, 384, 320), meta=np.ndarray>\n", " SHF_QSW (time, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " NH4 (time, z_t, nlat, nlon) float32 dask.array<chunksize=(1, 60, 384, 320), meta=np.ndarray>\n", "Attributes:\n", " cell_methods: cell_methods = time: mean ==> the variable value...\n", " contents: Diagnostic and Prognostic Variables\n", " title: b1850.f19_g17.validation_mct.004\n", " revision: $Id$\n", " time_period_freq: month_1\n", " Conventions: CF-1.0; http://www.cgd.ucar.edu/cms/eaton/netcdf...\n", " calendar: All years have exactly 365 days.\n", " source: CCSM POP2, the CCSM Ocean Component\n", " model_doi_url: https://doi.org/10.5065/D67H1H0V\n", " intake_esm_varname: SFWF\\nphotoC_TOT_zint\\nSiO3\\nBSF\\nphotoC_sp_zint...\n", " history: none\n", " intake_esm_dataset_key: ocn/pop.h/b1850.f19_g17.validation_mct.004
array([cftime.DatetimeNoLeap(81, 2, 1, 0, 0, 0, 0, 0, 32),\n", " cftime.DatetimeNoLeap(81, 3, 1, 0, 0, 0, 0, 0, 60),\n", " cftime.DatetimeNoLeap(81, 4, 1, 0, 0, 0, 0, 3, 91), ...,\n", " cftime.DatetimeNoLeap(100, 11, 1, 0, 0, 0, 0, 5, 305),\n", " cftime.DatetimeNoLeap(100, 12, 1, 0, 0, 0, 0, 0, 335),\n", " cftime.DatetimeNoLeap(101, 1, 1, 0, 0, 0, 0, 3, 1)], dtype=object)
array([5.000000e+02, 1.500000e+03, 2.500000e+03, 3.500000e+03, 4.500000e+03,\n", " 5.500000e+03, 6.500000e+03, 7.500000e+03, 8.500000e+03, 9.500000e+03,\n", " 1.050000e+04, 1.150000e+04, 1.250000e+04, 1.350000e+04, 1.450000e+04,\n", " 1.550000e+04, 1.650984e+04, 1.754790e+04, 1.862913e+04, 1.976603e+04,\n", " 2.097114e+04, 2.225783e+04, 2.364088e+04, 2.513702e+04, 2.676542e+04,\n", " 2.854837e+04, 3.051192e+04, 3.268680e+04, 3.510935e+04, 3.782276e+04,\n", " 4.087846e+04, 4.433777e+04, 4.827367e+04, 5.277280e+04, 5.793729e+04,\n", " 6.388626e+04, 7.075633e+04, 7.870025e+04, 8.788252e+04, 9.847059e+04,\n", " 1.106204e+05, 1.244567e+05, 1.400497e+05, 1.573946e+05, 1.764003e+05,\n", " 1.968944e+05, 2.186457e+05, 2.413972e+05, 2.649001e+05, 2.889385e+05,\n", " 3.133405e+05, 3.379793e+05, 3.627670e+05, 3.876452e+05, 4.125768e+05,\n", " 4.375392e+05, 4.625190e+05, 4.875083e+05, 5.125028e+05, 5.375000e+05],\n", " dtype=float32)
array([ 500., 1500., 2500., 3500., 4500., 5500., 6500., 7500., 8500.,\n", " 9500., 10500., 11500., 12500., 13500., 14500.], dtype=float32)
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
<xarray.Dataset>\n", "Dimensions: (case: 3, nlat: 384, nlon: 320, z_t: 60, z_t_150m: 15)\n", "Coordinates:\n", " * z_t (z_t) float32 500.0 1.5e+03 ... 5.125e+05 5.375e+05\n", " * z_t_150m (z_t_150m) float32 500.0 1.5e+03 ... 1.35e+04 1.45e+04\n", " ULONG (nlat, nlon) float64 321.1 322.3 323.4 ... 319.6 320.0\n", " ULAT (nlat, nlon) float64 -78.95 -78.95 -78.95 ... 72.41 72.41\n", " TLONG (nlat, nlon) float64 320.6 321.7 322.8 ... 319.4 319.8\n", " TLAT (nlat, nlon) float64 -79.22 -79.22 -79.22 ... 72.19 72.19\n", " * case (case) <U34 'b1850.f19_g17.validation_mct.004' ... 'b18...\n", "Dimensions without coordinates: nlat, nlon\n", "Data variables: (12/27)\n", " SFWF (case, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " photoC_TOT_zint (case, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " SiO3 (case, z_t, nlat, nlon) float32 dask.array<chunksize=(1, 60, 384, 320), meta=np.ndarray>\n", " BSF (case, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " photoC_sp_zint (case, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " photoC_diat_zint (case, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " ... ...\n", " CaCO3_FLUX_100m (case, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " diaz_Nfix (case, z_t_150m, nlat, nlon) float32 dask.array<chunksize=(1, 15, 384, 320), meta=np.ndarray>\n", " SHF (case, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " DOCr (case, z_t, nlat, nlon) float32 dask.array<chunksize=(1, 60, 384, 320), meta=np.ndarray>\n", " SHF_QSW (case, nlat, nlon) float32 dask.array<chunksize=(1, 384, 320), meta=np.ndarray>\n", " NH4 (case, z_t, nlat, nlon) float32 dask.array<chunksize=(1, 60, 384, 320), meta=np.ndarray>\n", "Attributes:\n", " cell_methods: cell_methods = time: mean ==> the variable value...\n", " contents: Diagnostic and Prognostic Variables\n", " title: b1850.f19_g17.validation_mct.004\n", " revision: $Id$\n", " time_period_freq: month_1\n", " Conventions: CF-1.0; http://www.cgd.ucar.edu/cms/eaton/netcdf...\n", " calendar: All years have exactly 365 days.\n", " source: CCSM POP2, the CCSM Ocean Component\n", " model_doi_url: https://doi.org/10.5065/D67H1H0V\n", " intake_esm_varname: SFWF\\nphotoC_TOT_zint\\nSiO3\\nBSF\\nphotoC_sp_zint...\n", " history: none\n", " intake_esm_dataset_key: ocn/pop.h/b1850.f19_g17.validation_mct.004
array([5.000000e+02, 1.500000e+03, 2.500000e+03, 3.500000e+03, 4.500000e+03,\n", " 5.500000e+03, 6.500000e+03, 7.500000e+03, 8.500000e+03, 9.500000e+03,\n", " 1.050000e+04, 1.150000e+04, 1.250000e+04, 1.350000e+04, 1.450000e+04,\n", " 1.550000e+04, 1.650984e+04, 1.754790e+04, 1.862913e+04, 1.976603e+04,\n", " 2.097114e+04, 2.225783e+04, 2.364088e+04, 2.513702e+04, 2.676542e+04,\n", " 2.854837e+04, 3.051192e+04, 3.268680e+04, 3.510935e+04, 3.782276e+04,\n", " 4.087846e+04, 4.433777e+04, 4.827367e+04, 5.277280e+04, 5.793729e+04,\n", " 6.388626e+04, 7.075633e+04, 7.870025e+04, 8.788252e+04, 9.847059e+04,\n", " 1.106204e+05, 1.244567e+05, 1.400497e+05, 1.573946e+05, 1.764003e+05,\n", " 1.968944e+05, 2.186457e+05, 2.413972e+05, 2.649001e+05, 2.889385e+05,\n", " 3.133405e+05, 3.379793e+05, 3.627670e+05, 3.876452e+05, 4.125768e+05,\n", " 4.375392e+05, 4.625190e+05, 4.875083e+05, 5.125028e+05, 5.375000e+05],\n", " dtype=float32)
array([ 500., 1500., 2500., 3500., 4500., 5500., 6500., 7500., 8500.,\n", " 9500., 10500., 11500., 12500., 13500., 14500.], dtype=float32)
array([[321.12500894, 322.25000897, 323.375009 , ..., 317.75000884,\n", " 318.87500887, 320.0000089 ],\n", " [321.12500894, 322.25000897, 323.375009 , ..., 317.75000884,\n", " 318.87500887, 320.0000089 ],\n", " [321.12500894, 322.25000897, 323.375009 , ..., 317.75000884,\n", " 318.87500887, 320.0000089 ],\n", " ...,\n", " [320.48637802, 320.97240884, 321.4577638 , ..., 319.02760897,\n", " 319.51363979, 320.00001324],\n", " [320.45160767, 320.90286181, 321.35342745, ..., 319.097156 ,\n", " 319.54841014, 320.00001293],\n", " [320.41397858, 320.82760085, 321.24052915, ..., 319.17241696,\n", " 319.58603923, 320.00001259]])
array([[-78.95289509, -78.95289509, -78.95289509, ..., -78.95289509,\n", " -78.95289509, -78.95289509],\n", " [-78.41865507, -78.41865507, -78.41865507, ..., -78.41865507,\n", " -78.41865507, -78.41865507],\n", " [-77.88441506, -77.88441506, -77.88441506, ..., -77.88441506,\n", " -77.88441506, -77.88441506],\n", " ...,\n", " [ 71.51215224, 71.51766482, 71.52684191, ..., 71.51766482,\n", " 71.51215224, 71.51031365],\n", " [ 71.95983548, 71.96504258, 71.97371054, ..., 71.96504258,\n", " 71.95983548, 71.95809872],\n", " [ 72.4135549 , 72.41841155, 72.42649554, ..., 72.41841155,\n", " 72.4135549 , 72.41193498]])
array([[320.56250892, 321.68750895, 322.81250898, ..., 317.18750883,\n", " 318.31250886, 319.43750889],\n", " [320.56250892, 321.68750895, 322.81250898, ..., 317.18750883,\n", " 318.31250886, 319.43750889],\n", " [320.56250892, 321.68750895, 322.81250898, ..., 317.18750883,\n", " 318.31250886, 319.43750889],\n", " ...,\n", " [320.25133086, 320.75380113, 321.25577325, ..., 318.74424456,\n", " 319.24621668, 319.74869143],\n", " [320.23459477, 320.70358949, 321.17207442, ..., 318.82794339,\n", " 319.29642832, 319.76542721],\n", " [320.21650899, 320.6493303 , 321.08163473, ..., 318.91838308,\n", " 319.3506875 , 319.78351267]])
array([[-79.22052261, -79.22052261, -79.22052261, ..., -79.22052261,\n", " -79.22052261, -79.22052261],\n", " [-78.68630626, -78.68630626, -78.68630626, ..., -78.68630626,\n", " -78.68630626, -78.68630626],\n", " [-78.15208992, -78.15208992, -78.15208992, ..., -78.15208992,\n", " -78.15208992, -78.15208992],\n", " ...,\n", " [ 71.29031715, 71.29408252, 71.30160692, ..., 71.30160692,\n", " 71.29408252, 71.29031716],\n", " [ 71.73524335, 71.73881845, 71.74596231, ..., 71.74596231,\n", " 71.73881845, 71.73524335],\n", " [ 72.18597561, 72.18933231, 72.19603941, ..., 72.19603941,\n", " 72.18933231, 72.18597562]])
array(['b1850.f19_g17.validation_mct.004', 'b1850.f19_g17.validation_mct.002',\n", " 'b1850.f19_g17.validation_nuopc.004'], dtype='<U34')
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "
\n",
"
| \n",
" \n", " \n", " | \n", "