{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## How `n_min_threshold` changes what features are detected" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Imports" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2025-12-18T15:02:45.471996Z", "iopub.status.busy": "2025-12-18T15:02:45.471885Z", "iopub.status.idle": "2025-12-18T15:02:48.031308Z", "shell.execute_reply": "2025-12-18T15:02:48.030998Z" } }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import tobac\n", "import xarray as xr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Generate Feature Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, we will generate some simple feature data with a variety of features, large and small. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2025-12-18T15:02:48.033059Z", "iopub.status.busy": "2025-12-18T15:02:48.032843Z", "iopub.status.idle": "2025-12-18T15:02:48.124869Z", "shell.execute_reply": "2025-12-18T15:02:48.124560Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgsAAAGxCAYAAADs5vVAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAN4hJREFUeJzt3X901NWd//HXQGBIIERBmGEqPwKNggQEjU2J2KRHSIvA2tLVIlhDsbvYoCWlLYq0MrCSKN1m05qKhdIQl0bcrmCpVkysGstGlohEMXpAv6QhpYzZWkiCQCKZ+/2DZsoQMn4mM0lmyPNxzj3H3M+PeV+izpv3vZ/7sRljjAAAADrQp6cDAAAAkY1kAQAABESyAAAAAiJZAAAAAZEsAACAgEgWAABAQCQLAAAgIJIFAAAQEMkCAAAIiGQB+LstW7bIZrP5tWHDhikjI0PPPfdcT4cXtEWLFmnMmDGduvbxxx/Xli1bwhoPgOhFsgBcoKioSK+//roqKiq0ceNG9e3bV3PnztXvfve7ng6t25AsADhfTE8HAESa5ORkpaSk+H7+8pe/rMsvv1xPPfWU5s6d24ORAUDPoLIAfIoBAwaof//+6tevn1//mjVrlJqaqiFDhmjw4MG67rrrtHnzZl34braXX35ZGRkZGjp0qGJjYzVq1Ch97Wtf06lTp3zntLS06OGHH9b48eNlt9s1bNgwffOb39T//d//WYpxy5Ytuvrqq2W32zVhwgQ9+eSTFz3PSsxjxoxRdXW1ysvLfdMxbdMZZ86c0fe+9z1NmTJFCQkJGjJkiKZNm6bf/va3luIEEJ2oLAAXaG1t1dmzZ2WM0Ycffqgf//jH+vjjj7VgwQK/8/70pz9pyZIlGjVqlCRpz549uu+++3T06FE99NBDvnNmz56tm266Sb/61a902WWX6ejRo9q1a5daWloUFxcnr9erW2+9VX/84x+1YsUKpaWlqba2VqtXr1ZGRobeeOMNxcbGdhjvli1b9M1vflO33nqrfvKTn6ihoUFut1vNzc3q08f/7wNWYt6xY4f++Z//WQkJCXr88cclSXa7XZLU3Nysv/3tb/r+97+vz3zmM2ppadFLL72kefPmqaioSHfddVcYfgMAIo4BYIwxpqioyEhq1+x2u3n88ccDXtva2mo++eQTs3btWjN06FDj9XqNMcb893//t5FkqqqqOrz2qaeeMpLMM88849dfWVlpJAX87NbWVuNyucx1113n+0xjjPnTn/5k+vXrZ0aPHh10zMYYM3HiRJOenh5wzMYYc/bsWfPJJ5+Yu+++20ydOvVTzwcQnZiGAC7w5JNPqrKyUpWVlXrhhReUlZWlpUuXqrCw0O+8l19+WTNmzFBCQoL69u2rfv366aGHHtJHH32k+vp6SdKUKVPUv39//eu//quKi4t1+PDhdp/33HPP6bLLLtPcuXN19uxZX5syZYqcTqdeffXVDmM9ePCg/vKXv2jBggWy2Wy+/tGjRystLa3d+VZi/jS/+c1vdOONN2rQoEGKiYlRv379tHnzZr333nuWrgcQfUgWgAtMmDBBKSkpSklJ0Ze//GX94he/UGZmplasWKETJ05Ikvbu3avMzExJ0qZNm/Q///M/qqys1KpVqyRJp0+fliSNGzdOL730koYPH66lS5dq3LhxGjdunH7605/6Pu/DDz/UiRMnfOsizm8ej0d//etfO4z1o48+kiQ5nc52xy7ssxpzINu3b9ftt9+uz3zmM9q6datef/11VVZWavHixTpz5synXg8gOrFmAbBg8uTJevHFF3Xo0CF97nOf07Zt29SvXz8999xzGjBggO+8Z599tt21N910k2666Sa1trbqjTfe0GOPPaacnBw5HA7Nnz9fV1xxhYYOHapdu3Zd9LPj4+M7jGvo0KGSJI/H0+7YhX3BxNyRrVu3KjExUU8//bRfJaO5udnyPQBEHyoLgAVVVVWSpGHDhkmSbDabYmJi1LdvX985p0+f1n/+5392eI++ffsqNTVVP//5zyVJb775piRpzpw5+uijj9Ta2uqraJzfrr766g7vefXVV2vEiBF66qmn/J5oqK2tVUVFhd+5wcRst9svWmmw2Wzq37+/X6Lg8Xh4GgK4xJEsABd45513tGfPHu3Zs0fPP/+87r77bpWVlemrX/2qEhMTJUmzZ8/WyZMntWDBApWVlWnbtm266aabfE8NtHniiSd0++23q7i4WK+88opeeOEFfetb35IkzZgxQ5I0f/58zZo1S7fccovWrl2rXbt26Q9/+IOKi4u1aNEi7dixo8NY+/Tpo3/7t3/Tvn379NWvflXPP/+8fv3rX2vGjBntpiGsxixJkyZN0ltvvaWnn35alZWVOnDggKRzic3BgweVnZ2tl19+WcXFxZo+fbpGjBjR+T9wAJGvp1dYApHiYk9DJCQkmClTppj8/Hxz5swZv/N/9atfmauvvtrY7XYzduxYk5eXZzZv3mwkmZqaGmOMMa+//rr56le/akaPHm3sdrsZOnSoSU9PNzt37vS71yeffGL+/d//3Vx77bVmwIABZtCgQWb8+PFmyZIl5v333//U2H/5y1+apKQk079/f3PVVVeZX/3qVyYrK6vd0xBWYjbm3NMUmZmZJj4+3kjyu88jjzxixowZY+x2u5kwYYLZtGmTWb16teF/J8Cly2bMBTvIAAAAnIdpCAAAEBDJAgAACIhkAQAABBRUsnD27Fn98Ic/VGJiomJjYzV27FitXbtWXq/Xd44xRm63Wy6XS7GxscrIyFB1dXXYAwcA4FL32muvae7cuXK5XLLZbO32RbHyndvc3Kz77rtPV1xxhQYOHKh/+qd/0p///Oeg4ggqWXj00Uf1xBNPqLCwUO+9957Wr1+vH//4x3rsscd856xfv175+fkqLCxUZWWlnE6nZs6cqaampqACAwCgt/v444917bXXtttuvo2V79ycnBzt2LFD27Zt0+7du3Xy5EnNmTNHra2t1gMJ5tGJ2bNnm8WLF/v1zZs3z9x5553GGGO8Xq9xOp3mkUce8R0/c+aMSUhIME888USID24AANB7STI7duzw/WzlO/fEiROmX79+Ztu2bb5zjh49avr06WN27dpl+bOD2u55+vTpeuKJJ3To0CFdddVVeuutt7R7924VFBRIkmpqauTxeHz7z0vndoJLT09XRUWFlixZ0u6ezc3NflvFer1e/e1vf9PQoUP9dokDAOBCxhg1NTXJ5XK1eyV7OJ05c0YtLS1huZcxpt33m91uv+gGaYFY+c7dt2+fPvnkE79zXC6XkpOTVVFRoS996UuWPiuoZOH+++9XQ0ODxo8fr759+6q1tVXr1q3THXfcIekfe9E7HA6/6xwOh2pray96z7y8PK1ZsyaYMAAA8FNXV6crr7yyS+595swZJY4eJE99EGX7AAYNGqSTJ0/69a1evVputzuo+1j5zvV4POrfv78uv/zydudc7J0yHQkqWXj66ae1detWlZSUaOLEiaqqqlJOTo5cLpeysrJ8512YMV0si2qzcuVKLV++3PdzQ0ODRo0apem6RTHqF0x4AIBe5qw+0W79PuAL10LV0tIiT32ravaN1uD4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P/POO+8YYyI//ovZu3evGTNmjJk8ebJZtmyZrz8axrJ69WozceJEc+zYMV+rr6/3HY+GMfztb38zo0ePNosWLTL/+7//a2pqasxLL71kPvjgA9850TCO+vp6v99DWVmZkWReeeUVY0x0jOHhhx82Q4cONc8995ypqakxv/nNb8ygQYNMQUGB75xoGEc0i6hk4XOf+5y55557/PrGjx9vHnjggR6KKDgXJgter9c4nU7zyCOP+PrOnDljEhISzBNPPNEDEVpTX19vJJny8nJjTPSO4/LLLze//OUvozL+pqYmk5SUZMrKykx6erovWYiWsaxevdpce+21Fz0WLWO4//77zfTp0zs8Hi3juNCyZcvMuHHjjNfrjZoxzJ492yxevNivb968eebOO+80xkTv7yKaRMw0RNt7uzMzM/36e+K93eFSU1Mjj8fjNya73a709PSIHlNDQ4Mk+d7iFm3jaG1t1bZt2/Txxx9r2rRpURe/JC1dulSzZ8/WjBkz/PqjaSzvv/++XC6XEhMTNX/+fB0+fFhS9Ixh586dSklJ0W233abhw4dr6tSp2rRpk+94tIzjfC0tLdq6dasWL14sm80WNWOYPn26/vCHP+jQoUOSpLfeeku7d+/WLbfcIik6fxfRpsteUR2sSHpvd7i0xX2xMdXW1vZESJ/KGKPly5dr+vTpSk5OlhQ94zhw4ICmTZumM2fOaNCgQdqxY4euueYa3/8sIj3+Ntu2bdObb76pysrKdsei5XeRmpqqJ598UldddZU+/PBDPfzww0pLS1N1dXXUjOHw4cPasGGDli9frgcffFB79+7Vd77zHdntdt11111RM47zPfvsszpx4oQWLVokKXr+fbr//vvV0NCg8ePHq2/fvmptbdW6det0xx13SIqecUSziEkW2kTCe7vDLZrGdO+99+rtt9/W7t272x2L9HFcffXVqqqq0okTJ/TMM88oKytL5eXlvuORHr8k1dXVadmyZSotLQ34OtxIH8usWbN8/zxp0iRNmzZN48aNU3FxsT7/+c9LivwxeL1epaSkKDc3V5I0depUVVdXa8OGDbrrrrt850X6OM63efNmzZo1Sy6Xy68/0sfw9NNPa+vWrSopKdHEiRNVVVWlnJwcuVwuZWVl+c6L9HFEs4iZhoik93aHS9vq72gZ03333aedO3fqlVde0ZVXXunrj5Zx9O/fX5/97GeVkpKivLw8XXvttfrpT38aNfFL0r59+1RfX6/rr79eMTExiomJUXl5uX72s58pJibGF280jOV8AwcO1KRJk/T+++9Hze9jxIgRuuaaa/z6JkyYoCNHjkiKnv8u2tTW1uqll17St771LV9ftIzhBz/4gR544AHNnz9fkyZN0je+8Q1997vfVV5enqToGUc0i5hkIZLe2x0uiYmJcjqdfmNqaWlReXl5RI3JGKN7771X27dv18svv6zExES/49EyjgsZY9Tc3BxV8d988806cOCAqqqqfC0lJUULFy5UVVWVxo4dGzVjOV9zc7Pee+89jRgxImp+HzfeeGO7R4gPHTrke9tftIyjTVFRkYYPH67Zs2f7+qJlDKdOnVKfPv5fV3379vU9Ohkt44hqPbOu8uLaHp3cvHmzeffdd01OTo4ZOHCg+dOf/tTToXWoqanJ7N+/3+zfv99IMvn5+Wb//v2+xz0feeQRk5CQYLZv324OHDhg7rjjjoh7nOfb3/62SUhIMK+++qrfI1anTp3ynRPp41i5cqV57bXXTE1NjXn77bfNgw8+aPr06WNKS0uNMZEffyDnPw1hTHSM5Xvf+5559dVXzeHDh82ePXvMnDlzTHx8vO+/5WgYw969e01MTIxZt26def/9982vf/1rExcXZ7Zu3eo7JxrGYYwxra2tZtSoUeb+++9vdywaxpCVlWU+85nP+B6d3L59u7niiivMihUrfOdEwziiWUQlC8YY8/Of/9yMHj3a9O/f31x33XW+x/ci1SuvvGIktWtZWVnGmHOP9Kxevdo4nU5jt9vNF77wBXPgwIGeDfoCF4tfkikqKvKdE+njWLx4se/fm2HDhpmbb77ZlygYE/nxB3JhshANY2l7xr1fv37G5XKZefPmmerqat/xaBiDMcb87ne/M8nJycZut5vx48ebjRs3+h2PlnG8+OKLRpI5ePBgu2PRMIbGxkazbNkyM2rUKDNgwAAzduxYs2rVKtPc3Ow7JxrGEc1sxhjTIyUNAAAQFSJmzQIAAIhMJAsAACAgkgUAABAQyQIAAAiIZAEAAAREsgAAAAIiWQAAAAGRLAAAgIBIFgAAQEAkCwAAICCSBQAAEND/B6Do03q48VjdAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Dimensions here are time, y, x.\n", "input_field_arr = np.zeros((1, 80, 80))\n", "# small 5x5 feature, area of 25 points\n", "input_field_arr[0, 15:20, 10:15] = 50\n", "# larger 30x30 feature, area of 900\n", "input_field_arr[0, 40:70, 10:30] = 50\n", "# small 2x2 feature within larger 30x30 feature, area of 4 points\n", "input_field_arr[0, 52:54, 22:24] = 100\n", "# small 4x4 feature within larger 30x30 feature, area of 16 points\n", "input_field_arr[0, 60:64, 15:19] = 100\n", "\n", "plt.pcolormesh(input_field_arr[0])\n", "plt.colorbar()\n", "plt.title(\"Base data\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2025-12-18T15:02:48.143342Z", "iopub.status.busy": "2025-12-18T15:02:48.143215Z", "iopub.status.idle": "2025-12-18T15:02:48.190253Z", "shell.execute_reply": "2025-12-18T15:02:48.189985Z" } }, "outputs": [], "source": [ "# We now need to generate an xarray DataArray out of this dataset to run tobac feature detection.\n", "input_field_da = xr.DataArray(\n", " input_field_arr,\n", " dims=[\"time\", \"Y\", \"X\"],\n", " coords={\"time\": [np.datetime64(\"2019-01-01T00:00:00\")]},\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### No `n_min_threshold`\n", "If we keep `n_min_threshold` at the default value of `0`, all three features will be detected with the appropriate thresholds used." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2025-12-18T15:02:48.191998Z", "iopub.status.busy": "2025-12-18T15:02:48.191888Z", "iopub.status.idle": "2025-12-18T15:02:48.454217Z", "shell.execute_reply": "2025-12-18T15:02:48.453940Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresholds = [50, 100]\n", "# Using 'center' here outputs the feature location as the arithmetic center of the detected feature.\n", "# All filtering is off in this example, although that is not usually recommended.\n", "single_threshold_features = tobac.feature_detection_multithreshold(\n", " field_in=input_field_da,\n", " dxy=1000,\n", " threshold=thresholds,\n", " target=\"maximum\",\n", " position_threshold=\"center\",\n", " sigma_threshold=0,\n", ")\n", "plt.pcolormesh(input_field_arr[0])\n", "plt.colorbar()\n", "# Plot all features detected\n", "plt.scatter(\n", " x=single_threshold_features[\"hdim_2\"].values,\n", " y=single_threshold_features[\"hdim_1\"].values,\n", " color=\"r\",\n", " label=\"Detected Features\",\n", ")\n", "plt.legend()\n", "plt.title(\"n_min_threshold=0\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Increasing `n_min_threshold`\n", "As we increase `n_min_threshold`, fewer of these separate features are detected. In this example, if we set `n_min_threshold` to 5, the smallest detected feature goes away. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2025-12-18T15:02:48.455887Z", "iopub.status.busy": "2025-12-18T15:02:48.455714Z", "iopub.status.idle": "2025-12-18T15:02:48.538993Z", "shell.execute_reply": "2025-12-18T15:02:48.538707Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresholds = [50, 100]\n", "n_min_threshold = 5\n", "# Using 'center' here outputs the feature location as the arithmetic center of the detected feature.\n", "# All filtering is off in this example, although that is not usually recommended.\n", "single_threshold_features = tobac.feature_detection_multithreshold(\n", " field_in=input_field_da,\n", " dxy=1000,\n", " threshold=thresholds,\n", " target=\"maximum\",\n", " position_threshold=\"center\",\n", " sigma_threshold=0,\n", " n_min_threshold=n_min_threshold,\n", ")\n", "plt.pcolormesh(input_field_arr[0])\n", "plt.colorbar()\n", "# Plot all features detected\n", "plt.scatter(\n", " x=single_threshold_features[\"hdim_2\"].values,\n", " y=single_threshold_features[\"hdim_1\"].values,\n", " color=\"r\",\n", " label=\"Detected Features\",\n", ")\n", "plt.legend()\n", "plt.title(\"n_min_threshold={0}\".format(n_min_threshold))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we increase `n_min_threshold` to 20, only the large 50-valued feature is detected, rather than the two higher-valued squares." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2025-12-18T15:02:48.540552Z", "iopub.status.busy": "2025-12-18T15:02:48.540437Z", "iopub.status.idle": "2025-12-18T15:02:48.624664Z", "shell.execute_reply": "2025-12-18T15:02:48.624374Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresholds = [50, 100]\n", "n_min_threshold = 20\n", "# Using 'center' here outputs the feature location as the arithmetic center of the detected feature.\n", "# All filtering is off in this example, although that is not usually recommended.\n", "single_threshold_features = tobac.feature_detection_multithreshold(\n", " field_in=input_field_da,\n", " dxy=1000,\n", " threshold=thresholds,\n", " target=\"maximum\",\n", " position_threshold=\"center\",\n", " sigma_threshold=0,\n", " n_min_threshold=n_min_threshold,\n", ")\n", "plt.pcolormesh(input_field_arr[0])\n", "plt.colorbar()\n", "# Plot all features detected\n", "plt.scatter(\n", " x=single_threshold_features[\"hdim_2\"].values,\n", " y=single_threshold_features[\"hdim_1\"].values,\n", " color=\"r\",\n", " label=\"Detected Features\",\n", ")\n", "plt.legend()\n", "plt.title(\"n_min_threshold={0}\".format(n_min_threshold))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we set `n_min_threshold` to 100, only the largest feature is detected." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2025-12-18T15:02:48.626099Z", "iopub.status.busy": "2025-12-18T15:02:48.625978Z", "iopub.status.idle": "2025-12-18T15:02:48.707264Z", "shell.execute_reply": "2025-12-18T15:02:48.706968Z" } }, "outputs": [ { "data": { "image/png": "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ERGRAgZIkCzcgZE7OBIREVGbxJ4FIiIiBdrzpkxMFoiIiBQwCAlSO91ngckCWQ03WyIiapuYLBARESkghBVWQ9jpcggmC0RERAq05zkLXA1BREREJrFngYiISAH2LCik0+kgSZJR0Wg08nEhBHQ6HbRaLVxdXRESEoK8vDyrB01ERNTS6t46aWmxR2YPQwwaNAjnz5+XS25urnwsISEBiYmJWL9+PbKzs6HRaBAaGory8nKrBk1ERNTS6iY4WlrskdnJgpOTEzQajVy6desGoLZXISkpCbGxsYiIiIC/vz9SU1Nx5coVpKWlWT1wIiIiahlmJwsnT56EVquFr68vHnnkEZw+fRoAUFBQAL1ej7CwMPlclUqF4OBgZGVlNXq/yspKlJWVGRUiIiJbU9szIFlYWrsVTWNWshAYGIi33noLn332GTZv3gy9Xo+goCBcuHABer0eAKBWq42uUavV8rGGxMfHw8vLSy4+Pj5NaAYREVHzsjxRsHyCZGsxK1mYMGECHnzwQQQEBGD8+PH45JNPAACpqanyOZJk/IMQQtSru96yZctQWloql6KiInNCIiIiomZm0T4LHTt2REBAAE6ePCmvirixF6G4uLheb8P1VCoVPD09jQoREZGtEVYq9siiZKGyshLff/89vL294evrC41Gg4yMDPl4VVUVMjMzERQUZHGgRERErak9D0OYtSnTokWLMHnyZPTs2RPFxcVYvXo1ysrKEBkZCUmSEBMTg7i4OPj5+cHPzw9xcXFwc3PD9OnTmyt+IiIiamZmJQs///wzpk2bht9++w3dunXDyJEjceTIEfTq1QsAsHjxYlRUVCA6OholJSUIDAxEeno6PDw8miV4IiKiFmONcQQ7HYcwaxhi27ZtOHfuHKqqqnD27Fls374dt99+u3xckiTodDqcP38eV69eRWZmJvz9/a0eNBERUYuzxhCEmcMQZ8+excyZM9G1a1e4ublhyJAhOHr06P9CaqGdk/kiKSIiIgVaegfHkpISjB49Gs7OztizZw++++47vPTSS+jUqZN8TkvtnMwXSREREdmgF154AT4+PkhJSZHrevfuLf/5xp2TgdqtDNRqNdLS0hAVFWW1WNizQEREpIA1V0PcuHNxZWVlveft3r0bw4cPx9SpU9G9e3cMHToUmzdvlo83defkpmCyQEREpETdnANLCwAfHx+j3Yvj4+PrPe706dNITk6Gn58fPvvsM8ydOxdPPvkk3nrrLQBo8s7JTcFhCCIiohZWVFRktAmhSqWqd47BYMDw4cMRFxcHABg6dCjy8vKQnJyMWbNmyeeZu3NyU7BngYiISAFrTnC8cefihpIFb29voxWHAHDbbbfhzJkzANDknZObgskCERGREi283/Po0aORn59vVHfixAl5b6OW3DmZwxBEREQ26KmnnkJQUBDi4uLw0EMP4csvv8SmTZuwadMmAGjRnZOZLBARESlgjXc7mHP9iBEjsHPnTixbtgyrVq2Cr68vkpKSMGPGDPmclto5mckCERGRUi28XfOkSZMwadKkRo/X7Zys0+maNQ7OWSAiIiKT2LNARESkQEsPQ9gSJgtERERKtOO3TjJZICIiUkT6o1h6D/vDOQtERERkEnsWiIiIlOAwBBEREZnUjpMFDkMQERGRSexZICIiUuK6V0xbdA87xGSBiIhIgevfGmnJPewRhyGIiIjIJPYsEBERKdGOJzgyWSAiIlKiHc9Z4DAEERERmcSeBSIiIgUkUVssvYc9YrJARESkBOcsEBERkUmcs0BERETUMPYsEBERKcFhCCIiIjKpHScLHIYgIiIik9izQEREpEQ77llgskBERKQEV0MQERERNYw9C0RERApwB0ciIiIyrR3PWbBoGCI+Ph6SJCEmJkauE0JAp9NBq9XC1dUVISEhyMvLszROIiIiaiVNThays7OxadMmDB482Kg+ISEBiYmJWL9+PbKzs6HRaBAaGory8nKLgyUiIqKW16Rk4dKlS5gxYwY2b96Mzp07y/VCCCQlJSE2NhYRERHw9/dHamoqrly5grS0tAbvVVlZibKyMqNCRERkayT8b95Ck0trN6KJmjRnYd68eQgPD8f48eOxevVqub6goAB6vR5hYWFynUqlQnBwMLKyshAVFVXvXvHx8Vi5cmVTwrB5fWOOtHYIRERkLVw6qdy2bdtw7NgxxMfH1zum1+sBAGq12qherVbLx260bNkylJaWyqWoqMjckIiIiKgZmdWzUFRUhAULFiA9PR0uLi6NnidJxpmTEKJeXR2VSgWVSmVOGERERC2PqyGUOXr0KIqLizFs2DA4OTnByckJmZmZePXVV+Hk5CT3KNzYi1BcXFyvt4GIiMiuCCsVO2RWsjBu3Djk5uYiJydHLsOHD8eMGTOQk5ODPn36QKPRICMjQ76mqqoKmZmZCAoKsnrwRERE1PzMGobw8PCAv7+/UV3Hjh3RtWtXuT4mJgZxcXHw8/ODn58f4uLi4ObmhunTp1svaiIiohbGHRytaPHixaioqEB0dDRKSkoQGBiI9PR0eHh4WPtRRERELacdz1mwOFk4cOCA0WdJkqDT6aDT6Sy9NREREdkAvhuCiIhICfYsEBERkSntec6CRS+SIiIioraPPQtERERKtOPtnpksEBERKcE5C0RERGQK5ywQERERNYI9C0REREpwGIKIiIhMssIwhL0mCxyGICIiIpPYs0BERKQEhyGIiIjIpHacLHAYgoiIiExizwIREZEC3GeBiIiIqBFMFoiIiMgkDkMQEREp0Y4nODJZICIiUqA9z1lgskBERKSUnX7ZW4pzFoiIiMgk9iwQEREpwTkLREREZEp7nrPAYQgiIiIyiT0LRERESnAYgoiIiEzhMAQRERFRI5gsEBERKSGsVJooPj4ekiQhJibmfyEJAZ1OB61WC1dXV4SEhCAvL6/pD2kEkwUiIiIlWjFZyM7OxqZNmzB48GCj+oSEBCQmJmL9+vXIzs6GRqNBaGgoysvLm/agRjBZICIiamFlZWVGpbKystFzL126hBkzZmDz5s3o3LmzXC+EQFJSEmJjYxEREQF/f3+kpqbiypUrSEtLs2q8TBaIiIgUqJvgaGkBAB8fH3h5ecklPj6+0efOmzcP4eHhGD9+vFF9QUEB9Ho9wsLC5DqVSoXg4GBkZWVZte1cDUFERKSEFZdOFhUVwdPTU65WqVQNnr5t2zYcO3YM2dnZ9Y7p9XoAgFqtNqpXq9UoLCy0MFBjTBaIiIiUsGKy4OnpaZQsNKSoqAgLFixAeno6XFxcGj1PkiTjRwhRr85SHIYgIiKyQUePHkVxcTGGDRsGJycnODk5ITMzE6+++iqcnJzkHoW6HoY6xcXF9XobLMVkgYiISAFrzllQYty4ccjNzUVOTo5chg8fjhkzZiAnJwd9+vSBRqNBRkaGfE1VVRUyMzMRFBRk1bZzGIKIiEiJFt7u2cPDA/7+/kZ1HTt2RNeuXeX6mJgYxMXFwc/PD35+foiLi4ObmxumT59uYaDGzOpZSE5OxuDBg+WxllGjRmHPnj3y8ZbaHIKIiIiAxYsXIyYmBtHR0Rg+fDjOnj2L9PR0eHh4WPU5ZvUs9OjRA2vXrkW/fv0AAKmpqZgyZQqOHz+OQYMGyZtDbNmyBf3798fq1asRGhqK/Px8qwdORETUkmzh3RAHDhwwvp8kQafTQafTWXbjmzCrZ2Hy5MmYOHEi+vfvj/79+2PNmjVwd3fHkSNHWnRzCCIiohbXyts9t6YmT3CsqanBtm3bcPnyZYwaNarJm0NUVlbW28mKiIiIbIfZyUJubi7c3d2hUqkwd+5c7Ny5E7fffrvJzSFuXNZxvfj4eKNdrHx8fMwNiYiIqPmxZ0G5AQMGICcnB0eOHMHjjz+OyMhIfPfdd/JxczeHWLZsGUpLS+VSVFRkbkhERETNTrJSsUdmL53s0KGDPMFx+PDhyM7OxiuvvIIlS5YAqN0cwtvbWz7/ZptDqFSqRre5JCIiotZn8aZMQghUVlbC19e3xTaHICIianHteBjCrJ6F5cuXY8KECfDx8UF5eTm2bduGAwcOYO/evZAkqcU2hyAiImpptrB0srWYlSz88ssvePTRR3H+/Hl4eXlh8ODB2Lt3L0JDQwHUbg5RUVGB6OholJSUIDAwsFk2hyAiImpxLbyDoy0xK1l44403TB5vqc0hiIiIqOXw3RBERERK2WnPgKWYLBARESnQnucs8BXVREREZBJ7FoiIiJTgBEciIiIyhcMQRERERI1gzwIREZESHIYgIiIiUzgMQURERNQI9iwQEREpwWEIIiIiMonJAhEREZnCOQtEREREjWDPAhERkRIchiAiIiJTJCEgCcu+7S29vrVwGIKIiIhMYs8CERGREhyGICIiIlO4GoKIiIioEexZICIiUoLDEERERGQKhyGIiIiIGsGeBSIiIiU4DEFERESmtOdhCCYLRERESrTjngXOWSAiIiKT2LNARESkkL0OI1iKyQIREZESQtQWS+9hhzgMQURERCaxZ4GIiEgBroYgIiIi07gagoiIiKhh7FkgIiJSQDLUFkvvYY+YLBARESnBYQgiIiKihpmVLMTHx2PEiBHw8PBA9+7dcf/99yM/P9/oHCEEdDodtFotXF1dERISgry8PKsGTURE1NLqVkNYWuyRWclCZmYm5s2bhyNHjiAjIwPV1dUICwvD5cuX5XMSEhKQmJiI9evXIzs7GxqNBqGhoSgvL7d68ERERC2mblMmS4sdMmvOwt69e40+p6SkoHv37jh69CjuuusuCCGQlJSE2NhYREREAABSU1OhVquRlpaGqKgo60VORETUgtrzPgsWzVkoLS0FAHTp0gUAUFBQAL1ej7CwMPkclUqF4OBgZGVlNXiPyspKlJWVGRUiIiKyHU1eDSGEwMKFCzFmzBj4+/sDAPR6PQBArVYbnatWq1FYWNjgfeLj47Fy5cqmhmHTfkwa2ezP6BtzpNmfQURE4GqIppg/fz6++eYbvPvuu/WOSZJk9FkIUa+uzrJly1BaWiqXoqKipoZERETUbNrzBMcm9Sw88cQT2L17Nw4ePIgePXrI9RqNBkBtD4O3t7dcX1xcXK+3oY5KpYJKpWpKGERERNQCzOpZEEJg/vz52LFjB/bt2wdfX1+j476+vtBoNMjIyJDrqqqqkJmZiaCgIOtETERE1Bq4GkKZefPmIS0tDbt27YKHh4c8R8HLywuurq6QJAkxMTGIi4uDn58f/Pz8EBcXBzc3N0yfPr1ZGkBERNQS2vNqCLOSheTkZABASEiIUX1KSgpmz54NAFi8eDEqKioQHR2NkpISBAYGIj09HR4eHlYJmIiIiFqWWcmCUNB9IkkSdDoddDpdU2MiIiKyPe14NQRfJEVERKRAex6G4IukiIiIyCT2LBARESlhELXF0nvYISYLRERESnDOAhEREZkiwQpzFqwSScvjnAUiIiIyiT0LRERESlhjB8b2sIMjERFRe8Wlk0RERGRT4uPjMWLECHh4eKB79+64//77kZ+fb3SOEAI6nQ5arRaurq4ICQlBXl6e1WNhskBERKSEsFJRKDMzE/PmzcORI0eQkZGB6upqhIWF4fLly/I5CQkJSExMxPr165GdnQ2NRoPQ0FCUl5db3t7rcBiCiIhIAUkISBbOOai7vqyszKhepVJBpVIZ1e3du9foc0pKCrp3746jR4/irrvughACSUlJiI2NRUREBAAgNTUVarUaaWlpiIqKsijW67FngYiIqIX5+PjAy8tLLvHx8Te9prS0FADQpUsXAEBBQQH0ej3CwsLkc1QqFYKDg5GVlWXVeNmzQEREpIThj2LpPQAUFRXB09NTrr6xV+FGQggsXLgQY8aMgb+/PwBAr9cDANRqtdG5arUahYWFFgZqjMkCERGRAtYchvD09DRKFm5m/vz5+Oabb3Do0KH695SMt3oSQtSrsxSHIYiIiGzYE088gd27d2P//v3o0aOHXK/RaAD8r4ehTnFxcb3eBksxWSAiIlKihVdDCCEwf/587NixA/v27YOvr6/RcV9fX2g0GmRkZMh1VVVVyMzMRFBQUBMb2TAOQzSjvjFHWjsEIiKylhbewXHevHlIS0vDrl274OHhIfcgeHl5wdXVFZIkISYmBnFxcfDz84Ofnx/i4uLg5uaG6dOnWxbnDZgsEBERKdDSOzgmJycDAEJCQozqU1JSMHv2bADA4sWLUVFRgejoaJSUlCAwMBDp6enw8PCwLNAbMFkgIiKyQUJBL4QkSdDpdNDpdM0aC5MFIiIiJfgiKSIiIjJFMtQWS+9hj7gagoiIiExizwIREZESHIYgIiIik8zcJ6HRe9ghDkMQERGRSexZICIiUsCa74awN0wWiIiIlGjHcxY4DEFEREQmsWeBiIhICQHA0n0S7LNjgckCERGREpyzQERERKYJWGHOglUiaXGcs0BEREQmsWeBiIhIiXa8GoLJAhERkRIGAJIV7mGHOAxBREREJpmdLBw8eBCTJ0+GVquFJEn48MMPjY4LIaDT6aDVauHq6oqQkBDk5eVZK14iIqJWUbcawtJij8xOFi5fvow77rgD69evb/B4QkICEhMTsX79emRnZ0Oj0SA0NBTl5eUWB0tERNRq6uYsWFrskNlzFiZMmIAJEyY0eEwIgaSkJMTGxiIiIgIAkJqaCrVajbS0NERFRVkWLREREbU4q85ZKCgogF6vR1hYmFynUqkQHByMrKysBq+prKxEWVmZUSEiIrI57bhnwarJgl6vBwCo1WqjerVaLR+7UXx8PLy8vOTi4+NjzZCIiIisg8mCdUmS8doSIUS9ujrLli1DaWmpXIqKipojJCIiImoiq+6zoNFoANT2MHh7e8v1xcXF9Xob6qhUKqhUKmuGQUREZH3cZ8E6fH19odFokJGRIddVVVUhMzMTQUFB1nwUERFRi2rPSyfN7lm4dOkSTp06JX8uKChATk4OunTpgp49eyImJgZxcXHw8/ODn58f4uLi4ObmhunTp1s1cCIiohbF7Z6V++qrr3D33XfLnxcuXAgAiIyMxJYtW7B48WJUVFQgOjoaJSUlCAwMRHp6Ojw8PKwXNREREbUYs5OFkJAQCBOZkSRJ0Ol00Ol0lsRFRERkWwwCkCzsGTC0k54FIiKidqkdD0PwRVJERERkEnsWiIiIFLHGpkr22bPAZIGIiEgJDkMQERERNYw9C0REREoYBCweRuBqCCIiojZMGGqLpfewQxyGICIiIpPYs0BERKREO57gyGSBiIhICc5ZICIiIpPacc8C5ywQERGRSexZICIiUkLACj0LVomkxTFZICIiUoLDEEREREQNY88CERGREgYDAAs3VTLY56ZMTBaIiIiU4DAEERERUcPYs0BERKREO+5ZYLJARESkRDvewZHDEERERGQSexaIiIgUEMIAYeErpi29vrUwWSAiIlJCCMuHEThngYiIqA0TVpizYKfJAucsEBERkUnsWSAiIlLCYAAkC+cccM4CERFRG8ZhCCIiIqKGsWeBiIhIAWEwQFg4DMGlk0RERG0ZhyGIiIiIGsaeBSIiIiUMApDaZ88CkwUiIiIlhABg6dJJ+0wWOAxBREREJrFngYiISAFhEBAWDkMI9iwY27BhA3x9feHi4oJhw4bh3//+d3M9ioiIqPkJg3WKmWzh+7RZkoX33nsPMTExiI2NxfHjxzF27FhMmDABZ86caY7HERERNTthEFYp5rCV79NmSRYSExPx5z//GX/5y19w2223ISkpCT4+PkhOTm6OxxEREbVJtvJ9avU5C1VVVTh69CiWLl1qVB8WFoasrKx651dWVqKyslL+XFpaCgCoxjWL974gIqK2rRrXALTMXIBqUWnxi6Dq4i0rKzOqV6lUUKlURnXmfp82J6snC7/99htqamqgVquN6tVqNfR6fb3z4+PjsXLlynr1h/CptUMjIqI26sKFC/Dy8mqWe3fo0AEajQaH9Nb5XnJ3d4ePj49R3YoVK6DT6YzqzP0+bU7NthpCkiSjz0KIenUAsGzZMixcuFD+fPHiRfTq1Qtnzpxptr/4llBWVgYfHx8UFRXB09OztcNpsrbQjrbQBqBttKMttAFgO2xJaWkpevbsiS5dujTbM1xcXFBQUICqqiqr3K+h78MbexWup/T7tDlZPVm45ZZb4OjoWC/rKS4urpcdAQ13vQCAl5eX3f7jvZ6npyfbYSPaQhuAttGOttAGgO2wJQ4OzbttkIuLC1xcXJr1GTcy9/u0OVn9p9uhQwcMGzYMGRkZRvUZGRkICgqy9uOIiIjaJFv6Pm2WYYiFCxfi0UcfxfDhwzFq1Chs2rQJZ86cwdy5c5vjcURERG2SrXyfNkuy8PDDD+PChQtYtWoVzp8/D39/f3z66afo1avXTa9VqVRYsWKFyfEbe8B22I620AagbbSjLbQBYDtsSVtogymWfJ9akyTsde9JIiIiahF8kRQRERGZxGSBiIiITGKyQERERCYxWSAiIiKTmCwQERGRSTaXLNjCe7vNcfDgQUyePBlarRaSJOHDDz80Oi6EgE6ng1arhaurK0JCQpCXl9c6wTYiPj4eI0aMgIeHB7p37477778f+fn5RufYejuSk5MxePBgeSe6UaNGYc+ePfJxW4+/MfHx8ZAkCTExMXKdPbRFp9NBkiSjotFo5OP20AYAOHv2LGbOnImuXbvCzc0NQ4YMwdGjR+Xj9tCO3r171/u7kCQJ8+bNA2Afbaiursazzz4LX19fuLq6ok+fPli1ahUMhv+91Mke2mHXhA3Ztm2bcHZ2Fps3bxbfffedWLBggejYsaMoLCxs7dAa9emnn4rY2Fixfft2AUDs3LnT6PjatWuFh4eH2L59u8jNzRUPP/yw8Pb2FmVlZa0TcAPuvfdekZKSIr799luRk5MjwsPDRc+ePcWlS5fkc2y9Hbt37xaffPKJyM/PF/n5+WL58uXC2dlZfPvtt0II24+/IV9++aXo3bu3GDx4sFiwYIFcbw9tWbFihRg0aJA4f/68XIqLi+Xj9tCG33//XfTq1UvMnj1b/Pe//xUFBQXi888/F6dOnZLPsYd2FBcXG/09ZGRkCABi//79Qgj7aMPq1atF165dxccffywKCgrEv/71L+Hu7i6SkpLkc+yhHfbMppKFP/3pT2Lu3LlGdQMHDhRLly5tpYjMc2OyYDAYhEajEWvXrpXrrl69Kry8vMTGjRtbIUJliouLBQCRmZkphLDfdnTu3Fn885//tMv4y8vLhZ+fn8jIyBDBwcFysmAvbVmxYoW44447GjxmL21YsmSJGDNmTKPH7aUdN1qwYIHo27evMBgMdtOG8PBwMWfOHKO6iIgIMXPmTCGE/f5d2BObGYaoe293WFiYUX1rvLfbWgoKCqDX643apFKpEBwcbNNtKi0tBQD5LW721o6amhps27YNly9fxqhRo+wufgCYN28ewsPDMX78eKN6e2rLyZMnodVq4evri0ceeQSnT58GYD9t2L17N4YPH46pU6eie/fuGDp0KDZv3iwft5d2XK+qqgrvvPMO5syZA0mS7KYNY8aMwRdffIETJ04AAL7++mscOnQIEydOBGCffxf2ptleUW0uW3pvt7XUxd1QmwoLC1sjpJsSQmDhwoUYM2YM/P39AdhPO3JzczFq1ChcvXoV7u7u2LlzJ26//Xb5Pxa2Hn+dbdu24dixY8jOzq53zF7+LgIDA/HWW2+hf//++OWXX7B69WoEBQUhLy/Pbtpw+vRpJCcnY+HChVi+fDm+/PJLPPnkk1CpVJg1a5bdtON6H374IS5evIjZs2cDsJ9/T0uWLEFpaSkGDhwIR0dH1NTUYM2aNZg2bRoA+2mHPbOZZKGOLby329rsqU3z58/HN998g0OHDtU7ZuvtGDBgAHJycnDx4kVs374dkZGRyMzMlI/bevwAUFRUhAULFiA9Pd3k63BtvS0TJkyQ/xwQEIBRo0ahb9++SE1NxciRIwHYfhsMBgOGDx+OuLg4AMDQoUORl5eH5ORkzJo1Sz7P1ttxvTfeeAMTJkyAVqs1qrf1Nrz33nt45513kJaWhkGDBiEnJwcxMTHQarWIjIyUz7P1dtgzmxmGsKX3dltL3exve2nTE088gd27d2P//v3o0aOHXG8v7ejQoQP69euH4cOHIz4+HnfccQdeeeUVu4kfAI4ePYri4mIMGzYMTk5OcHJyQmZmJl599VU4OTnJ8dpDW67XsWNHBAQE4OTJk3bz9+Ht7Y3bb7/dqO62227DmTNnANjP/y/qFBYW4vPPP8df/vIXuc5e2vDMM89g6dKleOSRRxAQEIBHH30UTz31FOLj4wHYTzvsmc0kC7b03m5r8fX1hUajMWpTVVUVMjMzbapNQgjMnz8fO3bswL59++Dr62t03F7acSMhBCorK+0q/nHjxiE3Nxc5OTlyGT58OGbMmIGcnBz06dPHbtpyvcrKSnz//ffw9va2m7+P0aNH11tCfOLECfltf/bSjjopKSno3r07wsPD5Tp7acOVK1fg4GD8deXo6CgvnbSXdti11plX2bC6pZNvvPGG+O6770RMTIzo2LGj+Omnn1o7tEaVl5eL48ePi+PHjwsAIjExURw/flxe7rl27Vrh5eUlduzYIXJzc8W0adNsbjnP448/Lry8vMSBAweMllhduXJFPsfW27Fs2TJx8OBBUVBQIL755huxfPly4eDgINLT04UQth+/KdevhhDCPtry9NNPiwMHDojTp0+LI0eOiEmTJgkPDw/5/8v20IYvv/xSODk5iTVr1oiTJ0+KrVu3Cjc3N/HOO+/I59hDO4QQoqamRvTs2VMsWbKk3jF7aENkZKS49dZb5aWTO3bsELfccotYvHixfI49tMOe2VSyIIQQr732mujVq5fo0KGDuPPOO+Xle7Zq//79AkC9EhkZKYSoXdKzYsUKodFohEqlEnfddZfIzc1t3aBv0FD8AERKSop8jq23Y86cOfK/m27duolx48bJiYIQth+/KTcmC/bQlro17s7OzkKr1YqIiAiRl5cnH7eHNgghxEcffST8/f2FSqUSAwcOFJs2bTI6bi/t+OyzzwQAkZ+fX++YPbShrKxMLFiwQPTs2VO4uLiIPn36iNjYWFFZWSmfYw/tsGeSEEK0SpcGERER2QWbmbNAREREtonJAhEREZnEZIGIiIhMYrJAREREJjFZICIiIpOYLBAREZFJTBaIiIjIJCYLREREZBKTBSIiIjKJyQIRERGZxGSBiIiITPr/J4VikxeyuwQAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresholds = [50, 100]\n", "n_min_threshold = 100\n", "# Using 'center' here outputs the feature location as the arithmetic center of the detected feature.\n", "# All filtering is off in this example, although that is not usually recommended.\n", "single_threshold_features = tobac.feature_detection_multithreshold(\n", " field_in=input_field_da,\n", " dxy=1000,\n", " threshold=thresholds,\n", " target=\"maximum\",\n", " position_threshold=\"center\",\n", " sigma_threshold=0,\n", " n_min_threshold=n_min_threshold,\n", ")\n", "plt.pcolormesh(input_field_arr[0])\n", "plt.colorbar()\n", "# Plot all features detected\n", "plt.scatter(\n", " x=single_threshold_features[\"hdim_2\"].values,\n", " y=single_threshold_features[\"hdim_1\"].values,\n", " color=\"r\",\n", " label=\"Detected Features\",\n", ")\n", "plt.legend()\n", "plt.title(\"n_min_threshold={0}\".format(n_min_threshold))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Different `n_min_threshold` for different threshold values " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another option is to use different `n_min_threshold` values for different threshold values. This can be practical because extreme values are usually not as widespread as less extreme values (think for example of the rain rates in a convective system). \n", "\n", "If we set `n_min_threshold` to 100 for the lower threshold and to 5 for the higher threshold, only the larger 50-valued features are detected, but at the same time we make sure that the smaller areas with the 100-valued features are still detected: " ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2025-12-18T15:02:48.708754Z", "iopub.status.busy": "2025-12-18T15:02:48.708626Z", "iopub.status.idle": "2025-12-18T15:02:48.790556Z", "shell.execute_reply": "2025-12-18T15:02:48.790293Z" } }, "outputs": [ { "data": { "image/png": "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luGZZ57B5MmTUVhYCJ1OV+8whLW+TrV+++03eaGk2r/8d+zYgc6dO6Nz584ICgoCUDN08Morr+DVV19Fhw4dEBoaiqysLOh0OjzzzDPyGgsAMGPGDLz33nuYPHkyVqxYgS5dumD16tXIy8vD7t27ja6v0+mwZMkS7Nu3z+RqlXPnzsX169flJ2kKCwuxcuVKZGdnIzk52erDLkS2iskCtRlz5sxBbm4uFi1ahJKSEgghrPaon6OjI7Zv34533nkHH3/8MeLi4uDk5ISuXbsiKChI7k4fPHgw0tLSsHjxYuj1eri7u8Pf3x/bt29HaGio2dedMmUK2rdvj7i4ODz66KNwdHTEiBEjsG/fvluujLh06VK0b98eq1evxscff4x+/fphzZo1zbLsdW5uLiZPnmxUFxUVBQAICgoyWmsjJiYGHh4eeO+99/Dmm29Co9FgwYIFiImJMTpepVJhz549mDdvHp5//nlcvXoVgwcPxo4dO+Tko9bly5chSVK9idGN/P398f777yM1NRWlpaXw8PDAPffcg127djXq+0VkryRhrd+WREQ3qP3r/fr165Akyab+Cr/nnnvQvXt3/POf/7TaOQ0GAwwGA55++mls2rQJly9fttq5iVoaZ+cQUZNydnaGl5dXS4chKy0txXfffYelS5da9bxz586Fs7MzPvroI6uel8gWsGeBbqn2LyZTWvJZ8+rqapPDCbb2V21bce7cOZw7dw5AzTDNjetstEaFhYX49ddfAbSN9lLbwmSBbmn69Ol13uNws5b8MQoODjb5VsHu3bsrejUzERHVz6xkoaqqCjqdDhs2bIBer4e3tzemT5+OV155RX7eWAiBJUuWYO3atSguLkZAQADee+899O/fv8kaQU3r559/lhcVaoi1Z8ubIy8vD2VlZQ1uV6lUdd4tQERkDw4cOIA33ngDR48exfnz57FlyxajR4aV3HMrKirw8ssv49NPP0V5eTnGjBmD1atXo2vXrsoDMWdt6GXLlomOHTuKL774QuTn54t//vOfwt3dXSQmJsr7rFixQnh4eIhNmzaJnJwc8eijjwpvb29RWlpq+eLUREREbchXX30lYmJixKZNmwQAsWXLFqPtSu65M2fOFHfccYdIT08X3377rbj//vvFoEGDjN49cytmJQthYWFixowZRnXh4eFi2rRpQgghDAaD0Gg0YsWK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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresholds = [50, 100]\n", "\n", "# defining multiple n_min_threshold:\n", "n_min_threshold = [100, 5]\n", "# alternatively, these could be given as a dictionary: n_min_threshold = {50:100,100: 5}\n", "\n", "# let's add another larger 30x30 feature, area of 900 to make the example more clear\n", "input_field_da.data[0, 40:70, 40:60] = 50\n", "\n", "# Using 'center' here outputs the feature location as the arithmetic center of the detected feature.\n", "# All filtering is off in this example, although that is not usually recommended.\n", "single_threshold_features = tobac.feature_detection_multithreshold(\n", " field_in=input_field_da,\n", " dxy=1000,\n", " threshold=thresholds,\n", " target=\"maximum\",\n", " position_threshold=\"center\",\n", " sigma_threshold=0,\n", " n_min_threshold=n_min_threshold,\n", ")\n", "\n", "\n", "plt.pcolormesh(input_field_da.data[0])\n", "plt.colorbar()\n", "# Plot all features detected\n", "plt.scatter(\n", " x=single_threshold_features[\"hdim_2\"].values,\n", " y=single_threshold_features[\"hdim_1\"].values,\n", " color=\"r\",\n", " label=\"Detected Features\",\n", ")\n", "plt.legend()\n", "plt.title(\"n_min_threshold={0}\".format(n_min_threshold))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Strict Thresholding (`strict_thresholding`)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sometimes it may be desirable to detect only features that satisfy *all* specified `n_min_threshold` thresholds. This can be achieved with the optional argument `strict_thresholding=True`." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2025-12-18T15:02:48.791995Z", "iopub.status.busy": "2025-12-18T15:02:48.791887Z", "iopub.status.idle": "2025-12-18T15:02:48.888927Z", "shell.execute_reply": "2025-12-18T15:02:48.888522Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgsAAAGxCAYAAADs5vVAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAN1FJREFUeJzt3X9clfX9x//nSeWIChgaHEgkbJgl+SNppllgKdPMlbb1Q9d0a/voxx+TuWaZW576JJhbftzGctM1xJnidx+zXJlKc+D6mAsxFrl9zW6hspL4zCmgIijn/f3DcX07IccD5wIO+Ljfbu/bPO/rfV3XmyvnefF6/7gcxhgjAACAJlzV3h0AAADBjWABAAD4RLAAAAB8IlgAAAA+ESwAAACfCBYAAIBPBAsAAMAnggUAAOATwQIAAPCJYAFohnXr1snhcHiVa665RqmpqXr99dfbu3vNNnPmTF133XUtOvfFF1/UunXrbO0PgOBEsAC0QHZ2tt555x3t3btXa9asUZcuXTR58mT94Q9/aO+utRmCBeDK0bW9OwB0RElJSUpOTrY+T5gwQVdffbU2bdqkyZMnt2PPAMB+ZBYAG3Tv3l0hISHq1q2bV/0zzzyjkSNHKjIyUuHh4brlllv00ksv6Yvvb9u9e7dSU1PVp08fhYaGqn///nrggQd09uxZq01dXZ2ee+45DRo0SE6nU9dcc42+9a1v6f/+7//86uO6det0ww03yOl06sYbb9T69esv2c6fPl933XU6ePCgCgoKrOGYhuGMc+fO6Qc/+IGGDRumiIgIRUZGatSoUXrttdf86ieA4ENmAWiB+vp6XbhwQcYYffbZZ/rJT36iM2fOaNq0aV7tjhw5olmzZql///6SpH379mn+/Pn65JNP9PTTT1ttJk2apDvuuEO//e1v1bt3b33yySfasWOH6urq1KNHD3k8Ht13333685//rEWLFmn06NE6evSoli5dqtTUVO3fv1+hoaFN9nfdunX61re+pfvuu08vvPCCKisr5Xa7VVtbq6uu8v6dwZ8+b926VV/72tcUERGhF198UZLkdDolSbW1tfrXv/6lxx9/XNdee63q6ur01ltvaerUqcrOztY3v/lNG/4LAGhTBoDfsrOzjaRGxel0mhdffNHnufX19eb8+fPm2WefNX369DEej8cYY8z//M//GEmmuLi4yXM3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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# As above, we create test data to demonstrate the effect of strict_thresholding\n", "input_field_arr = np.zeros((1, 101, 101))\n", "\n", "for idx, side in enumerate([40, 20, 10, 5]):\n", " input_field_arr[\n", " :,\n", " (50 - side - 4 * idx) : (50 + side - 4 * idx),\n", " (50 - side - 4 * idx) : (50 + side - 4 * idx),\n", " ] = (\n", " 50 - side\n", " )\n", "\n", "input_field_da = xr.DataArray(\n", " input_field_arr,\n", " dims=[\"time\", \"Y\", \"X\"],\n", " coords={\"time\": [np.datetime64(\"2019-01-01T00:00:00\")]},\n", ").to_iris()\n", "\n", "plt.pcolormesh(input_field_arr[0])\n", "plt.colorbar()\n", "plt.title(\"Base data\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2025-12-18T15:02:48.890446Z", "iopub.status.busy": "2025-12-18T15:02:48.890320Z", "iopub.status.idle": "2025-12-18T15:02:49.004201Z", "shell.execute_reply": "2025-12-18T15:02:49.003834Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0kAAAHBCAYAAAC8BfDcAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAANC1JREFUeJzt3Xl8VPW9//H3kIRJAkmQIBnCGmzYBJSCoAFNEIVWQCzihgio95ZFlIjKIlqWQiKomAqCwr0FLEW4PIQrLlcJiqmWWiOLVfiJ2oaASgyyJMiS9fv7g2b8DjOQBCdMyLyej8d5PDrf8z0zn/NN5NP3zMkZhzHGCAAAAAAgSaoX6AIAAAAAoDYhJAEAAACAhZAEAAAAABZCEgAAAABYCEkAAAAAYCEkAQAAAICFkAQAAAAAFkISAAAAAFgISQAAAABgISQFsdWrVysjI6Nax+zdu1cOh0MrVqyo1nG7d+/WzJkztXfv3modV9mxKSkp6ty5c7Wfs6bURD0Oh0MzZ86sdN6KFSvkcDg81iklJUUpKSl+rcdfKn6XfG09evSo1nO1adNGo0ePrplCAQQMfcr/6FNVk5KSctYeZW9VOW9cnEIDXQACZ/Xq1fr888+Vmppa5WOaNWumv/3tb7rsssuq9Vq7d+/WrFmzlJKSojZt2lywY4Pd4sWLA11CpR588EENHz7cY6xhw4YBqgZAbUKfqvtqa59avHixCgsL3Y/ffPNNzZkzR8uXL1eHDh3c4y1atAhEebgACEmokrKyMpWWlsrpdOrqq68OdDl+UVJSIofDodDQuvufQadOnQJdQqVatWpVZ36nAAQOferiVFv71Jl1ffHFF5Kkzp07n/NqhxMnTigyMrJGa8OFweV2ddjBgwf129/+Vi1btpTT6dSll16q3r17a/PmzUpJSdGbb76p3Nxcj4+NpZ8uVZg/f77mzJmjhIQEOZ1Obdmy5ayXMXzxxRe66667FBcXJ6fTqVatWmnkyJEqKirSihUrdNttt0mS+vbt636tqlwKUdVjs7Ozde211yoyMlJt27bVU089pfLycvf+999/Xw6HQ3/605/0yCOPqHnz5nI6nfr6668lSZs3b1a/fv0UHR2tyMhI9e7dW++++26V1/NMldUjSfv27dOIESPUtGlTOZ1OdezYUc8++6zXPF8++ugj9e7dW+Hh4YqPj9e0adNUUlLiNe/Myxgqfn7PPPOMFixYoISEBDVs2FDXXHONPvroI6/jly1bpnbt2snpdKpTp05avXq1Ro8efUHeKT116pQeeeQRXXnllYqJiVHjxo11zTXX6LXXXqv02PLycs2ZM0ft27dXRESEGjVqpK5du+oPf/iDx7yvvvpKw4cP9/gZvPDCCzV1SgDOQJ+iT13MfWrmzJlyOBzavn27hg0bpksuucT9CebZLiP0VVtxcbHmzJmjDh06uH9u9957rw4ePFjj54Czq7tvTUD33HOPtm/frrlz56pdu3Y6evSotm/frkOHDmnx4sX67W9/q3/+85/asGGDz+Off/55tWvXTs8884yio6OVmJjoc96nn36qPn36qEmTJpo9e7YSExN14MABbdy4UcXFxRo4cKDS0tL0+OOP64UXXtAvf/lLSarSpRBVOTYvL0933323HnnkEc2YMUMbNmzQtGnTFB8fr5EjR3o837Rp03TNNdfoxRdfVL169dS0aVOtWrVKI0eO1JAhQ7Ry5UqFhYXppZde0oABA/TOO++oX79+la6nrSr1HDx4UElJSSouLtbvf/97tWnTRm+88YYeffRR/fOf/zzn5Qe7d+9Wv3791KZNG61YsUKRkZFavHixVq9eXel6VnjhhRfUoUMH97X+Tz75pG666Sbl5OQoJiZGkrR06VKNGTNGt956q5577jkVFBRo1qxZKioq8nq+srIyGWMqfd169eqpXj3P92bKy8tVWlrqMRYSEqKioiIdPnxYjz76qJo3b67i4mJt3rxZQ4cO1fLly71+trb58+dr5syZeuKJJ3TdddeppKREX3zxhY4ePeqes3v3biUlJalVq1Z69tln5XK59M477+ihhx7SDz/8oBkzZlR6PgB+HvoUfepsalOfqszQoUN15513auzYsTp+/Hi1ji0vL9eQIUP0wQcfaPLkyUpKSlJubq5mzJihlJQUffLJJ4qIiKjWc8JPDOqshg0bmtTU1LPuHzhwoGndurXXeE5OjpFkLrvsMlNcXOxz3/Lly91j119/vWnUqJHJz88/62utW7fOSDJbtmyp7mmc89jk5GQjyfz973/3GO/UqZMZMGCA+/GWLVuMJHPdddd5zDt+/Lhp3LixGTx4sMd4WVmZueKKK0zPnj3dY5WtZ3XqmTp1qs9548aNMw6Hw+zZs8c9JsnMmDHD/fiOO+4w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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresholds = [8, 29, 39, 44]\n", "\n", "n_min_thresholds = [79**2, input_field_arr.size, 8**2, 3**2]\n", "\n", "f = plt.figure(figsize=(10, 5))\n", "\n", "# perform feature detection with and without strict thresholding and display the results side by side\n", "\n", "for idx, strict in enumerate((False, True)):\n", " features_demo = tobac.feature_detection_multithreshold(\n", " input_field_da,\n", " dxy=1000,\n", " threshold=thresholds,\n", " n_min_threshold=n_min_thresholds,\n", " strict_thresholding=strict,\n", " )\n", " ax = f.add_subplot(121 + idx)\n", " ax.pcolormesh(input_field_da.data[0])\n", " ax.set_title(f\"strict_thresholding={strict}\")\n", " ax.scatter(\n", " x=features_demo[\"hdim_2\"].values,\n", " y=features_demo[\"hdim_1\"].values,\n", " marker=\"x\",\n", " color=\"r\",\n", " label=\"Detected Features\",\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The effect of `strict_thresholding` can be observed in the plot above: Since the second `n_min_threshold` is not reached, no further features can be detected at higher `threshold` values. In the case of non strict thresholding, the feature with the highest value is still detected even though a previous `n_min_threshold` was not reached." ] } ], "metadata": { "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.13.5" } }, "nbformat": 4, "nbformat_minor": 4 }