From a0c5ed08bee4edfda6b290d167b2fae743666d61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20von=20L=C3=BChmann?= Date: Wed, 13 Mar 2024 15:20:36 +0100 Subject: [PATCH] re-rendered notebook and matplotlib widget commented out --- examples/pruning_and_motion_artifacts.ipynb | 632 +++++++++++++++++--- src/cedalion/xrutils.py | 2 +- 2 files changed, 549 insertions(+), 85 deletions(-) diff --git a/examples/pruning_and_motion_artifacts.ipynb b/examples/pruning_and_motion_artifacts.ipynb index ca91f00..806b829 100644 --- a/examples/pruning_and_motion_artifacts.ipynb +++ b/examples/pruning_and_motion_artifacts.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ "from cedalion import Quantity, units\n", "\n", "# include matplotlib widget support in jupyter\n", - "%matplotlib widget" + "# %matplotlib widget" ] }, { @@ -43,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -52,14 +52,14 @@ "(28, 2, 23239)" ] }, - "execution_count": 20, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "c5fabaccb73d40789e914a40b4d1e324", + "model_id": "d5c32a61299149e5ab52d1bdc7125302", "version_major": 2, "version_minor": 0 }, @@ -135,14 +135,20 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "mask collapsed to channel dimension\n", + "mask collapsed to channel dimension\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "channels that were masked according to the SNR threshold: ['S4D4' 'S5D7' 'S6D8' 'S8D8']\n" ] }, @@ -540,22 +546,22 @@ " detector (channel) object 'D1' 'D2' 'D3' 'D9' ... 'D7' 'D15' 'D7' 'D16'\n", " * wavelength (wavelength) float64 760.0 850.0\n", "Attributes:\n", - " data_type_group: unprocessed raw
  • data_type_group :
    unprocessed raw
  • " ], "text/plain": [ "\n", @@ -589,7 +595,7 @@ " data_type_group: unprocessed raw" ] }, - "execution_count": 21, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -625,7 +631,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -1038,20 +1044,20 @@ " detector (channel) object 'D1' 'D2' 'D3' 'D1' ... 'D6' 'D7' 'D7' 'D8'\n", " * wavelength (wavelength) float64 760.0 850.0\n", "Attributes:\n", - " data_type_group: unprocessed raw
  • data_type_group :
    unprocessed raw
  • " ], "text/plain": [ "\n", @@ -1085,7 +1091,7 @@ " data_type_group: unprocessed raw" ] }, - "execution_count": 22, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -1117,14 +1123,20 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "mask collapsed to channel dimension\n", + "mask collapsed to channel dimension\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "channels that were masked according to the amplitude threshold: ['S1D1' 'S1D9' 'S3D2' 'S6D8' 'S7D6']\n" ] }, @@ -1522,22 +1534,22 @@ " detector (channel) object 'D2' 'D3' 'D1' 'D3' ... 'D15' 'D7' 'D8' 'D16'\n", " * wavelength (wavelength) float64 760.0 850.0\n", "Attributes:\n", - " data_type_group: unprocessed raw
  • data_type_group :
    unprocessed raw
  • " ], "text/plain": [ "\n", @@ -1571,7 +1583,7 @@ " data_type_group: unprocessed raw" ] }, - "execution_count": 23, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -1604,7 +1616,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -2010,18 +2022,18 @@ " detector (channel) object 'D2' 'D3' 'D1' 'D3' ... 'D5' 'D7' 'D7' 'D7'\n", " * wavelength (wavelength) float64 760.0 850.0\n", "Attributes:\n", - " data_type_group: unprocessed raw
  • data_type_group :
    unprocessed raw
  • " ], "text/plain": [ "\n", @@ -2055,7 +2067,7 @@ " data_type_group: unprocessed raw" ] }, - "execution_count": 24, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -2100,7 +2112,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -2505,7 +2517,7 @@ " * channel (channel) object 'S1D1' 'S1D2' 'S1D3' ... 'S8D7' 'S8D8' 'S8D16'\n", " source (channel) object 'S1' 'S1' 'S1' 'S1' ... 'S7' 'S8' 'S8' 'S8'\n", " detector (channel) object 'D1' 'D2' 'D3' 'D9' ... 'D15' 'D7' 'D8' 'D16'\n", - " * wavelength (wavelength) float64 760.0 850.0
  • " ], "text/plain": [ "\n", @@ -2572,7 +2584,7 @@ " * wavelength (wavelength) float64 760.0 850.0" ] }, - "execution_count": 25, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -2610,13 +2622,13 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "2a9f321131b74daea87cb4245f9ab3b9", + "model_id": "dd8c8c1acc7e42ebad78bd1934cd90c7", "version_major": 2, "version_minor": 0 }, @@ -2657,13 +2669,13 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "d7cb50e9d6a443e8b02d05be3aa7b2bc", + "model_id": "edfddb19c1b04c409fe5ff22e688aca8", "version_major": 2, "version_minor": 0 }, @@ -2705,7 +2717,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -3087,30 +3099,30 @@ " samples (time) int32 0 1 2 3 4 5 6 ... 23233 23234 23235 23236 23237 23238\n", " * channel (channel) object 'S1D1' 'S1D2' 'S1D3' ... 'S8D7' 'S8D8' 'S8D16'\n", " source (channel) object 'S1' 'S1' 'S1' 'S1' 'S2' ... 'S7' 'S8' 'S8' 'S8'\n", - " detector (channel) object 'D1' 'D2' 'D3' 'D9' ... 'D15' 'D7' 'D8' 'D16'
  • " ], "text/plain": [ "\n", @@ -3129,7 +3141,7 @@ " detector (channel) object 'D1' 'D2' 'D3' 'D9' ... 'D15' 'D7' 'D8' 'D16'" ] }, - "execution_count": 28, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -3152,13 +3164,13 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "0971a8abc0a144328e1dbf71f6680468", + "model_id": "454cfb18683b4d98a64bcff16c22bc49", "version_major": 2, "version_minor": 0 }, @@ -3411,7 +3423,7 @@ "27 S8D16 0.055037 52" ] }, - "execution_count": 31, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -3442,21 +3454,398 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 38, "metadata": {}, "outputs": [ { - "ename": "ValueError", - "evalue": "unsupported operator 'all'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[32], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# \"all\", yields a mask that flags an artifact at any given time if flagged for any channel, wavelength, chromophore, etc.\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m ma_mask_refined, ma_info \u001b[38;5;241m=\u001b[39m \u001b[43martifact\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mid_motion_refine\u001b[49m\u001b[43m(\u001b[49m\u001b[43mma_mask\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mall\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;66;03m# show the refined mask\u001b[39;00m\n\u001b[0;32m 5\u001b[0m ma_mask_refined\n", - "File \u001b[1;32m~\\OneDrive\\Work\\_Lib\\code\\IBS-Lab\\cedalion\\src\\cedalion\\dataclasses\\xrschemas.py:66\u001b[0m, in \u001b[0;36mvalidate_schemas..wrapper\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 63\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(md, DataArraySchema):\n\u001b[0;32m 64\u001b[0m md\u001b[38;5;241m.\u001b[39mvalidate(ba\u001b[38;5;241m.\u001b[39marguments[arg_name])\n\u001b[1;32m---> 66\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", - "File \u001b[1;32m~\\OneDrive\\Work\\_Lib\\code\\IBS-Lab\\cedalion\\src\\cedalion\\sigproc\\artifact.py:180\u001b[0m, in \u001b[0;36mid_motion_refine\u001b[1;34m(ma_mask, operator)\u001b[0m\n\u001b[0;32m 173\u001b[0m ma_info \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mDataFrame({\n\u001b[0;32m 174\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mchannel\u001b[39m\u001b[38;5;124m'\u001b[39m: [\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mall channels combined\u001b[39m\u001b[38;5;124m'\u001b[39m],\n\u001b[0;32m 175\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mma_fraction\u001b[39m\u001b[38;5;124m'\u001b[39m: [global_frac],\n\u001b[0;32m 176\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mma_count\u001b[39m\u001b[38;5;124m'\u001b[39m: [transitions_ct]\n\u001b[0;32m 177\u001b[0m })\n\u001b[0;32m 179\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m--> 180\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124munsupported operator \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00moperator\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 182\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ma_mask_new, ma_info\n", - "\u001b[1;31mValueError\u001b[0m: unsupported operator 'all'" - ] + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'od' (time: 23239)>\n",
    +       "array([ True,  True,  True, ..., False, False, False])\n",
    +       "Coordinates:\n",
    +       "  * time     (time) float64 0.0 0.128 0.256 ... 2.974e+03 2.974e+03 2.974e+03\n",
    +       "    samples  (time) int32 0 1 2 3 4 5 6 ... 23233 23234 23235 23236 23237 23238
    " + ], + "text/plain": [ + "\n", + "array([ True, True, True, ..., False, False, False])\n", + "Coordinates:\n", + " * time (time) float64 0.0 0.128 0.256 ... 2.974e+03 2.974e+03 2.974e+03\n", + " samples (time) int32 0 1 2 3 4 5 6 ... 23233 23234 23235 23236 23237 23238" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -3469,9 +3858,84 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "77a4f6bf5f6f4a41a514fdd6290cd43f", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACOG0lEQVR4nO3deXjUVNsG8HsoLS2UfSvIVhbZCgpFEBBwYxNFdlQEZXtFQJaCCh8gAgqCCgW1IAoioiwqKCgCZd9VdkQQVKAIRaAsZbOlbb4/wkxnSWaSTDKTmbl/19WrbSY5OTOTSZ45Oc85FkEQBBARERFRyMjj7woQERERkW8xACQiIiIKMQwAiYiIiEIMA0AiIiKiEMMAkIiIiCjEMAAkIiIiCjEMAImIiIhCDANAIiIiohDDAJCIiIgoxDAAJCIiIgoxDACJiIiIQgwDQCIiIqIQwwCQiIiIKMQwACQiIiIKMQwAiYiIiEIMA0AiIiKiEMMAkIiIiCjEMAAkIiIiCjEMAImIiIhCDANAIiIiohDDAJCIiIgoxDAAJCIiIgoxDACJiIiIQgwDQCIiIqIQwwCQiIiIKMQwACQiIiIKMQwAiYiIiEIMA0AiIiKiEMMAkIiIiCjEMAAkIiIiCjEMAImIiIhCDANAIiIiohDDAJCIiIgoxDAAJCIiIgoxDACJiIiIQgwDQCIiIqIQwwCQiIiIKMQwACQiIiIKMQwAiYiIiEIMA0AiIiKiEMMAkIiIiCjEMAAkIiIiCjEMAImIiIhCDANAIiIiohDDAJCIiIgoxDAAJCIiIgoxDACJiIiIQgwDQCIiIqIQwwCQiIiIKMQwACQiIiIKMQwAiYiIiEIMA0AiIiKiEMMAkIiIiCjEMAAkIiIiCjEMAImIiIhCDANAIiIiohCT198VCGQ5OTk4d+4cChYsCIvF4u/qEBERkQKCIOD69esoW7Ys8uQJzbYwBoBeOHfuHMqXL+/vahAREZEGZ86cQbly5fxdDb9gAOiFggULAhAPoEKFCvm5NkRERKREeno6ypcvb7uOhyIGgF6w3vYtVKgQA0AiIqIAE8rdt0LzxjcRERFRCGMASERERBRiGAASERERhRgGgEREREQhhgEgERERUYhhAEhEREQUYhgAEhEREYUYBoBEREREIYYBIBEREVGICZgAMCkpCbGxsYiMjER8fDy2bdsmu25qaiqee+45VK9eHXny5MGwYcMk1/v2229Rq1Yt5MuXD7Vq1cKKFSsMqj0RERGReQREALh06VIMGzYMY8aMwf79+9GsWTO0bdsWKSkpkutnZGSgZMmSGDNmDO677z7JdXbt2oXu3bujZ8+eOHjwIHr27Ilu3brh559/NvKpEBEREfmdRRAEwd+V8KRRo0aoX78+Zs+ebVtWs2ZNdOjQAVOmTHG77cMPP4z7778fiYmJDsu7d++O9PR0/PTTT7Zlbdq0QdGiRbF48WJF9UpPT0fhwoVx7do1zgVMREQUIHj9BvL6uwKeZGZmYu/evRg1apTD8latWmHnzp2ay921axeGDx/usKx169YugaK9jIwMZGRk2P5PT0/XvH93li9fjuXLl+tebunSpTFhwgRER0c7LN+2bRs+/fRTZGdnOywvXLgwBEHQ9DyjoqIQHR2NixcvelVnT4oWLYrKlStj7969qretXLkyqlWrhrVr1xpQM/+6fPkybt26hXLlyvm7KobauXMnMjMz8fDDD3tVzn333YdXX33V9v/s2bOxY8cOL2uXy2KxoGfPnnj88ccxadIknDhxQtF24eHheOWVV1C/fn0cOnQIiYmJyMzMtD3+4IMPYvDgwbLb37lzB+PHj3e4W1K4cGGMGzcOMTExsuuYSUxMDCZMmIACBQoAAD744APeqVGoSZMmGDhwIDIzMzF+/HicOXNGl3JjY2Px5ptvIiwszGH54cOHkZiY6HCddOfYsWPIyspCXFyc5OMNGzbEkCFDvK4vyRBM7uzZswIAYceOHQ7L3377beHee+/1uH2LFi2EoUOHuiwPDw8XvvzyS4dlX375pRARESFb1vjx4wUALj/Xrl1T9mQUevPNNyX3o8fP0qVLXfbXrFkzw/bHH/4Eys+pU6cEQRCEK1euCBaLRffya9euLezbt0/1dh07dhQEQRCeffZZycfT0tJkzyUbN26U3Gbq1Km2dTZt2uT3197Tz9dffy0IgiBcuHDB73UJpB+LxSJcuXJFWLdune5l79y50+V469Gjh+77uXDhglfXUznXrl0TAP2v34HE9C2AVhaLxeF/QRBclhld5ujRo5GQkGD7Pz09HeXLl/eqDlJatWqle5P0xx9/jD/++AP//fefy2O3b98GAPTr1w+1atUCAMydOxfHjh0DIH7be+WVVxTva/369Vi9erXt/+nT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PCls2rRJaNy4sXDPPffwdVbp5ZdfFgoXLixs3rxZSE1Ntf3cunXLtg6Pae95ep15TPsOA0AT+uijj4SKFSsKERERQv369R3S40m97t27C2XKlBHCw8OFsmXLCp06dRKOHDliezwnJ0cYP368EBMTI+TLl09o3ry5cPjwYT/WODBs2rRJAODy88ILLwiCoOx1vX37tjB48GChWLFiQlRUlPDkk08KKSkpfng25uXudb5165bQqlUroWTJkkJ4eLhQoUIF4YUXXnB5Dfk6eyb1GgMQPvvsM9s6PKa95+l15jHtOxZBEATftTcSERERkb+xDyARERFRiGEASERERBRiGAASERERhRgGgEREREQhhgEgERERUYhhAEhEREQUYhgAEhEREYUYBoBEREREIYYBIBEFjc2bN8NiseDq1av+rgoRkakxACSigPTwww9j2LBhDsuaNGmC1NRUFC5c2D+VAhAbG4s1a9b4bf9ERErk9XcFiIj0EhERgZiYGL/t/9ChQ0hLS8MjjzzitzoQESnBFkAiCjgvvvgitmzZgpkzZ8JiscBiseDUqVMut4AXLFiAIkWK4IcffkD16tWRP39+dOnSBTdv3sTnn3+OSpUqoWjRonjllVeQnZ1tKz8zMxOvvfYa7rnnHhQoUACNGjXC5s2bPdbr+++/R+vWrZEvXz7Jx998801UqFAB+fLlQ9myZTFkyBA9Xg4iItXYAkhEAWfmzJk4fvw44uLiMHHiRABAyZIlcerUKZd1b926hVmzZmHJkiW4fv06OnXqhE6dOqFIkSJYvXo1/v77b3Tu3BkPPfQQunfvDgDo3bs3Tp06hSVLlqBs2bJYsWIF2rRpg8OHD6NatWqy9Vq5ciWGDh0q+dg333yDGTNmYMmSJahduzbOnz+PgwcPev9iEBFpwACQiAJO4cKFERERgfz583u85Xvnzh3Mnj0bVapUAQB06dIFX3zxBf79919ER0ejVq1aeOSRR7Bp0yZ0794df/31FxYvXox//vkHZcuWBQCMHDkSa9aswWeffYbJkydL7ufs2bM4ePAgnnjiCcnHU1JSEBMTg8cffxzh4eGoUKECGjZs6MWrQESkHW8BE1FQy58/vy34A4DSpUujUqVKiI6Odlh24cIFAMC+ffsgCALuvfdeREdH2362bNmCv/76S3Y/K1euRNOmTVGsWDHJx7t27Yrbt2+jcuXK6N+/P1asWIGsrCydniURkTpsASSioBYeHu7wv8VikVyWk5MDAMjJyUFYWBj27t2LsLAwh/Xsg0ZnK1euxNNPPy37ePny5fHHH38gOTkZ69evx8CBA/Huu+9iy5YtLvUhIjIaA0AiCkgREREOiRt6qVevHrKzs3HhwgU0a9ZM0TY3btzApk2b8NFHH7ldLyoqCu3bt0f79u0xaNAg1KhRA4cPH0b9+vX1qDoRkWIMAIkoIFWqVAk///wzTp06hejoaNlbr2rde++96NGjB3r16oX3338f9erVw6VLl7Bx40bUqVNHso/fmjVrUK1aNVSuXFm23AULFiA7OxuNGjVC/vz58cUXXyAqKgoVK1bUpd5ERGqwDyARBaSRI0ciLCwMtWrVQsmSJZGSkqJb2Z999hl69eqFESNGoHr16mjfvj1+/vlnlC9fXnL977//3u3tXwAoUqQIPvnkEzRt2hR169bFhg0bsGrVKhQvXly3ehMRKWURBEHwdyWIiAJVdnY2SpUqhZ9++olZvUQUMNgCSETkhbS0NAwfPhwPPPCAv6tCRKQYWwCJiIiIQgxbAImIiIhCDANAIiIiohDDAJCIiIgoxDAAJCIiIgoxDACJiIiIQgwDQCIiIqIQwwCQiIiIKMQwACQiIiIKMQwAiYiIiELM/wPMTLje7BZIkAAAAABJRU5ErkJggg==", + "text/html": [ + "\n", + "
    \n", + "
    \n", + " Figure\n", + "
    \n", + " \n", + "
    \n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    channelma_fractionma_count
    0all channels combined[0.31911872283661086, 0.3049614871552132][274, 229]
    \n", + "
    " + ], + "text/plain": [ + " channel ma_fraction \n", + "0 all channels combined [0.31911872283661086, 0.3049614871552132] \\\n", + "\n", + " ma_count \n", + "0 [274, 229] " + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# plot the figure\n", "\n", diff --git a/src/cedalion/xrutils.py b/src/cedalion/xrutils.py index bcfc161..149f360 100644 --- a/src/cedalion/xrutils.py +++ b/src/cedalion/xrutils.py @@ -73,7 +73,7 @@ def apply_mask(data_array: xr.DataArray, INPUTS: data_array: NDTimeSeries, input time series data xarray - mask: input bookean mask array with a subset of dimensions matching data_array + mask: input boolean mask array with a subset of dimensions matching data_array operator: operators to apply to the mask and data_array "nan": inserts NaNs in the data_array where mask is False "drop": drops value in the data_array where mask is False