Skip to content

Instantly share code, notes, and snippets.

@smnorris
Created November 3, 2022 21:55
Show Gist options
  • Select an option

  • Save smnorris/db03a51fb4984dec84685006ab844779 to your computer and use it in GitHub Desktop.

Select an option

Save smnorris/db03a51fb4984dec84685006ab844779 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "778dd12b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"33406"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import os\n",
"\n",
"import pandas\n",
"from sqlalchemy import create_engine\n",
"import seaborn as sns\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"\n",
"sns.set_theme(style=\"ticks\")\n",
"conn = create_engine(os.environ[\"DATABASE_URL\"])\n",
"\n",
"# get observation data\n",
"df = pandas.read_sql(\"select * from bcfishpass.temp_observations\", conn, index_col=\"observation_id\", parse_dates=[\"observation_date\"])\n",
"\n",
"# keep species colour constant in all plots\n",
"unique = df[\"species_code\"].unique()\n",
"palette = dict(zip(unique, sns.color_palette(n_colors=len(unique))))\n",
"\n",
"# total observations\n",
"len(df)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "0af32e61",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[Text(0.5, 0, '')]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 300x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# total observations per species\n",
"df[\"empty\"] = '1'\n",
"f, ax = plt.subplots(figsize=(3, 5))\n",
"ax.set(xlabel=None)\n",
"sns.histplot(\n",
" df,\n",
" x=\"empty\",\n",
" hue=\"species_code\",\n",
" palette=palette,\n",
" multiple=\"stack\",\n",
" edgecolor=\".3\",\n",
" linewidth=.2,\n",
").set(xlabel=None)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "39300783",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot: xlabel='year', ylabel='Count'>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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8UKfv3rtyhdERERKx2DnhfxDNdCEa91dDcn+9a9/YdOmTThz5gwAoEWLFnj88ccxbNgwAEBaWhoaN25cZemw9evXY8GCBRg/fjyee+45l9ebiKhSbZ6a8IkHuQKDHbnE9u3b8frrr+Pll19GUlIShBA4dOgQ5s2bh+vXr9e4fuyGDRuwYMECTJkyBRMmTHBxrYmI7Ol0OizMOAA/TZikcmZjIWaMeoBPPMjpGOzIJT744AMMHToUf/7zn23bWrRogdzcXLz//vvVBrv3338fCxYswLRp0zBq1ChXVpeIqEZ+mjAEBDVwdzWIqsVRseQSarUa33//PQoLC+22jxkzBlu2bKly/Pvvv4/58+dj1qxZDHVEREQO4h07cokxY8Zg6tSp6N69O+655x507doVycnJaN++PUJDQ+2O3bhxI+bNm4cBAwYgNTXVTTUmIiLyPrxjRy7Rr18/bNmyBX379sWPP/6IN998E48//jgeeughHD161HbcV199hQULFiA5ORl79+7FsWPH3FdpIiIiL8NgRy6TmJiIRYsW4ZtvvsHu3bvxwgsvoKSkBGPGjEFeXh4AID8/H2+88QbWrFmDu+66C88//zyKi4vdXHMiIiLvwGBHTpebm4vXXnvNNkWASqVCq1atMHbsWGzYsAElJSU4fPgwAODhhx/GgAED4O/vj0WLFuH69et45ZVX3Fl9IiIir8FgR07n7++PLVu2YPfu3VX2BQcHAwAaNmwIAPD1/W+3z8o7dp988gm2bdvmmsoSERF5MQ6e8EKmIqNXXTciIgKjR4/GsmXLcPPmTTz00EMIDg7G2bNnsXLlSttgiuo8/fTT+OKLLzBv3jx07twZ8fHxtXkJREREisZg52ViYmLwQp+/uvX6ckydOhV33nkntm7dis2bN8NoNCIuLg6PPPIIxo0bV2M5lUqFhQsXYuDAgXjuueewbds2BAQEyK0+ERGRojHYeRkfHx+vnbl80KBBGDRoUI37N27cWO32mJgYfPfdd06qFRERkXKwjx0RERGRQjDYERERESkEgx0RERGRQjDYERERESkEgx0RERGRQrg92BUUFODVV19F9+7d0blzZzz55JM4cuSIbf/JkyeRmpqKjh07omfPnsjIyLArb7VasWLFCqSkpKBDhw4YOXIkLl68aHfM7c5BREREpARuD3bPP/88/vOf/2DJkiXYvn072rVrh1GjRuHcuXPIz8/HiBEjcOedd2LHjh2YPHkyli9fjh07dtjKr1y5EpmZmXj99dexZcsWqFQqjBkzBiaTCQAcOgcRERGRErh1HruLFy/i66+/xocffojOnTsDAGbOnIkvv/wSH330ETQaDfz9/TFnzhz4+voiPj4eFy9exJo1azBkyBCYTCasW7cO6enp6NGjBwBg6dKlSElJwb59+9C/f39s3br1lucgIiIiUgq3BrsGDRrg3Xffxd13323bplKpIIRAYWEhfvrpJyQlJdmtH5qcnIx33nkHeXl5uHLlCkpKSpCcnGzbHxoairZt2+Lw4cPo378/jhw5cstzREZGuubF1hGLxQKdTue268fExMDHx8dt1yciIqKauTXYhYaG2u60Vfrkk0/w22+/4f7778fSpUuRkJBgtz86OhoAcPXqVeTm5gIA4uLiqhyTk5MDAMjNzb3lOWoKdr17966x3jk5OVWu6So6nQ7f/X0Rwv38XX7tArMJ3aane+3KF0RERErnUUuKHT16FC+//DJ69+6NXr16YcGCBfD3tw8wleuElpWVobS0FACqPaawsBAAYDQab3kObxTu549IL1ovtVevXrhy5Yrt/2q1GkFBQWjTpg2mTJmCrl27Ii0tDY0bN8bChQvtyq5fvx4LFizA+PHj8dxzz7m66kRERF7FY4LdZ599hhdffBEdOnTAkiVLAAAajcY2CKJSZRjTarXQaDQAAJPJZPt35TGBgYEOnaMm+/fvr3Hfre7mUfVGjhyJkSNHAgCEECgoKMCSJUswevRo7N27t9oyGzZswIIFCzBlyhRMmDDBldUlIiLySm4fFQsAmzZtwuTJk9G9e3esWbPGFtJiY2Oh1+vtjq38f0xMjO1xaHXHxMbGOnQOcg2tVouoqChERUUhOjoaCQkJmDt3LkpLS/Hpp59WOf7999/HggULMG3aNIY6IiIiB7k92H3wwQd47bXXMHz4cCxbtszusWlSUhKOHj0Ki8Vi23bo0CE0b94ckZGRaN26NYKDg5GdnW3bX1RUhBMnTqBr164OnYPcp3JAyx8flb///vuYP38+Zs2ahVGjRrmjakRERF7JrcHu/PnzmD9/Pvr06YNx48YhLy8P165dw7Vr11BcXIwhQ4bg5s2bmDlzJs6ePYusrCxs2LAB48aNA1ARCFJTU7F48WLs378fp06d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PProo7bpC+pz+/7666+iXbt2YuLEiVXmqywqKnKobZYsWSK6desmPvvsM9s8dn379rVN58P2rV37/t4ff/6FYPvWpn1vV16I+t2+tcVg5yLVvTFkZWWJvn37isTERDFw4ECxZ8+eKuVmz54t/vznP9d43v/85z/iz3/+s7j77rvFAw88IDZu3FjndfcGctq3oKBAzJkzR/Ts2VN06tRJPPHEEyI7O9vuGLZvBTntq9PpxOTJk0XXrl1Ft27dxPTp00VeXp7dMfW1fVetWiUSEhKq/Zo+fboQ4vZtU15eLt544w2RnJwsOnbsKMaMGSMuXbpkdwzbV377/l51P/9Sz6EktW1fR8rf7hxUM5UQQrj7riERERER1R772BEREREpBIMdERERkUIw2BEREREpBIMdERERkUIw2BEREREpBIMdERERkUIw2BEREREpBIMdERERkUIw2BEREREpBIMdERERkUIw2BEREREpBIMdEZEEf//735GYmIji4mK77e+++y46deoEg8GAM2fOYNy4cejcuTM6d+6MiRMn4tKlS3bHnzp1CpMmTUJycjLatWuHlJQUvP766zAajbZjWrVqhbfeegtDhgxBly5dsHLlSpe8RiLyXgx2REQSDB06FGVlZdi7d6/d9p07d+Khhx6CTqfDsGHDkJeXh4ULF2LevHm4dOkSnnzySeTl5QEA9Ho9hg8fjtLSUixcuBBr1qzBww8/jI0bN2L9+vV25121ahX69euHJUuWoHfv3q56mUTkpVRCCOHuShAReZNhw4bB19cXmzZtAgAcP34cjz/+ODZv3owPP/wQhw4dwqefforg4GAAQEFBAR588EE8/vjjmD59Or766iusXr0aq1evth0DAAMHDkR0dDQyMjIAVNyx69y5Mz788EPXv0gi8kq8Y0dEJNGQIUNw5MgRXL58GQCQlZWFpk2bomvXrvj2229xzz33QKPRoLy8HOXl5QgODkbXrl3xzTffAADuv/9+bNq0CQEBATh//jwOHDiA1atX48aNGzCZTHbXSkhIcPnrIyLv5evuChAReZtHHnkE8+fPx+7duzF69Gh88sknePrppwFU3J3bs2cP9uzZU6VcREQEAMBqtWLJkiXYvHkzDAYD4uLikJiYiICAgCplGjZs6NwXQ0SKwmBHRCRRUFAQHnroIXzyySdo06YNioqKMGjQIABASEgI/vSnP2HEiBFVyvn6Vrzlvvvuu1i/fj3mzJmDfv36ISQkBEBF/z0iotpgsCMikmHo0KHIysrCunXrkJycjEaNGgEAunXrhrNnz6JNmza2ICeEwIsvvohmzZqhTZs2OHr0KFq2bGkX5HQ6Hc6cOYP27du75fUQkTKwjx0RkQxdunRBixYt8N133+Gxxx6zbZ8wYQJ+++03jBs3Dp999hkOHjyIyZMn4+OPP0br1q0BAImJiTh9+jTeffddfPfdd9i2bRuGDx8Ok8mE0tJSd70kIlIA3rEjIpKpZ8+euHbtGvr06WPb1rp1a2zevBlLly7FtGnTIIRAQkIC3n77bdt0JePGjUN+fj7ef/99vP3224iLi8P//M//QKVS4Z133kFhYSHCwsLc9bKIyItxuhMiIhmEEBg4cCDuuecevPLKK+6uDhERAN6xIyKS5ObNm1i/fj1+/PFHXLhwgatBEJFHYbAjIpJAo9EgMzMTVqsV8+bNQ9OmTd1dJSIiGz6KJSIiIlIIjoolIiIiUggGOyIiIiKFYLAjIiIiUggGOyIiIiKFYLAjIiIiUggGOyIiIiKFYLAjIiIiUggGOyIiIiKF+D892Jq2pp5iHQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot observations per year, per species\n",
"\n",
"# create a year column and set everything prior to 1970 to 1970\n",
"df[\"year\"] = df['observation_date'].dt.year\n",
"df.loc[df[\"year\"] < 1970, 'year'] = 1970\n",
"\n",
"f, ax = plt.subplots(figsize=(7, 5))\n",
"sns.despine(f)\n",
"sns.histplot(\n",
" df,\n",
" x=\"year\",\n",
" hue=\"species_code\",\n",
" multiple=\"stack\",\n",
" edgecolor=\".3\",\n",
" linewidth=.2,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "8d0149c5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot: xlabel='system', ylabel='Count'>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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ImbHwcEBV1dXw9dubm7MmjWLDh068NVXXxXov2bNGoKCgpgyZUqBp4qVJgp+IiIiIoC19a1YdPsDHNasWcOcOXOYMWMGAwYMMEZpxUa3cxERERGzFxcXx7/+9S8cHBzo0KGDYfnatWuZPXs23bt3L/WhD3TGT0RERMzQ8uXLWblyJQBZWVlkZGRQp04dPvjgA8NM4X379rFjxw58fHz48ssv8ff3p2XLlkas+sEp+ImIiIjZ6du3L/7+/sCtWb3Ozs44OTnl63P9+nXee+89nnnmGV588UUmTpzI9u3bC/QrTTTUKyIiImanYsWK1KhRgxo1alC9evVCw1zXrl3p0aMHNjY2BAcHc+XKFd566y0jVFt8FPxERERECpE32QOgXr16TJw4kS+++ILNmzcbsaoHo6FeEREReSAJmRlmsc2BAweyd+9eZs+eTatWrahTp85Dr+FBKfiJiIjIfXN3d6ftm5ONtu2HycLCgrlz59KzZ08mTJjA5s2bsS1FTywBBT8RERF5AFZWVqXuebnffPPNPfusXbu20OXu7u4cOHCguEt6aHSNn4iIiIiZUPATERERMRMKfiIiIiJmQsFPRERExEwo+ImIiIiYCQU/ERERETOh4CciIiJiJhT8RERERMyEbuAsIiIi9y07O5u4uDijbNvd3R0rKyujbLu0UvATERGR+xYXF8f6sL042FV4qNtNSUui/9CO9/3UkKysLNavX8/27ds5d+4cNjY2NG7cmBEjRtCuXTsAfH19uXTpElOnTmXw4MEF1vH222+zceNGRo8ezZgxYx5ofx4WBT8RERF5IA52FXAs72LsMoosIyODwYMHExsby5gxY/Dy8iItLY2tW7cyZMgQgoKC6NWrFwDlypXjyy+/LBD8srKy+Oqrr7CwsDDCHtw/BT8RERExKyEhIZw8eZLPP/8cDw8Pw/KAgABSUlKYM2cOXbp0AaBdu3Z8//33xMbGUqVKFUPf//u//8PBwQF7e/uHXv+D0OQOERERMRuZmZls3ryZPn365At9ecaNG0doaCh2dnYANG/enKpVq/Lll1/m67dr1y66du1a6s74KfiJiIiI2bh48SIJCQm0bNmy0HY3NzeaN2+eb9JI165d8wW/jIwMvv76a7p3717S5RY7BT8RERExG4mJiQBUrFixyK/p2rUr//3vf4mNjQXghx9+oFKlSjRu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R4F2gJiYmBLdJxEREZGHpVSd8du+fTvp6en4+/sblv36669YWlri6enJsmXLuHDhAvPmzeP06dOEh4eTmpoK3Boy/itbW1sSExMBSEtLK7QdboXNwkRFRd2xzrudDRQRERExllIV/LZt28YzzzxDpUqVDMvGjBnDoEGDqFChAgD169fH1dWVl156iaNHj2JnZwfcutYv73O4Fejs7e0BsLOzIyMjI9+28gKfg4NDie6TiIiIyMNSaoZ6r127xk8//US3bt3yLbewsDCEvjz169cHbg3h5g3xxsfH5+sTHx9vGN718PAotB1u3RZGREREpCwoNcHvxx9/xMLCgrZt2+ZbPmnSpAL32zt69CgAdevWpWHDhjg6OrJ//35De1JSEsePH6dNmzYAeHt7c/jwYbKzsw19oqOjqVWrVqETO0RERERKo1IT/E6ePEn16tUNw7N5evTowQ8//MDSpUv5/fff2bt3L9OnT6dHjx7UqVMHGxsbBgwYwPz584mKiuLkyZNMmDABDw8PunTpAoCfnx83b94kICCAM2fOEBkZSXh4OK+++qoxdlVERESkRJSaa/yuXLmCs7NzgeVPPfUUixYtYtmyZSxbtgwnJyd69uzJ+PHjDX3Gjh1LVlYWM2bMIC0tDW9vb8LCwgwTOipXrkxoaCizZ8+md+/euLq6MmXKFHr37v2Q9k5ERESk5Fnk5ubmGruIsiZvVu/dZv4+qJiYGOK3L8LNybbEtlEanbh8g20Z7XFy1rWZt0tPvs6k/q2oWrWqsUsREREjKTVDvSIiIiLyYBT8RERERMyEgp+IiIiImVDwExERETETCn4iIiIiZkLBT0RERMRMKPiJiIiImAkFPxEREREzoeAnIiIiYiYU/ERERETMhIKfiIiIiJlQ8BMRERExEwp+IiIiImZCwU9ERETETCj4iYiIiJgJBT8RERERM6HgJyIiImImFPxEREREzISCn4iIiIiZUPATERERMRMKfiIiIiJmQsFPRERExEwo+ImIiIiYCQU/ERERETOh4CciIiJiJhT8RERERMyEgp+IiIiImVDwExERETET1sYuQO5PTk4OcYnJZGZkGrsUk3LlRgrY5Bq7DBEREZOk4FeK7XRyoJyjrbHLMCkp6TmUUxYWEREplIJfKWVpaYlj1YrYOTsYuxSTk3nJwtgliIiImCRd4yciIiJiJhT8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Gm7nsmzZMlJSUnjiiSeYPXs2K1euZOHChdjZ2dGxY0fDrShatmxJaGgoixYt4vnnn8fe3h4fHx/efPPNQoeuilNxvf+3CwwMZNasWfTt2xcXFxcGDx5smLH6IDp37oyVlRUvvvgi9vb2vPzyy4ZJMX/l7u7O3Llz+fDDD1m/fj2urq506tSJQYMGERUVlW/I6+8aP348NWvWZNOmTaxfv560tDSqVKlCt27dePXVVwv0t7W15Z133uGVV15h48aNvPTSS6xbt44FCxbQr18/rKysaNmypWHWL9yageri4kJISAjx8fF4eHgwevRoRowYUaQaS3L/i6oox6lXr17s2bOHHj163POavxdeeIGdO3cyffr0Qs8k3svChQtZuHAhM2fOJDExkerVq/POO+/cdcKIqbjX79dq1arl6+/i4sK0adN48803DZMh/vWvf7Fs2TI2bdpEkyZNmD59Oq+99pqR9ujBvPvuu4YJds899xzHjh1j3rx53Lx5E09PT1544QWioqL4+eefefnll5k1axbz5s1j8uTJJCQk4OnpyRtvvME///lP4NZQ+rx58xg0aBCpqak0atSIjz/+mEcffdSYu1liLHIfxnl/ERERETE6DfWKiIiImAkFPxEREREzoeAnIiIiYiYU/ERERETMhIKfiIiIiJlQ8BMRERExEwp+IiIiImZCwU9ExMTo9qoiUlIU/ERETMjmzZuZN2+escsQkTJKwU9ExIQsXbqUhIQEY5chImWUgp+IiIiImVDwExH5G44dO8bAgQNp3bo1Xl5eDBo0iP/+97/8+9//pkGDBuzbty9f/yNHjtCgQQMOHDgAwNq1a3nuuedo1qwZ7du3JzAwkJs3bwLg6+vLpUuX+PTTT2nQoAF//PEHADExMUycOJG2bdvSokULBg4cyPHjxw3b+OOPP2jQoAG7d+9m1KhRtGzZkscff5wlS5Zw8+ZNpk+fTuvWrXn88ccJDg7WNYQiZkzBT0SkiG7evMmwYcOoVKkSISEhLFy4kNTUVIYOHUrr1q1xd3dn+/bt+V7z6aefUr16dby9vfn888+ZN28e/fv3JywsjNdff53t27fz7rvvArB48WJcXV3p2LEjGzduxM3NjWvXrtG3b1+OHTvGW2+9xYIFC8jJyaF///6cPXs237YCAgKoX78+S5cuxcfHh0WLFtGnTx/s7OxYtGgRvr6+hIaG8uWXXz60YyYipsXa2AWIiJQWZ86c4dq1a/j7+9O6dWsAateuTUREBDdv3qRXr16sXbuW5ORkypcvT0ZGBl988QUDBw7EwsKC/fv34+npSf/+/bG0tKRt27Y4ODhw/fp1ABo3boyNjQ0uLi60bNkSgPDwcBISEtiwYQOenp4AdOjQgW7durFo0SJCQkIM9bVv357x48cDULduXT7//HMqV67M22+/DcATTzzBF198wY8//kjXrl0f0lETEVOiM34iIkVUr149XFxceO2115g5cybffPMNrq6uTJkyhSpVquDn50dqaip79uwB4OuvvyYpKYlevXoB4OPjw/nz53n++edZsmQJx48fp2fPngwcOPCO24yOjqZRo0a4u7uTlZVFVlYWlpaWdOjQgf/85z/5+np5eRk+d3V1BaBFixaGZRYWFlSsWJEbN24U1yERkVJGZ/xERIqofPnyrF+/nqVLl7Jr1y4iIiKwt7fnH//4BwEBAdSoUQNvb2+2bdtGr1692LZtGz4+PoYzdd26dSMnJ4dPPvmExYsXs2jRIjw9PZk0aRLdu3cvdJsJCQlcuHCBJk2aFNqemppq+NzR0bFAu729fTHsuYiUFQp+IiJ/Q+3atQkODiY7O5uff/6Z7du3s2HDBqpVq8aIESPw8/Nj2rRpnDt3jh9++IGgoKB8r+/Rowc9evTgxo0b7Nu3jxUrVjB58mTatGmDu7t7ge05OTnRtm1bpkyZUmg9NjY2JbKfIlI2aahXRKSIvvzyS3x8fPjzzz+xsrLCy8uLwMBAKlSowOXLlwF49tlncXBw4O2338bOzo5nnnnG8Prx48czevRo4Fag69q1K6NGjSI7O5v4+HgALC3z/1pu27Yt586do1atWjRr1szwsWPHDjZv3oyVldVD2nsRKQsU/EREiqhVq1bk5OTw+uuv8/XXXxMdHc3bb7/NjRs3DAHP3t6e7t27c+DAAbp164adnZ3h9T4+PuzZs4d58+YRHR3N7t27WbRoETVr1qRhw4YAVKhQgePHj3PgwAHS0tIYNGgQOTk5DBo0iF27dhEdHc1bb73FmjVrqF27tlGOg4iUXgp+IiJF5ObmRmhoKE5OTgQEBPDqq69y7NgxPvzwQ3x8fAz9nnrqKQCef/75fK/v27cvM2bM4LvvvmPkyJG8/fbb1KlTh5UrV1KuXDkAhgwZwpUrVxg6dCi//PIL7u7uRERE4OnpSWBgICNHjuTnn39m9uzZDBo06KHtu4iUDRa5upOniEixCgwM5PDhw3z22WfGLkVEJB9N7hARKSZr1qzht99+Y+PGjQUmdYiImAIFPxGRYnLo0CG+//57/P39DffuExExJRrqFRERETETmtwhIiIiYiYU/ERERETMhIKfiIiIiJlQ8BMRERExEwp+IiIiImZCwU9ERETETCj4iYiIiJgJBT8RERERM/H/AHKAkFeSLevnAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot species per system\n",
"wsd = {1: \"Fraser\", 2: \"MacKenzie\", 3: \"Columbia\", 4: \"Skeena\", 5: \"Nass\", 6: \"Stikine\", 7: \"Taku\", 8: \"Yukon\", 9: \"Coast\"}\n",
"df[\"system\"] = df['wscode_ltree'].str[:1].astype(\"int\")\n",
"df = df.replace({\"system\": wsd})\n",
"\n",
"f, ax = plt.subplots(figsize=(7, 5))\n",
"sns.despine(f)\n",
"sns.histplot(\n",
" df,\n",
" x=\"system\",\n",
" hue=\"species_code\",\n",
" palette=palette,\n",
" multiple=\"stack\",\n",
" edgecolor=\".3\",\n",
" linewidth=.2,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "e6cd5edf",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.axis.XTick at 0x14c764bb0>,\n",
" <matplotlib.axis.XTick at 0x14c764be0>,\n",
" <matplotlib.axis.XTick at 0x14c0ccf40>,\n",
" <matplotlib.axis.XTick at 0x14be34a60>,\n",
" <matplotlib.axis.XTick at 0x14b837550>,\n",
" <matplotlib.axis.XTick at 0x14b837ca0>,\n",
" <matplotlib.axis.XTick at 0x14be34ca0>,\n",
" <matplotlib.axis.XTick at 0x14b82fd30>,\n",
" <matplotlib.axis.XTick at 0x14b823820>,\n",
" <matplotlib.axis.XTick at 0x14b819310>]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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fQ1atGhhLF++3GZbkZGRRps2bYzTp08bhnH1Pdu6dWvj4sWL1nmOHTtmtGjRwkhISLC2RUdHG76+vsbly5cNwzCMiRMnGmvWrLFZ99atW21enz+/VwzD9vV4++23DYvFYiQlJdmsZ8aMGUabNm2MM2fOWJfp2rWrzXtsyZIlhsVisfajdevWRkxMjHV6bm6u8corrxi7du0yilLY53XHjh2GxWIxduzYYdOHJUuWWOfJy8szHn30UaNv376GYRjG8uXLDR8fHyMzM9M6z3/+8x9jyZIlRl5eXqHbyt/O66+/brP9knye3n33XeOZZ56xee1zc3ONdu3aGc8//7xhGH/sH8aPH2+dJ/8z9+STT9r0pW3btsbs2bOLfJ5QcTFih9tapUpX38LXHmYsznfffafs7Gw98sgjNu1+fn5q1KhRmf6S9/HxsXns4eGhS5culXj5Q4cOKT09vUBNf/nLX+Tr61ummnr27GnzuHv37rp06ZK+++47OTs7Ky4uTj179tTJkye1a9cubdiwQZ999pkk6cqVK9blXFxc9Je//KXA+i0WS5Hbvnz5svbs2aOgoCAZhqGcnBzl5OTonnvuUbNmzfT1118Xua569eqpefPmev755zVt2jR9+OGHMgxD06dPL3KbXl5eqlOnjr755htJ0vbt2xUQECBvb299++23kqQvvvhCTZo00b333lvc01aAn5+f9f/33HOPJCkjI6PYZerWrWvznHl4eEhSkRdnlOY96ejoqO7du1sfV6lSRZ07d7b2PSAgQIcPH1bfvn0VExOjffv26ZFHHtHTTz8tSdqxY4cMw1BwcLD1dcnJyVFwcLCysrKUnJxsXffdd9+tatWq2Txu166dzejPBx98oB49esjFxUWStHDhQg0aNEinT5/W7t27lZCQYD239dr3VXG+/fZbNWrUSO3atbNp79Onj7KysrRnzx5rW5s2beTo6Gh9/OfnukOHDlqyZImee+45JSQk6PTp05o6darN63oj8kcqJcnBwUHdunXTDz/8oMuXL8vf31+ZmZl65JFHFBkZqeTkZHXq1EljxoyRg4NDseu99pSAkn6eHnvsMa1cuVJXrlzRzz//rE8++URLlixRbm5ugefe19fX+v/69etLkry9vW364urqqvPnz5f9yYHdcPEEbmu1a9dW9erVdfz48SLnuXTpkrKzs1W7dm3r4bB69eoVmK9evXpl2pH9+RBwpUqVSnVuytmzZ4utad++faWu6c/ryr+wIb//X375pebOnatffvlF1atXV4sWLVS9enVJtvfVcnNzK/RLqLBa82VkZCgvL08rV67UypUrC0yvUqWKzWM3Nzfr/x0cHLR69WotW7ZM27Zt07vvvqvKlSvroYceUkREhGrXrl1gfZUqVVLnzp21fft2jR49Wjt27FB4eLhSU1Ot54598cUXhR6GvZ5rg03+HxHXe23//H7If/7yz3P6s9K8J2vXrq3KlSvbzOPm5mYNmz179lReXp7eeecdRUdHa/HixWrUqJEmTZqkXr16Wd9rvXr1KrSWtLQ0m23/2WOPPaaIiAidOXNGqampOnjwoF544QXr9L179+qll17S3r175eLioubNm6tRo0aSSn6/tnPnzhX5XEi2wbqwz570x3MdGRmp2NhYbdmyRR999JEqVaqkjh07KiIiwhrUb4S7u7vNYzc3NxmGofPnz8vX11crVqzQ2rVrFRcXp9jYWNWvX1/Dhg2zBu2iXPuZKOnnKTMzUy+//LLee+895eTk6O6775avr6+cnJwKPPf5p6Vcq6hTWXD7IdjhttepUyft3LlTWVlZBUKDdPVE5zlz5uidd96Rq6urJOn3339Xs2bNbOZLT0+37uzzv4xzc3OtIwL5F0SUt/yw8vvvvxeYlp6erjp16pR6nX8eVcpft5ubm44eParRo0crJCREy5cvt44uvf322/ryyy9Lva0/q169uhwcHDRo0KBCA8T1vkDc3d0VERGhF198USkpKfroo4+0cuVKubq66qWXXip0mS5dumjKlCn64YcflJaWpvbt2ystLU0LFixQUlKS9u/fX2Hvk1bS96R09aICwzBswvbvv/9uc0Vy79691bt3b50/f15fffWVVq5cqfDwcPn5+alWrVqSrt4PMT/IX6thw4bF1vrwww/r5Zdf1rZt23TkyBE1aNBA7du3l3T1djzPPPOMWrRooffff1/NmjVTpUqV9Pnnn2vr1q2lej4KO58yPT1dkkr1eahZs6bCw8MVHh6uX375RYmJiYqJidFLL72kVatWFbncn48AFDUCf+bMGZtw9/vvv8vR0dH6mQ4MDFRgYKAuX76sHTt26I033tDcuXPl4+NjM0JWnJJ+nubMmaOtW7dq0aJF6tixo/WPkgceeKBE24F5cCgWt70hQ4bo7NmzioyMLDDt1KlTWrVqlRo3bmzdmTo7O+vf//63zXxJSUk6fvy42rZtK+mPv2ivvcfUf//73zLVlz+KUJSmTZuqfv36BWo6duyYvvvuO2tNpfHngPbBBx+oatWq8vb21vfff6+srCyNGDHC5pBh/jKlGW0sTI0aNeTp6alffvlFbdq0sf677777FB0dXeyh5d27d6tjx4763//+JwcHB91///2aMGGCLBaLUlNTi1yuU6dOMgxDy5YtU5MmTeTu7q5WrVqpZs2aWrhwoWrWrFng0N61rvca3UwlfU9KUnZ2tnbs2GF9fPHiRf3nP/9Rhw4dJF298nfMmDGSroaa//u//9OoUaOUm5urkydPWm+Tc+bMGZvX5uzZs1q0aJF1RK8oNWvWVNeuXZWYmKiPPvpIjzzyiPW5++WXX3T27Fk99dRTuu+++6ztX3zxhaQ/RtGu91z7+/vrt99+szksLEmbN29W5cqV5eXlVezy+X777TcFBQVZLwC49957NWzYMHXs2LHY91KNGjUKTC/qs//pp59a/28Yhj7++GO1a9dOzs7Omj9/vh5//HEZhqGqVauqa9eu1psR5+9XSvK+K+nnKTk5WR06dNBDDz1kDXXff/+9Tp8+XeRoMcyJETvc9nx8fPTcc89p0aJFOnjwoEJDQ1WnTh39/PPPWr16tS5evKgVK1bIwcFBtWvX1vDhwxUdHa3KlSsrJCREv/76qxYvXqzmzZurb9++kqSgoCDNmzdPzz//vIYNG6bU1FRFR0cXOspxPbVq1dLu3bu1fft2eXp6Wkdo8lWqVEkTJ07U9OnTNWHCBD322GM6c+aMoqOj5erqqsGDB5d6mx9//LHc3d2tt0vYsGGDnnvuOdWoUUOtWrWSk5OTXnvtNQ0ZMkTZ2dlKSEiw3jS2NOcHFmXixIkaPny4Jk2apD59+ig3N1erV6/Wnj17Ctya5Fqenp5ycXHRlClTNHbsWNWrV0/ffPON9u/fr6eeeqrI5WrVqiVfX19t27ZN/fv3l3T1fDQ/Pz999tln6t27t/WK3qKW3717t3bt2lVu51+VVEnfk5JUuXJlzZgxQxMnTlSNGjW0YsUKZWZmWq8uDQgI0Isvvqj58+erc+fOysjIUHR0tJo0aaKWLVuqcuXK6tOnj55//nn99ttvat26tQ4dOqTIyEjdfffdatKkyXXrfeyxxzR69Gjl5uaqT58+1vamTZuqRo0aio2NlZOTk5ycnLR161brbUryz3vLHzXctm2bOnfuXGCUsm/fvnrnnXc0ZswYjRs3Tvfcc48+/fRTxcfHa8yYMdblr6dRo0by8PDQ7NmzdeHCBf3lL3/R999/r88//1wjRowocrmuXbvq008/1Zw5c/TQQw8pOTm5yFukvPbaa8rOzlbTpk21ceNGHTx4UOvWrZN0daRszZo1mjZtmvr06aMrV65o1apVql27tgICAqzPxbX7hqKU5PPk5eWlLVu26B//+IeaNWumlJQULVu2TA4ODtx8+w5DsIMpjBw5Up6ennr77bc1b948nT17Vh4eHurcubOeffZZm0NM+YHhrbfe0saNG1W7dm09/PDDGj9+vPWwRtOmTTV//nwtW7ZMw4cPV7NmzfTyyy/r5ZdfLnVtAwYM0Pfff69hw4Zp3rx5BU6Sl65+mVWvXl3Lly/X6NGjVaNGDQUGBmrixInWk5tLY9q0afroo4+0du1a1a9fX9OnT7ee19O4cWMtXLhQ0dHRGjlypFxdXeXj46M333xTAwcOVFJS0g3/dFWnTp0UFxen6OhojRs3TpUrV1arVq20Zs2aAhebXKtKlSpavXq1Fi5cqDlz5igjI0NNmjTR3//+d5uAU5igoCDt2rXLOnolXQ06n332mbp06VLsss8++6xiYmI0bNiwAvciuxVK8p6Urh6mDA8P14IFC5Seni5vb2+99dZb1otCnnjiCV25ckXr16/XO++8IxcXFz3wwAMKDw+3nps3b948LV++XOvXr1dqaqrc3NzUs2dPjR8/3uZChKIEBgbK1dVVHh4euu+++6ztNWvWVExMjF599VU999xzql69uu6//3699dZbGjZsmJKSkhQcHKwOHTqoY8eOWrhwobZv364VK1bYrL9q1ap68803tXDhQkVFRenChQu69957NWfOHD3++OOlel6jo6P1+uuva/HixTpz5owaNGigMWPGWO+7V5h+/frp6NGjevfdd7Vhwwa1b99eixcv1t/+9rcC80ZERGj58uU6duyYPD09tXr1ausfBp07d9aCBQu0evVq6wUT7dq10xtvvGE9VPvnfUNRv9xSks/TtGnTdOXKFS1atEjZ2dm6++67NXLkSB04cECffvppiS8ww+3PwbjR4y4AANxB8m+0nJiYqLvv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FBMTI0dHR0nS0aNHtWTJEp05c0Z16tS57vJr1qzR6dOntWXLFt1zzz2SpKCgIA0aNEivvvqqevfurUqVrh44adq0qWJiYlSpUiUFBQXJwcFB8+bN06hRo1SrVi0dPHhQzz77rIKCgiRJXl5eio6OVlZW1k3qPYDbEYdiAaAIbdq0sYY6SfLw8JAkm0Okxfn222/l6+trDXX5+vTpo/T0dP3yyy/Wth49elhDniR1795dhmFox44dqlevnpo3b67nn39e06ZN04cffijDMDR9+nRZLJYb6SIAkyHYAUARqlatavM4P3jl5eWVaPlz586pXr16Bdrz2zIyMgq05XNzc7PO4+DgoNWrVys0NFRffvmlJkyYoI4dO2r8+PE6e/ZsifsDwPwIdgBwk7i6uur3338v0J6eni5JNodzrw15186TH/Dc3d0VERGhr776Sps2bdLQoUP18ccfKzIy8maVD+A2RLADgJvE399fu3fv1rFjx2zaN2/erPr169tc9PDll1/azPPBBx/IwcFB7du31+7du9WxY0f973//k4ODg+6//35NmDBBFotFqampt6QvAG4PXDwBADfJ4MGDtXnzZg0ePFhjxoxRnTp1tGnTJu3YsUNz5861Oafu+++/18yZM9W7d2/t3btXUVFRevzxx9WkSRM1aNBALi4umjJlisaOHat69erpm2++0f79+/XUU0/ZsYcAKhqCHQDcJPXr19c//vEPLVy4UHPmzNGVK1fUsmVLxcTEKCQkxGbekSNHat++fXr22WdVs2ZNPfPMMxozZowkqUqVKlq9erV1PRkZGWrSpIn+/ve/q2/fvvboGoAKivvYAQAAmAQjdgBQSjk5Odedx8HBweZWKQBwKzBiBwCl1KJFi+vO0759e7355pu3oBoA+APBDgBKae/evdedp3r16rr33ntvQTUA8AeCHQAAgElwHzsAAACTINgBAACYBMEOAADAJAh2AAAAJkGwAwAAMAmCHQAAgEkQ7AAAAEyCYAcAAGAS/x/J+VHMXv59jQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# count observations above barriers\n",
"df = pandas.read_sql(\"\"\"with obs_upstr as (\n",
" select\n",
" b.barrier_id,\n",
" b.barrier_type,\n",
" o.observation_id,\n",
" o.species_code,\n",
" o.observation_date\n",
" from bcfishpass.temp_barriers b\n",
" inner join bcfishpass.temp_observations o\n",
" on fwa_upstream(\n",
" b.blue_line_key,\n",
" b.downstream_route_measure,\n",
" b.wscode_ltree,\n",
" b.localcode_ltree,\n",
" o.blue_line_key,\n",
" o.downstream_route_measure,\n",
" o.wscode_ltree,\n",
" o.localcode_ltree,\n",
" false,\n",
" 1\n",
" )\n",
")\n",
"select\n",
" barrier_id,\n",
" count(*) as n_obs\n",
"from obs_upstr\n",
"group by barrier_id\"\"\", conn)\n",
"# lump everything 20 and greater into a single category\n",
"df.loc[df[\"n_obs\"] > 20, 'n_obs'] = 20\n",
"f, ax = plt.subplots(figsize=(7, 5))\n",
"sns.histplot(\n",
" df,\n",
" x=\"n_obs\",\n",
" multiple=\"stack\",\n",
" edgecolor=\".3\",\n",
" linewidth=.2,\n",
").set(title='Count of barriers with n observations upstream')\n",
"ax.set_xticks([2, 4, 6, 8, 10, 12, 14, 16, 18, 20])"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "a09fc5e8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>barrier_id</th>\n",
" </tr>\n",
" <tr>\n",
" <th>n_obs</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2244</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>874</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>382</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>204</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>32</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>29</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>58</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" barrier_id\n",
"n_obs \n",
"1 2244\n",
"2 874\n",
"3 382\n",
"4 204\n",
"5 60\n",
"6 32\n",
"7 28\n",
"8 29\n",
"9 8\n",
"10 13\n",
"11 8\n",
"12 11\n",
"13 5\n",
"14 3\n",
"15 2\n",
"17 4\n",
"18 3\n",
"19 4\n",
"20 58"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# chart is hard to read, show the raw numbers\n",
"df.groupby(\"n_obs\").count()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "bd04441e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6215"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# how many observations are upstream of barriers?\n",
"df = pandas.read_sql(\"\"\"with obs_upstr as (\n",
" select\n",
" b.barrier_id,\n",
" b.barrier_type,\n",
" o.observation_id,\n",
" o.species_code,\n",
" o.observation_date\n",
" from bcfishpass.temp_barriers b\n",
" inner join bcfishpass.temp_observations o\n",
" on fwa_upstream(\n",
" b.blue_line_key,\n",
" b.downstream_route_measure,\n",
" b.wscode_ltree,\n",
" b.localcode_ltree,\n",
" o.blue_line_key,\n",
" o.downstream_route_measure,\n",
" o.wscode_ltree,\n",
" o.localcode_ltree,\n",
" false,\n",
" 1\n",
" )\n",
")\n",
"select distinct observation_id\n",
"from obs_upstr;\"\"\", conn)\n",
"n_observations_upstream_barriers = len(df)\n",
"n_observations_upstream_barriers"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "37e9aac5",
"metadata": {},
"outputs": [],
"source": [
"# barriers with < 10 observations upstream are currently retained in the model.\n",
"# Note that we should realize barriers will often be nested - imagine a scenario where\n",
"# 3 distinct barriers are found along a stream, and there is a single observation upstream - \n",
"# each of those 3 barriers will be included in the above 2244 total.\n",
"\n",
"# so, as Craig requested, look into number of observations that get used by the model,\n",
"# and number that are ignored.\n",
"\n",
"df = pandas.read_sql(\"\"\"with obs_upstr as (\n",
" select\n",
" b.barrier_id,\n",
" b.barrier_type,\n",
" o.observation_id,\n",
" o.species_code,\n",
" o.observation_date,\n",
" o.linear_feature_id\n",
" from bcfishpass.temp_barriers b\n",
" inner join bcfishpass.temp_observations o\n",
" on fwa_upstream(\n",
" b.blue_line_key,\n",
" b.downstream_route_measure,\n",
" b.wscode_ltree,\n",
" b.localcode_ltree,\n",
" o.blue_line_key,\n",
" o.downstream_route_measure,\n",
" o.wscode_ltree,\n",
" o.localcode_ltree,\n",
" false,\n",
" 1\n",
" )\n",
"),\n",
"\n",
"obs_upstr_count as\n",
"(\n",
" select\n",
" barrier_id,\n",
" count(*) as n_obs\n",
" from obs_upstr\n",
" group by barrier_id\n",
"),\n",
"\n",
"barriers_not_removed as\n",
"(\n",
" select barrier_id \n",
" from obs_upstr_count\n",
" where n_obs < 10\n",
")\n",
"\n",
"select distinct\n",
" a.observation_id,\n",
" a.species_code,\n",
" a.observation_date,\n",
" s.stream_order,\n",
" s.stream_magnitude,\n",
" s.channel_width\n",
"from obs_upstr a\n",
"inner join barriers_not_removed b\n",
"on a.barrier_id = b.barrier_id\n",
"inner join bcfishpass.streams s\n",
"on a.linear_feature_id = s.linear_feature_id\n",
"\"\"\", conn, index_col=\"observation_id\", parse_dates=[\"observation_date\"])"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "9607baea",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1957"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# total number of salmon observations that do not contribute to model (from watershed groups with salmon)\n",
"n_observations_unused = len(df)\n",
"n_observations_unused"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "7943b892",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot: xlabel='year', ylabel='Count'>"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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AOAqVTQezYrWr19/2Wtq1KhRBTXxTAQ4AADgcX67thyKc+s6cAAAALhyBDgAAACLIcABAABYDAEOAADAYpjEAABANVVYWKikpCS3vHdkZGS1XcPNDAQ4AACqqaSkJM2J+0Q+/qFV+r75uel6eugt7EhSAQQ4AACqMR//UFO2iatKBQUFWr16tTZt2qRjx47J19dXLVu21IgRI3TzzTe7rissLNTatWu1YcMG/fTTT/Ly8lLTpk11//33695775XNZnPjXVQMAQ4AAFiGw+HQ4MGDlZCQoLFjx6pdu3bKzc3Vu+++qyFDhmj27Nm69957VVBQoFGjRum7777TmDFj9Lvf/U6FhYX697//rVmzZmnHjh1auHChZR/jEuAAAIBlLFq0SIcOHdIHH3ygqKgo1/EpU6YoOztbs2bNUu/evfX6669r79692rBhgxo2bOi6rkmTJurcubMGDBiguLg4jRgxwh23UWHMQgUAAJaQn5+vdevWacCAAcXCW5Hx48dr+fLl8vf316pVq9SvX79i4a1I8+bN9fvf/14rV66U0+msiqqbjgAHAAAs4eTJk0pLS1Pbtm1LPR8REaHWrVvrxIkTSk1NVfv27S9a1s0336zk5GSdOnWqkmpbuQhwAADAEtLT0yVJoaGXnjWblpYmSQoLu/jkjKJz586dM6dyVYwABwAALCE8PFzS/wLaxdSsWVOSlJmZedFrisLgpUKeJyPAAQAAS6hfv75q166tb775ptTzx48f15AhQ+RwOFSnTh199dVXFy1r165dqlOnjq655prKqm6lIsABAABLsNvtGjBggDZs2FDqDhLLly/Xvn37dM011+hPf/qT1q9frx9//LHEdYcOHdLGjRv14IMPsowIAACwnvzcdEu958iRI/X5559r4MCBGj9+vNq3b6/09HStWbNGGzZs0Lx58xQUFKShQ4fqu+++U2xsrMaNG6cuXbpIkr744gstWrRIN910k2WXEJEIcAAAVFuRkZF6eugtbnvv8ggICNCqVau0YsUKLVu2TGfOnJGfn59uuOEGxcfHq3PnzpIkLy8vLVq0SBs2bNC6deu0YMECGYah6667Tk899ZQGDBjATgwAAMB6vLy8LLkfaWBgoMaMGaMxY8Zc8jqbzab+/furf//+VVSzqsMYOAAAAIshwAEAAFgMAQ4AAMBiCHAAAAAWQ4ADAACwGAIcAACAxRDgAAAALIYABwAAYDEs5AsAQDVVWFhY6p6iVSEyMtKy+5B6AgIcAADVVFJSkl7avkS+If5V+r6OjFw92fuxcu8C8d5772nVqlU6cuSIJKlx48a67777NHDgQEnSoEGDVK9ePc2ZM6fY69544w3Nnj1bI0eO1OOPP16xm3AzAhwAANWYb4i//GsGursaZbZ+/Xq98MILevbZZ9WpUycZhqGdO3dq5syZOnv27EW314qPj9fs2bM1fvx4jRo1qoprbT4CHAAAsIy33npLAwYM0B//+EfXscaNGysxMVFvvvlmqQHuzTff1OzZszVp0iQNHTq0KqtbaZjEAAAALMNut+vrr79Wenp6sePDhw/X2rVrS1z/5ptvatasWZo6depVE94keuAAAICFDB8+XBMmTFC3bt100003qWPHjoqJiVGrVq0UEhJS7NqVK1dq5syZuuuuuxQbG+umGlcOeuAAAIBl9OnTR2vXrtVtt92m7777Ti+99JLuu+8+3X777dq7d6/rui+++EKzZ89WTEyMtm3bpn379rmv0pWAAAcAACyldevWmjt3rr788ktt3rxZTz75pLKysjR8+HClpKRIklJTU/Xiiy9q2bJluu666/TEE08oMzPTzTU3DwEOAABYQmJiop5//nnX2nU2m03XX3+9RowYofj4eGVlZWn37t2SpDvuuEN33XWXfH19NXfuXJ09e1bPPfecO6tvKgIcAACwBF9fX61du1abN28ucS4oKEiSVLt2bUmSt/f/hvkX9cBt3bpV69atq5rKVjImMQAAUI05MnIt857h4eEaNmyYXn75ZZ0/f1633367goKCdPToUS1evNg1qaE0Dz/8sD799FPNnDlT7du3V5MmTSpyC25HgAMAoJqKjIzUk70fc9t7l8eECRN07bXX6p133tHq1auVm5ur6Oho3XnnnXr00Ucv+jqbzaY5c+bo7rvv1uOPP65169bJz8+vvNV3OwIcAADVlJeXV7m3s3Kne++9V/fee+9Fz69cubLU45GRkfrqq68qqVZVizFwAAAAFkOAAwAAsBgCHAAAgMUQ4AAAACzG7QEuLS1Nf/7zn9WtWze1b99eDzzwgPbs2eM6/8wzz+j6668v9tWtWzfXeafTqUWLFqlr165q06aNhgwZohMnTrjjVgAAAKqE22ehPvHEE0pJSdH8+fMVHh6u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GtrjylS0TX6ttJ+xKy0DFW+Ty72+LGWUiYEKe/31143rr7/eiI2NdR375ptvjObNmxt//vOfjaNHjxo7duwwfve73xmLFy82DMMw8vLyjOTk5GJfX3zxhdGyZUvjnXfeMQzDMM6dO2fcdNNNxpQpU4yjR48a69evN1q1amWsX7/eLfdpFeVpD8MwjIULFxq/+93vjM8//9w4fvy4MWXKFKN9+/ZGYmKiYRi0R0WUt02GDRtmdO3a1fj444+No0ePGlOnTjX+7//+zzh37pxhGLTJlRo8eLBxzz33GLt37zZ++ukn4/nnnzdat25tHD16tEyf5d/+9jfj5ptvNv71r38ZBw8eNIYMGWL07t3byMvLMwyD9iiPirZJkdJ+xgyDNimPirbJpV5vGOa1CQGuAhITE42hQ4cabdu2NW6//fZiPzijR482BgwYUOz6TZs2GW3atHH9svs1h8Nh9O3b15gwYYLr2NKlS42uXbsa+fn5rmMvvfSS0adPn0q4G+uraHvcc889xuzZs13nMzMzjWbNmhnbtm0zDIP2KI+KtMnBgweNZs2aGf/6179c5wsLC43bbrvNeOWVVwzDoE2uxPHjx41mzZoZe/fudR1zOp1G7969jZdffvmyn2VeXp7Rrl0746233nKdT09PN1q3bm28//77hmHQHleqom1iGJf+GTMM2uRKVbRNLvd6wzCvTXiEWgE//PCDQkNDtXnzZrVp06bYuWPHjqljx47FjrVs2VI5OTnav39/ibJWr16thIQEPfPMM65je/bsUadOneTt/b8dz2JiYnTs2DGlpKSYfDfWV9H2qFmzpj755BOdOnVKhYWFWrt2rXx9fdWiRQtJtEd5VKRNjh07JknFrrHb7WrevLl2794tiTa5EmFhYXrttdd04403uo7ZbDYZhqH09PTLfpaHDh1SVlaWYmJiXOdDQkLUsmVL2qOcKtom0qV/xiTa5EpVtE0u93rJvDYhwFVAz5499dJLL6l+/folztWpU0cJCQnFjp0+fVqSSjRQXl6eli5dqocfflgRERGu44mJiYqKiip2bdH5M2fOmHIPV5OKtseUKVPk7e2tXr16qVWrVlqwYIFefvllNWjQQBLtUR4VaZM6depIuvC5//aaojajTcouJCRE3bt3l6+vr+vY1q1b9fPPP6tLly6X/SyL2iE6OrrENUXtSHtcmYq2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\n",
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot unused observations by species and year\n",
"df[\"year\"] = df['observation_date'].dt.year\n",
"df.loc[df[\"year\"] < 1970, 'year'] = 1970\n",
"\n",
"\n",
"f, ax = plt.subplots(figsize=(7, 5))\n",
"sns.despine(f)\n",
"sns.histplot(\n",
" df,\n",
" x=\"year\",\n",
" hue=\"species_code\",\n",
" palette=palette,\n",
" multiple=\"stack\",\n",
" edgecolor=\".3\",\n",
" linewidth=.2,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "dfca1d78",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot: xlabel='year', ylabel='Count'>"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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hXyJiIioVlarFTqdTpb31mq10Gg0sry3q2MBR0RERLXS6XR456+r4a5xb9L3tVgtmLt0piJ3gWgKLOCIiIjottw17vBw85I7jTo5fvw4nnvuuRrPtWvXDseOHWvijBoHCzgiIiJqNvr06YNvvvnG4djFixfxwgsvYOrUqTJlJR4LOCIiImo23N3dERISYv93eXk53n77bYwYMQJPPvmkjJmJxQKOiIiImq3t27cjOzsbmzdvljsVobiMCBERETVLZWVlSE1Nxbhx4xAaGip3OkI1qIA7ceIEiouLazxnNpvxz3/+06mkiIiIiJx18OBBlJWVYezYsXKnIlyDCrjnnnsOly9frvHcuXPnMH/+fKeSIiIiInLWgQMHMGLECAQEBMidinB1HgM3b948ZGdnAwAkSUJycjJ8fHyqXZeVlYXg4GBxGRIRERHVU35+Pn788UdMmTJF7lQaRZ174B588EFIkgRJkuzHqv5d9UetVqN37954++23GyVZIiIiorr44YcfoFKpMGDAALlTaRR17oFLSEhAQkICAGDs2LFITk5GVFRUoyVGRERErsFitSjuPTMyMtC+fXt4eSljAeL6atAyIh9++KHoPIiIiMgFabVazF06U7b3bqi8vDz4+/uLS8bFNKiAKykpQWpqKr788kuUlJTAZrM5nFepVDh69KiQBImIiEg+Go1GkfuRJicny51Co2pQAbdkyRLs27cPAwYMQLdu3aBWczk5IiIioqbSoALu888/x8svv4wXXnhBdD5EREREdAcN6jqrqKhATEyM6FyIiIiIqA4aVMANHDgQX331lehciIiIiKgOGvQI9eGHH0ZSUhLy8/MRGxtb4xTdP//5z87mRkREREQ1aFABN2vWLACVW1QcOHCg2nmVSsUCjoiIiKiRNKiAO3bsmOg8iIiIiKiOGlTARUREiM6DiKhFsNls0Ov1QmNqtVpoNBqhMYnItTWogFuzZs0dr3nppZcaEpqIqFkrKCyE6lomvEuLhcTLKygAYvsqcqFVUgar1QqdTifLe/OXk9oJL+B8fHwQGhrKAo6IqBZB/v4ICwmWOw2iOtHpdJg3MxkaVYNKhgazShX4++rkBv1yUl5ejjVr1uDgwYMwmUzo1q0bXn31VfTt21d8ojJpUGtkZGRUO3br1i2cOnUKycnJeP31151OjIiIiFyDRuUGjbpV076p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\n",
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f, ax = plt.subplots(figsize=(7, 5))\n",
"sns.despine(f)\n",
"sns.histplot(\n",
" df,\n",
" x=\"year\",\n",
" hue=\"stream_order\",\n",
" multiple=\"stack\",\n",
" edgecolor=\".3\",\n",
" linewidth=.2,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "0d8745d5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4387"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# do the same thing for observations that get used\n",
"df = pandas.read_sql(\"\"\"with obs_upstr as (\n",
" select\n",
" b.barrier_id,\n",
" b.barrier_type,\n",
" o.observation_id,\n",
" o.species_code,\n",
" o.observation_date,\n",
" o.linear_feature_id\n",
" from bcfishpass.temp_barriers b\n",
" inner join bcfishpass.temp_observations o\n",
" on fwa_upstream(\n",
" b.blue_line_key,\n",
" b.downstream_route_measure,\n",
" b.wscode_ltree,\n",
" b.localcode_ltree,\n",
" o.blue_line_key,\n",
" o.downstream_route_measure,\n",
" o.wscode_ltree,\n",
" o.localcode_ltree,\n",
" false,\n",
" 1\n",
" )\n",
"),\n",
"\n",
"obs_upstr_count as\n",
"(\n",
" select\n",
" barrier_id,\n",
" count(*) as n_obs\n",
" from obs_upstr\n",
" group by barrier_id\n",
"),\n",
"\n",
"barriers_removed as\n",
"(\n",
" select barrier_id \n",
" from obs_upstr_count\n",
" where n_obs >= 10\n",
")\n",
"\n",
"select distinct\n",
" a.observation_id,\n",
" a.species_code,\n",
" a.observation_date,\n",
" s.stream_order,\n",
" s.stream_magnitude,\n",
" s.channel_width\n",
"from obs_upstr a\n",
"inner join barriers_removed b\n",
"on a.barrier_id = b.barrier_id\n",
"inner join bcfishpass.streams s\n",
"on a.linear_feature_id = s.linear_feature_id\n",
"\"\"\",conn, index_col=\"observation_id\", parse_dates=[\"observation_date\"])\n",
"# total number of salmon observations that do not contribute to model (from watershed groups with salmon)\n",
"n_observations_used = len(df)\n",
"n_observations_used"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "424961b0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot: xlabel='year', ylabel='Count'>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAm0AAAHECAYAAABr8B0FAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAABT0UlEQVR4nO3de1hVVeL/8c/hDnJRVC6pmWKmlnjFaCbT0bTSqcm06YZTXitN7YZW2qjfIp20TCvLFMvUCa+jleVk1szUZHgpc0qtLDVTLolcFDgc4OzfH/44RYASbDhnw/v1PD6P7L32OmvvLfJh7bXWthmGYQgAAAAezcvdDQAAAMD5EdoAAAAsgNAGAABgAYQ2AAAACyC0AQAAWAChDQAAwAIIbQAAABZAaPuVhIQEJSQkuLsZAAAA5fi4uwGeJi0tzd1NAAAAqICeNgAAAAsgtAEAAFgAoQ0AAMACCG0AAAAWQGgDAACwAEIbAACABbDkRy2UlpaquLjY3c3Ab+Tr6ytvb293NwMAgN+E0FYDhmEoPT1dOTk57m4Kaqhp06aKioqSzWZzd1MAAKgWQlsNlAW2iIgIBQUF8YPfQgzDUEFBgTIzMyVJ0dHRbm4RAADVQ2j7jUpLS12BrXnz5u5uDmogMDBQkpSZmamIiAgelQIALIGJCL9R2Ri2oKAgN7cEtVF2/xiTCACwCkJbDfFI1Nq4fwAAqyG0AQAAWAChDQAAwAIIbQ3UgAED9Mgjj7i7GaZKTU3VJZdcotTUVHc3BQCAesfs0QbqhRdeUHBwsLubAQAATEJoa6C6dOni7iYAAAATEdpM9tVXX+npp5/Wl19+KafTqW7duumBBx5Qt27d9Mgjj+j48eP605/+pBdffFE5OTnq2rWrHnnkkXIh68SJE5o/f74+/vhjFRUVqXv37po2bVq5Mvn5+Vq0aJHeffdd5eXlqX379rrvvvs0YMAASWcfj/bp00dz586VJBUVFWnhwoXasmWLsrKy1K5dO917770aMmRItdr+W2RlZemZZ57Rv/71LxUWFqpLly568MEH1atXL1dbli1bprfeekvHjx9XdHS0RowYobFjx8rL6+cn9ikpKXr11VeVlpam2NhYDR8+vMJnVedaAUBjV1paqoyMDFPrjIyMZJ3LekZoM9GZM2c0duxYXX755Vq0aJGKi4v10ksvacyYMfrwww8lSQcOHND333+vBx98UGFhYVq0aJFGjhypd955R5GRkTp16pRuvfVWBQYG6vHHH1dgYKBWrFihO+64Q+vXr1dMTIycTqfGjh2r7777TpMnT1ZMTIw2b96s++67T6+++qouv/zycu0yDEMTJ07UZ5995iq/bds2PfDAA3I4HLrxxhvP2/aQkJBqXYOCggLdeuutKi4u1kMPPaSoqCitWLFCY8eO1fr169W+fXvdc8892rt3ryZOnKjOnTsrNTVVzz33nI4dO6YnnnhCkrRq1So98cQTGjlypPr3768dO3bo8ccfL/dZ1blWAAApIyNDc5M/lG9AmCn1Fdtz9ciYP+iCCy4wpT5UD6HNRIcOHdKpU6c0cuRIV69S+/btlZKSojNnzkiSTp8+rZdeeklxcXGSpNjYWF199dV67bXXNG3aNK1YsUI5OTl644031KpVK0nSVVddpSFDhmjhwoVatGiR/vOf/+izzz7T4sWLNXDgQElSfHy8jh49qk8//bRCaPvkk0/00UcfacGCBa6etb59+6qwsFDz58/XH//4x/O2vbqh7R//+IeOHTumTZs2qVOnTpKk3r1768Ybb9SuXbv0448/6pNPPtG8efN0ww03SJJ+//vfKyAgQAsXLtSdd96pmJgYLV68WNdcc41mzJghSbryyit15swZpaSkuD6rOtcKAHCWb0CY/Js0c3czUAvMHjXRxRdfrPDwcN17772aOXOmPvjgA7Vs2VJTp051vePyggsucAU2SYqIiFCPHj20Z88eSdKOHTvUuXNnRUZGqqSkRCUlJfLy8tJVV12lTz75RJK0e/du+fr66g9/+IOrHpvNpjfeeENTpkyp0K4dO3bIZrOpX79+rjpLSko0YMAA/fTTT/r222+r1fbq2L17t1q3bu0KbJLk7++vd999V7feeqt27twpb2/vco9lJbkCXGpqqr7//ntlZWW5AmmZ6667rsJ5ne9aAQDQUNDTZqImTZpo9erVeumll/TOO+8oJSVFgYGBuuGGGzR9+nRJZ0ParzVv3lxfffWVJCknJ0dHjx7VpZdeWulnFBYWKicnR02bNi03/utccnJyZBiGevbsWen+zMxMde7c+Zxt9/f3r/ZnneudrLm5uWrWrJl8fMr/02vZsqWksz2Rubm5kqTw8PBKy/zys853rcreMwoAgNUR2kzWvn17zZs3T6Wlpdq3b582b96sN954Q61bt5Z0Nmj82smTJ11BJyQkRH369NHUqVMrrd/Pz08hISHKycmR0+ksF9wOHDigkpISde3atdwxISEhCgoK0uuvv15pnW3btj1v28ePH1+t8w8JCdGPP/5YYfvnn3+u4OBghYWFKTs7WyUlJeWCW2ZmpiSpWbNmatbsbPd9VlZWuTp+fe2qc60AAGgoeDxqoq1btyo+Pl4//fSTvL291aNHD82aNUuhoaFKT0+XJP3www86dOiQ65iMjAzt3btXV1xxhSSpT58+Onz4sNq1a6euXbu6/rz55ptat26dvL291bt3bxUXF+vf//63qx7DMDR9+nS99NJLFdrVp08fFRQUyDCMcnV+++23evHFF1VSUlKttldH7969dezYMX399deubQ6HQ5MmTdLatWvVp08flZaW6p133il33JtvvilJ6tWrly666CJFR0dr69at5cqUTeb45Xmd71oBANBQ0NNmop49e8rpdGrixIkaP368mjRponfffVenT5/W4MGDtWnTJhmGoQkTJuj++++Xt7e3XnjhBYWGhmrkyJGSpLvuukubN2/WXXfdpdGjR6tZs2Z65513tHbtWj366KOSpP79+6tHjx569NFHNWXKFLVt21ZvvfWWvvnmmwozLCWpX79+iouL04QJEzRhwgTFxMRo3759ev7553XllVcqPDz8vG2vrptuukkrV67UvffeqylTpig8PFyrV6+W3W7XyJEj1aZNG11++eWaOXOmMjMz1aVLF+3cuVNLly7VsGHD1KFDB0nSww8/rIceekgzZszQtddeq7179+qNN94o91nVuVYAADQUNsMwDHc3wpOUDX7fvn17pfvtdrurdycgIKDC/n379mnhwoX68ssvVVhYqIsvvlj33HOPBg0apEceeUQ7d+7UuHHj9OKLL6qwsFC/+93vNG3aNNfjU+lsb9wzzzyjHTt2qKioSBdddJFGjhypESNGuMqcPn1azzzzjN577z0VFBSoU6dOuv/++xUfHy+p4jptBQUFWrhwobZu3aqsrCxFRkZq6NChmjhxomu82rna/ltkZGTo6aef1kcffaSSkhJ169ZNU6dOVefOnSWdHWu2aNEibdmyRadOnVLr1q01YsQIjRo1qlzv2DvvvKPFixfr6NGj6tixo0aPHq0HH3xQr7/+umuGbHWuVU3uIwA0JCdOnNAz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h9CGelM2MUGSLr74Yj344IN69913tW7dOje2CgAAa+DxqAfKKXY0is+888479e9//1tJSUnq2bOnYmJi6r0NAABYBaHNw0RGRqrPtES3fXZ9stlsmjt3rq6//no98MADWrdunfwt9CYIAADqE6HNw3h7e1vu/Z8ffPDBecusXLmy0u2RkZHauXOn2U0CAKDBYUwbAACABRDaAAAALIDQBgAAYAGENgAAAAsgtAEAAFgAoQ0AAMACCG0AAAAWQGgDAACwABbX9TClpaXKyMhwy2dHRkbK29vbLZ8NAADOjdDmYTIyMrQ6+d8KCgit188tsOfpjjH9avw2hpKSEq1evVqbN2/W4cOH5efnpy5dumj8+PG64oorJEkDBgzQ8ePH9cgjj2jUqFEV6vjrX/+qNWvW6L777tOkSZNqdT4AADQ0hDYPFBQQquAm4e5uRrU5HA6NGjVKaWlpmjRpknr06CG73a4NGzZo9OjRmjNnjm688UZJkq+vr7Zu3VohtJWUlOi9996TzWZzwxkAAOD5CG2otUWLFungwYPasmWLoqKiXNunT5+ugoICPfXUUxo0aJAk6YorrtBHH32ktLQ0RUdHu8p++umnCgoKUmBgYL23HwAAK2AiAmqluLhY69at04gRI8oFtjJTpkzRsmXLFBAQIEmKjY3VBRdcoK1bt5Yr98477+i6666jpw0AgCoQ2lArx44dU05Ojrp3717p/oiICMXGxpab4HDdddeVC20Oh0Pvv/++hg4dWtfNBQDAsghtqJXc3FxJUlhYWLWPue666/TFF18oLS1NkvTf//5XzZo1U5cuXeqkjQAANASENtRKePjZCRM5OTnVPuayyy5TmzZtXL1t77zzjv74xz/WRfMAAGgwCG2olTZt2qhFixb6/PPPK91/5MgRjR49Wl9//XW57WWPSIuKirR9+3YNGTKkPpoLAIBlEdpQK15eXhoxYoQ2btxY6aLAy5Yt0969e9WqVaty28seka5fv15t2rRRTExMfTUZAABLYskPD1Rgz7PUZ95zzz366KOPdOutt2rKlCnq2bOncnNzlZKSoo0bN2r+/PkKDg4ud0znzp3Vtm1bPfvss7r77rtr23wAABo8QpuHiYyM1B1j+rnts2siMDBQq1at0vLly7V06VKdOHFC/v7+uvTSS7VixQr16dOn0uOuu+46vfTSSzwaBdAg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pW1VKevFc3c7GjPugXtx/d2Pe+B+3AP3suL194w5rLVQlpB/vU5ZZmamoqLMGZcFAADgbpYPbZ06dVJwcLBSU1Nd2/Ly8rR//3717t3bjS0DAAAwj+Ufj/r5+SkhIUHz589XeHi4WrVqpXnz5ikqKkqDBg1yd/MAAABMYfnQJkmTJ09WSUmJZsyYIbvdrri4OCUnJzeOhXUBAECj0CBCm7e3txITE5WYmOjupgAAANQJy49pAwAAaAxshsFL4QAAADwdPW0AAAAWQGgDAACwAEIbAACABRDaAAAALIDQBgAAYAGENpMsXrxYI0eOLLdtx44duvnmm9WjRw9dc801WrVqlWtfamqqLrnkkkr/lL3EVpIOHDighIQEde/eXf3791dycnK9nZOV/NbrL0nFxcVasGCB+vfvrx49euj222/XZ599Vq4M17/6anIP8vPz9cQTT6hfv37q1auXJkyYoB9++KFcGe5B1XJycvTXv/5VV111lXr27KnbbrtNu3fvdu0/37VzOp1atGiR+vbtq27dumn06NE6evRouTJc/3Or7T34pcq+h35rHY1Rbe/B+Y6vTh31xkCtvfrqq8Yll1xiJCQkuLZ9/vnnRqdOnYy//vWvxqFDh4zt27cbv//9743FixcbhmEYRUVFRmZmZrk/H3/8sdGlSxdj7dq1hmEYxqlTp4zLL7/cmD59unHo0CFj/fr1RteuXY3169e75Tw9VU2uv2EYxsKFC43f//73xkcffWQcOXLEmD59utGzZ08jPT3dMAyu/29R03swduxYo2/fvsYHH3xgHDp0yJgxY4bxu9/9zjh16pRhGNyD8xk1apRxww03GLt27TK+++4744knnjBiY2ONQ4cOVevaPf/888YVV1xh/Otf/zIOHDhgjB492hg0aJBRVFRkGAbXvzpqew/KVPY9ZBjcg+qo7T041/GG4Vn3gNBWC+np6caYMWOM7t27G9dee225b7aJEycaI0aMKFd+8+bNRrdu3Vz/If6Sw+Ewhg4datx///2ubS+//LLRt29fo7i42LXtmWeeMa655po6OBvrqe31v+GGG4w5c+a49p8+fdro2LGjsXXrVsMwuP7VUZt7cODAAaNjx47Gv/71L9f+0tJSY/DgwcYLL7xgGAb34FyOHDlidOzY0dizZ49rm9PpNAYNGmQ899xz5712RUVFRo8ePYy///3vrv25ublGbGys8fbbbxuGwfU/n9reA8M49/eQYXAPzqe29+B8xxuGZ90DHo/WwldffaWwsDC9+eab6tatW7l9hw8fVu/evctt69KliwoLC7Vv374Kda1evVppaWl69NFHXdt2796tuLg4+fj8/Lax+Ph4HT58WFlZWSafjfXU9vo3bdpUH374oX788UeVlpZqzZo18vPzU+fOnSVx/aujNvfg8OHDklSujJeXlzp16qRdu3ZJ4h6cS7NmzfTKK6/osssuc22z2WwyDEO5ubnnvXYHDx5Ufn6+4uPjXftDQ0PVpUsXrn811fYeSOf+HpK4B+dT23twvuMlz7oHhLZaGDBggJ555hm1adOmwr6WLVsqLS2t3Lbjx49LUoWbXFRUpJdffll33nmnIiIiXNvT09MVFRVVrmzZ/hMnTphyDlZW2+s/ffp0+fj4aODAgeratasWLFig5557ThdeeKEkrn911OYetGzZUtLZ6/zrMmX3iHtQtdDQUPXr109+fn6ube+++65++OEHXXnllee9dmXXPTo6ukKZsvvG9T+32t4D6dzfQxL34Hxqew/Od7zkWfeA0FZHbrrpJv3zn//Upk2bVFxcrKNHj+q5556TzWaTw+EoV3bz5s0qKiqqMADVbreX+4ckSf7+/pLOBj1UrTrX/7vvvlNoaKhefPFFrVmzRjfddJOmTZumgwcPSuL619b57kG3bt0UExOjmTNnKi0tTQ6HQ6+99poOHDjgukfcg+rbs2ePHnvsMQ0cOFADBgw477UrLCyUpErLlF1brv9v81vvQXVwD36b2t6DXx8vedY9ILTVkRtuuEEPPPCAZs+erW7duun222/XnXfeKUkKCQkpV3bTpk0aPHiwmjVrVm57QEBAhYBX9g8kKCioDltvfee7/sePH1diYqIeeughXX311eratav+7//+Tx07dtTzzz8vietfW+e7B76+vnrxxRdVXFzsmsG7a9cujRgxQsHBwZK4B9X1/vvva8yYMYqNjdWzzz4r6fzXLiAgQJIqLRMYGFitOvCzmtyD6uAeVF9t70Flx//WOuqaz/mLoKbGjx+vsWPH6qefflKLFi10+PBhGYahtm3busqcOnVKn3/+ue6+++4Kx0dFRSkzM7PctrKvIyMj67bxDcC5rv++fftUXFysrl27ljumW7du+s9//iOJ62+G830PtGvXTmvWrFFubq5sNptCQ0M1ZcoUXXTRRZK4B9WxatUqJSUladCgQZo/f76rR+B8166kpMS1rWxIQNnXnTp1qlYdOKum96A6uAfVU9t7UNXxv6WO+kBPWx1ZvXq1Zs6cKS8vL0VGRsrb21tbt25V69at1a5dO1e5zz77TDabTX369KlQR1xcnPbs2aPS0lLXth07dqhdu3Zq3rx5vZyHVZ3v+peN4/n666/LHffNN9+4AgXXv3bOdw/OnDmjhIQEffnllwoLC1NoaKhOnz6tTz75RH379pXEPTifv//973riiSd0xx136Lnnniv3g+Z8165Tp04KDg5Wamqqa39eXp7279/vmhzC9T+/2tyD6uAenF9t78G5jq9uHfWm3uerNlDTpk0rN1X7008/NTp37mysXbvW+PHHH42UlBTj0ksvNbZs2VLuuOeff94YPHhwpXWePHnSiIuLM6ZNm2Z8++23xoYNG4yuXbsaGzdurNNzsaLfev1LS0uN22+/3bj22muNHTt2GIcPHzYWLFhgdO7c2fj8888Nw+D6/1Y1+R5ISEgwbrvtNuPgwYPGgQMHjNtvv9244YYbXFPruQdV+/77741LL73UmDhxYoU1H/Py8qp17Z599lmjT58+xvvvv+9ap23w4MGuZXG4/udmxj34pV9/DxkG9+B8ansPzne8YXjWPSC0maSyb7aNGzcagwcPNmJjY43rr7/eeOeddyocN3PmTOPPf/5zlfV+8cUXxp///GfjsssuM/7whz8YK1euNL3tDUFNrn9OTo4xa9Yso3///kaPHj2MW265xUhNTS1XhutffTW5BxkZGcakSZOM3r17G3369DGmTZtmZGVllSvDPajcSy+9ZHTs2LHSP9OmTTMM4/zXrqSkxHj66aeN+Ph4o3v37sa4ceOMY8eOlSvD9a+aGffglyr7HvqtdTQ2tb0H1Tn+fHXUJ5thGEb99u0BAADgt2JMGwAAgAUQ2gAAACyA0AYAAGABhDYAAAALILQBAABYAKENAADAAghtAAAAFkBoAwAAsABCGwAAgAUQ2gAAACyA0AYAAGABhDYA+IW//e1vio2N1enTp8ttf+WVV9SjRw8VFBTom2++0d13362ePXuqZ8+emjhxoo4dO1au/MGDB3XfffcpPj5el156qfr27asnn3xSdrvdVeaSSy7RCy+8oOHDh6tXr15avHhxvZwjAGsitAHAL4wYMUJFRUXaunVrue2bNm3Stddeq4yMDN16663KysrS3LlzlZSUpGPHjum2225TVlaWJCkzM1N33HGHCgsLNXfuXC1dulTXXXedVq5cqddee61cvS+99JKuueYaPfvssxo4cGB9nSYAC7IZhmG4uxEA4EluvfVW+fj4aNWqVZKkffv26eabb9bq1av1xhtvaMeOHXrvvfcUHBwsScrJydHVV1+tm2++WdOmTdPHH3+sl19+WS+//LKrjCRdf/31ioiIUHJysqSzPW09e/bUG2+8Uf8nCcBy6GkDgF8ZPny4du/erR9//FGStHHjRl144YXq3bu3Pv30U11++eUKCAhQSUmJSkpKFBwcrN69e+uTTz6RJF155ZVatWqV/P39dfjwYX344Yd6+eWXderUKTkcjnKf1bFjx3o/PwDW5OPuBgCApxkyZIieeuopvfnmmxo7dqzeffdd3XnnnZLO9qq98847eueddyocFx4eLklyOp169tlntXr1ahUUFCg6OlqxsbHy9/evcEyLFi3q9mQANBiENgD4lSZNmujaa6/Vu+++q86dOysvL0833nijJCkkJES/+93vNGrUqArH+fic/S/1lVde0WuvvaZZs2bpmmuuUUhIiKSz4+UAoKYIbQBQiREjRmjjxo1avny54uPjdcEFF0iS+vTpo0OHDqlz586ukGYYhh5++GG1bdtWnTt31p49e9ShQ4dyIS0jI0PffPONunbt6pbzAWB9jGkDgEr06tVL7du3186dO3XTTTe5tk+YMEE//PCD7r77br3//vv66KOPNGnSJG3ZskWdOnWSJMXGxurrr7/WK6+8op07d2rdunW644475HA4VFhY6K5TAmBx9LQBQBX69++vn376SYMGDXJt69Spk1avXq0FCxZo6tSpMgxDHTt21IsvvuhasuPuu+9Wdna2Xn/9db344ouKjo7Wn/70J9lsNi1ZskS5ubkKCwtz12kBsCiW/ACAShiGoeuvv16XX365Hn/8cXc3BwDoaQOAXzpz5oxee+01/e9//9ORI0d4SwEAj0FoA4BfCAgIUEpKipxOp5KSknThhRe6u0kAIInHowAAAJbA7FEAAAALILQBAABYAKENAADAAghtAAAAFkBoAwAAsABCGwAAgAUQ2gAAACyA0AYAAGAB/w/GsOsxNS2evgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot used observations by species and year\n",
"df[\"year\"] = df['observation_date'].dt.year\n",
"df.loc[df[\"year\"] < 1970, 'year'] = 1970\n",
"\n",
"\n",
"f, ax = plt.subplots(figsize=(7, 5))\n",
"sns.despine(f)\n",
"sns.histplot(\n",
" df,\n",
" x=\"year\",\n",
" hue=\"species_code\",\n",
" palette=palette,\n",
" multiple=\"stack\",\n",
" edgecolor=\".3\",\n",
" linewidth=.2,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "0551c70b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot: xlabel='year', ylabel='Count'>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAm0AAAHECAYAAABr8B0FAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAABaBElEQVR4nO3deXgUVb4+8Le7Q/aE7J2wimHCooQ1GB0QBgQVrs6F6HULAgZcQBi3wFVwkgwijCA7CLKII2gAYUBxGRH1p87ECCgim4gDKCHpTjrpJZ1eku76/cFNj20SEtInqa7k/TyPz2Oqqr91qiohb6pOnaOSJEkCEREREfk1tdwNICIiIqLGMbQRERERKQBDGxEREZECMLQRERERKQBDGxEREZECMLQRERERKQBDGxEREZECMLT9RmZmJjIzM+VuBhEREZGXALkb4G+Ki4vlbgIRERFRHbzTRkRERKQADG1ERERECsDQRkRERKQADG1ERERECsDQRkRERKQADG1ERERECsAhP3zgcrlQXV0tdzOoiTp06ACNRiN3M4iIiJqFoa0ZJElCSUkJjEaj3E2hqxQVFYXExESoVCq5m0JERHRVGNqaoTawJSQkIDQ0lAFAASRJQlVVFfR6PQAgKSlJ5hYRERFdHYa2q+RyuTyBLTY2Vu7m0FUICQkBAOj1eiQkJPBRKRERKQpfRLhKtX3YQkNDZW4JNUftdWNfRCIiUhqGtmbiI1Fl4nUjIiKlYmgjIiIiUgCGtlYmSZLcTSAiIiIFYmhrRWfPnsV9990ndzP81sWLF9GrVy/s2bNH7qYQERH5HYa2VvTBBx/g22+/lbsZREREpEAMbUREREQKwHHaBDtx4gReeuklHD9+HG63G/3798eTTz6Jzz//HGvWrAEA9OrVC48//jhmzZqFXr16YdasWfj0009x/vx5ZGVlYcaMGbh06RKWLl2KL7/8Eg6HAwMGDMDcuXPRt29fz74uXryIVatW4V//+hcqKioQGRmJ4cOH49lnn0V0dDQAYNSoUZg4cSIsFgv27t0Lp9OJUaNG4S9/+Qu2b9+Obdu2wWq14qabbsJf/vIXz+ea6vvvv8eKFStw/PhxVFdXY+jQoXj66afxu9/9DgBQWFiIBx98EHl5ediwYQMcDgdeeuklDBs2DB999BHWrFmD8+fPIzk5GTNnzqxT32g0YtmyZfj4449hsVjQp08fPPnkk7jxxhs92zR0DomI6DKXywWdTie0plar5XiXrYyhTaDKykpMmzYNN9xwA1atWoXq6mq88soryMrKwr59+1BSUoK3334bO3bsQGJioudzr7zyCv70pz+hV69eSExMRHl5Oe69916EhITg+eefR0hICF5//XU88MADePvtt5GcnAybzYYHH3wQ0dHRyMnJQUREBI4cOYK1a9ciKCgICxYs8NR/7bXXcNNNN2H58uX4/vvvsWzZMpw4cQJarRYLFizAuXPn8NJLLyEuLg45OTlNPt6vvvoK06ZNQ1paGhYuXAin04kNGzbg3nvvxc6dO5GcnOzZdvny5cjLy/ME0E8++QSzZ8/G+PHj8cwzz+D06dPIzs72qu9wODB58mSUlZXhySefREJCAnbv3o1p06Zh06ZNXsHtt+eQiIj+Q6fT4fx33yDuKv8wb0hZRQXQfxA6deokpB41DUObQGfPnkV5eTkmTZqEwYMHAwCuvfZa5OfnQ61We8LEgAEDvD6XmpqKhx9+2PP18uXLYTQa8dZbb6Fz584AgJtvvhnjxo3DypUrsWrVKpw/fx6JiYlYvHgxunXrBgBIT0/H999/j6+//tqrflhYGJYvX46AgADcdNNN+Pvf/w69Xo9du3YhIiICI0aMwFdffYVvvvnmqo735ZdfRteuXbFp0ybPX1vDhg3DmDFjsHr1aqxYscKz7b333ovbbrvN8/XatWtx3XXX4eWXX/YcX23NWvv27cPp06exc+dO9O/f37PdpEmTsHTpUuzevbvBc0hERN7ioqORGB8ndzPIB+zTJtDvfvc7xMTE4LHHHkNOTg4++eQTxMfHY86cOVec6zIlJcXr64KCAvTp0wdarRY1NTWoqamBWq3GzTffjH/9618AgD59+uDNN99Ely5d8Msvv+CLL77Ali1b8O9//7vOaP+pqakICPhPPo+Pj8e1116LiIgIz7KoqChYLJYmH2tVVRW+//57jBs3zuv2eGRkJP7whz+gsLDQa/tevXp5/t9ut+PEiRMYPXq01za33357nfMQHx+P6667znMeXC4X/vCHP+D48eMwmUyebX97DomIiNoa3mkTKCwsDNu3b8crr7yC999/H/n5+QgJCcGdd96JefPmNfi5uDjvv3yMRiMuXLiA6667rt7tbTYbQkJC8Nprr2HDhg2oqKhAXFwcrrvuOoSEhNQJX+Hh4XVq1M7D2VwWiwWSJNVpO3D5eH7bhl/P02oymSBJEmJiYry2SUhI8PraaDSitLS0wfNQWlqKjh07evZJRETUljG0CXbttddiyZIlcLlcOHbsGPbt24e33noLXbp0aXKNiIgIDB06FHPmzKl3fWBgIN59910sXrwYTz/9NO666y5PAPrTn/6E77//XsixNNZGlUqFsrKyOutKS0sRFRXV4GejoqKgVqvrfNZoNNbZxzXXXIOlS5fWW+dqzikREZHS8fGoQB9++CHS09NRWloKjUaDgQMHIjc3F5GRkSgpKYFa3bTTPXToUJw7dw49evRAv379PP+988472LVrFzQaDY4cOYKIiAg8/PDDnsBmtVpx5MgRuN3uljxMAJcnXr/++uvx/vvvw+VyeZZbLBZ89tlnnj599QkKCsLAgQPx0Ucfec0Q8cknn3htN3ToUBQXFyM2NtbrPBQUFHj1oyMiImoPGNoEGjRoENxuN2bOnImPP/4YBQUF+POf/wyLxYKxY8ciMjISALB//3788ssvDdaZMmUK3G43pkyZgvfffx8FBQV4/vnn8be//Q3XXnstgMv91CwWCxYvXozCwkK8++67eOCBB1BWVgabzdYqx/v000/jwoULmDZtGg4ePIgPP/wQkydPhtPpxOOPP37Fzz711FP46aef8Pjjj+Pzzz/H3/72N6xatcprm4kTJ6JTp06YOnUq/v73v+Orr77CsmXLsHz5ciQkJKBDhw4teXhERER+haFNoISEBGzatAkRERGYN28eHnnkEZw4cQKrV69Geno6xo4di379+uF///d/sXnz5gbraLVa5Ofno3PnzsjNzcWjjz6KY8eOYeHChZgyZQoAYMKECZg5cyY++OADTJ8+HatWrcKQIUPwl7/8BUajEWfPnm3x473xxhvx2muvwel04qmnnsLzzz8PrVaLnTt3esZpa8iQIUOwceNG6HQ6PP7448jPz8eLL77otU1oaCi2b9+OwYMHY8mSJZg+fTo++ugjPP3003j22Wdb8tCIiIj8jkriDOZeat9oPHjwYL3r7Xa759FlcHBwazaNBOD1I6L26NKlS6j8+ZywIT9KSssQ3q0Hx2lrZXwRgbxIkuTVR60harW6yX30iIiIyHcMbeTl66+/xoMPPtjodrXTcBEREVHrYGgjL9dddx3efvvtRrf7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338/zp8/j+7du2PGjBkYPnw4SkpKkJKS4rV97R25S5cuoaSkBACQlJRUZ5vi4uIG9zl69OgG1xUXF9epR0RERL8moUxnhNsmCalmtskzpJXSyBraauemDAkJwZw5cxAaGop33nkH06dPx2uvvQa73V6nX1pQUBAAwOFwwGazAUC925hMptY5CCIionZGpVKhW7wWnWPrdm1qjlKzEWo1x/tvjKyhrbG5KYODg+F0Or0+43A4AFyeHik4OBjA5fBX+/+124SEhDS434MHDza47kp34YiIiIjkInusvdLclImJidDr9V7rar/WarWex5j1bZOYmNiCrSYiIiJqXbLeaTt9+jTuu+8+bNy4EUOGDPEsr52bsk+fPsjPz4fL5fKMCl1QUIAePXogNjYWERERCA8PR2FhIbp16wYAMJvNOHnyJDIzM2U5ppYieqTtq8WRuYmIiOQla2hrbG7KuLg4bNq0CfPmzcO0adNw7NgxvP7668jLywNw+fFqZmYmli5dipiYGHTu3BlLlixBYmIixowZI+ehCafT6bD1hdcQ0qHhx74txVZtw5T5UzkyNxERkYxkDW1NmZty06ZNWLhwISZMmID4+HjMmTMHEyZM8NSYPXs2ampqMH/+fNjtdqSlpWHz5s1tcmDdkA4hCAsMk7sZV23v3r149dVX8csvv6Bbt254/PHHcfvtt8vdLCIiIkWRfciPxuamTE1NxY4dOxpcr9FokJ2djezs7JZoHvlo3759eO655zB37lyMHDkS+/fvx1NPPYXExEQMHDhQ7uYREREphuwvIlDbJUkSVq5cicmTJ2Py5Mno3r07Zs6ciZtuuglff/213M0jIiJSFNnvtFHb9e9//xtFRUW44447vJZv3rxZphYREREpF++0UYs5f/48AKCqqgpZWVm48cYbcffdd+OTTz6Rt2FEREQKxNBGLaayshIAMHfuXPzXf/0XtmzZgt///veYMWMGCgoKZG4dERGRsvDxKLWYDh06AACysrI8b/z26dMHJ0+exGuvvYYbb7xRzuYREREpCu+0UYupnZUiJSXFa3nPnj1x8eJFOZpERESkWAxt1GL69u2LsLAwfPfdd17Lz5w545nBgoiIiJqGj0cVxFZtU9R+g4ODMW3aNKxduxZarRapqal477338M9//hNbt24V20giImo1kgSUmYzC6hmtlejqdgur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ftE0du569+6N8PBwFBYWetabzWacPHnS83IIz3/jfLkGTcFr0Dhfr8GVPt/UGq2m1d9XbaPmzp3r9ar2V199JfXp00fauXOndPHiRSk/P1+67rrrpPfee8/rc6tXr5bGjh1bb82ysjIpLS1Nmjt3rvTjjz9Ku3fvlvr16yft2bOnRY9Fia72/LtcLun++++XbrvtNqmgoEA6d+6ctHz5cqlPnz7St99+K0kSz//Vas7PQGZmpnTfffdJp0+flk6dOiXdf//90p133ul5tZ7XoGH//ve/peuuu06aOXNmnTEfzWZzk87dsmXLpKFDh0off/yxZ5y2sWPHeobF4fm/MhHX4Nd++zMkSbwGjfH1GjT2eUnyr2vA0CZIfT9se/bskcaOHSulpqZKd9xxh/T+++/X+VxOTo70P//zPw3W/e6776T/+Z//ka6//nrpD3/4g/TGG28Ib3tb0JzzbzQapdzcXGnkyJHSwIEDpXvuuUcqLCz02obnv+macw10Op00a9YsaciQIdLQoUOluXPnSgaDwWsbXoP6vfLKK1JKSkq9/82dO1eSpMbPXU1NjfTSSy9J6enp0oABA6Tp06dLv/zyi9c2PP8NE3ENfq2+n6GrrdHe+HoNmvL5xmq0JpUkSVLr3tsjIiIioqvFPm1ERERECsDQRkRERKQADG1ERERECsDQRkRERKQADG1ERERECsDQRkRERKQADG1ERERECsDQRkRERKQADG1ERERECsDQRkRERKQADG1ERERECsDQRkT0K3/961+RmpoKi8XitfzVV1/FwIEDUVVVhTNnzuCRRx7BoEGDMGjQIMycORO//PKL1/anT5/G448/jvT0dFx33XUYPnw4XnjhBdjtds82vXr1wpo1a5CRkYHBgwdj3bp1rXKMRKRMDG1ERL9y1113weFw4MMPP/RavnfvXtx2223Q6XS49957YTAYsHjxYixcuBC//PIL7rvvPhgMBgCAXq/HAw88AJvNhsWLF2Pjxo24/fbb8cYbb2Dr1q1edV955RXceuutWLZsGUaPHt1ah0lECqSSJEmSuxFERP7k3nvvRUBAALZt2wYAOHbsGO6++25s374db731FgoKCvDRRx8hPDwcAGA0GnHLLbfg7rvvxty5c/Hll19i/fr1WL9+vWcbALjjjjuQkJCAzZs3A7h8p23QoEF46623Wv8giUhxeKeNiOg3MjIycPjwYVy8eBEAsGfPHnTr1g1DhgzBV199hRtuuAHBwcGoqalBTU0NwsPDMWTIEPzrX/8CAAwbNgzbtm1DUFAQzp07h08//RTr169HeXk5nE6n175SUlJa/fiISJkC5G4AEZG/GTduHF588UW88847mDZtGj744ANMnjwZwOW7au+//z7ef//9Op+LiYkBALjdbixbtgzbt29HVVUVkpKSkJqaiqCgoDqfiYuLa9mDIaI2g6GNiOg3wsLCcNttt+GDDz5Anz59YDab8d///d8AgIiICNx0002YOnVqnc8FBFz+J/XVV1/F1q1bkZubi1tvvRUREREALveXIyJqLoY2IqJ63HXXXdizZw+2bNmC9PR0dOrUCQAwdOhQnD17Fn369PGENEmS8Mwzz6B79+7o06cPjhw5gp49e3qFNJ1OhzNnzqBfv36yHA8RKR/7tBER1WPw4MG49tpr8fXXX2PixIme5TNmzMDPP/+MRx55BB9//DG++OILzJo1C++99x569+4NAEhNTcUPP/yAV199FV9//TV27dqFBx54AE6nEzabTa5DIiKF4502IqIGjBw5EqWlpRgzZoxnWe/evbF9+3YsX74cc+bMgSRJSElJwdq1az1DdjzyyCOoqKjA3/72N6xduxZJSUn44x//CJVKhQ0bNsBkMqFjx45yHRYRKRSH/CAiqockSbjjjjtwww034Pnnn5e7OUREvNNGRPRrlZWV2Lp1K77//nucP3+esxQQkd9gaCMi+pXg4GDk5+fD7XZj4cKF6Natm9xNIiICwMejRERERIrAt0eJiIiIFIChjYiIiEgBGNqIiIiIFIChjYiIiEgBGNqIiIiIFIChjYiIiEgBGNqIiIiIFIChjYiIiEgB/j8jsHwxNVlkOQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f, ax = plt.subplots(figsize=(7, 5))\n",
"sns.despine(f)\n",
"sns.histplot(\n",
" df,\n",
" x=\"year\",\n",
" hue=\"stream_order\",\n",
" multiple=\"stack\",\n",
" edgecolor=\".3\",\n",
" linewidth=.2,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "b5341f1b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"6349\n",
"6215\n"
]
}
],
"source": [
"# note that these numbers do not quite add up - \n",
"# this is because an observation can be used to cancel a given barrier,\n",
"# but it may not cancel another farther upstream (nested barriers on the same stream)\n",
"print(n_observations_used + n_observations_unused)\n",
"print(n_observations_upstream_barriers)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "a455c8c1",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>watershed_group_code</th>\n",
" <th>accessible_model10_km</th>\n",
" <th>accessible_model1_km</th>\n",
" <th>pct_diff</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>ADMS</td>\n",
" <td>565548.0</td>\n",
" <td>799352.0</td>\n",
" <td>41.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ALBN</td>\n",
" <td>1524337.0</td>\n",
" <td>1859270.0</td>\n",
" <td>22.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ATNA</td>\n",
" <td>995672.0</td>\n",
" <td>995836.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>BABL</td>\n",
" <td>3963903.0</td>\n",
" <td>4988102.0</td>\n",
" <td>25.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>BARR</td>\n",
" <td>675378.0</td>\n",
" <td>675378.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>131</th>\n",
" <td>UTRE</td>\n",
" <td>1477777.0</td>\n",
" <td>1477777.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>132</th>\n",
" <td>VICT</td>\n",
" <td>236899.0</td>\n",
" <td>240116.0</td>\n",
" <td>1.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>133</th>\n",
" <td>WILL</td>\n",
" <td>3537682.0</td>\n",
" <td>3537682.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>134</th>\n",
" <td>WORC</td>\n",
" <td>1361564.0</td>\n",
" <td>1418026.0</td>\n",
" <td>4.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>135</th>\n",
" <td>ZYMO</td>\n",
" <td>1242357.0</td>\n",
" <td>1271455.0</td>\n",
" <td>2.3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>136 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" watershed_group_code accessible_model10_km accessible_model1_km \\\n",
"0 ADMS 565548.0 799352.0 \n",
"1 ALBN 1524337.0 1859270.0 \n",
"2 ATNA 995672.0 995836.0 \n",
"3 BABL 3963903.0 4988102.0 \n",
"4 BARR 675378.0 675378.0 \n",
".. ... ... ... \n",
"131 UTRE 1477777.0 1477777.0 \n",
"132 VICT 236899.0 240116.0 \n",
"133 WILL 3537682.0 3537682.0 \n",
"134 WORC 1361564.0 1418026.0 \n",
"135 ZYMO 1242357.0 1271455.0 \n",
"\n",
" pct_diff \n",
"0 41.3 \n",
"1 22.0 \n",
"2 0.0 \n",
"3 25.8 \n",
"4 0.0 \n",
".. ... \n",
"131 0.0 \n",
"132 1.4 \n",
"133 0.0 \n",
"134 4.1 \n",
"135 2.3 \n",
"\n",
"[136 rows x 4 columns]"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# report on difference between using 1 or 10 upstream observations to cancel a barrier\n",
"df = pandas.read_sql(\"\"\"select watershed_group_code, accessible_model10_km, accessible_model1_km, round(((accessible_model1_km - accessible_model10_km) / accessible_model10_km * 100)::numeric, 1) as pct_diff from (select \n",
" watershed_group_code,\n",
" round(SUM(ST_Length(s.geom)) FILTER (WHERE s.model_access_ch_co_sk is not null)) as accessible_model10_km,\n",
" round(SUM(ST_Length(s.geom)) FILTER (WHERE s.model_access_ch_co_sk_b is not null)) as accessible_model1_km\n",
" from bcfishpass.streams s\n",
" group by watershed_group_code) as f\n",
" where accessible_model10_km is not null or accessible_model1_km is not null;\"\"\", conn)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "17ec07d4",
"metadata": {},
"outputs": [],
"source": [
"# write to csv\n",
"df.to_csv(\"/Users/snorris/Projects/repo/bcfishpass/reports/qa_salmon_observations/compare_model_scenarios.csv\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:bcfishpass] *",
"language": "python",
"name": "conda-env-bcfishpass-py"
},
"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.9.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment