{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#### Verification Alignment\n", "\n", "A forecast is verified by comparing a set of initializations at a given lead to\n", "observations over some window of time. However, there are a few ways to decide *which*\n", "initializations or verification window to use in this alignment.\n", "\n", "One must pass the keyword ``alignment=...`` to the hindcast `.verify()` method to set the behavior for aligning forecasts with the verification product. Note that the alignment decision only matters for [hindcast experiments](terminology.html#simulation-design). [Perfect-model experiments](terminology.html#simulation-design) are perfectly time-aligned by design, equating to our `same_inits` keyword.\n", "\n", "The available keywords for hindcast alignment are:\n", "\n", "* `'same_inits'`: Use a common set of initializations that verify\n", " across all leads. This ensures that there is no bias in the result due to the state\n", " of the system for the given initializations.\n", "\n", "\n", "* `'same_verifs'`: Use a common verification window across all leads. This ensures\n", " that there is no bias in the result due to the observational period being verified\n", " against.\n", "\n", "\n", "* `'maximize'`: Use all available initializations at each lead that verify against\n", " the observations provided. This changes both the set of initializations and the\n", " verification window used at each lead." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 1;\n", " var nbb_unformatted_code = \"# linting\\n%load_ext nb_black\\n%load_ext lab_black\";\n", " var nbb_formatted_code = \"# linting\\n%load_ext nb_black\\n%load_ext lab_black\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# linting\n", "%load_ext nb_black\n", "%load_ext lab_black" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 2;\n", " var nbb_unformatted_code = \"from climpred import HindcastEnsemble\\nfrom climpred.tutorial import load_dataset\\nfrom esmtools.stats import rm_trend\\n\\nimport matplotlib.pyplot as plt\\n\\nplt.style.use(\\\"fivethirtyeight\\\")\\n%matplotlib inline\\n\\nimport numpy as np\\n\\nimport warnings\\n\\n# Supress datetime warnings for this page.\\nwarnings.filterwarnings(\\\"ignore\\\")\";\n", " var nbb_formatted_code = \"from climpred import HindcastEnsemble\\nfrom climpred.tutorial import load_dataset\\nfrom esmtools.stats import rm_trend\\n\\nimport matplotlib.pyplot as plt\\n\\nplt.style.use(\\\"fivethirtyeight\\\")\\n%matplotlib inline\\n\\nimport numpy as np\\n\\nimport warnings\\n\\n# Supress datetime warnings for this page.\\nwarnings.filterwarnings(\\\"ignore\\\")\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from climpred import HindcastEnsemble\n", "from climpred.tutorial import load_dataset\n", "from esmtools.stats import rm_trend\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "plt.style.use(\"fivethirtyeight\")\n", "%matplotlib inline\n", "\n", "import numpy as np\n", "\n", "import warnings\n", "\n", "# Supress datetime warnings for this page.\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 3;\n", " var nbb_unformatted_code = \"def create_hindcast_object():\\n \\\"\\\"\\\"Loads in example data from CESM-DPLE and ERSST observations and detrends.\\\"\\\"\\\"\\n hind = load_dataset(\\\"CESM-DP-SST\\\")[\\\"SST\\\"]\\n verif = load_dataset(\\\"ERSST\\\")[\\\"SST\\\"]\\n\\n # Bias-correct over same period as CESM-DPLE.\\n verif = verif - verif.sel(time=slice(1964, 2014)).mean(\\\"time\\\")\\n\\n # Remove linear trend.\\n hind_dt = rm_trend(hind, dim=\\\"init\\\").rename(\\\"SST\\\")\\n verif_dt = rm_trend(verif, dim=\\\"time\\\").rename(\\\"SST\\\")\\n\\n # Create `HindcastEnsemble` object from `climpred`.\\n hindcast = HindcastEnsemble(hind)\\n hindcast = hindcast.add_observations(verif)\\n hindcast_dt = HindcastEnsemble(hind_dt)\\n hindcast_dt = hindcast_dt.add_observations(verif_dt)\\n return hindcast, hindcast_dt\";\n", " var nbb_formatted_code = \"def create_hindcast_object():\\n \\\"\\\"\\\"Loads in example data from CESM-DPLE and ERSST observations and detrends.\\\"\\\"\\\"\\n hind = load_dataset(\\\"CESM-DP-SST\\\")[\\\"SST\\\"]\\n verif = load_dataset(\\\"ERSST\\\")[\\\"SST\\\"]\\n\\n # Bias-correct over same period as CESM-DPLE.\\n verif = verif - verif.sel(time=slice(1964, 2014)).mean(\\\"time\\\")\\n\\n # Remove linear trend.\\n hind_dt = rm_trend(hind, dim=\\\"init\\\").rename(\\\"SST\\\")\\n verif_dt = rm_trend(verif, dim=\\\"time\\\").rename(\\\"SST\\\")\\n\\n # Create `HindcastEnsemble` object from `climpred`.\\n hindcast = HindcastEnsemble(hind)\\n hindcast = hindcast.add_observations(verif)\\n hindcast_dt = HindcastEnsemble(hind_dt)\\n hindcast_dt = hindcast_dt.add_observations(verif_dt)\\n return hindcast, hindcast_dt\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def create_hindcast_object():\n", " \"\"\"Loads in example data from CESM-DPLE and ERSST observations and detrends.\"\"\"\n", " hind = load_dataset(\"CESM-DP-SST\")[\"SST\"]\n", " verif = load_dataset(\"ERSST\")[\"SST\"]\n", "\n", " # Bias-correct over same period as CESM-DPLE.\n", " verif = verif - verif.sel(time=slice(1964, 2014)).mean(\"time\")\n", "\n", " # Remove linear trend.\n", " hind_dt = rm_trend(hind, dim=\"init\").rename(\"SST\")\n", " verif_dt = rm_trend(verif, dim=\"time\").rename(\"SST\")\n", "\n", " # Create `HindcastEnsemble` object from `climpred`.\n", " hindcast = HindcastEnsemble(hind)\n", " hindcast = hindcast.add_observations(verif)\n", " hindcast_dt = HindcastEnsemble(hind_dt)\n", " hindcast_dt = hindcast_dt.add_observations(verif_dt)\n", " return hindcast, hindcast_dt" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 4;\n", " var nbb_unformatted_code = \"hindcast, hindcast_dt = create_hindcast_object()\";\n", " var nbb_formatted_code = \"hindcast, hindcast_dt = create_hindcast_object()\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hindcast, hindcast_dt = create_hindcast_object()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The user can simply change the alignment strategy by passing in the keyword `alignment=...`. Note that the choice of alignment strategy changes the lead-dependent metric results." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 5;\n", " var nbb_unformatted_code = \"f, axs = plt.subplots(ncols=2, figsize=(12, 4), sharex=True)\\nfor alignment in [\\\"same_inits\\\", \\\"same_verifs\\\", \\\"maximize\\\"]:\\n hindcast.verify(metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=alignment)[\\n \\\"SST\\\"\\n ].plot(label=alignment, ax=axs[0])\\n hindcast_dt.verify(metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=alignment)[\\n \\\"SST\\\"\\n ].plot(label=alignment, ax=axs[1])\\n\\naxs[0].legend()\\naxs[1].legend()\\naxs[0].set(\\n ylabel=\\\"anomaly\\\\ncorrelation coefficient\\\",\\n xlabel=\\\"lead year\\\",\\n xticks=np.arange(1, 11),\\n title=\\\"SST with trend\\\",\\n)\\naxs[1].set(\\n ylabel=\\\"anomaly\\\\ncorrelation coefficient\\\", xlabel=\\\"lead year\\\", title=\\\"detrended SST\\\"\\n)\\n\\nf.suptitle(\\\"Verification with Different Alignment Methods\\\", fontsize=14, weight=\\\"bold\\\")\\nplt.subplots_adjust(top=0.85)\\n\\nplt.show()\";\n", " var nbb_formatted_code = \"f, axs = plt.subplots(ncols=2, figsize=(12, 4), sharex=True)\\nfor alignment in [\\\"same_inits\\\", \\\"same_verifs\\\", \\\"maximize\\\"]:\\n hindcast.verify(metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=alignment)[\\n \\\"SST\\\"\\n ].plot(label=alignment, ax=axs[0])\\n hindcast_dt.verify(metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=alignment)[\\n \\\"SST\\\"\\n ].plot(label=alignment, ax=axs[1])\\n\\naxs[0].legend()\\naxs[1].legend()\\naxs[0].set(\\n ylabel=\\\"anomaly\\\\ncorrelation coefficient\\\",\\n xlabel=\\\"lead year\\\",\\n xticks=np.arange(1, 11),\\n title=\\\"SST with trend\\\",\\n)\\naxs[1].set(\\n ylabel=\\\"anomaly\\\\ncorrelation coefficient\\\", xlabel=\\\"lead year\\\", title=\\\"detrended SST\\\"\\n)\\n\\nf.suptitle(\\\"Verification with Different Alignment Methods\\\", fontsize=14, weight=\\\"bold\\\")\\nplt.subplots_adjust(top=0.85)\\n\\nplt.show()\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, axs = plt.subplots(ncols=2, figsize=(12, 4), sharex=True)\n", "for alignment in [\"same_inits\", \"same_verifs\", \"maximize\"]:\n", " hindcast.verify(metric=\"acc\", comparison=\"e2o\", dim=\"init\", alignment=alignment)[\n", " \"SST\"\n", " ].plot(label=alignment, ax=axs[0])\n", " hindcast_dt.verify(metric=\"acc\", comparison=\"e2o\", dim=\"init\", alignment=alignment)[\n", " \"SST\"\n", " ].plot(label=alignment, ax=axs[1])\n", "\n", "axs[0].legend()\n", "axs[1].legend()\n", "axs[0].set(\n", " ylabel=\"anomaly\\ncorrelation coefficient\",\n", " xlabel=\"lead year\",\n", " xticks=np.arange(1, 11),\n", " title=\"SST with trend\",\n", ")\n", "axs[1].set(\n", " ylabel=\"anomaly\\ncorrelation coefficient\", xlabel=\"lead year\", title=\"detrended SST\"\n", ")\n", "\n", "f.suptitle(\"Verification with Different Alignment Methods\", fontsize=14, weight=\"bold\")\n", "plt.subplots_adjust(top=0.85)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These alignment keywords also extend to reference forecasts (e.g. `reference='persistence'`), which uses the identical set of initializations (and alignment strategy) in its computation. Below, the dashed lines represent the persistence forecast for the given alignment strategy, while the solid lines denote the initialized anomaly correlation coefficient (as in the above plots)." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 6;\n", " var nbb_unformatted_code = \"COLORS = [\\\"#008FD5\\\", \\\"#FC4F30\\\", \\\"#E5AE38\\\"]\\nf, axs = plt.subplots()\\n\\nfor alignment, color in zip([\\\"same_inits\\\", \\\"same_verifs\\\", \\\"maximize\\\"], COLORS):\\n result = hindcast_dt.verify(\\n metric=\\\"acc\\\",\\n reference=\\\"persistence\\\",\\n comparison=\\\"e2o\\\",\\n dim=\\\"init\\\",\\n alignment=alignment,\\n )\\n result.sel(skill=\\\"initialized\\\").SST.plot(label=alignment, color=color)\\n result.sel(skill=\\\"persistence\\\").SST.plot(linestyle=\\\"--\\\", color=color, lw=3)\\n\\naxs.set(\\n ylabel=\\\"anomaly\\\\ncorrelation coefficient\\\",\\n xlabel=\\\"lead year\\\",\\n xticks=np.arange(1, 11),\\n title=\\\"Detrended SST Verification with Persistence\\\",\\n)\\nplt.legend()\\nplt.show()\";\n", " var nbb_formatted_code = \"COLORS = [\\\"#008FD5\\\", \\\"#FC4F30\\\", \\\"#E5AE38\\\"]\\nf, axs = plt.subplots()\\n\\nfor alignment, color in zip([\\\"same_inits\\\", \\\"same_verifs\\\", \\\"maximize\\\"], COLORS):\\n result = hindcast_dt.verify(\\n metric=\\\"acc\\\",\\n reference=\\\"persistence\\\",\\n comparison=\\\"e2o\\\",\\n dim=\\\"init\\\",\\n alignment=alignment,\\n )\\n result.sel(skill=\\\"initialized\\\").SST.plot(label=alignment, color=color)\\n result.sel(skill=\\\"persistence\\\").SST.plot(linestyle=\\\"--\\\", color=color, lw=3)\\n\\naxs.set(\\n ylabel=\\\"anomaly\\\\ncorrelation coefficient\\\",\\n xlabel=\\\"lead year\\\",\\n xticks=np.arange(1, 11),\\n title=\\\"Detrended SST Verification with Persistence\\\",\\n)\\nplt.legend()\\nplt.show()\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "COLORS = [\"#008FD5\", \"#FC4F30\", \"#E5AE38\"]\n", "f, axs = plt.subplots()\n", "\n", "for alignment, color in zip([\"same_inits\", \"same_verifs\", \"maximize\"], COLORS):\n", " result = hindcast_dt.verify(\n", " metric=\"acc\",\n", " reference=\"persistence\",\n", " comparison=\"e2o\",\n", " dim=\"init\",\n", " alignment=alignment,\n", " )\n", " result.sel(skill=\"initialized\").SST.plot(label=alignment, color=color)\n", " result.sel(skill=\"persistence\").SST.plot(linestyle=\"--\", color=color, lw=3)\n", "\n", "axs.set(\n", " ylabel=\"anomaly\\ncorrelation coefficient\",\n", " xlabel=\"lead year\",\n", " xticks=np.arange(1, 11),\n", " title=\"Detrended SST Verification with Persistence\",\n", ")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll be using the same example data as above. `climpred` will be aligning the following initialization and verification dates:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "initialization dates: \n", "CFTimeIndex([1954-01-01 00:00:00, 1955-01-01 00:00:00, 1956-01-01 00:00:00,\n", " 1957-01-01 00:00:00, 1958-01-01 00:00:00, 1959-01-01 00:00:00,\n", " 1960-01-01 00:00:00, 1961-01-01 00:00:00, 1962-01-01 00:00:00,\n", " 1963-01-01 00:00:00, 1964-01-01 00:00:00, 1965-01-01 00:00:00,\n", " 1966-01-01 00:00:00, 1967-01-01 00:00:00, 1968-01-01 00:00:00,\n", " 1969-01-01 00:00:00, 1970-01-01 00:00:00, 1971-01-01 00:00:00,\n", " 1972-01-01 00:00:00, 1973-01-01 00:00:00, 1974-01-01 00:00:00,\n", " 1975-01-01 00:00:00, 1976-01-01 00:00:00, 1977-01-01 00:00:00,\n", " 1978-01-01 00:00:00, 1979-01-01 00:00:00, 1980-01-01 00:00:00,\n", " 1981-01-01 00:00:00, 1982-01-01 00:00:00, 1983-01-01 00:00:00,\n", " 1984-01-01 00:00:00, 1985-01-01 00:00:00, 1986-01-01 00:00:00,\n", " 1987-01-01 00:00:00, 1988-01-01 00:00:00, 1989-01-01 00:00:00,\n", " 1990-01-01 00:00:00, 1991-01-01 00:00:00, 1992-01-01 00:00:00,\n", " 1993-01-01 00:00:00, 1994-01-01 00:00:00, 1995-01-01 00:00:00,\n", " 1996-01-01 00:00:00, 1997-01-01 00:00:00, 1998-01-01 00:00:00,\n", " 1999-01-01 00:00:00, 2000-01-01 00:00:00, 2001-01-01 00:00:00,\n", " 2002-01-01 00:00:00, 2003-01-01 00:00:00, 2004-01-01 00:00:00,\n", " 2005-01-01 00:00:00, 2006-01-01 00:00:00, 2007-01-01 00:00:00,\n", " 2008-01-01 00:00:00, 2009-01-01 00:00:00, 2010-01-01 00:00:00,\n", " 2011-01-01 00:00:00, 2012-01-01 00:00:00, 2013-01-01 00:00:00,\n", " 2014-01-01 00:00:00, 2015-01-01 00:00:00, 2016-01-01 00:00:00,\n", " 2017-01-01 00:00:00],\n", " dtype='object',\n", " length=64,\n", " calendar='proleptic_gregorian',\n", " freq='AS-JAN')\n" ] }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 7;\n", " var nbb_unformatted_code = \"print(f\\\"initialization dates: \\\\n{hindcast.get_initialized().init.to_index()}\\\")\";\n", " var nbb_formatted_code = \"print(f\\\"initialization dates: \\\\n{hindcast.get_initialized().init.to_index()}\\\")\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(f\"initialization dates: \\n{hindcast.get_initialized().init.to_index()}\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "verification dates: \n", "CFTimeIndex([1955-01-01 00:00:00, 1956-01-01 00:00:00, 1957-01-01 00:00:00,\n", " 1958-01-01 00:00:00, 1959-01-01 00:00:00, 1960-01-01 00:00:00,\n", " 1961-01-01 00:00:00, 1962-01-01 00:00:00, 1963-01-01 00:00:00,\n", " 1964-01-01 00:00:00, 1965-01-01 00:00:00, 1966-01-01 00:00:00,\n", " 1967-01-01 00:00:00, 1968-01-01 00:00:00, 1969-01-01 00:00:00,\n", " 1970-01-01 00:00:00, 1971-01-01 00:00:00, 1972-01-01 00:00:00,\n", " 1973-01-01 00:00:00, 1974-01-01 00:00:00, 1975-01-01 00:00:00,\n", " 1976-01-01 00:00:00, 1977-01-01 00:00:00, 1978-01-01 00:00:00,\n", " 1979-01-01 00:00:00, 1980-01-01 00:00:00, 1981-01-01 00:00:00,\n", " 1982-01-01 00:00:00, 1983-01-01 00:00:00, 1984-01-01 00:00:00,\n", " 1985-01-01 00:00:00, 1986-01-01 00:00:00, 1987-01-01 00:00:00,\n", " 1988-01-01 00:00:00, 1989-01-01 00:00:00, 1990-01-01 00:00:00,\n", " 1991-01-01 00:00:00, 1992-01-01 00:00:00, 1993-01-01 00:00:00,\n", " 1994-01-01 00:00:00, 1995-01-01 00:00:00, 1996-01-01 00:00:00,\n", " 1997-01-01 00:00:00, 1998-01-01 00:00:00, 1999-01-01 00:00:00,\n", " 2000-01-01 00:00:00, 2001-01-01 00:00:00, 2002-01-01 00:00:00,\n", " 2003-01-01 00:00:00, 2004-01-01 00:00:00, 2005-01-01 00:00:00,\n", " 2006-01-01 00:00:00, 2007-01-01 00:00:00, 2008-01-01 00:00:00,\n", " 2009-01-01 00:00:00, 2010-01-01 00:00:00, 2011-01-01 00:00:00,\n", " 2012-01-01 00:00:00, 2013-01-01 00:00:00, 2014-01-01 00:00:00,\n", " 2015-01-01 00:00:00],\n", " dtype='object',\n", " length=61,\n", " calendar='proleptic_gregorian',\n", " freq='AS-JAN')\n" ] }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 8;\n", " var nbb_unformatted_code = \"print(f\\\"verification dates: \\\\n{hindcast.get_observations().time.to_index()}\\\")\";\n", " var nbb_formatted_code = \"print(f\\\"verification dates: \\\\n{hindcast.get_observations().time.to_index()}\\\")\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(f\"verification dates: \\n{hindcast.get_observations().time.to_index()}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use the standard python library `logging` to log the initializations and verification dates used in alignment at each lead. The user can check these logs to ensure that the expected initializations and verification dates are being retained. See the logging section on this page for more details." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 9;\n", " var nbb_unformatted_code = \"import logging\\n\\n# Print log to screen with initializations and verification dates.\\nlogger = logging.getLogger()\\nlogger.setLevel(logging.INFO)\";\n", " var nbb_formatted_code = \"import logging\\n\\n# Print log to screen with initializations and verification dates.\\nlogger = logging.getLogger()\\nlogger.setLevel(logging.INFO)\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import logging\n", "\n", "# Print log to screen with initializations and verification dates.\n", "logger = logging.getLogger()\n", "logger.setLevel(logging.INFO)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Same Verification Dates\n", "\n", "`alignment='same_verifs'`\n", "\n", "The `same_verifs` alignment finds a set of verification dates that can be verified against over all leads. It also requires that the verification data have an observation at each initialization being retained. This is so that the reference forecast, such as persistence, uses an identical set of initializations in deriving its forecast. Notice in the logger output that a common set of verification dates spanning 1965-2015 are used, while the initialization window slides one year at each lead.\n", "\n", "**References**:\n", "\n", "1. Boer, George J., et al. \"The decadal climate prediction project (DCPP) contribution to CMIP6.\" Geoscientific Model Development (Online) 9.10 (2016). [https://doi.org/10.5194/gmd-9-3751-2016]\n", "2. Hawkins, Ed, et al. \"The interpretation and use of biases in decadal climate predictions.\" Journal of climate 27.8 (2014): 2931-2947. [https://doi.org/10.1175/JCLI-D-13-00473.1]\n", "3. Smith, Doug M., Rosie Eade, and Holger Pohlmann. \"A comparison of full-field and anomaly initialization for seasonal to decadal climate prediction.\" Climate dynamics 41.11-12 (2013): 3325-3338. [https://doi.org/10.1007/s00382-013-1683-2]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:root:initialized | lead: 01 | inits: 1963-01-01 00:00:00-2014-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 02 | inits: 1962-01-01 00:00:00-2013-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 03 | inits: 1961-01-01 00:00:00-2012-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 04 | inits: 1960-01-01 00:00:00-2011-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 05 | inits: 1959-01-01 00:00:00-2010-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 06 | inits: 1958-01-01 00:00:00-2009-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 07 | inits: 1957-01-01 00:00:00-2008-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 08 | inits: 1956-01-01 00:00:00-2007-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 09 | inits: 1955-01-01 00:00:00-2006-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 10 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n" ] }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 10;\n", " var nbb_unformatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_verifs\\\"\\n)\";\n", " var nbb_formatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_verifs\\\"\\n)\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "skill = hindcast.verify(\n", " metric=\"acc\", comparison=\"e2o\", dim=\"init\", alignment=\"same_verifs\"\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, we include a figure of a simpler alignment case with annual initializations from 1990 through 2000 and three lead years. We verify this hypothetical initialized ensemble against a product that spans 1995 through 2002.\n", "\n", "Two conditions must be met when selecting the verification window:\n", "\n", "\n", "1. There must be a union between the initialization dates and verification dates. This\n", " is represented by the black vertical lines in the top panel below, which leave out\n", " 1990-1994 initializations since there aren't observations before 1995. This logic\n", " exists so that any reference forecasts\n", " (e.g. a persistence forecast) use an identical set of initializations as the\n", " initialized forecast.\n", " \n", "2. A given verification time must exist across all leads. This is to ensure that at each\n", " lead, the entire set of chosen verification dates can be verified against. This is\n", " represented by diagonals in the top panel below (and the dashed black lines).\n", " Without the first stipulation, this would set the verification window at 1995-2001.\n", " \n", "This leaves us with a verification window of [1998, 1999, 2000, 2001] which can be verified against across all leads (and have a complimentary persistence forecast with the same set of initializations used at each lead)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![sameverifs](images/alignment_plots/same_verifs_alignment.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Same Initializations\n", "\n", "`alignment='same_inits'`\n", "\n", "The `same_inits` alignment finds a set of initializations that can verify over all leads. It also requires that the verification data have an observation at each initialization being retained. This is so that the reference forecast, such as persistence, uses an identical set of initializations in deriving its forecast. Notice in the logger output that a common set of initializations spanning 1955-2005 are used, while the verification window slides one year at each lead." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:root:initialized | lead: 01 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1955-01-01 00:00:00-2006-01-01 00:00:00\n", "INFO:root:initialized | lead: 02 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1956-01-01 00:00:00-2007-01-01 00:00:00\n", "INFO:root:initialized | lead: 03 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1957-01-01 00:00:00-2008-01-01 00:00:00\n", "INFO:root:initialized | lead: 04 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1958-01-01 00:00:00-2009-01-01 00:00:00\n", "INFO:root:initialized | lead: 05 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1959-01-01 00:00:00-2010-01-01 00:00:00\n", "INFO:root:initialized | lead: 06 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1960-01-01 00:00:00-2011-01-01 00:00:00\n", "INFO:root:initialized | lead: 07 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1961-01-01 00:00:00-2012-01-01 00:00:00\n", "INFO:root:initialized | lead: 08 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1962-01-01 00:00:00-2013-01-01 00:00:00\n", "INFO:root:initialized | lead: 09 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1963-01-01 00:00:00-2014-01-01 00:00:00\n", "INFO:root:initialized | lead: 10 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n" ] }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 11;\n", " var nbb_unformatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_inits\\\"\\n)\";\n", " var nbb_formatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_inits\\\"\\n)\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "skill = hindcast.verify(\n", " metric=\"acc\", comparison=\"e2o\", dim=\"init\", alignment=\"same_inits\"\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, we include a figure of a simpler alignment case with annual initializations from 1990 through 2000 and three lead years. We verify this hypothetical initialized ensemble against a product that spans 1995 through 2002.\n", "\n", "Two conditions must be met to retain the initializations for verification: \n", "\n", "1. There must be an observation in the verification data for the given initialization.\n", " In combination with (1), initializations 1990 through 1994 are left out. This logic\n", " exists so that any reference forecast (e.g. a persistence forecast) use an identical set of initializations as the\n", " initialized forecast.\n", "\n", "2. All forecasted times (i.e., initialization + lead year) for a given initialization\n", " must be contained in the verification data. Schematically, this means that there must\n", " be a union between a column in the top panel and the time series in the bottom panel.\n", " The 2000 initialization below is left out since the verification data does not\n", " contain 2003.\n", " \n", "This leaves us with initializations [1995, 1996, ..., 1999] which can verify against the observations at all three lead years." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![sameinits](images/alignment_plots/same_inits_alignment.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Maximize Degrees of Freedom\n", "\n", "`alignment='maximize'`\n", "\n", "The `maximize` alignment verifies against every available observation at each lead. This means that both the initializations and verification dates could be different at each lead. It also requires that the verification data have an observation at each initialization being retained. This is so that the reference forecast, such as persistence, uses an identical set of initializations in deriving its forecast.\n", "\n", "Notice in the logger output that the initialization window shrinks from 1955-2014 (N=60) at lead year 1 to 1955-2005 (N=51) at lead year 10. Similarly, the verification window spans 1956-2015 at lead year 1 and 1965-2015 at lead year 10. However, using the other two alignment strategies (`same_verifs` and `same_inits`), there is a fixed N=51 to ensure constant initializations or verification dates, while the number of samples is extended to as high as 60 with this alignment strategy.\n", "\n", "**References**:\n", "\n", "1. Yeager, S. G., et al. \"Predicting near-term changes in the Earth System: A large ensemble of initialized decadal prediction simulations using the Community Earth System Model.\" Bulletin of the American Meteorological Society 99.9 (2018): 1867-1886. [https://doi.org/10.1175/BAMS-D-17-0098.1]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:root:initialized | lead: 01 | inits: 1954-01-01 00:00:00-2014-01-01 00:00:00 | verifs: 1955-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 02 | inits: 1954-01-01 00:00:00-2013-01-01 00:00:00 | verifs: 1956-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 03 | inits: 1954-01-01 00:00:00-2012-01-01 00:00:00 | verifs: 1957-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 04 | inits: 1954-01-01 00:00:00-2011-01-01 00:00:00 | verifs: 1958-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 05 | inits: 1954-01-01 00:00:00-2010-01-01 00:00:00 | verifs: 1959-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 06 | inits: 1954-01-01 00:00:00-2009-01-01 00:00:00 | verifs: 1960-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 07 | inits: 1954-01-01 00:00:00-2008-01-01 00:00:00 | verifs: 1961-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 08 | inits: 1954-01-01 00:00:00-2007-01-01 00:00:00 | verifs: 1962-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 09 | inits: 1954-01-01 00:00:00-2006-01-01 00:00:00 | verifs: 1963-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 10 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n" ] }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 12;\n", " var nbb_unformatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"maximize\\\"\\n)\";\n", " var nbb_formatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"maximize\\\"\\n)\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "skill = hindcast.verify(\n", " metric=\"acc\", comparison=\"e2o\", dim=\"init\", alignment=\"maximize\"\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, we include a figure of a simpler alignment case with annual initializations from 1990 through 2000 and three lead years. We verify this hypothetical initialized ensemble against a product that spans 1995 through 2002.\n", "\n", "Two conditions must be met when selecting initializations/verifications at each lead:\n", " \n", "1. There must be a union between the initialization dates and verification dates. This\n", " is represented by the black vertical lines in the top panel below, which leave out\n", " 1990-1994 initializations since there aren't observations before 1995. This logic\n", " exists so that any reference forecasts\n", " (e.g. a persistence forecast) use an identical set of initializations as the\n", " initialized forecast.\n", " \n", "2. The selected initializations must verify with the provided observations for the given lead.\n", " This is shown by the hatching in the figure below. The 2000 initialization is left out\n", " at lead year 3 since there is no observation for 2003.\n", "\n", "This leaves us with the following alignment:\n", "\n", "* LY1 initializations: [1995, 1996, 1997, 1998, 1999, 2000]\n", "\n", "* LY2 initializations: [1995, 1996, 1997, 1998, 1999, 2000]\n", "\n", "* LY3 initializations: [1995, 1996, 1997, 1998, 1999]\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "![maximize](images/alignment_plots/maximize_alignment.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Logging\n", "\n", "``climpred`` uses the standard library ``logging`` to store the initializations and verification dates used at each lead for a given computation. This is used internally for testing, but more importantly, can be activated by the user so they can be sure of how computations are being done.\n", "\n", "To see the log interactively, e.g. while working in Jupyter notebooks or on the command line use the following:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 13;\n", " var nbb_unformatted_code = \"import logging\\n\\nlogger = logging.getLogger()\\nlogger.setLevel(logging.INFO)\";\n", " var nbb_formatted_code = \"import logging\\n\\nlogger = logging.getLogger()\\nlogger.setLevel(logging.INFO)\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import logging\n", "\n", "logger = logging.getLogger()\n", "logger.setLevel(logging.INFO)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:root:initialized | lead: 01 | inits: 1963-01-01 00:00:00-2014-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 02 | inits: 1962-01-01 00:00:00-2013-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 03 | inits: 1961-01-01 00:00:00-2012-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 04 | inits: 1960-01-01 00:00:00-2011-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 05 | inits: 1959-01-01 00:00:00-2010-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 06 | inits: 1958-01-01 00:00:00-2009-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 07 | inits: 1957-01-01 00:00:00-2008-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 08 | inits: 1956-01-01 00:00:00-2007-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 09 | inits: 1955-01-01 00:00:00-2006-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 10 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n" ] }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 14;\n", " var nbb_unformatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_verifs\\\"\\n)\";\n", " var nbb_formatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_verifs\\\"\\n)\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "skill = hindcast.verify(\n", " metric=\"acc\", comparison=\"e2o\", dim=\"init\", alignment=\"same_verifs\"\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `INFO` level reports the minimum and maximum bounds for initializations and verification dates. To see every single initialization and verification date used, set the level to `DEBUG`." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "DEBUG:blib2to3.pgen2.driver:NAME 'logger' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:DOT '.' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'setLevel' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:LPAR '(' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'logging' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:DOT '.' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'DEBUG' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:RPAR ')' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NEWLINE '\\n' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:ENDMARKER '' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:Stop.\n" ] }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 15;\n", " var nbb_unformatted_code = \"logger.setLevel(logging.DEBUG)\";\n", " var nbb_formatted_code = \"logger.setLevel(logging.DEBUG)\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "DEBUG:blib2to3.pgen2.driver:NAME 'logger' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:DOT '.' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'setLevel' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:LPAR '(' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'logging' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:DOT '.' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'DEBUG' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:RPAR ')' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NEWLINE '\\n' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:ENDMARKER '' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:Stop.\n" ] } ], "source": [ "logger.setLevel(logging.DEBUG)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:root:initialized | lead: 01 | inits: 1955-01-01 00:00:00-2014-01-01 00:00:00 | verifs: 1956-01-01 00:00:00-2015-01-01 00:00:00\n", "DEBUG:root:\n", "inits: ['1955-01-01', '1956-01-01', '1957-01-01', '1958-01-01', '1959-01-01', '1960-01-01', '1961-01-01', '1962-01-01', '1963-01-01', '1964-01-01', '1965-01-01', '1966-01-01', '1967-01-01', '1968-01-01', '1969-01-01', '1970-01-01', '1971-01-01', '1972-01-01', '1973-01-01', '1974-01-01', '1975-01-01', '1976-01-01', '1977-01-01', '1978-01-01', '1979-01-01', '1980-01-01', '1981-01-01', '1982-01-01', '1983-01-01', '1984-01-01', '1985-01-01', '1986-01-01', '1987-01-01', '1988-01-01', '1989-01-01', '1990-01-01', '1991-01-01', '1992-01-01', '1993-01-01', '1994-01-01', '1995-01-01', '1996-01-01', '1997-01-01', '1998-01-01', '1999-01-01', '2000-01-01', '2001-01-01', '2002-01-01', '2003-01-01', '2004-01-01', '2005-01-01', '2006-01-01', '2007-01-01', '2008-01-01', '2009-01-01', '2010-01-01', '2011-01-01', '2012-01-01', '2013-01-01', '2014-01-01']\n", "verifs: ['1956-01-01', '1957-01-01', '1958-01-01', '1959-01-01', '1960-01-01', '1961-01-01', '1962-01-01', '1963-01-01', '1964-01-01', '1965-01-01', '1966-01-01', '1967-01-01', '1968-01-01', '1969-01-01', '1970-01-01', '1971-01-01', '1972-01-01', '1973-01-01', '1974-01-01', '1975-01-01', '1976-01-01', '1977-01-01', '1978-01-01', '1979-01-01', '1980-01-01', '1981-01-01', '1982-01-01', '1983-01-01', '1984-01-01', '1985-01-01', '1986-01-01', '1987-01-01', '1988-01-01', '1989-01-01', '1990-01-01', '1991-01-01', '1992-01-01', '1993-01-01', '1994-01-01', '1995-01-01', '1996-01-01', '1997-01-01', '1998-01-01', '1999-01-01', '2000-01-01', '2001-01-01', '2002-01-01', '2003-01-01', '2004-01-01', '2005-01-01', '2006-01-01', '2007-01-01', '2008-01-01', '2009-01-01', '2010-01-01', '2011-01-01', '2012-01-01', '2013-01-01', '2014-01-01', '2015-01-01']\n", "INFO:root:initialized | lead: 02 | inits: 1954-01-01 00:00:00-2013-01-01 00:00:00 | verifs: 1956-01-01 00:00:00-2015-01-01 00:00:00\n", "DEBUG:root:\n", "inits: ['1954-01-01', '1955-01-01', '1956-01-01', '1957-01-01', '1958-01-01', '1959-01-01', '1960-01-01', '1961-01-01', '1962-01-01', '1963-01-01', '1964-01-01', '1965-01-01', '1966-01-01', '1967-01-01', '1968-01-01', '1969-01-01', '1970-01-01', '1971-01-01', '1972-01-01', '1973-01-01', '1974-01-01', '1975-01-01', '1976-01-01', '1977-01-01', '1978-01-01', '1979-01-01', '1980-01-01', '1981-01-01', '1982-01-01', '1983-01-01', '1984-01-01', '1985-01-01', '1986-01-01', '1987-01-01', '1988-01-01', '1989-01-01', '1990-01-01', '1991-01-01', '1992-01-01', '1993-01-01', '1994-01-01', '1995-01-01', '1996-01-01', '1997-01-01', '1998-01-01', '1999-01-01', '2000-01-01', '2001-01-01', '2002-01-01', '2003-01-01', '2004-01-01', '2005-01-01', '2006-01-01', '2007-01-01', '2008-01-01', '2009-01-01', '2010-01-01', '2011-01-01', '2012-01-01', '2013-01-01']\n", "verifs: ['1956-01-01', '1957-01-01', '1958-01-01', '1959-01-01', '1960-01-01', '1961-01-01', '1962-01-01', '1963-01-01', '1964-01-01', '1965-01-01', '1966-01-01', '1967-01-01', '1968-01-01', '1969-01-01', '1970-01-01', '1971-01-01', '1972-01-01', '1973-01-01', '1974-01-01', '1975-01-01', '1976-01-01', '1977-01-01', '1978-01-01', '1979-01-01', '1980-01-01', '1981-01-01', '1982-01-01', '1983-01-01', '1984-01-01', '1985-01-01', '1986-01-01', '1987-01-01', '1988-01-01', '1989-01-01', '1990-01-01', '1991-01-01', '1992-01-01', '1993-01-01', '1994-01-01', '1995-01-01', '1996-01-01', '1997-01-01', '1998-01-01', '1999-01-01', '2000-01-01', '2001-01-01', '2002-01-01', '2003-01-01', '2004-01-01', '2005-01-01', '2006-01-01', '2007-01-01', '2008-01-01', '2009-01-01', '2010-01-01', '2011-01-01', '2012-01-01', '2013-01-01', '2014-01-01', '2015-01-01']\n", "DEBUG:blib2to3.pgen2.driver:NAME 'skill' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'hindcast' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:DOT '.' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'isel' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:LPAR '(' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'lead' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'slice' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:LPAR '(' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NUMBER '0' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:COMMA ',' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NUMBER '2' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:RPAR ')' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:RPAR ')' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:DOT '.' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'verify' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:LPAR '(' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'metric' (prefix='\\n ')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:STRING '\"acc\"' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:COMMA ',' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'comparison' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:STRING '\"e2o\"' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:COMMA ',' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'dim' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:STRING '\"init\"' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:COMMA ',' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'alignment' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:STRING '\"same_verifs\"' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:RPAR ')' (prefix='\\n')\n", "DEBUG:blib2to3.pgen2.driver:NEWLINE '\\n' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:ENDMARKER '' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:Stop.\n" ] }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 16;\n", " var nbb_unformatted_code = \"skill = hindcast.isel(lead=slice(0, 2)).verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_verifs\\\"\\n)\";\n", " var nbb_formatted_code = \"skill = hindcast.isel(lead=slice(0, 2)).verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_verifs\\\"\\n)\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "DEBUG:blib2to3.pgen2.driver:NAME 'skill' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'hindcast' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:DOT '.' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'isel' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:LPAR '(' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'lead' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'slice' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:LPAR '(' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NUMBER '0' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:COMMA ',' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NUMBER '2' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:RPAR ')' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:RPAR ')' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:DOT '.' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'verify' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:LPAR '(' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'metric' (prefix='\\n ')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:STRING '\"acc\"' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:COMMA ',' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'comparison' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:STRING '\"e2o\"' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:COMMA ',' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'dim' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:STRING '\"init\"' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:COMMA ',' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:NAME 'alignment' (prefix=' ')\n", "DEBUG:blib2to3.pgen2.driver:EQUAL '=' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:STRING '\"same_verifs\"' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:RPAR ')' (prefix='\\n')\n", "DEBUG:blib2to3.pgen2.driver:NEWLINE '\\n' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:ENDMARKER '' (prefix='')\n", "DEBUG:blib2to3.pgen2.driver:Stop.\n" ] } ], "source": [ "skill = hindcast.isel(lead=slice(0, 2)).verify(\n", " metric=\"acc\", comparison=\"e2o\", dim=\"init\", alignment=\"same_verifs\"\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One can also save out the log to a file." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 17;\n", " var nbb_unformatted_code = \"logger = logging.getLogger()\\nlogger.setLevel(logging.INFO)\\nfh = logging.FileHandler(\\\"hindcast.out\\\")\\nlogger.addHandler(fh)\";\n", " var nbb_formatted_code = \"logger = logging.getLogger()\\nlogger.setLevel(logging.INFO)\\nfh = logging.FileHandler(\\\"hindcast.out\\\")\\nlogger.addHandler(fh)\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "logger = logging.getLogger()\n", "logger.setLevel(logging.INFO)\n", "fh = logging.FileHandler(\"hindcast.out\")\n", "logger.addHandler(fh)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:root:initialized | lead: 01 | inits: 1963-01-01 00:00:00-2014-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 02 | inits: 1962-01-01 00:00:00-2013-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 03 | inits: 1961-01-01 00:00:00-2012-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 04 | inits: 1960-01-01 00:00:00-2011-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 05 | inits: 1959-01-01 00:00:00-2010-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 06 | inits: 1958-01-01 00:00:00-2009-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 07 | inits: 1957-01-01 00:00:00-2008-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 08 | inits: 1956-01-01 00:00:00-2007-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 09 | inits: 1955-01-01 00:00:00-2006-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 10 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n" ] }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 18;\n", " var nbb_unformatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_verifs\\\"\\n)\";\n", " var nbb_formatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_verifs\\\"\\n)\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "skill = hindcast.verify(\n", " metric=\"acc\", comparison=\"e2o\", dim=\"init\", alignment=\"same_verifs\"\n", ")" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:root:initialized | lead: 01 | inits: 1963-01-01 00:00:00-2014-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 02 | inits: 1962-01-01 00:00:00-2013-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 03 | inits: 1961-01-01 00:00:00-2012-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 04 | inits: 1960-01-01 00:00:00-2011-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 05 | inits: 1959-01-01 00:00:00-2010-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 06 | inits: 1958-01-01 00:00:00-2009-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 07 | inits: 1957-01-01 00:00:00-2008-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 08 | inits: 1956-01-01 00:00:00-2007-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 09 | inits: 1955-01-01 00:00:00-2006-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "INFO:root:initialized | lead: 10 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n" ] }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 19;\n", " var nbb_unformatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_verifs\\\"\\n)\";\n", " var nbb_formatted_code = \"skill = hindcast.verify(\\n metric=\\\"acc\\\", comparison=\\\"e2o\\\", dim=\\\"init\\\", alignment=\\\"same_verifs\\\"\\n)\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "skill = hindcast.verify(\n", " metric=\"acc\", comparison=\"e2o\", dim=\"init\", alignment=\"same_verifs\"\n", ")" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "initialized | lead: 01 | inits: 1963-01-01 00:00:00-2014-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 02 | inits: 1962-01-01 00:00:00-2013-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 03 | inits: 1961-01-01 00:00:00-2012-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 04 | inits: 1960-01-01 00:00:00-2011-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 05 | inits: 1959-01-01 00:00:00-2010-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 06 | inits: 1958-01-01 00:00:00-2009-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 07 | inits: 1957-01-01 00:00:00-2008-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 08 | inits: 1956-01-01 00:00:00-2007-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 09 | inits: 1955-01-01 00:00:00-2006-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 10 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 01 | inits: 1963-01-01 00:00:00-2014-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 02 | inits: 1962-01-01 00:00:00-2013-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 03 | inits: 1961-01-01 00:00:00-2012-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 04 | inits: 1960-01-01 00:00:00-2011-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 05 | inits: 1959-01-01 00:00:00-2010-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 06 | inits: 1958-01-01 00:00:00-2009-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 07 | inits: 1957-01-01 00:00:00-2008-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 08 | inits: 1956-01-01 00:00:00-2007-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 09 | inits: 1955-01-01 00:00:00-2006-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n", "initialized | lead: 10 | inits: 1954-01-01 00:00:00-2005-01-01 00:00:00 | verifs: 1964-01-01 00:00:00-2015-01-01 00:00:00\n" ] }, { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 20;\n", " var nbb_unformatted_code = \"!cat hindcast.out\";\n", " var nbb_formatted_code = \"!cat hindcast.out\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "!cat hindcast.out" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", " setTimeout(function() {\n", " var nbb_cell_id = 21;\n", " var nbb_unformatted_code = \"!rm hindcast.out\";\n", " var nbb_formatted_code = \"!rm hindcast.out\";\n", " var nbb_cells = Jupyter.notebook.get_cells();\n", " for (var i = 0; i < nbb_cells.length; ++i) {\n", " if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", " if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", " nbb_cells[i].set_text(nbb_formatted_code);\n", " }\n", " break;\n", " }\n", " }\n", " }, 500);\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "!rm hindcast.out" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.12" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }