{ "cells": [ { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.linalg import solve" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([100, 100, 100, 100, 100, 0])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Marine Food Web Model\n", "\n", "# Define the ecological efficiencies\n", "E = [0.92, 0.24, 0.20, 0.11, 0.13, 0.1]\n", "nodes = len(E) # number of nodes in the food web\n", "\n", "#Build the food-web model as a 6x6 matrix\n", "Diet = np.array(\n", " [[0,0,0,0,0,0],\n", " [0,0,0,0,0,0],\n", " [0,0,0,0,0,0],\n", " [0,0,0,0,0,0],\n", " [0,0,0,0,0,0],\n", " [0,0,0,0,0,0]])\n", "\n", "Diet[1,0] = 60\n", "Diet[2,0] = 40\n", "Diet[4,1] = 100\n", "Diet[3,2] = 100\n", "Diet[5,3] = 100\n", "Diet[5,4] = 100\n", "\n", "# columns should sum to 100 except the last one\n", "Diet.sum(axis=0)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Bottom-up Food-web model\n", "[[ 1.08695652 -0. -0. -0. -0. -0. ]\n", " [ -0.6 4.16666667 -0. -0. -0. -0. ]\n", " [ -0.4 -0. 5. -0. -0. -0. ]\n", " [ -0. -0. -1. 9.09090909 -0. -0. ]\n", " [ -0. -1. -0. -0. 7.69230769 -0. ]\n", " [ -0. -0. -0. -1. -1. 10. ]]\n" ] } ], "source": [ "# Build the food-web model\n", "print('Bottom-up Food-web model')\n", "M = -0.01*Diet\n", "\n", "for n in range(0,nodes): #update the diagonal\n", " M[n,n] += 1/E[n]\n", " \n", "print(M)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1160 0 0 0 0 0]\n" ] } ], "source": [ "# Define the vector of constants\n", "C = np.array([0,0,0,0,0,0])\n", "C[0]=1160 #initialize with primary productivity\n", "\n", "print(C)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Solve for the fluxes\n", "[ 1067.2 153.6768 85.376 9.39136 19.977984\n", " 2.9369344]\n" ] } ], "source": [ "print('Solve for the fluxes')\n", "\n", "#given the linear system x*C = M, solve for x\n", "F = solve(M, C)\n", "\n", "print(F)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAQTte6PpBnKsAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "objects = ('Phyto', 'Zoop', 'Benth', 'DemFish', 'PelFish', 'Pisc')\n", "y_pos = np.arange(nodes)\n", " \n", "plt.bar(y_pos, F, align='center', alpha=0.5)\n", "plt.xticks(y_pos, objects)\n", "plt.ylabel('Production')\n", "plt.xlabel('Trophic compartment')\n", "plt.title('Simple Food Web')\n", " \n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([100, 100, 100, 100, 100, 0, 0])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Food Web Model with Fishing\n", "\n", "# Define the ecological efficiencies\n", "E = [0.92, 0.24, 0.20, 0.11, 0.13, 0.1, 1.0]\n", "nodes = len(E) # number of nodes in the food web\n", "\n", "#Build the food-web model as a 6x6 matrix\n", "Diet = np.array(\n", " [[0,0,0,0,0,0,0],\n", " [0,0,0,0,0,0,0],\n", " [0,0,0,0,0,0,0],\n", " [0,0,0,0,0,0,0],\n", " [0,0,0,0,0,0,0],\n", " [0,0,0,0,0,0,0],\n", " [0,0,0,0,0,0,0]])\n", "\n", "Diet[1,0] = 60\n", "Diet[2,0] = 40\n", "Diet[4,1] = 100\n", "Diet[3,2] = 100\n", "Diet[5,3] = 50\n", "Diet[5,4] = 50\n", "Diet[6,3] = 50\n", "Diet[6,4] = 50\n", "\n", "# columns should sum to 100 except the last two\n", "Diet.sum(axis=0)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Bottom-up Food-web model\n", "[[ 1.08695652 -0. -0. -0. -0. -0.\n", " -0. ]\n", " [ -0.6 4.16666667 -0. -0. -0. -0.\n", " -0. ]\n", " [ -0.4 -0. 5. -0. -0. -0.\n", " -0. ]\n", " [ -0. -0. -1. 9.09090909 -0. -0.\n", " -0. ]\n", " [ -0. -1. -0. -0. 7.69230769 -0.\n", " -0. ]\n", " [ -0. -0. -0. -0.5 -0.5 10.\n", " -0. ]\n", " [ -0. -0. -0. -0.5 -0.5 -0.\n", " 1. ]]\n" ] } ], "source": [ "# Build the food-web model\n", "print('Bottom-up Food-web model')\n", "M_new = -0.01*Diet\n", "\n", "for n in range(0,nodes): #update the diagonal\n", " M_new[n,n] += 1/E[n]\n", " \n", "print(M_new)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1160 0 0 0 0 0 0]\n" ] } ], "source": [ "# Define the vector of constants\n", "C = np.array([0,0,0,0,0,0,0])\n", "C[0]=1160 #initialize with primary productivity\n", "\n", "print(C)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Solve for the fluxes\n", "[ 1067.2 153.6768 85.376 9.39136 19.977984\n", " 1.4684672 14.684672 ]\n" ] } ], "source": [ "print('Solve for the fluxes')\n", "#given the linear system x*C = M, solve for x\n", "F_new = solve(M_new, C)\n", "\n", "print(F_new)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1067.2, 153.67680000000001, 85.376000000000005, 9.3913600000000006, 19.977984000000003, 2.9369344000000002, 0]\n" ] }, { "data": { "image/png": "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\nDdx6660J67z++utMmzaN8847j7/85S8AXHDBBXTu3Jmbb76Z559/nmHDhiWcd+TIkaxatYq7776b\nI488stbH1zz11FO0bduWuXPn1hl3586dmTNnTtX7yspKbrvtNjZs2EDr1q1rnbe8vJzXXnut6jJh\nu3btuPTSS3n77bfZe++92bp1K1dffTUHH3wwzz77bFUH8/3224+zzjqLbt261RlfplCLk4iISAoV\nFhZyxhlncNddd1X1RYr31FNPYWaMGzeuWvnll1+Oc44nn3wyJbG0a9eOjRs31pk4mVlVK1bMkCFD\nqKysZMWKFXWuZ8yYMdX6Vg0ZMgTnHB999BEA//vf/1i7di0/+clPqt2VN2rUKNq3b1+fTWp0SpxE\nRERSbPz48WzdurXGvk4rVqygWbNm9O7du1p5ly5daNeuXaRkJYoLL7yQ73znOxx99NF069aNc845\np8YkKr7VJ5bQlJaW1rmeuuZdsWIFZkavXr2q1cvJyWHPPfeMtC2ZQomTiIhIihUWFnL66adz1113\n1drXKdXDFMTr3Lkzr776KrNnz+a4447jP//5D0cddRSjR4/erm5Nd+M55+pcz47Mm22UOImIiKRB\nrNXphhtu2G5ajx492LZtG++//3618s8//5yysjJ69OiRsjiaN2/OMcccw+23386HH37I+eefz7Rp\n06ouozWEHj164Jzjgw8+qFZeWVnJ8uXLGyyOVFDiJCIikgY9e/bk9NNP584779yu1enoo4/GOcek\nSZOqld98882YGcccc0xKYli3bt12Zfvuuy/gO3Q3lAEDBtCxY0fuvvvuagN0zpgxI9KlwEyiu+pE\nRERSINFlqauuuorp06fz7rvvss8++1SVx+4mu+uuuygtLWXYsGEsWrSIadOmccIJJ9R4R11d64t3\n7rnnsm7dOg477DD22GMPli9fzu23306/fv3o27dvnctK1aW2Fi1acO2113LJJZcwYsQITjnlFJYv\nX859991H7969037JMpWUOImISMYoL1+WtetOdPLv1asXZ5xxBlOnTt1u+r333kuvXr24//77+ec/\n/0lBQQFXXXUVV199ddLriy+P3d13xx13VI2IXlRUxDXXXFPvZdVUFnXen/3sZ4BvVfvFL37Bvvvu\ny+zZsxk7diz5+fkJl5GJrCl23EoVMzsQWLx48eJax8kQEZG6LVmyhP79+5PoO7WpPKtO6sc5R+fO\nnTnxxBO5884707ae2o698HSgv3NuSW3LUouTiIg0uoKCAubMeYSysrJGjaNdu3ZKmtKkvLycvLy8\namVTp05l3bp11R5UnOmUOImISEYoKChQ0tKEvfTSS4wbN46TTz6Zjh07snjxYv7617+y3377cdJJ\nJzV2eJEpcRIREZG023PPPenevTu33XYb69ato0OHDpx99tlcf/31NG+ePelI9kTaiJYtW0arVq3S\ntvyKigpyc3PTtvwYNUGLiEhj6dGjB//85z8bO4wdpsQpgosu+g25uelJnCort7J2wwd0LGhf48ir\nqdJ+1/bMmT1HyZOIiEiSlDhF0Lz5T2nd+v/SsuwNG15gq7uYnBE5tO5a+9Ond0T5mnJKnymtuh1V\nRERE6k+JUwS5uV3Jz++TlmWXl/sh73M75pJfkN5xLCqoSOvyRUREmjo9ckVEREQkIiVOIiIiIhEp\ncRIRERGJSImTiIiISERKnERERDLAnnvuyZgxYyLXPfbYY5Ne18aNGzn33HPZfffdadasGZdddhkr\nVqygWbNmTJs2rV7LihrL888/T7NmzXjhhReSDTsj6K46ERHJCCUlJVn5rLqHH36YU089lccee4zj\njjuu2rT999+fN954g3nz5jFs2LBq07p370737t1ZsGABAM2aNcPMqqYvXbqUhx56iNGjR9O9e/dq\n84brJeO6665j2rRpXH311fTs2ZO+ffsmvdz6zLOjcWcCJU4iItLoSkpKOPLYIyn9qrRR40hmoODB\ngwcDsGDBgmqJ04YNG3jrrbdo0aIFxcXF1RKnVatWsWrVKn784x9Xlb377rs0a/bNhaC3336b3/72\nt4wYMWK7xGlHzZs3j0MOOYTx48dXK9+8eTMtWrRI6bpihg0bxubNmxvkSRnppMRJREQaXVlZGaVf\nlZJ7eC55nfIaJYZkBwrefffdKSwsrGo5ilm4cCHOOU4++eTtpi1YsAAzY9CgQVVl8QmLcy5tLTSf\nf/453/3ud7crT3dSk+1JE2RIHyczG2Jms83sEzPbZmbbXSw1s9+Z2admtsnMnjaz3nHT88xsipmt\nMbMNZvaIme0WV6e9mT1gZuvNrNTM7jGzXdK9fSIiEk1epzzyC/Ib5bUjCdvgwYN55ZVXKC8vryor\nLi5mn3324aijjuKll16qVj9R4hTu4zR16lROOeUUAIYPH06zZs3IycnZrn9QcXExBx98MC1btqRX\nr15Mnz691jhj/YyWL1/OE088UbXclStXJuzjtHr1akaPHk23bt3Iz8+na9euHH/88axcuXK7ZdcV\nS6I+TsOHD2e//fZj6dKljBgxgl122YU99tiDm266abvlr1y5kmOPPZZdd92VLl26cNlll/Hvf/+7\nwftNZUTiBOwCvApcCLj4iWZ2BXARcB5wELARmGtm4dR1EnAMcCIwFOgKPBq3qAeBvsDIoO5Q4M5U\nboiIiOx8Bg8ezNatW1m0aFFVWXFxMQMHDuTQQw+lrKyMN998s2raiy++SJ8+fWjfvn1VWbh1aejQ\noVxyySUAjB8/nhkzZjB9+vSqvkgA77//PieffDLf//73ueWWW+jQoQOjR49m6dKlNca59957M2PG\nDDp27Ei/fv2qltu5c+eE9U844QRmzZrFOeecwx133MHYsWP56quvtkucosYS34JmZqxbt46jjjqK\nfv36ccstt9C3b1+uvPJK5s6dW1Vv06ZNjBgxgueee45LL72U8ePHs3DhQq644ooG7zeVEZfqnHNz\ngDkAlngPjAUmOOeeCOqcCawGjgceMrM2wBjgNOfc80Gd0cBSMzvIOfeymfUFjgD6O+deCepcDDxp\nZj93zpWkdytFRKSpGjx4MM45FixYwNChQ6msrGTRokWMHj2anj170qVLFxYsWMA+++zDV199xRtv\nvME555xT4/IKCwsZMmQIt912G4cffjhDhw7drs57773H/PnzGThwIAAnn3wy3bp147777uPGG29M\nuNzOnTszatQorrrqKr71rW8xatSoGmNYv349Cxcu5I9//COXXXZZVfkVV1yRklhiPvvsM6ZPn14V\ny5gxY+jRowf33nsvRxxxBAB/+ctfWL58ObNmzeIHP/gBAOeffz4HHHBArctOh0xpcaqRmRUCBcCz\nsTLn3JfAIuDQoGgAPgkM13kXWBmqcwhQGkuaAs/gW7gOTlf8IiLS9PXt25eOHTtW9WV69dVX2bRp\nU1UiMXDgQIqLiwHf2lRZWVnVqTxZe++9d9XyATp16sRee+3FRx99tEPLjWnZsiW5ubn85z//qfNu\nxx2JZdddd62WwLVo0YKDDjqo2rxz587lW9/6VlXSBL6/1E9+8pP6bFJKZHzihE+aHL6FKWx1MA2g\nC1ARJFQ11SkAPg9PdM5VAutCdURERJIycODAqr5MxcXF7LbbbhQWFlZNiyVOxcXFmNkOJ06J7rRr\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot the results side by side\n", " \n", "# data to plot\n", "n_groups = 7\n", "means_frank = []\n", "for f in F:\n", " means_frank.append(f)\n", "means_frank.append(0)\n", "print(means_frank)\n", "means_guido = F_new\n", " \n", "# create plot\n", "fig, ax = plt.subplots()\n", "index = np.arange(n_groups)\n", "bar_width = 0.35\n", "opacity = 0.8\n", " \n", "rects1 = plt.bar(index, means_frank, bar_width,\n", " alpha=opacity,\n", " color='b',\n", " label='No fishing')\n", " \n", "rects2 = plt.bar(index + bar_width, means_guido, bar_width,\n", " alpha=opacity,\n", " color='g',\n", " label='With fishing')\n", " \n", "objects = ('Phyto', 'Zoop', 'Benth', 'DemFish', 'PelFish', 'Pisc', 'Fishery')\n", "plt.xlabel('Trophic compartment')\n", "plt.ylabel('Production')\n", "plt.title('Food Web With and Without Fishing')\n", "plt.xticks(index + bar_width, objects)\n", "plt.legend()\n", " \n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }