Skip to content

Instantly share code, notes, and snippets.

Created December 14, 2017 22:20
Show Gist options
  • Save anonymous/ac74600a7bcdd8d35e45ab99d9af8971 to your computer and use it in GitHub Desktop.
Save anonymous/ac74600a7bcdd8d35e45ab99d9af8971 to your computer and use it in GitHub Desktop.
PAM Trilateration Example
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Passive Audio Monitoring Trilateration\n",
"\n",
"## The Issue\n",
"One example of a trilateration algorithm is the GPS based localization. The algorithm uses the runtimes of three or more signals to determine the position of the sensor on earth. In this algorithm the _absolute_ runtimes for each signal are known due to the GPS timestamps send by the satellites.\n",
"\n",
"In PAM Systems the sensors do not know the absolute runtime of the signal but only the _relative_ runtimes based on the first sensor which recorded the signals arrival. All upcoming arrival time differences are delta values from the _first encounter_. These so called _arrival time difference_ (atd) timedeltas are the only known information about the signals source.\n",
"\n",
"To see how the atd values would be used in a standart triangulation algorithm we calculate those values and show them as radii around the sensor positions. The hyphothesis is that the signals point has the least summed atd calculated distance to the sensors.\n",
"\n",
"## PAM Trilateration as optimization problem\n",
"Since in vivo recordings will have some kind of noise and inaccuracies it is important to use a robust trilateration algorithm. To achieve this we can think of trilateration as optimization problem in the following way:\n",
"\n",
"> find the point whichs summed distance to all sensors subtracted with their atd value is minimal\n",
"\n",
"For these kind of calculations the SciPy package optimize could be used. The below is an interactive version of the above described solution.\n"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"----------------------- DETECTION -----------------------\n",
" source_x source_y\n",
"1 0 0\n",
"\n",
"\n",
"----------------------- SENSORS -----------------------\n",
" x y distanceToSignal arrivalTimeDifference\n",
"a 2 0 2.0 0.0\n",
"b 0 4 4.0 2.0\n",
"c 0 -3 3.0 1.0\n",
"d -4 0 4.0 2.0\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqMAAAKoCAYAAABDWParAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XtwI1t+H/bvAdCNF/HkAyAJkBzOcGY4r7uPuxVZm0h3\n5WzZSllyknJVnEQpSalISqnkyLGTslSKHbkSVfRHnJTtJE70j/WInU0sV6JSypuHY19J5Yoc3V3t\nztQM7x3yghg+QBIECIB4oxs4+QODXj4AEnygGwC/n6pbvEOiiS+a/fj16XNOCykliIiIiIisYLM6\nABERERHdXSxGiYiIiMgyLEaJiIiIyDIsRomIiIjIMixGiYiIiMgyLEaJiIiIyDIsRomIxoAQ4teF\nEFIIsWR1FiKiq2AxSkQ0JIQQHwshhmryZyHET7wvcn/CgvceuvVBRLePxSgRERERWYbFKBERERFZ\nhsUoEdGAvL/F/Q+FEAkhRFUIcSyE+GdCiB8787ql97ejf/D9v+WJ/z4+89p/WQjxB0KIshDiSAjx\nvwkhHl+Q4UeFEP+PEGJPCFEXQqSEEL8nhPjZPvJ/DODvvv/n3z2Ta+nE6xxCiJ8VQvzh+89YEUL8\nsRDi54QQ584zl2W6yvogotHnsDoAEdEY+zsAXgP4fQB7ACYB/CsAfksI8UhK+Vffvy4P4K8D+AkA\ni+//vyPZ+R8hxJ8D8D8DaLz/ugfgXwTw/wJ4efbNhRA/DeB/ALAP4HcBZADMAHgB4CcB/HeX5P/1\n99n+LIDfAfCdEz/Lv38P5f3v/lMAPgPw9wHUAHwNwN8G8C8A+HeumKmv9UFE40FIyb7hRESDIIS4\nL6X8/Mz3VADfBPADAJaklLsnfvYxgB+UUoouv2sCwDsAfgB/Qkr5yYmf/dcA/uL7f96TUibff/9b\nAJ4BiEsp02d+35SUMtPHZ/gJtFtHf1JK+etdfv7LAP5TAP8NgL8opWy+/74dwK8B+HcB/KtSyt+5\naqaL1gcRjQ/epiciGpCzhej77zUA/Ldo35n6k1f4dX8WQBjA3z9ZiL73ywAKPZbTAWhdclxaiF7m\n/S34v4B2K+d/2ClE3//+JoC/DEAC+LfNykREo4e36YmIBkQIsQDgr6BddC4AcJ95yfwVft2X3n/9\nvbM/kFIWhBDfwfs+lif8PQB/A8AbIcQ33i/7z6SUh1d434s8RLtAXgfwnwjRtQGzCmDVxExENGJY\njBIRDYAQYhnA/wcgBOAPAPxfaLdeNgEsAfhxAM4r/MrA+68HPX6+f/YbUsr/SgiRAfCzAP4DtG/l\nSyHE7wH4j7u0sF7V5PuvK2jfqu9lwsRMRDRiWIwSEQ3GX0K7WDvX11II8W+iXYxeRec2fKTHz6Pd\nviml/E0AvymECAL4fgD/Gtr9OP9PIcTjG7ZIdjL9r1LKf73fhQaciYhGDPuMEhENxoP3X/9hl5+d\nvZ3ecXLwz1nf7rWsECIA4AsXhZFS5qWU/0hK+VNoj5IPoz2I6jKdfqDdMn2K9sj373s/qv5K+sh0\n0fogojHBYpSIaDCS779+dPKbQog/BeDf67FM9v3XhS4/+x0AOQD/lhDiwzM/+2V87zb+yff6muje\nkXPm/ddKjxx9ZZJS6mhP3zQL4G8JIc72iYUQYlYI8eSamS5aH0Q0Jji1ExHRAAghXgD4I7RHk/82\ngBTaUxr9aQD/C4B/A8Bfl1L+8ollfgbAf4/2fJ7/CO3BP++klL/1/ue95hl9hvY8oz+A01M75QGU\nAPwh2sWxAPAvAfgKgG+hPUXUuVHtZz5HCMAO2iPgfwvf65v6t98PnFLef74fBbAL4J+8/zqDdl/S\nrwL4JSnlr14102Xrg4jGA4tRIqIBEUJ8P4D/HMAX0e6j/10A/yXat7b/Kc4Xo3YA/xmAPw8g/n6Z\n35NSfnTiNV9He7DQlwDU0Z5Q/68A+AW0+6GeLEb/fbQno/8A7T6lNbTnKv2fAPwdKWWxz8/xp9+/\n53MA3vffPvk+AsCPoT1J/RfRHrB0CGAT7SLyt6SU21fN1M/6IKLRx2KUiIiIiCzDPqNEREREZBkW\no0RERERkGRajRERERGQZFqNEREREZBk+gWmETE1NyaWlJatjXEu5XIbX6738hXRruM7Nx3VuPq5z\n83Gdm29U1/m3vvWtjJRy+rLXsRgdIUtLS/jkk9F8bPPHH3+Mjz76yOoYdwrXufm4zs3HdW4+rnPz\njeo6F0K86+d1vE1PRERERJZhMUpERERElmExSkRERESWYTFKRERERJZhMUpERERElmExSkRERESW\nYTFKRERERJZhMUpERERElmExSkRERESWYTFKRERERJZhMUpERERElmExSkRERESWYTFKRERERJZh\nMUpERERElmExSkRERESWYTFKRERERJZhMUpERERElmExSkRERESWYTFKRERERJZhMUpERERElmEx\n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\n6bsRO6Ir48goERERESnDkVEiIiIiUobFKBEREREpw2KUiIiIiJRhMUpEREREyrAYJSIiIiJlWIwS\nERERkTIsRomIiIhIGRajRERERKQMi1EioltGCDEqhEgLIf79qe//rhDitRDCoyobEd0+LEaJiG4Z\nKWUewN8C8P1CiC8CgBDibwL4brQe1VtWmY+Ibhc+DpSI6JYSQvwqgL8C4LsA/BGAX5VS/gO1qYjo\ntmExSkR0SwkhRgC8ADANYA3Ap6WUVbWpiOi24TQ9EdEtJaUsAfgKABeAf8tClIhU4MgoEdEtJYT4\nVgD/C8AKgHkAj6SU22pTEdFtw2KUiOgWEkLoAL4OIAHg+wB8A0BcSvk9SoMR0a3DaXoiotvpnwCY\nBPBD766e/wEA3y2E+AGVoYjo9uHIKBHRLSOE+HYA/xPA90sp/+Ox7/8igB8C8FhKmVaVj4huFxaj\nRERERKQMp+mJiIiISBkWo0RERESkDItRIiIiIlKGxSgRERERKcNilIiIiIiUYTFKRERERMqwGCUi\nIiIiZViMEhEREZEyLEaJiIiISBkWo0RERESkDItRIiIiIlKGxSgRERERKcNilIiIiIiUYTFKRERE\nRMqwGCUiIiIiZViMEhEREZEyLEaJiIiISBkWo0RERESkDItRIiIiIlKGxSgRERERKcNilIiIiIiU\nYTFKRERERMqwGCUiIiIiZViMEhEREZEyLEaJiIiISBkWo0RERESkDItRIiIiIlKGxSgRERERKcNi\nlIiIiIiUYTFKRERERMqwGCUiIiIiZViMEhEREZEyLEaJiIiISBkWo0RERESkDItRIiIiIlKGxSgR\nERERKcNilIiIiIiUYTFKRERERMqwGCUiIiIiZViMEhEREZEyLEaJiIiISBkWo0RERESkDItRIiIi\nIlKGxSgRERERKcNilIiIiIiUYTFKRERERMqwGCUiIiIiZViMEhEREZEyLEaJiIiISBkWo0RERESk\nDItRIiIiIlKGxSgRERERKcNilIiIiIiUYTFKRERERMqwGCUiIiIiZViMEhEREZEyLEaJiIiISBkW\no0RERESkDItRIiIiIlKGxSgRERERKcNilIiIiIiUYTFKRERERMqwGCUiIiIiZViMEhEREZEyLEaJ\niIiISBkWo0RERESkDItRIiIiIlKGxSgRERERKcNilIiIiIiUYTFKRERERMqwGCUiIiIiZViMEhER\nEZEyLEaJiIiISBkWo0RERESkzP8HUdApzSWQHy4AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x2a3c14dc6a0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"import math\n",
"import scipy\n",
"from scipy.optimize import minimize\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.patches as mpatches\n",
"import ipywidgets as widgets\n",
"from IPython.display import display\n",
"import traitlets\n",
"from IPython.display import clear_output\n",
"\n",
"df_detections, df_sensors = \"\",\"\"\n",
"\n",
"signal_text = widgets.Text(value='Signal Position', disabled=True)\n",
"signal_x = widgets.IntSlider(min=-15, max=15,\n",
" description=\"x\",\n",
" continuous_update=False)\n",
"signal_y = widgets.IntSlider(min=-15, max=15,\n",
" description=\"y\",\n",
" continuous_update=False)\n",
"\n",
"s1_text = widgets.Text(value='Sensor A', disabled=True)\n",
"s1_x = widgets.IntSlider(min=-15, max=15,\n",
" value=2,\n",
" description=\"x\",\n",
" continuous_update=False)\n",
"s1_y = widgets.IntSlider(min=-15, max=15,\n",
" value=0,\n",
" description=\"y\",\n",
" continuous_update=False)\n",
"\n",
"\n",
"s2_text = widgets.Text(value='Sensor B', disabled=True)\n",
"s2_x = widgets.IntSlider(min=-15, max=15,\n",
" value=0,\n",
" description=\"x\",\n",
" continuous_update=False)\n",
"s2_y = widgets.IntSlider(min=-15, max=15,\n",
" value=4,\n",
" description=\"y\",\n",
" continuous_update=False)\n",
"\n",
"s3_text = widgets.Text(value='Sensor C', disabled=True)\n",
"s3_x = widgets.IntSlider(min=-15, max=15,\n",
" value=0,\n",
" description=\"x\",\n",
" continuous_update=False)\n",
"s3_y = widgets.IntSlider(min=-15, max=15,\n",
" value=-3,\n",
" description=\"y\",\n",
" continuous_update=False)\n",
"\n",
"s4_text = widgets.Text(value='Sensor D', disabled=True)\n",
"s4_x = widgets.IntSlider(min=-15, max=15,\n",
" value=-4,\n",
" description=\"x\",\n",
" continuous_update=False)\n",
"s4_y = widgets.IntSlider(min=-15, max=15,\n",
" value=0,\n",
" description=\"y\",\n",
" continuous_update=False)\n",
"\n",
"button = widgets.Button(description=\"show setup\")\n",
"def setup(b):\n",
" clear_output()\n",
" \n",
" global df_detections\n",
" global df_sensors\n",
" \n",
" sensorPositions ={\"a\":[s1_x.value,s1_y.value],\n",
" \"b\":[s2_x.value,s2_y.value],\n",
" \"c\":[s3_x.value,s3_y.value],\n",
" \"d\":[s4_x.value,s4_y.value],\n",
" }\n",
" \n",
" df_detections = pd.DataFrame(data=[[signal_x.value,signal_y.value]],\n",
" index=[1],\n",
" columns=['source_x','source_y'])\n",
" df_sensors = pd.DataFrame.from_dict(sensorPositions,orient=\"index\")\n",
" df_sensors.columns = ['x', 'y'] # change column names\n",
" \n",
" # calculate the distance / time it will take the signal to arrive at the sensor\n",
" # needed to find the _first encounter_ sensor and calculate the arrival time differences\n",
" df_sensors['distanceToSignal'] = df_sensors.apply(calcDistanceToSignal,\n",
" axis=1)\n",
" \n",
" # calculate the arrival time differences\n",
" df_sensors['arrivalTimeDifference'] = df_sensors.apply(calcArrivalTimeDifference,\n",
" args=(np.min(df_sensors['distanceToSignal']),),\n",
" axis=1)\n",
" \n",
" print(\"----------------------- DETECTION -----------------------\")\n",
" print(df_detections)\n",
" \n",
" print(\"\\n\\n----------------------- SENSORS -----------------------\")\n",
" print(df_sensors)\n",
" \n",
" drawATDMatrixPlot()\n",
"\n",
" \n",
"def distance(p1,p2):\n",
" dist = np.linalg.norm(p1-p2) # numpy.linalg >> fastest way to process\n",
" return dist\n",
"\n",
"def calcDistanceToSignal(row):\n",
" p1 = np.array([row['x'],row['y']])\n",
" p2 = np.array([signal_x.value,signal_y.value])\n",
" d = distance(p1,p2)\n",
" return d\n",
"\n",
"def calcArrivalTimeDifference(row,firstEncounterTime):\n",
" p1 = np.array([row['x'],row['y']])\n",
" p2 = np.array([signal_x.value,signal_y.value])\n",
" atd = distance(p1,p2) - firstEncounterTime\n",
" return atd\n",
"\n",
"\n",
"def drawATDMatrixPlot():\n",
"\n",
" # rCount random points between rMin,rMax\n",
" rMin = -10\n",
" rMax = 10\n",
" rCount = 1200\n",
"\n",
" df_atd = pd.DataFrame(np.random.randint(rMin,rMax,size=(rCount,2)), columns=list('xy'))\n",
" df_atd = df_atd.drop_duplicates() # randint gives duplicates\n",
"\n",
" def calcATDtoEachSensor(row):\n",
" pTest = np.array([row['x'],row['y']])\n",
" summed_dist = 0\n",
" for sensor in df_sensors.itertuples():\n",
" pSensor = np.array([sensor.x,sensor.y])\n",
" atd_dist = distance(pTest,pSensor) - sensor.arrivalTimeDifference\n",
" summed_dist = summed_dist + abs(atd_dist) # use positive values\n",
" row[sensor.Index+'_atd'] = atd_dist\n",
"\n",
" row['summed_atd'] = summed_dist\n",
"\n",
" return row\n",
"\n",
" df_atd = df_atd.apply(calcATDtoEachSensor, axis=1)\n",
"\n",
" # display the data as plot\n",
" plt.figure(figsize=(10,10))\n",
" # give the plot some spacing around min/max x/y\n",
" plt.xlim([df_sensors['x'].min()-3, df_sensors['x'].max()+3])\n",
" plt.ylim([df_sensors['y'].min()-3, df_sensors['y'].max()+3])\n",
"\n",
" plt.title('atds test', fontsize=20)\n",
" plt.xlabel('x', fontsize=15)\n",
" plt.ylabel('y', fontsize=15)\n",
"\n",
" plt.grid(True)\n",
"\n",
" plt.scatter(df_sensors['x'], df_sensors['y'], marker = 'o', color=\"blue\")\n",
" for t in df_sensors.itertuples():\n",
" plt.annotate(t.Index,\n",
" xy = (t.x+0.1, t.y+0.1),\n",
" color = 'blue'\n",
" )\n",
"\n",
" plt.scatter(df_detections['source_x'], df_detections['source_y'],\n",
" marker = 'o', color=\"orange\")\n",
" for t in df_detections.itertuples():\n",
" plt.annotate(t.Index,\n",
" xy = (t.source_x + 0.1, t.source_y + 0.1),\n",
" color = 'red'\n",
" )\n",
"\n",
"\n",
" for t in df_atd.itertuples():\n",
" label = str(t.summed_atd)[:4]\n",
" plt.annotate(label,\n",
" xy = (t.x+0.05, t.y+0.05),\n",
" color = 'gray',\n",
" alpha=0.4\n",
" )\n",
"\n",
" # extend the curent plot\n",
" fig = plt.gcf()\n",
" ax = fig.gca()\n",
"\n",
" for row in df_sensors.itertuples():\n",
" circle = mpatches.Circle((row.x, row.y),\n",
" row.arrivalTimeDifference,\n",
" facecolor='grey',\n",
" edgecolor='black',\n",
" alpha=0.2,\n",
" ls='--')\n",
" ax.add_artist(circle)\n",
"\n",
" plt.axes\n",
" plt.show()\n",
"\n",
" \n",
"\n",
"button.on_click(setup)\n",
"display(signal_text,signal_x,signal_y)\n",
"display(s1_text,s1_x,s1_y)\n",
"display(s2_text,s2_x,s2_y)\n",
"display(s3_text,s3_x,s3_y)\n",
"display(s4_text,s4_x,s4_y)\n",
"\n",
"\n",
"display(button)\n"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" source_x source_y a_atd b_atd c_atd d_atd\n",
"1 0.0 0.0 0.0 2.0 1.0 2.0\n"
]
}
],
"source": [
"# apply detection for signal\n",
"def setATD(row):\n",
" for t in df_sensors.itertuples():\n",
" row[t.Index+'_atd'] = t.arrivalTimeDifference\n",
" return row\n",
"\n",
"df_detections = df_detections.apply(setATD, axis=1)\n",
"print(df_detections)"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>x</th>\n",
" <th>y</th>\n",
" <th>sd</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>-0.500000</td>\n",
" <td>0.250000</td>\n",
" <td>8.092809</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>-0.500000</td>\n",
" <td>0.250000</td>\n",
" <td>8.092809</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>-0.500000</td>\n",
" <td>0.250000</td>\n",
" <td>8.092809</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>-0.218201</td>\n",
" <td>0.082106</td>\n",
" <td>8.016196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>-0.218201</td>\n",
" <td>0.082106</td>\n",
" <td>8.016196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>-0.218201</td>\n",
" <td>0.082106</td>\n",
" <td>8.016196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.010656</td>\n",
" <td>-0.003530</td>\n",
" <td>8.000038</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.010656</td>\n",
" <td>-0.003530</td>\n",
" <td>8.000038</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.010656</td>\n",
" <td>-0.003530</td>\n",
" <td>8.000038</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>-0.000140</td>\n",
" <td>0.000210</td>\n",
" <td>8.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>-0.000140</td>\n",
" <td>0.000210</td>\n",
" <td>8.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>-0.000140</td>\n",
" <td>0.000210</td>\n",
" <td>8.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>-0.500000</td>\n",
" <td>0.250000</td>\n",
" <td>8.092809</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>-0.500000</td>\n",
" <td>0.250000</td>\n",
" <td>8.092809</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>-0.500000</td>\n",
" <td>0.250000</td>\n",
" <td>8.092809</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>-0.218201</td>\n",
" <td>0.082106</td>\n",
" <td>8.016196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>-0.218201</td>\n",
" <td>0.082106</td>\n",
" <td>8.016196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>-0.218201</td>\n",
" <td>0.082106</td>\n",
" <td>8.016196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>0.010656</td>\n",
" <td>-0.003530</td>\n",
" <td>8.000038</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>0.010656</td>\n",
" <td>-0.003530</td>\n",
" <td>8.000038</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>0.010656</td>\n",
" <td>-0.003530</td>\n",
" <td>8.000038</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>-0.000140</td>\n",
" <td>0.000210</td>\n",
" <td>8.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>-0.000140</td>\n",
" <td>0.000210</td>\n",
" <td>8.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>-0.000140</td>\n",
" <td>0.000210</td>\n",
" <td>8.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" x y sd\n",
"1 -0.500000 0.250000 8.092809\n",
"2 -0.500000 0.250000 8.092809\n",
"3 -0.500000 0.250000 8.092809\n",
"4 -0.218201 0.082106 8.016196\n",
"5 -0.218201 0.082106 8.016196\n",
"6 -0.218201 0.082106 8.016196\n",
"7 0.010656 -0.003530 8.000038\n",
"8 0.010656 -0.003530 8.000038\n",
"9 0.010656 -0.003530 8.000038\n",
"10 -0.000140 0.000210 8.000000\n",
"11 -0.000140 0.000210 8.000000\n",
"12 -0.000140 0.000210 8.000000\n",
"13 -0.500000 0.250000 8.092809\n",
"14 -0.500000 0.250000 8.092809\n",
"15 -0.500000 0.250000 8.092809\n",
"16 -0.218201 0.082106 8.016196\n",
"17 -0.218201 0.082106 8.016196\n",
"18 -0.218201 0.082106 8.016196\n",
"19 0.010656 -0.003530 8.000038\n",
"20 0.010656 -0.003530 8.000038\n",
"21 0.010656 -0.003530 8.000038\n",
"22 -0.000140 0.000210 8.000000\n",
"23 -0.000140 0.000210 8.000000\n",
"24 -0.000140 0.000210 8.000000"
]
},
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## FUNCTIONS TO GET THE BEST FIT\n",
"\n",
"points = {}\n",
"i = 0\n",
"# summed distance as metric for the minimize function\n",
"def getSummedDistances(startPoint):\n",
" global i\n",
" i = i + 1\n",
" pTest = np.array([startPoint])\n",
" summed_dist = 0\n",
" for sensor in df_sensors.itertuples():\n",
" pSensor = np.array([sensor.x,sensor.y])\n",
" atd_dist = distance(pTest,pSensor) - sensor.arrivalTimeDifference\n",
" summed_dist = summed_dist + abs(atd_dist) # use positive values\n",
" \n",
" # save this point\n",
" points[i] = {'x':startPoint[0],\n",
" 'y':startPoint[1],\n",
" 'sd':summed_dist\n",
" }\n",
" \n",
" return summed_dist\n",
"\n",
"# initial_location: (x, y)\n",
"# locations: [ (x1, y1), ... ]\n",
"# distances: [ distanceAt1, distanceAt2, ... ] \n",
"def getLocation(initialLocation,bounds):\n",
" result = minimize(\n",
" getSummedDistances, # The error function\n",
" initialLocation, # The initial guess\n",
" # Additional parameters for mse\n",
" #args=(sensorLocations,sensedDistances,), \n",
" method='L-BFGS-B', # The optimisation algorithm\n",
" bounds=bounds, # used bounds as (min,max)\n",
" options={\n",
" 'ftol':0.0001, # Tolerance\n",
" 'maxiter': 500, # Maximum iterations\n",
" #'disp':True, # display convergence messages\n",
" })\n",
" \n",
" # The optimization result represented as a OptimizeResult object.\n",
" # Important attributes are: x the solution array, success a Boolean flag\n",
" # indicating if the optimizer exited successfully and message which describes\n",
" # the cause of the termination.\n",
" if (result.success):\n",
" #print(\"getLocation was succesful\")\n",
" location = result.x # the coordinates as ([x,y] || [x,y,z])\n",
" else:\n",
" print(\"getLocation failed with:\")\n",
" print(result.message)\n",
" location = [-99,-99] # error coordinates\n",
" #location = [-99,-99,-99] # 3D error coordinates\n",
" \n",
" return location\n",
"\n",
"\n",
"# TRYING TO GET THE LOCATION\n",
"sl = df_sensors[['x','y']].as_matrix()\n",
"initialLocation = np.mean(df_sensors[['x','y']]) # centroid\n",
"\n",
"# bounds shall be the min/max locations from the sensor array plus this buffer\n",
"boundsBuffer = 2 # in units of measurement\n",
"\n",
"# use bounds to hopefully get rid of huge outliers\n",
"bounds = (np.min(df_sensors) - boundsBuffer,\n",
" np.max(df_sensors) + boundsBuffer)\n",
"# np array to min / max xyz tuples\n",
"bounds = ((bounds[0][0],bounds[1][0]),\n",
" (bounds[0][1],bounds[1][1]),)\n",
"\n",
"def calcXYZ(row,bounds):\n",
" sensedDistances = row[['a_atd','b_atd','c_atd','d_atd']]\n",
" \n",
" location = getLocation(initialLocation,bounds)\n",
" row['calced_x'] = location[0]\n",
" row['calced_y'] = location[1]\n",
" #row['z'] = location[2]\n",
" return row\n",
"\n",
"df_detections = df_detections.apply(calcXYZ,args=(bounds,), axis=1)\n",
"df_calced = pd.DataFrame.from_dict(points, orient='index')\n",
"df_calced"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>source_x</th>\n",
" <th>source_y</th>\n",
" <th>a_atd</th>\n",
" <th>b_atd</th>\n",
" <th>c_atd</th>\n",
" <th>d_atd</th>\n",
" <th>calced_x</th>\n",
" <th>calced_y</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>-0.00014</td>\n",
" <td>0.00021</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" source_x source_y a_atd b_atd c_atd d_atd calced_x calced_y\n",
"1 0.0 0.0 0.0 2.0 1.0 2.0 -0.00014 0.00021"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_detections"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.6.0"
},
"widgets": {
"state": {
"0317864d919f4103b0fc4244c8989a87": {
"views": [
{
"cell_index": 1
}
]
},
"09903e674b694723867361c72e9ca2ac": {
"views": [
{
"cell_index": 1
}
]
},
"12e10bed41854be2a21a404a215a80b4": {
"views": [
{
"cell_index": 1
},
{
"cell_index": 1
},
{
"cell_index": 1
},
{
"cell_index": 1
},
{
"cell_index": 1
}
]
},
"1954ee807cd449e89971b735c15f1a56": {
"views": [
{
"cell_index": 1
}
]
},
"1c67af53da1e48deb26e90858afaa76e": {
"views": [
{
"cell_index": 2
}
]
},
"2820c49e33d04b11a917c9783c124dc0": {
"views": [
{
"cell_index": 1
}
]
},
"3ad3bf219dfb475099f64a87785d021a": {
"views": [
{
"cell_index": 1
}
]
},
"406a9a5e4536459da2ea795792b9c0ae": {
"views": [
{
"cell_index": 1
}
]
},
"4de279813af44209ad3c05d9a82586a2": {
"views": [
{
"cell_index": 1
}
]
},
"5a3feca5b33c4737a6176c9c274120d0": {
"views": [
{
"cell_index": 1
}
]
},
"5f2c489e4ccd4d5cb512be243e87e5a4": {
"views": [
{
"cell_index": 1
}
]
},
"61060904b36847b9852b0fe0ddb0251d": {
"views": [
{
"cell_index": 1
}
]
},
"66e4337ad06645a885cc220f493eed98": {
"views": [
{
"cell_index": 1
}
]
},
"671576c654a144bf9c8eb4880871cd78": {
"views": [
{
"cell_index": 1
}
]
},
"68b47d0954f442bea8185c5e0acc0cf9": {
"views": [
{
"cell_index": 1
}
]
},
"68f5da51c8e64bd58d5e5bee79ca52d4": {
"views": [
{
"cell_index": 1
}
]
},
"7178af1b9ec64611a7425923f4469ed8": {
"views": [
{
"cell_index": 2
}
]
},
"7b04ed2838644c15bf8372415235329b": {
"views": [
{
"cell_index": 1
}
]
},
"8452a6ff958243398f980105f6d895bd": {
"views": [
{
"cell_index": 1
}
]
},
"99826b85bfda420fb13e0712007e8a38": {
"views": [
{
"cell_index": 1
}
]
},
"af449d05686944edbbd9601819e0c171": {
"views": [
{
"cell_index": 1
}
]
},
"c59034ec314e470d9adbc0182d9a1542": {
"views": [
{
"cell_index": 1
}
]
},
"ccb63ff0ba8049168935324d3c8a67b0": {
"views": [
{
"cell_index": 1
}
]
},
"d02946de7a1641b4acf1c8b260669239": {
"views": [
{
"cell_index": 1
}
]
},
"dc333cbffa414e48930a935ab16843f8": {
"views": [
{
"cell_index": 1
}
]
},
"e0685287e664455dbb834dbbaf1af554": {
"views": [
{
"cell_index": 1
}
]
},
"e3dcbf8ea2244ecab726269e59f5436e": {
"views": [
{
"cell_index": 1
}
]
},
"ebba7c6644ba4db390fa7c1fa2bd3cf2": {
"views": [
{
"cell_index": 1
}
]
}
},
"version": "1.2.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment