{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# kneed -- knee detection in Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the purposes of the walkthrough, import `DataGenerator` to create simulated datasets. \n", "In practice, the `KneeLocator` class will be used to identify the knee point." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "from kneed.data_generator import DataGenerator\n", "from kneed.knee_locator import KneeLocator\n", "\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "np.random.seed(23) # only for the walkthrough" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "DG = DataGenerator()\n", "x,y = DG.noisy_gaussian(N=1000)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([24.14475503, 24.92443938, 24.93769683, 25.37559952, 25.45830214]),\n", " array([0. , 0.001, 0.002, 0.003, 0.004]))" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[:5],y[:5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The knee is located by passing `x` and `y` values to `knee_locator`. \n", "`S` is the sensitivity parameter \n", "`curve`='concave'" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "kneedle = KneeLocator(x, y, S=15.0, curve='concave', direction='increasing')" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAecAAAHVCAYAAADLvzPyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3Xd4VFXixvHvSQ8ECJBQE3oAqQKhCIqoqCArrIIKdlZFXXvH1VVXfwrrWlZdLOjaC4sdFYWVtYKF0EsooYeWkJAQID3n98dh3YiBDJDkzmTez/PkITNzCa9C5s299xRjrUVERET8R4jXAUREROTXVM4iIiJ+RuUsIiLiZ1TOIiIifkblLCIi4mdUziIiIn5G5SwiIuJnVM4iIiJ+RuUsIiLiZ8K8+oPj4uJsmzZtvPrjRUREatSCBQt2WWvjfTnWs3Ju06YNKSkpXv3xIiIiNcoYs8nXY3VZW0RExM+onEVERPyMyllERMTPqJxFRET8jMpZRETEz6icRURE/IzKWURExM+onEVERPyMyllERMTPqJxFRET8jMpZRETEz6icRURE/IzKWURExM+onEVERPyMyllERMTPqJxFRET8jMpZRETEz6icRURE/IzKWUREqtSQIUMYMmSI1zECmspZRETEz6icRURE/IzKWURExM+onEVERPyMyllERMTPqJxFRET8jMpZRETEz6icRURE/IzKWURExM+onEVERPyMyllERMTPqJxFRET8jMpZRETEz1RazsaYl40xGcaY5Yd43RhjnjbGpBljlhpjeld9TBERkeDhy5nzq8Cww7w+HEg68DEBeO7YY4mIiASvsMoOsNZ+a4xpc5hDRgGvW2st8KMxJtYY09xau72KMoqIiFQpay1lFkrLLGXWfZSWWcrKoPTA5xZLk3pRnuSrtJx90BLYUu5x+oHnVM4iIkGupLSMPQUl5OwvIie/mNz9xeTkF5FXUMK+wlLyi0spKS2jpMxSXFpGcWkZJaWW4lJLSVnZgecsJQd+LT5wbElpGUUHni8pc2X636It/6v7nN88X2Yrz94gOpwl959R/f+TKlAV5WwqeK7C/2xjzATcpW9atWpVBX+0iIjUFGstGXmFbMvJp6C4jIKSUgqLSyksKaOguNQ9V1xKZvsRFNZrQff7Z5FXWFLp1w0LMYSFGsJDQggPCyEsxBAeGkJ4qCEs9LePo8JDCIsM+9VzoQZCQgyhxhAaYn79uTGEGH71/P9ed78vxJR/3h0bGR5aA/9XD/H/pAq+RjqQWO5xArCtogOttVOBqQDJyck+/NwiIiI1La+gmDU797J2Zx5rdu5lU9Y+tubkszUnn7yCysuWxp2IztnA6FOPJ7ZOOLHR4cTWiaBBuc/rRYVRNyKMyLAQQkIqOscLblVRzjOA640x04D+QK7uN4uI+IeyMsuufYVsyylge04+23ILyNnvLiu7j2L2FpaQm19Mzv5isvcVkV9c+svvjw4PpU1cXRIa1qFf20a0i6tLYqM6RIeHEhkeSlR4CFHhoe4jLIToiFCGn3E6BssDI2/y8L88sFVazsaYd4AhQJwxJh24HwgHsNY+D8wEzgLSgP3A+OoKKyIiFcsvKmVd5l7SMvayNiOPtTv3kpa5l/TsfIpKy351rDEQExlG/ahw6kWFERMZRtP6UXRuVp+GdcJpHBNJUpMYOjatR0LD6CM+szUV39mUI+DLaO1xlbxugeuqLJGIiPjEWsuXqRn8a/5mvl2z65cSDg0xtGlch6QmMZx+XFNaxEYf+IiiRYNoYuuEY4wuJfuzqrisLSIi1aywpJQ1Ow6cFWfsZe3OvSzbmsPOPYU0qx/FxQNak9ymIUlNYmjduC4RYVoAMpCpnEVE/FBaxl6+TN1Jxp5CMvIK+HlDNhl5hQCEhxraxtWlb5tGnN6lKSO6NycsVGVcm6icRUT8yA/rsnjxu/X8Z1UGAHUjQomvF0mHJjHcNawzPRNjad24DuEq41pN5Swi4rHSMsvCzbt5N2UL01PSaVw3gpuHJnFh/1aerVAl3lI5i4h4ZHtuPn//91q+TN1J1r4iwkMNY/sm8sDIrkR5uACGeE/lLCLigdTtexj/ynxy84s5vUtTTu/SlJM7xVM/KtzraOIHVM4iIjXIWstXqzO48Z3FxESG8eF1A+ncrL7XscTPqJxFRKpRUUkZS9NzWLBpNws372bBphx27S2kc7N6vDK+L80bRHsdUfyQyllEpBqUlJbx3oJ0np6zlm25BQC0aVyHwUlx9GnTkHN7JRAdofvKUjGVs4jIMSouLWP1jjzSd7vNIbZk72fOqp1syc6nZ2Is9/6uC/3aNiIuJtLrqBIgVM4iIkfhx/VZzF6xk9Tte1i5fQ+5+cW/vBYdHkqvVrH8eUQXTu/SVEtlyhFTOYuIHIGf1mfxwrdukZCo8BA6NavP8G7NOKF9Y9rHx9AiNpqGWrtajpHKWUTEB+m79/PIzFRmLttBXEwk15zcnpuHJmk+slQLlbOISCV27S3k3GfnsaegmFuGdmTC4HYazCXVSuUsInIYj89ezUvfbaC0zDL9mhM4PjHW60gSBFTOIiKHMOnzVF74Zj2nd2nK7Wd0olOzel5HkiChchYRqcATs1fzwjfrGd07gcmju2sXKKlRKmcRkQOstaRs2s3fvljNzxuzOT85gUnn9iA0RCOvpWapnEVEgL2FJVz1Wgo/rM+iUd0I7h7emStObKtiFk+onEUk6OUXlfL81+v4YX0W9444jrH9WhETqbdH8Y7+9YlI0Fq9I4+JHyxl8ZYcrIWTkuK48qR2XscSUTmLSHDasGsf1729kJ17Crjh1CQ6N6vHKZ2aeB1LBFA5i0gQ+mL5Dm6bvhhjDFMv6cPADnFeRxL5FZ/mBhhjhhljVhtj0owxEyt4vbUxZo4xZqkx5mtjTELVRxUROXZrd+Zx878W0aFpPf5962AVs/ilSsvZGBMKTAGGA12AccaYLgcd9hjwurW2B/AgMKmqg4qIHKsvV+7kd898T3R4KM+M7UXzBtFeRxKpkC9nzv2ANGvtemttETANGHXQMV2AOQc+/6qC10VEPLOvsISnvlzLhDdSaBtXl1k3D6ZV4zpexxI5JF/KuSWwpdzj9APPlbcEGH3g83OAesaYxsceT0Tk2KzZmceY53/gyS/XMKxbM14Z35cm9aO8jiVyWL4MCKtoBr496PHtwD+MMZcD3wJbgZLffCFjJgATAFq1anVEQUVEjkReQTEvfbeB575ZR2RoCP+8LJnTjmvqdSwRn/hSzulAYrnHCcC28gdYa7cB5wIYY2KA0dba3IO/kLV2KjAVIDk5+eCCFxGpEtZaxr8yn5RNuzmjS1MeObc7cTGRXscS8Zkv5TwfSDLGtMWdEY8FLix/gDEmDsi21pYBdwMvV3VQERFfzUnNIGXTbh4a1ZVLTmjjdRyRI1bpPWdrbQlwPTALSAWmW2tXGGMeNMaMPHDYEGC1MWYN0BR4uJryiogcVn5RKXe8t4R2cXUZ20+3zyQw+bQIibV2JjDzoOfuK/f5e8B7VRtNROTIbM7az8MzV7J7fzFTLuytbR4lYGmFMBEJePlFpbzz82ae/Xod+wpLuPHUDgxopwkjErhUziIS0Oam7eLO95ayNSef4xNjeWhUN7onNPA6lsgxUTmLSMApK7N8szaTb1Zn8uq8jbSLr8u/Jgygv86WpZZQOYtIwPnb7NU89/U6AIZ0iue5i/oQHRHqcSqRqqNyFpGAsmJbLlO/Xc/Ini14+Jxu1IsK9zqSSJXTUEYRCRjfr93FhS/+RMM6ETw0SsUstZfOnEXE75WVWV76fj2Pz15Dq0Z1eHpcLxrUUTFL7aVyFhG/d+/Hy3n7p80MPa4pfx3dncZailNqOZWziPi1f36/gbd/2sz4QW2473ddMKaivXhEahfdcxYRv/XK3A08MjOVEzvEcdewzipmCRo6cxYRv2Ot5ecN2TwyM5WTkuJ4elwvosI1VUqCh8pZRPzK7BU7eOLfa1i1I4+4mAgeOac79TUqW4KMyllE/Mac1J1MeGMBbRrXYfK53RnWrRmxdSK8jiVS41TOIuIXysosd763lCb1IvnsxpOoG6m3JwleGhAmIn7h543ZZO0r4vYzO6mYJejpO0BEPGWt5bbpS/hw8Vaa1o/k1M5NvI4k4jmVs4h46rV5G/lg0VYuSE7kzmGdtMCICCpnEfHQ+wvSeeCTlZzcMZ4Hf9+VyDBNlxIB3XMWEY8UFJcy5as02sfX5fmL+6iYRcpROYuIJ95dkM76Xfu448zO2otZ5CAqZxHxxKdLttE2ri7DujXzOoqI31E5i0iN+3p1Bj9tyGZs30Svo4j4JZWziNSo3P3F3PX+Ujo2jeGygW28jiPil3wqZ2PMMGPMamNMmjFmYgWvtzLGfGWMWWSMWWqMOavqo4pIbTDp81R27S3i8fOO12YWIodQaTkbY0KBKcBwoAswzhjT5aDD7gWmW2t7AWOBZ6s6qIgEvp83ZDNt/hauPLEt3RMaeB1HxG/5cubcD0iz1q631hYB04BRBx1jgfoHPm8AbKu6iCJSG+zaW8jdHyylZWw0Nw1N8jqOiF/zZRGSlsCWco/Tgf4HHfMAMNsYcwNQFxha0RcyxkwAJgC0atXqSLOKSIDK3V/M6OfmsXNPAS9f3pc6EVr/SORwfDlzNhU8Zw96PA541VqbAJwFvGGM+c3XttZOtdYmW2uT4+PjjzytiASkz5ZtZ1PWfl6+rC8D28d5HUfE7/lSzulA+fkOCfz2svUVwHQAa+0PQBSg70ARYfnWXCZ9nkrHpjGc0L6x13FEAoIv5TwfSDLGtDXGROAGfM046JjNwGkAxpjjcOWcWZVBRSQw/eWTFdSJCOWV8f0wpqILcSJysErL2VpbAlwPzAJScaOyVxhjHjTGjDxw2G3AVcaYJcA7wOXW2oMvfYtIkNmSvZ/5G3dz6QltaBkb7XUckYDh06gMa+1MYOZBz91X7vOVwKCqjSYigSx3fzHXvrWAOhGhjOzZwus4IgFFK4SJSLV4eOZKVm3PY8qFvUlsVMfrOCIBReUsIlWutMzy2dLtjO6dwCmdm3gdRyTgqJxFpMqt3pHHvqJS+rdr5HUUkYCkchaRKvfavI2EhxoGddCMSpGjoXIWkSr12dLt/CtlC5cPbEPT+lFexxEJSCpnEakyc1J3MvGDpbSPr8sdZ3b2Oo5IwFI5i0iV2JK9nwlvLKB+VDj3n92ViDC9vYgcLa0+LyJV4sNFWykts0ybMEBTp0SOkX60FZFjtmJbLs9/s45TOsWrmEWqgMpZRI7Z5M9XUScijMmje3gdRaRWUDmLyDHJ3V/MzxuyGdmzhUZni1QRlbOIHLUZS7Yx5LGvKCot44yuTb2OI1JraECYiByVhZt3c/v0JRzXvB5vnNOdbi0beB1JpNZQOYvIUXnpu/XERIXxyvh+NKob4XUckVpFl7VF5IhZa1m4KYcTO8SpmEWqgcpZRI7Y7JU72bGngFM6x3sdRaRWUjmLyBEpKinj8dmraRdXl7N7tPA6jkitpHIWkSNy878WsWbnXm4+vSNhoXoLEakO+s4SEZ+lbt/DzGU7uO6U9ozsqbNmkeqichYRn01P2UJ4qOHKE9t5HUWkVlM5i4hPlm/N5Y0fNjGsW3MaaoS2SLVSOYtIpWav2MGY5+cRExXGQ6O6eh1HpNZTOYvIYeXmF/OXT1bSpnFdpl99ArF1dNYsUt18KmdjzDBjzGpjTJoxZmIFrz9pjFl84GONMSan6qOKSE1L3b6HIX/7im25+dx/dlc6Nq3ndSSRoFDp8p3GmFBgCnA6kA7MN8bMsNau/O8x1tpbyh1/A9CrGrKKSA0qKinjqtdTiAwL5ZPr+2vtbJEa5MuZcz8gzVq73lpbBEwDRh3m+HHAO1URTkS8UVpm+csnK0jfnc+k0drUQqSm+VLOLYEt5R6nH3juN4wxrYG2wH8O8foEY0yKMSYlMzPzSLOKSA157us03vppM1cPbseQjlqiU6Sm+VLOpoLn7CGOHQu8Z60trehFa+1Ua22ytTY5Pl7f8CL+aHtuPq/O20Sf1g2ZOLwzxlT0FiAi1cmXck4HEss9TgC2HeLYseiStkhAu/GdReQXlXDTaUkqZhGP+FLO84EkY0xbY0wEroBnHHyQMaYT0BD4oWojikhNmZe2i/kbd3PL6R0ZrMvZIp6ptJyttSXA9cAsIBWYbq1dYYx50Bgzstyh44Bp1tpDXfIWET835es0WsZGc/GA1l5HEQlqlU6lArDWzgRmHvTcfQc9fqDqYolITft+7S7mpmVx57BORIWHeh1HJKhphTARwVrLc9+k0aRepDa1EPEDKmcR4avVGcxNy+Lqk9sTEaa3BRGv6btQJMgVFJfywIyVtIuvyyW61yziF3y65ywitdefPlzG5uz9vHVlf501i/gJlbNIkLLWMvnzVXywcCvXnNyeQR3ivI4kIgfox2SRIDU9ZQsvfLue0b0TuHloktdxRKQcnTmLBKGMPQU8/Fkq/do24m9jehASopXARPyJzpxFgtBDn6VSVFrGI+d0VzGL+CGVs0iQWbApm5nLtjO2bys6NInxOo6IVEDlLBJEtuXkc82bC2neIIrrTungdRwROQTdcxYJEtty8nlgxgp27S3kwz8OIr5epNeRROQQVM4iQWDeul1c/sp8SsssVw9uz/GJsV5HEpHDUDmL1HKlZZYHZqygWf0o3r6qPwkN63gdSUQqoXvOIrXc89+sY83Ovdw8NEnFLBIgVM4itVhxaRnT5m+mX9tGnNOrpddxRMRHKmeRWuwf/0ljS3Y+E05qhzGazywSKFTOIrXUpqx9PPOftZzTqyVDuzT1Oo6IHAGVs0gt9enS7ZRZuOPMTl5HEZEjpHIWqYVKSsv4ePFWerWKpUVstNdxROQIqZxFaqEPFm5lzc69XNS/tddRROQoqJxFaqGZy7eT2Cia0b01QlskEKmcRWqZeWm7mJeWxZldmmmEtkiAUjmL1CKZeYVc+vLPxNYJZ2y/Vl7HEZGj5FM5G2OGGWNWG2PSjDETD3HM+caYlcaYFcaYt6s2poj44tV5Gygps7xxRX9tBykSwCpdW9sYEwpMAU4H0oH5xpgZ1tqV5Y5JAu4GBllrdxtjmlRXYBGp2IJN2Uz5ah2/69GcTs3qeR1HRI6BL2fO/YA0a+16a20RMA0YddAxVwFTrLW7Aay1GVUbU0QOp7TM8vScNOpEhDJ5dA+v44jIMfKlnFsCW8o9Tj/wXHkdgY7GmLnGmB+NMcMq+kLGmAnGmBRjTEpmZubRJRaR35j8eSrfrMnk7rOOIyZSm82JBDpfyrmi4Z72oMdhQBIwBBgHvGSM+c2GsdbaqdbaZGttcnx8/JFmFZEKvPPzZl78bgOXD2zDJQM0r1mkNvClnNOBxHKPE4BtFRzzsbW22Fq7AViNK2sRqUbz0nbx54+Wc3LHeO4dcZzXcUSkivhSzvOBJGNMW2NMBDAWmHHQMR8BpwAYY+Jwl7nXV2VQEfm17bn5XPvWQtrG1eWZC3sRFqqZkSK1RaXfzdbaEuB6YBaQCky31q4wxjxojBl54LBZQJYxZiXwFXCHtTarukKLCMxYvI3c/GKeu7gP9aPCvY4jIlXIp5Ej1tqZwMyDnruv3OcWuPXAh4jUgDmpGXRpXl/zmUVqIV0HEwlA36zJ5OeN2Qw9TksKiNRGKmeRAPT6vI00rhvBFSe18zqKiFQDlbNIgFmXuZev12Qyuk8CDaJ1r1mkNlI5iwSYyZ+vIjo8lAmDddYsUlupnEUCyI/rs/j3yp1cO6Q9cTGRXscRkWqichYJENZaJn2+ihYNorjixLZexxGRaqRyFgkQS9NzWbIlh2tP6UBUeKjXcUSkGqmcRQLEa/M2EhkWwqjjW3gdRUSqmcpZJAB8syaTDxZt5ZIBrbUamEgQUDmLBIB3U7YQFxPJncM6ex1FRGqAylnEzxWXlvHj+iwGdWhMRJi+ZUWCgb7TRfzc58t3sGtvESN76l6zSLBQOYv4uVnLdxAXE8kpnbSOtkiwUDmL+LGV2/Ywe+UORnRvRkiI8TqOiNQQlbOInyots9w6fTGxdSKYcHJ7r+OISA1SOYv4qc+WbWfVjjzuP7sLLWOjvY4jIjVI5Szipz5atJWWsdGc1a2511FEpIapnEX80IZd+/hmTSYjejTXvWaRIKRyFvFD93y4jPBQw/nJiV5HEREPqJxF/MzufUXMW5fFtSd3oEOTGK/jiIgHVM4ifmbFtj0A9Gnd0OMkIuIVlbOIHykrs3y0eCuhIYauLep7HUdEPKJyFvEjk79YxXsL0rnypLY0rBvhdRwR8YhP5WyMGWaMWW2MSTPGTKzg9cuNMZnGmMUHPq6s+qgitduSLTm8Om8j5/RqyUTtPiUS1MIqO8AYEwpMAU4H0oH5xpgZ1tqVBx36L2vt9dWQUaTW25qTz+Wv/EzT+pFMHN4ZYzR9SiSY+XLm3A9Is9aut9YWAdOAUdUbSyR45BeVcse7S9hXWMpr4/vRtH6U15FExGO+lHNLYEu5x+kHnjvYaGPMUmPMe8aYCidnGmMmGGNSjDEpmZmZRxFXpPa5/d0l/LA+i/vO7kK7eE2dEhHfyrmi62v2oMefAG2stT2AL4HXKvpC1tqp1tpka21yfHz8kSUVqYX2FZbw+fLtXDGoLRcPaO11HBHxE76UczpQ/kw4AdhW/gBrbZa1tvDAwxeBPlUTT6R2m78xmzILgzrEeR1FRPyIL+U8H0gyxrQ1xkQAY4EZ5Q8wxpRfmX8kkFp1EUVqr1fnbaRp/UgGtGvsdRQR8SOVjta21pYYY64HZgGhwMvW2hXGmAeBFGvtDOBGY8xIoATIBi6vxswitUJxaRk/rc/mgr6JREeEeh1HRPxIpeUMYK2dCcw86Ln7yn1+N3B31UYTqd2WpueSX1zKgHaNvI4iIn5GK4SJeMBay3NfpwHQr60uaYvIr6mcRTzw0eKtfJmawY2nJdFIy3SKyEFUziI1bEv2fibNXEWnpvW4ZWiS13FExA+pnEVq0N7CEm6bvoSC4lKeubCXlukUkQqpnEVq0LVvLmD+pmzu/V0XOjat53UcEfFTKmeRGrJo826+W7uLW4Z25PzkCle4FREBVM4iNcJay4OfrqRZ/SguPUHLdIrI4amcRWrAj+uzWbQ5h+tO7UBsHY3OFpHDUzmL1ICp364jLiaS8/okeB1FRAKAylmkmu0pKOb7tF2M7t2SqHAt0ykilVM5i1Szl77bQHGp5azuzSs/WEQElbNItZuTupP+bRvRMzHW6ygiEiBUziLVKGtvIanb92hLSBE5IipnkWo0Y8k2yiwM69bM6ygiEkBUziLVxFrLGz9uolerWI5rXt/rOCISQFTOItXkX/O3sD5zH+f21vQpETkyKmeRapCzv4gHPllBz8RYzunV0us4IhJgVM4i1WDWih0UFJfx0KiuxESGeR1HRAKMylmkGnyyZDutG9ehe8sGXkcRkQCkchapYhl5Bcxbt4uze7TQfs0iclRUziJV7Ok5awkxhnN6616ziBwdlbNIFbLWMnvFTs7s2oz28TFexxGRAKVyFqlCaRl7ycgr5KSkOK+jiEgA86mcjTHDjDGrjTFpxpiJhzlujDHGGmOSqy6iSGAoK7O8PHcjAIM6qJxF5OhVWs7GmFBgCjAc6AKMM8Z0qeC4esCNwE9VHVIkELz182be+Xkzo3snkNiojtdxRCSA+XLm3A9Is9aut9YWAdOAURUc9xDwKFBQhflEAsKanXk89MlKurWsz2Pn9fA6jogEOF/KuSWwpdzj9APP/cIY0wtItNZ+ergvZIyZYIxJMcakZGZmHnFYEX815as0IsNCeOnSvpo+JSLHzJdyruidxv7yojEhwJPAbZV9IWvtVGttsrU2OT4+3veUIn5syZYcPlu6ndF9EmjWIMrrOCJSC/hSzulAYrnHCcC2co/rAd2Ar40xG4EBwAwNCpNgsHtfEX98ayFN60dx89Akr+OISC3hSznPB5KMMW2NMRHAWGDGf1+01uZaa+OstW2stW2AH4GR1tqUakks4kce+mwlGXkFTLmoN7F1IryOIyK1RKXlbK0tAa4HZgGpwHRr7QpjzIPGmJHVHVDEX+UVFPPx4m1cPKA1xyfGeh1HRGoRn7bLsdbOBGYe9Nx9hzh2yLHHEvF/89ZlUVpmOb1LU6+jiEgtoxXCRI7Smz9uIi4mkuTWjbyOIiK1jMpZ5CjMWLKN79buYsLgtkSE6dtIRKqWdoEXOQLWWl6Zu5G/frGKPq0b8odBbb2OJCK1kMpZxEc7cgu48/2lfLsmk9M6N2Hy6B6EheqsWUSqnspZxEePz17NT+uzuOes47jixLaEhGglMBGpHvqxX8QHqdv38MGirYzr14qrBrdTMYtItVI5i1SiqKSMG99ZRIPocK0CJiI1Qpe1RSrx0eKtrM3Yyz8u7KVVwESkRujMWeQwSkrLmDQzlaQmMZzZtZnXcUQkSKicRQ7jx/XZ7N5fzK2ndyRcI7NFpIbo3UbkEHLzi7nno2XE1gnnlM5NvI4jIkFE95xFKpC+ez+Xvfwzm7P38/JlfYkKD/U6kogEEZ05i1TgzveWkpFXyEuXJuusWURqnMpZ5CAZeQX8sD6LPwxqy2nHaccpEal5KmeRg3yxfAfWwogezb2OIiJBSuUsUk5xaRnvpqST1CSGjk3reR1HRIKUylmknIc/S2XZ1lwuHdjG6ygiEsRUziIHLE3P4Y0fN3HJgNZcMqC113FEJIipnEUOeHrOWhrWCee2Mzp6HUVEgpzKWQSY9vNmvkzNYHSfBK2fLSKeUzlL0Pt+7S4mfrCM/m0bcevpOmsWEe+pnCXoPfdNGi0aRPHq+H5EhmklMBHxnspZgtqmrH3MTctibL9WREeomEXEP/hUzsaYYcaY1caYNGPMxApev8YYs8wYs9gY870xpkvVRxWpend/sIyIsBDG9EnwOoqIyC8qLWdjTCgwBRgOdAHGVVC+b1tru1trjwceBZ6o8qQiVWz51lzmrcvirmGdaREb7XUcEZFf+HLm3A9Is9aut9YWAdOAUeUPsNbuKfewLmCrLqJI9fgydScAo45st24DAAAgAElEQVRv4XESEZFf82XLyJbAlnKP04H+Bx9kjLkOuBWIAE6t6AsZYyYAEwBatWp1pFlFqszanXk8/806TkqKIy4m0us4IiK/4suZs6ngud+cGVtrp1hr2wN3AfdW9IWstVOttcnW2uT4+PgjSypShZ79eh1hISE8fn5Pr6OIiPyGL+WcDiSWe5wAbDvM8dOA3x9LKJHqtDlrPzOWbOO85ASa1IvyOo6IyG/4Us7zgSRjTFtjTAQwFphR/gBjTFK5hyOAtVUXUaRqzVy+ndIyy1UntfM6iohIhSq952ytLTHGXA/MAkKBl621K4wxDwIp1toZwPXGmKFAMbAbuKw6Q4scizmpO+naor5GaIuI3/JlQBjW2pnAzIOeu6/c5zdVcS6RapG6fQ8pm3Zz46lJlR8sIuIRrRAmQeX1HzYRHR7K5dqvWUT8mMpZgsa2nHxmLN7KKZ2b0LCudp4SEf+lcpag8fZPm8kvLuXOMzt5HUVE5LBUzhIUikvLeG9BOoM7xtO6cV2v44iIHJbKWWq9HbkFnPvsPHbsKeDSE1p7HUdEpFIqZ6n1nvnPWlbt2MN9v+vCKZ2aeB1HRKRSKmep1RZvyeGdnzdzQd9E/nBiW4ypaDVaERH/onKWWmtL9n6ue2shzepHcceZnb2OIyLiM5Wz1EppGXu56vUUcvYX8dzFfWgQHe51JBERn/m0QphIoCgpLeM/qzKY/MUqtucU8I8Le9EzMdbrWFLVVqyAmTPhoougRQX7cVsLU6bA8uVw4onQrBnExkKnTrBhA3zzDaxZA/n58NNPMH48XH89zJ4N7dpBly7/+1rZ2RAaClFRUFoKderU3H+nBC1j7W92f6wRycnJNiUlxZM/W2qnDbv2ce2bC1i1I4/4epE8OqaHBoAFosWLITERGjd2JbtrFzz2GGzZAg0bul+//NIVa1QU9OsHbdtC69YwZoz7fZMnwzPPHP7PCQlxXz8mBvLyIDwciovda+3awYABkJLiSjwyEoyBoiI47jg4+WT43e9gyBCI1hrtBxsyZAgAX3/9tac5/I0xZoG1NtmXY3XmLLVCaZnl2jcXsHOPO1se1rUZYaG6axNwhg+HL75wRTh4MOzZA4sWuddiY105xsTASSfBfffBpEmwcKEr9L174cEH//e1hg2DDz6A9eshPR0yM2HpUmja1JX5yJHuuLAwmDED7r3Xvfa737mz8s8+g7594dRT3Rnz9u3QoQOsXg0vvQTPPgvx8S7D+PGu7EWqiM6cpVZ49us0Hv1iNc+M68XZPSu4zCn+KTsb3n/fnemWlMDmza6Y77gD3noLMjLg/PPdpekrrnBnt4eydSt89JEr4exsd7YdUU3LtG7fDnPnwlNPwfffQ//+8MgjrshFZ86HcCRnzipnCXgzl23nj28tZEC7Rrx95QBCQjRdKiDk57sy+/FH97hhQ2jSBGbNcpeoi4uhsNCdKfsra+GNN9wPExkZcPHFrrAbNfI6madUzhU7knLWdRgJaPlFpTw+ezXt4+vy5hX9VcyB5IknXDFffTXs3+/OdletcsUM7izZn4sZ3Fn+pZfCpk1w//0wbRp07eouk4scA5WzBLSPF29lXeY+7hlxnO4xB5JZs+Cvf4Uzz4Tnnw/8QVVRUfDAAzB/vrtvPWoUjBjhLs3v2OF1OglAejeTgFVUUsYL366nc7N6GpUdKIqK4NZb3WCtqCiYOtXrRFXr+OPh55/dILGUFHeZu3lzGDTI3ZsW8ZHKWQJSYUkpd763hA279jFxeGcty+nv9u2Dm292l3yffNLNKV67Flq18jpZ1YuIgIkTYds2V9CTJsHGjW6E+ZgxsG6d1wklAGgqlQSkyZ+v4qPF27j19I4M0Vmzf0tLg8sug3nz3Nzh//s/uOACr1NVv9BQ6NPHfdxwAzz+uLuUP2MGXHONWxglL89N0xo/3s2fFjlA5SwBJ6+gmPcWpDPq+BbceFqS13HkcEpK4PTT3TzjCRPghRe8TuSNunXdvOwrr4Q//xn+8Q830jsszA0qe+wxOOcc+NOfXJlL0NNlbQk4U79dz97CEv4wqK3XUeRwPv4YEhLcJd3XXgveYi6vRQv45z/dXOy9e909+G3b4J57YM4cSE52hT18OLz6Kuze7XVi8YjKWQLKvsISps3fwpCO8Voz25+VlcFVV7lR2O+8A+PGeZ3IvzRu7M6mjYG4OHjoIbcAy9/+5tYLX7XKXepOTHSj2T1aj0K841M5G2OGGWNWG2PSjDETK3j9VmPMSmPMUmPMHGNM66qPKgKPzExl195Crj+1g9dR5HDmzXNnhw88AGPHuhKSw6tfH26/3V1lWL/ebchxwglw7bVuWtb27V4nlBpUaTkbY0KBKcBwoAswzhjT5aDDFgHJ1toewHvAo1UdVATgh3VZnNa5CX1aB/cKTH7JWnfpesgQtzFE8+Zw9tlepwpMxrgNPWbNcht4fP21Ww/80kvdZXCp9Xw5c+4HpFlr11tri4BpwKjyB1hrv7LW7j/w8EcgoWpjisDufUVsyNpHt5YNvI4iFZk+3Y1C/uYbt0HE3LlBv4zlMQsJcdPOFi1yA8amT4fOnd0SoSUlXqeTauRLObcEtpR7nH7guUO5Avj8WEKJHMxay+WvzifUGE7r3NTrOHKwSZPc5evjjnOXtL//3p3pSdXo1Mndu1++HAYOdHPG+/b937rkUuv4Us4V3SyqcHSCMeZiIBn42yFen2CMSTHGpGRmZvqeUoLeK3M3smRLDn866zi6J+jM2S9kZ8ONN8Lo0fDoo27nqK+/dvdJ4+O9Tlc7degAn38O777r7ukPHOjuR7//vs6kaxlfyjkdSCz3OAH4zU0PY8xQ4B5gpLW2sKIvZK2daq1NttYmx+ubV3y0ekceD89M5YR2jbmwfy1cUSpQ3XSTux/6/feQk+NWxWqiBWGqnTFupbHUVLj7bli2zD1u3x5ef10ju2sJX8p5PpBkjGlrjIkAxgK/2nLFGNMLeAFXzBlVH1OC1eItOfx+ylzqhIcy5aLeRIWHeh1JAHJz4Ysv3EpfO3e67R9HjPA6VXCpVw8efhg2bIAPPnArjl12GZx2GqxZ43U6OUaVlrO1tgS4HpgFpALTrbUrjDEPGmNGHjjsb0AM8K4xZrExRvulyTErKC7l6TlrCQs1fHT9IBrVjfA6koAb8NW7tztbvuEG91xUlLeZglloqBss9sMP8NxzsHAhdO8ODz7o9sOWgOTT8p3W2pnAzIOeu6/c50OrOJcEuS3Z+7nhnUUs3pLDjad2oH28n+/rGyxWr3ZnZqWl8PLLbrcl8Q8hIW60/KhRcMstbn/pt99209tOPtnrdHKEtEKY+J0Xv13PkMe+ZvnWXJ4e14tbz+jkdSRZu9aNEB4yxK36tXmzW8FK/E/z5jBtmhs4VlTk/s6uuQb27PE6mRwBlbP4le/WZjLp81RO6dSEr24fwsieLbyOFLyKi90gr3btoGNHN7c2K8udiSUmVv77xVvDhrmpV7fdBi++6Lbr/OILr1OJj1TO4jlrLV+tzuCxWau54rUUkprU4+9jjyexUR2vowWvZ55xZ8h//asr4lNOcWdiqalw4YVepxNf1anjdryaO9cNIBs+3J1F799f+e8VT2nLSPHc58t38Me3FmIMDGzfmCkX9iYmUv80PWGtK99p09xAo/fec4ONQvRzfEAbMMCtMnbvva6sv/vO/R137+51MjkEfceJpzL2FPC3WatpGRvNyr8M460rBxBbR6OyPXPvve5N++yz3Zv56NEq5toiMtLtejVrlrs90bcvPPus5kX7KX3XiWd27yviTx8uY3tuPk+NPZ7oCM1h9tT06fDII27u8scf66yqtjrjDFi61N2quO46d2UkK8vrVHIQlbPUuLIyyytzN3DC5Dl8mZrBtSd3ILmNNkjw1IwZbv/lvn3hn//UFo+1XZMm8Nln8MQTMHMm9Ozpll4Vv6FylhpVVma5b8Zy/vLJSk5o15gvbj6Jm4YmeR0rOBUWwpQpbt7yqFFuVPb770Pdul4nk5oQEuLmQ//4oxs4duqpcM89bpS+eE6jbqTGLEvP5dFZq/hu7S4uH9iG+8/ugtEZmjfWrYNLLnGrSgFcfrm7/xgd7Wks8UDv3m5VsRtvdLc1Zs+GN990O2GJZ3TmLDViXeZeznthHsu25nLjqR1UzF4oLnaDf959F/r3h8WL3X3mPXvglVdUzMEsJsat+Pb++7B+PfTq5abR6SzaMypnqRGPz15NqDHMvnkwt57RScVck0pL3e5FUVHuUub557t5rh98AOed5+a/igCce67b5WrYMLcATe/e/7u6IjVK5SzVbll6LjOX7eDKk9rRpL42SKhxf/oTTJ7s1sFOTnZnRdu2uTdgkYO1aOF+cPv4Y7f72MCBbuGS3FyvkwUVlbNUu2nzNxMZFsKVJ7X1OkpwKStz9xAffxwGD4Yvv4T58939xdhYr9OJvxs5ElauhFtvdct/duvmVomTGqFylmpTXFrGpS//zFs/beb0Lk2pFxXudaTgMmOGG307bBh8+ilEaHEXOUIxMe6Hux9+gPr14ayz3EDCHTu8TlbrqZylWlhreeY/aXy7JpPbz+jIY+f19DpScMnJgTvvhNat4aOPdF9Zjk2/fu6Ky733wr/+5c6iZ86s/PfJUVM5S7WYsWQbT89Zy6jjW3DdKR2ICtfqXzXq4YfdNo+TJkGYZkxKFYiMhIcecquLJSTAiBFu0JhGdFcLfddKlcrIK+DxWWt4b2E6PRMa8Ph5PTUyuyYVFMBJJ0FKCowZA+PGeZ1IapvOnd1l7ltucdOtvv/erceekOB1slpFZ85SpW5/dykfLtrKZSe04fUr+hMWqn9iNWbXLhgyxBUzwF13eRpHarHoaHj+eXj7bViyBI4/XoPFqpjeOaXKpO/ez/drM5kwuB33nd2FBtEaAFYjCgvdoJ0+feCnn1wpl5W5aVMi1WncOFiwwJ01n3WWLnNXIV3WlmNmreWTpdt58dv1hIYYxvVv5XWk4FBUBA8+6NbHzslxb5BPPeWWYRSpKR07/uYyd3xpKZmRkV4nC2gqZzlmny3bzo3vLCIuJoKHRnWjZayWgawRL73kBn717++mTJ19tteJJFj99zL3ySfDhAm8vn8/nzZv7laiq1PH63QByViPNtpOTk62Kf+9NyYBa8GmbK56fQHNG0Tx8XWDdI+5pmzZAq1audW+Fi70Oo3I/6xZw08DBtB/927o0uV/U68EY8wCa61P95v0TipHbVl6LuNe/In6UWE8M66XirmmWAs33eQ+/++vIv6iY0fu6tGD27p3h6wst0f41Knu3634zKd3U2PMMGPMamNMmjFmYgWvDzbGLDTGlBhjxlR9TPE3BcWljH91Pg2iw3nv2oG0i4/xOlJwsBbuuw8+/NAV82WXeZ1IpEILGjVyI7kHD4arr4YLLnBjI8QnlZazMSYUmAIMB7oA44wxXQ46bDNwOfB2VQcU/5O9r4j7P17Brr2FPDqmB3ExGvhRY154Af7v/+Dii+GJJ7xOI3J4TZu6KVaTJ7vNNHr1cjMKpFK+nDn3A9KsteuttUXANGBU+QOstRuttUuBsmrIKH5ka04+5z0/j3cXbOGSAa05OSne60jBY8kSNxL7zDPhtdfc9o8i/i4kxE3v++47d+XnxBPh0UfddD85JF++u1sCW8o9Tj/w3BEzxkwwxqQYY1IyMzOP5kuIh5am53DRiz+yc08hb105gId+342QEK3+VSPS0mD4cKhb1y38oGKWQHPCCbB4MYwa5cr6rLMgI8PrVH7Ll+/wit59j+rOvrV2qrU22VqbHB+vM65AkpFXwLVvLqSguIypl/bhhPaNvY4UXB54wO2n+9Zb0KiR12lEjk5sLLz7rpt29c030LOn28pUfsOXck4HEss9TgC2VU8c8VePzVrNzj0FPHdxbwa2j/M6TnDZtMntLHX++e5sQySQGeMGiP38MzRsCGec4ebpl5R4ncyv+FLO84EkY0xbY0wEMBaYUb2xxJ+88eMmpqekc37fRHq1auh1nODz+ONuScR77/U6iUjV6d4d5s+HP/wBHnnELWCyebPXqfxGpeVsrS0BrgdmAanAdGvtCmPMg8aYkQDGmL7GmHTgPOAFY8yK6gwt1S9rbyGvzdvIWU99x58/Ws7A9o35y8iuXscKLtbCrbfCM8/A2LHQvr3XiUSqVt26bqW7t9+GZcvcZe4PP/Q6lV/waflOa+1MYOZBz91X7vP5uMvdEuBy9hdxwzuL+G7tLgB6JjTgoVFdGdevlRYZqWkvvABPPumK+e9/9zqNSPUZNw769XP/1s89F/74R3fFKCrK62Se0dra8ouc/UVc9NJPrM3Yyy1DO3JK53h6JMR6HSs4rVoF114LAwa4swrtiS21Xfv2MHcu3H23m8P//fcwfTp06uR1Mk/oVEgAyMwr5MIXXTFPvaQPNw1NUjF7pazMTTcBN1BGxSzBIiLCnTF/+ils3eqW/nzvPa9TeULlHOR25Bbw0KcrGfzoV6RlumIe0qmJ17GCW2oqrFkDkybB737ndRqRmjdiBCxaBF27wnnnue0og2yfaF3WDkIFxaV8vHgrny/fwdy0XZRZGNWzBX88pT0dmtTzOl5wmzMHrr/efX7uud5mEfFSYqKbC33HHW7Mxc8/ux2uEoJjeJPKOYgs35rLAzNWsHhLDiVlltaN63DZCW24bGAbEhtpz1XPWOvehO67zy1xGB0Nt90GSUleJxPxVkQEPPUUDBwIV14JvXu7MRhDh3qdrNqpnIPE92t3ceO0RRjgqsHtGNCuMYOT4jC6n+m9YcNg9mw3reSuu+Dmm6FZM69TifiPCy5w06xGj3aLljz4IPzpT7V6GVuVcxCY8lUaj89eTYcmMTx/cR9t7+hPNmxwxfz738Njj2kus8ihdO7sdrS6+mr485/hhx/gjTdq7XK2KudaaGl6Dt+t3UVaxl6Wbc0lLWMvI7o359ExPagbqb9yv3Lvve6n/8mTVcwilYmJgTffhEGD3BWm3r3daO7kZK+TVTm9U9cim7P2M2PJVp78ci2lZZbmDaJIalqPS09ozYVaRMT/7N/vVkO66qqgncspcsSMcYuUJCe7kdyDBrn70ldfXaumHaqca4GtOfncMm0xP2/MBqB/20Y8ccHxtIyN9jiZHFJpKVxzDeTnw5gxXqcRCTz9+sHChXDxxW7Bnrlz3W5Xdet6naxKqJwD1N7CEp79Ko0vU3eyPnMfUeGh3HPWcZzRtSmtG9eOf5y1UlERrFjhFvp/7z1o2dIt+C8iR65xY/jsM3j4Ybj/fjc3+v33a8WVKJVzgCkrs7z+w0Ze+2ETG7P2cVJSPEOPa8r5yYm0iVMp+7WiIjjxRLcTD8Dtt7uFRsL0bShy1EJC3ACxAQPgwgvdqmKvvOJGdgcwvSsEkIy8Aq57ayHzN+6me8sG/POyZE7t3NTrWOKLsjJ3f2z+fBg50m1o0a6d16lEao/TT3eXuceMcR+33eZ++A0P9zrZUVE5B4CyMsvcdbt45j9pLEnP5ZFzujOuX6LmKAeSJ5+EGTPgr3+FO+/0Oo1I7ZSYCN9+64r58cf/t6pY8+ZeJztiKmc/tTlrP9+lZbJg025+Wp/N1px8wkMND4zsyoX9W3kdT45EdrZbNOGss9xShCJSfSIj4R//gBNOgAkT3HSrf/0LBg/2OtkRUTn7GWstz32zjidmr6GkzBIXE0GvVg2ZOLwzQ49rSnREqNcR5UjdeSfs2eNWNNLVDpGacdFF/1tV7NRT3VWrW28NmO9BlbOfyM0vZuOufXy8eBsvz93AiB7Nuf2MTrRpXEeXrwNZcTF89JHbTH7QIK/TiASXbt3cOI/x490AzHnz3GCx+vW9TlYplbMHCktK2Zy1n7SMvaRs2s0P67JYuX3PL6+f1yeBR8f0UCnXBlOnQlYWXHKJ10lEglP9+m7a4hNPuLXrk5Phgw9ccfsxlXMNKS4t4/mv1/H+wnQ2Z++nzLrnI8JCSG7dkNtO70inZvVo1bgOnZrWUzHXBp984rZ/PPVUt7mFiHjDGDdIrG9ft4lG//7uB+eLLvI62SGpnKuJtZZ1mftYvjWXFdtymblsB1tz8hncMZ6RPVvQLj6GdvF16di0HlHhuo9c66SlwahR7vOHHgqY+1witdrgwW661QUXuJXFfvjBjeqOjPQ62W+onKvIluz9LNi0m9U781i9I49V2/ewLbcAgPBQwwnt4/i/33fjlM5NPE4qNeLpp93iIuvWuekdIuIfmjeHOXPcAM3HHoOUFHj3Xb/7PlU5H4Gc/UUs25pLZl4h2fuK2L2/iOx9xWzO3se8dVlY64q4fXwMfds2IrlNI/q3bUTbuLqEa9OJ4LFoEbz4olutyM++4UUEtzDJ3/7mVhUbP95Nt3rnHRg61Otkv1A5l7O3sIQt2fvZnL2fnXsKyMwrJGNPIZl7C8nIK2DNzr0UlZT9cnxoiKFhnQjiYiK44dQkRnRvTrt4FXHQu/ZaiI6Gv/zF6yQicjijR7uBYaNHwxlnuFtQd9/tlgT1mE/lbIwZBjwFhAIvWWsnH/R6JPA60AfIAi6w1m6s2qhVy1pLzv5itubks2DTbj5Zso2UTbt/dUyIgbiYSOLrRRIXE8lF/Rsx9LimtIyNpmHdCOpHhWnglvzahg1uQ/jJk6F1a6/TiEhlOnVy37MTJrj91X/4Ad54Axo29DRWpeVsjAkFpgCnA+nAfGPMDGvtynKHXQHsttZ2MMaMBf4KXFAdgY9EaZll6+58duwpYFtOPnNWZbApax+ZeYXs2ltIcan95diWsdHccGoHOjerT2KjaFrERtOwTgShISpf8UFJiVts5Mkn3ePzzvM2j4j4rm5dePNNGDgQbrkF+vRx06969/Yski9nzv2ANGvtegBjzDRgFFC+nEcBDxz4/D3gH8YYY6211IC0lRvZ/dQUvj9nPHuKLXkFJeQVFLNi2x7Sd+f/clzjuhF0T2hAp6b1iKsXSXxMJE3qR9IzIZbERnVqIqrUVhMn/q+Y335bm1qIBBpj4LrrXDGfd54r6ilT4IorPInjSzm3BLaUe5wO9D/UMdbaEmNMLtAY2FX+IGPMBGACQKtWVbc+9J5X36Tv1McI+fRT7h4zkbxmCdSLCqNFbDTjB7UlqUkMTetH0TauLhFh3t9LkFpk1Sq3l+ybb7oBYC+/7JfTMkTERwMGuOlWF17otqIcMwYaNKjxGL6Uc0XXdQ8+I/blGKy1U4GpAMnJyVV2Vt3l4bvZ37U1vW+4jtmv3eRGyuqyolS3khK3TV12Ntx8s1u7NyLC61Qicqzi4+GLL2DTJk+KGcCX08h0oPx8kARg26GOMcaEAQ2A7KoI6Iuo8FDqXHYJZvFi6NwZzj8frroK9u2rqQgSjP79b0hPh9dec5e0VcwitUdoqKe3p3wp5/lAkjGmrTEmAhgLzDjomBnAZQc+HwP8p6buN/9Ku3bw3XduKPw//wk9esBTT7nNB0SO1cqV8Mc/uu3opkxxoztbt4YRI7xOJiK1TKWXtQ/cQ74emIWbSvWytXaFMeZBIMVaOwP4J/CGMSYNd8Y8tjpDH1Z4ODzyCJx2mptvevPN8Oqr8NJL7ka/yNFITYVzzoE1a/73XIcObkRndLR3uUSkVvJpnrO1diYw86Dn7iv3eQHgXzd5TzvNvZF++KEbgdevH9xwA9xzj7ufIOKrDz+Ec891957mzIEuXdwtk8REXcoWkWpR+4cun3OOuxx5xRVuveNu3WDGwVflRQ5h7164/HL3+dy5boepZs2gfXsVs4hUm9pfzgCxsW57sKVL3aLno0bBlVdCXp7XycRfLVrkrrQkJMCePTBrFnTt6nUqEQkSwVHO/9Wtm1umbeJEeOUV6NkTvv/e61Tib4qL3Q9w//iHu3z9pz+5dXdFRGpIcJUzuAUiJk2Cb791K8IMHgyXXea29hMBN8hryxZ3+yM/3y0yIiJSg4KvnP9r0CBYvBhuuw2mT3fzo6+6CjZv9jqZeOm559zKQJ06uSlSYdq4TURqXvCWM0C9em5Pz/Xr3bSr1193b8pPPw1lZZX/fqk9rHXz4//4R+jVC555xi+2jROR4KR3H3CDxJ5+GtaudaNxb7rJbbqts+jg8O23bgT25Mnu7/2nn9yynCIiHlE5l9eqFXz6qVube/586N7dLc3owWJnUkPy82H8eCgshMcfd3Oaw8O9TiUiQU7lfDBj3DSrpUvdaO7LL3cLUGRkeJ1MqlphoRt7sH49vPMO3HorxMR4nUpEROV8SG3bwldfwWOPwcyZbhrWO++4nYikdvjgAzef+cknYfhwr9OIiPxC5Xw4oaFuNPfChe6S94UXuqUbNTc68H3wAVx6qfsh7IYbvE4jIvIrKmdfdO0KP/4Ib7/tzpxPPhnuvVe7XQWqzZvdcq49ergftEJDvU4kIvIrKmdfhYXBuHGwZIlbtOThh939yvK7FElgeO45tyTntGnQooXXaUREfkPlfKTq1YOXX3arSKWluTmxU6dqRHegSE93f18jRkBSktdpREQqpHI+WqNHw7JlcMIJcPXV0KaNW9CkqMjrZHIo1sL117udpv78Z6/TiIgcksr5WLRsCbNnw1tvubOwO+90c6O/+MLrZFKRF1+Ejz+GG2+Evn29TiMickgq52MVEuJGcX/5pZtyZa2blvP737v5s+K9hQtdGV99NQwcCI8+6nUiEZHDUjlXpeHD3aXuyZNdWXfpAvff77YdlOq3YAH85S9umlRenvu7mDrV/b2kpECTJvDss26hGRERP6Ytd6paZCTcdRdcfDHccQc8+CC89BI88IBbrzkxUVN3qlpmJtxzj7tsXZFOneCbb9yvKmYRCQA6c64uLVu6edHffQcJCTBhglvwols3d59aqkZWltus4sUXoUMHN4f5iy/cD0dXXAH//jcsX+62BFUxi2QGdBQAAAq2SURBVEiA0JlzdTvxRLeAyXffucusf/87nHkmjB0LTzzhdsSSI2ctbNgAEye6/6/vvuvWQA8JcVcnzjzT64QiIkdNZ841wRgYPBiuu84VyQMPuN2POnd2Zb13r9cJA88110D79q6UJ02CMWO0/7KI1Bp6N6tpUVFukNiyZdC/P9xyiyuZN9/UQia+eustN9Dr3HPdFYm7/r+9+42RqjrjOP59FEE07kLEJlKtKw1QkaDIVnxhFGxTiESpQBogGlfRBNFqgjXW6AujMa1/UlLtxj8QVEiKoLxAaimJlo1WikYF0cVokbIW0YLU2oSCBT198dyVYVngruzc++zw+yST3Nm5ML89OzPPnHPPPff2shOJiHQrFeeyDB4MK1d6cWlogKuugksu8eVAt26FtrayE8a0dCnMmgXnn+9faC68sOxEIiLdTsW5TGZeXFavhsce88sXDh3qk8kaGvyc3FWryk4Zy333+XWYFy2Cvn3LTiMiUhUqzhEce6wvkLFhgx9LffBBv23Z4r3p8eOhpcWHvY/moe9HH/UvMLfeCoMGlZ1GRKRqNFs7koEDvQC1u+kmaG723uLYsT4Uvm0b9O/vE8xGjfIFNnr6BRxS8mPww4cfOKlr506/0MiCBb6QCPiKbCIiNUw958iOP957iW1tXqS/+spneJ91ls9SvuUW377tNl9kY/v2shMf3Ndfw+LFfnvrLViyxIfsd+zwBUTOOQcuuMCL8JQp/ntOn+5fPG6+2Vf/mj7dL/V49tll/zYiIlVlqaRh0sbGxvRGe09Ium7nTvjkE7j/fl+BDPwY7MyZfvGNsWP9uHUEKfmXjDlzDr3fgAHw2WdwwgleqNtfH6NHw0MPwYgR1c8qIkdszJgxALS0tJSaIxozezOl1JhnXw1r91QnnugrYs2d6z3ntjZYuBAefth72H36wF13+WN9+pSXc8UKP048Z47Psr7sMr8O9qhR3mteutSH6JuafD3sjz7yU8s02UtEjmLqOdeajz/25StfeMEXOhkyxJexrKuD3bvh88/h6qurN6Fq3jx/7nPP9WVKV6/2nw8ZAu+9p4VCRI4C6jl3ris9ZxXnWrZypU8q27hx/58fd5wX7Ouu8x7skdi924efH3jAe7yPPw67dvlj9fVw7bX+HMOH+3FlEal5Ks6d07C2uHHjoLXVi3N9vfda9+71FcrmzvVzq8eNg2nTYMIEP+a7a5cX20GD/HzrjlLyY91ffgn33usLgezZs+/xujofxq6vh379fFKbiIh0iYpzrevd268rXWn+fF/Tu7nZb01NXrj79t137enevf3c62uugZEjYdMmuP56n2FdOdoyerRfAWrSJPj0UzjlFL/whIiIfGsqzkerujq44w6/qtObb8KyZV5czzzTz7d+5RU/5/qRR/zUpdZW/3eTJ/us6b59vVc8a9a+61MPHFje7yMiUkNUnI92ZtDY6LdKTU1++tKTT8Ly5TBxIsye7TOrRUSkqlSc5eD69/eCPHt22UlERI4qOq9FREQkGBVnERGRYFScRUREglFxFhERCUbFWUREJBgVZxERkWBUnEVERIJRcRYREQlGxVlERCQYFWcREZFgVJxFRESCUXEWEREJRsVZREQkGBVnERGRYFScRUREglFxFhERCaZX2QFERKS2tLS0lB2hx1PPWUREJBgVZxERkWBUnEVERIJRcRYREQlGxVlERCQYFWcREZFgVJxFRESCUXEWEREJRsVZREQkGBVnERGRYFScRUREglFxFhERCUbFWUREJBgVZxERkWBUnEVERIJRcRYREQlGxVlERCQYFWcREZFgVJxFRESCsZRSOU9sth1o68b/cgDwWTf+f9WgjEcuej6InzF6PoifMXo+UMbu0N35zkgpnZJnx9KKc3czszdSSo1l5zgUZTxy0fNB/IzR80H8jNHzgTJ2hzLzaVhbREQkGBVnERGRYGqpOD9RdoAclPHIRc8H8TNGzwfxM0bPB8rYHUrLVzPHnEVERGpFLfWcRUREaoKKs4iISDA9rjib2Xgze9/MNprZLzt5vI+ZLc4ef83MGgJmvMjM3jKzvWY2JWC+2Wa2wczWm9lLZnZGwIwzzewdM1tnZn8xs2GR8lXsN8XMkpkVfjpGjjZsMrPtWRuuM7PromXM9vlZ9npsNbPfR8pnZnMq2u8DM/t3kflyZvyema0ys7XZe/rSYPnOyD5n1ptZi5mdVnC++Wa2zczePcjjZmYPZ/nXm9l5hQRLKfWYG3As8CEwCOgNvA0M67DPLOCxbHsqsDhgxgZgBLAAmBIw31jghGz7hqBtWFexfTnwp0j5sv1OAl4G1gCNAduwCfhdkbm+RcbBwFqgf3b/O5Hyddj/58D8gG34BHBDtj0M2Bws37PA1dn2JcDCgtvwIuA84N2DPH4psAIw4ALgtSJy9bSe8/nAxpTSppTS/4BngIkd9pkIPJ1tPwf8yMwsUsaU0uaU0nrg6wJzdSXfqpTSf7O7a4BCv8nmzPifirsnAkXObMzzOgS4F3gA2F1gtnZ5M5YpT8brgeaU0ucAKaVtwfJVmgYsKiTZPnkyJqAu264HtgbLNwx4Kdte1cnjVZVSehn41yF2mQgsSG4N0M/MTq12rp5WnL8L/KPi/pbsZ53uk1LaC3wBnFxIug7Pn+ksY5m6mm8G/q2xSLkymtmNZvYhXgBvLigb5MhnZiOB01NKfygwV6W8f+fJ2VDdc2Z2ejHRvpEn4xBgiJm9amZrzGx8Yem68F7JDv2cCfy5gFyV8mS8G7jSzLYAf8R7+EXJk+9tYHK2fQVwkpkV+Zl9OKV8pve04txZD7hjjynPPtVU9vMfTu58ZnYl0Ag8WNVEnTx1Jz87IGNKqTml9H3gduCuqqfa55D5zOwYYA5wa2GJDpSnDZcDDSmlEcCL7BtxKkqejL3woe0xeM90npn1q3Kudl15L08FnkspfVXFPJ3Jk3Ea8FRK6TR8iHZh9hotQp58vwAuNrO1wMXAx8DeagfrglI+03tacd4CVH67P40Dh2i+2cfMeuHDOIcasuhueTKWKVc+M/sxcCdweUrpy4KytetqGz4D/LSqifZ3uHwnAcOBFjPbjB+ner7gSWGHbcOU0o6Kv+1cYFRB2drlfT8vSyntSSn9HXgfL9ZR8rWbSvFD2pAv4wxgCUBK6a/A8fgFHYqQ53W4NaU0KaU0Ev/MIaX0RUH58ijnM73IA+/dcOC+F7AJHz5qn1xwdod9bmT/CWFLomWs2Pcpip8QlqcNR+KTOAYH/jsPrti+DHgjUr4O+7dQ/ISwPG14asX2FcCagBnHA09n2wPw4cWTo+TL9hsKbCZb1ClgG64AmrLts/DCUkjWnPkGAMdk2/cB95TQjg0cfELYBPafEPZ6IZmKboRuaMRLgQ+y4nFn9rN78B4e+LfCZ4GNwOvAoIAZf4h/G9sJ7ABag+V7EfgnsC67PR+wDX8LtGb5VnX2oVlmvg77tlBwcc7Zhr/K2vDtrA1/EDCjAb8BNgDvAFMj5cvu3w38uui260IbDgNezf7O64CfBMs3Bfhbts88oE/B+RYBnwB7ss/lGcBMYGbFa7A5y/9OUe9lLd8pIiISTE875iwiIlLzVJxFRESCUXEWEREJRsVZREQkGBVnERGRYFScRUREglFxFhERCeb/8jZ7YO72TLYAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "kneedle.plot_knee_normalized()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "kneedle.plot_knee()" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "60.763851270368505" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "kneedle.knee" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are plotting functions to visualize the knee point on the raw data and the normalized data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Average Knee for NoisyGaussian from 50 random iterations" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "knees = []\n", "for i in range(50):\n", " x,y = DG.noisy_gaussian(N=1000)\n", " kneedle = KneeLocator(x, y, direction='increasing', curve='convex')\n", " knees.append(kneedle.knee)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "60.349290078688824" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(knees)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Test all type of functions" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "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06Ec5+tf/7rTIYiIiIybG/OXMYZqfw41Te65h2GcFFktrtyP9cUvftHpEERERMbNrfmr2u/joVd30ds/QHKi84t1zkcQYR09fdQdaHflfqz6+nrq6+udDkNERGRc3Jq/qvw+evoH2LG/zelQgDiYydra1Iq1uOp2OsOuv/56wF19RkRERE7HrflreNWqJhBkrgv2Ycf8TFZtYHBt1o3LhSIiIhI+FflZpCUnUOuSpqSxX2Q1BZmUkUxRTprToYiIiEgEJSYYKgt91ATcsfk95ousmkCQar8PY4zToYiIiEiEVft91DYFsdY6HUpsF1m9/QNs29uq/lgiIiJxosrvo7Wrj4bDnU6HEtsb33c2t9PTN+DKTe8At956q9MhiIiIjJub89dwzq8JtFCam+FoLDFdZNW4fNP75Zdf7nQIIiIi4+bm/FVZmE2CGdwutPSMIkdjienlwppAkNSkBCryM50OZVTbt29n+/btTochIiIyLm7OX2nJicwoyHLFCcOYnsmqDQSpLPKR5IKur6O5+eabAff1GRERETkVt+evar+P13cecjqM2J3Jsta69nY6IiIiEjnV/hz2Brs42NbtaBwxW2Q1HO4k2NWnk4UiIiJxZvhWerVNzi4ZxmyRNfwXq5ksERGR+DLy9jpOitkiqyYQJMFAZaGKLBERkXgyKSOF4knpjhdZMbvxvTbQwvSCLNJTEp0O5aS+973vOR2CiIjIuHkhf80t8h29f7FTYrjICnJORa7TYZzSJZdc4nQIIiIi4+aF/FXt9/Hytn109PSRkeJMuROTy4WH23sItHS5fj/Wli1b2LJli9NhiIiIjIsX8le134e1sLWp1bEYYnIma3gNtqrInbfTGXbLLbcA7u0zIiIiMhov5K+RJwzPnjbZkRhiciartsndt9MRERGRyCqelE5OerKj+7JissiqCQTx56QxOTPF6VBERETEAcYYqv0+R08YxmyRVaVZLBERkbhWVeRj295W+voHHLl+zBVZnT397Gxuo8rv7v1YIiIiElnVxT56+gb4sLndketPeOO7MaYUeAQoBAaAldbaXxhjcoHHgXJgF3CttfZw6KGOzba9QQasN/Zj/fjHP3Y6BJG45dYxTMQLvJK/qocmXGqbWphTmB3164cyk9UH3GqtnQucD3zTGFMF3AG8bK2dBbw89HnUHDtZ6P4ia9GiRSxa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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.arange(0,10)\n", "y_convex_inc = np.array([1,2,3,4,5,10,15,20,40,100])\n", "y_convex_dec = y_convex_inc[::-1]\n", "y_concave_dec = 100 - y_convex_inc\n", "y_concave_inc = 100 - y_convex_dec\n", "\n", "kn = KneeLocator(x, y_convex_inc, curve='convex')\n", "knee_yconvinc = kn.knee\n", "\n", "kn = KneeLocator(x, y_convex_dec, curve='convex', direction='decreasing')\n", "knee_yconvdec = kn.knee\n", "\n", "kn = KneeLocator(x, y_concave_inc, curve='concave')\n", "knee_yconcinc = kn.knee\n", "\n", "kn = KneeLocator(x, y_concave_dec, curve='concave', direction='decreasing')\n", "knee_yconcdec = kn.knee\n", "\n", "f, axes = plt.subplots(2, 2, figsize=(10,10));\n", "yconvinc = axes[0][0]\n", "yconvdec = axes[0][1]\n", "yconcinc = axes[1][0]\n", "yconcdec = axes[1][1]\n", "\n", "sns.lineplot(x, y_convex_inc, ax=axes[0][0])\n", "yconvinc.vlines(x=knee_yconvinc, ymin=0, ymax=100, linestyle='--')\n", "yconvinc.set_title(\"curve='convex', direction='increasing'\")\n", "\n", "sns.lineplot(x, y_convex_dec, ax=axes[0][1])\n", "yconvdec.vlines(x=knee_yconvdec, ymin=0, ymax=100, linestyle='--')\n", "yconvdec.set_title(\"curve='convex', direction='decreasing'\")\n", "\n", "sns.lineplot(x, y_concave_inc, ax=axes[1][0])\n", "yconcinc.vlines(x=knee_yconcinc, ymin=0, ymax=100, linestyle='--')\n", "yconcinc.set_title(\"curve='concave', direction='increasing'\")\n", "\n", "sns.lineplot(x, y_concave_dec, ax=axes[1][1])\n", "yconcdec.vlines(x=knee_yconcdec, ymin=0, ymax=100, linestyle='--')\n", "yconcdec.set_title(\"curve='concave', direction='decreasing'\");" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "kneed_env", "language": "python", "name": "kneed_env" }, "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.7.0" } }, "nbformat": 4, "nbformat_minor": 2 }